• David S. Miller's avatar
    [SPARC64]: Eliminate NR_CPUS limitations. · 22adb358
    David S. Miller authored
    Cheetah systems can have cpuids as large as 1023, although physical
    systems don't have that many cpus.
    
    Only three limitations existed in the kernel preventing arbitrary
    NR_CPUS values:
    
    1) dcache dirty cpu state stored in page->flags on
       D-cache aliasing platforms.  With some build time
       calculations and some build-time BUG checks on
       page->flags layout, this one was easily solved.
    
    2) The cheetah XCALL delivery code could only handle
       a cpumask with up to 32 cpus set.  Some simple looping
       logic clears that up too.
    
    3) thread_info->cpu was a u8, easily changed to a u16.
    
    There are a few spots in the kernel that still put NR_CPUS
    sized arrays on the kernel stack, but that's not a sparc64
    specific problem.
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    22adb358
init.c 50.3 KB