• Lee Schermerhorn's avatar
    mempolicy: fix reference counting bugs · 69682d85
    Lee Schermerhorn authored
    Address 3 known bugs in the current memory policy reference counting method.
    I have a series of patches to rework the reference counting to reduce overhead
    in the allocation path.  However, that series will require testing in -mm once
    I repost it.
    
    1) alloc_page_vma() does not release the extra reference taken for
       vma/shared mempolicy when the mode == MPOL_INTERLEAVE.  This can result in
       leaking mempolicy structures.  This is probably occurring, but not being
       noticed.
    
       Fix:  add the conditional release of the reference.
    
    2) hugezonelist unconditionally releases a reference on the mempolicy when
       mode == MPOL_INTERLEAVE.  This can result in decrementing the reference
       count for system default policy [should have no ill effect] or premature
       freeing of task policy.  If this occurred, the next allocation using task
       mempolicy would use the freed structure and probably BUG out.
    
       Fix:  add the necessary check to the release.
    
    3) The current referenc...
    69682d85
mempolicy.c 51.5 KB