• Ben Collins's avatar
    [PATCH] Fix hardcoded cpu=0 in workqueue for per_cpu_ptr() calls · bce61dd4
    Ben Collins authored
    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: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    bce61dd4
workqueue.c 13.9 KB