lkml.org 
[lkml]   [2010]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Ugly rmap NULL ptr deref oopsie on hibernate (was Linux 2.6.34-rc3)


    On Tue, 6 Apr 2010, Andrew Morton wrote:

    > On Tue, 6 Apr 2010 11:28:52 -0700 (PDT)
    > Linus Torvalds <torvalds@linux-foundation.org> wrote:
    >
    > > For example, maybe some list corruption causes us to do that
    > > "anon_vma_chain_link()" _twice_ on the same avc entry. So we do that
    > > "list_add_tail(&avc->same_anon_vma, &anon_vma->head);" on an entry that
    > > already had "same_anon_vma" on one list.
    >
    > The lib/list_debug.c stuff might detect such things. I wonder if
    > either Borislav or Steinar had CONFIG_DEBUG_LIST enabled?

    Well, even without CONFIG_LIST_DEBUG we'd catch _some_ things, and
    conversely, even with LIST_DEBUG on we don't catch everything.

    For example, doing list_del() twice on the same entry will die with a
    really nice pattern due to poisoning even without LIST_DEBUG.

    But list_add() twice on the same entry will sadly silently succeed both
    with and without list debugging (the list debugging will check the target
    list head, but there is no way to check the "new->next/prev" entries).

    Anyway, I've not actually found anything wrong in the same_vma locking.
    And I'm not at all convinced there is any list corruption there. My point
    was really only that
    (a) the locking rules seem very unclear and certainly not documented and
    (b) corruption of one list could easily be the cause of corruption of
    another list of the same structure.
    but I don't actually see anything wrong anywhere.

    Linus


    \
     
     \ /
      Last update: 2010-04-06 21:17    [W:0.023 / U:60.912 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site