• B
    [PATCH] Fix hardcoded cpu=0 in workqueue for per_cpu_ptr() calls · bce61dd4
    Ben Collins 提交于
    Tracked this down on an Ultra Enterprise 3000.  It's a 6-way machine.  Odd
    thing about this machine (and it's good for finding bugs like this) is that
    the CPU id's are not 0 based.  For instance, on my machine the CPU's are
    6/7/10/11/14/15.
    
    This caused some NULL pointer dereference in kernel/workqueue.c because for
    single_threaded workqueue's, it hardcoded the cpu to 0.
    
    I changed the 0's to any_online_cpu(cpu_online_mask), which cpumask.h
    claims is "First cpu in mask".  So this fits the same usage.
    Signed-off-by: NAndrew Morton <akpm@osdl.org>
    Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
    bce61dd4
workqueue.c 13.9 KB