Messages in this thread | | | Date | Tue, 15 Mar 2011 18:35:23 +0200 | From | "Kirill A. Shutemov" <> | Subject | Re: [PATCH 2/2] cgroup: if you list_empty() a head then don't list_del() it |
| |
On Tue, Mar 15, 2011 at 03:08:43PM +0200, Phil Carmody wrote: > list_del() leaves poison in the prev and next pointers. The next > list_empty() will compare those poisons, and say the list isn't empty. > Any list operations that assume the node is on a list because of such a > check will be fooled into dereferencing poison. One needs to INIT the > node after the del, and fortunately there's already a wrapper for that - > list_del_init(). > > Some of the dels are followed by deallocations, so can be ignored, > and one can be merged with an add to make a move. Apart from that, I > erred on the side of caution in making nodes list_empty()-queriable. > > Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Acked-by: Kirill A. Shutemov <kirill@shutemov.name>
-- Kirill A. Shutemov
| |