cpusets: BUG: cpuset_excl_nodes_overlap() may sleep under tasklist_lock

Kirill Korotaev
2005-12-28T12:45:56Z

FYI, there is an obvious bug in cpusets in 2.6.15-rcX:
cpuset_excl_nodes_overlap() may sleep (as it takes semaphore), but is
called from atomic context - select_bad_process() under tasklist_lock.
BUG. Found by Denis Lunev.

the same actually applies to cpuset_zone_allowed() which is called e.g.
from __alloc_pages()->get_page_from_freelist() and doesn't check for
GPF_NOATOMIC anyhow...

Kirill