• Heiko Carstens's avatar
    [S390] vdso: fix per cpu area allocation · 3a6ba460
    Heiko Carstens authored
    vdso per cpu area allocation in smp_prepare_cpus() happens with GFP_KERNEL
    but irqs disabled. Triggers this one:
    
    Badness at kernel/lockdep.c:2280
    Modules linked in:
    CPU: 0 Not tainted 2.6.30 #2
    Process swapper (pid: 1, task: 000000003fe88000, ksp: 000000003fe87eb8)
    Krnl PSW : 0400c00180000000 0000000000083360 (lockdep_trace_alloc+0xec/0xf8)
    [...]
    Call Trace:
    ([<00000000000832b6>] lockdep_trace_alloc+0x42/0xf8)
     [<00000000000b1880>] __alloc_pages_internal+0x3e8/0x5c4
     [<00000000000b1b4a>] __get_free_pages+0x3a/0xb0
     [<0000000000026546>] vdso_alloc_per_cpu+0x6a/0x18c
     [<00000000005eff82>] smp_prepare_cpus+0x322/0x594
     [<00000000005e8232>] kernel_init+0x76/0x398
     [<000000000001bb1e>] kernel_thread_starter+0x6/0xc
     [<000000000001bb18>] kernel_thread_starter+0x0/0xc
    
    Fix this by moving the allocation out of the irqs disabled section.
    Reported-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    3a6ba460
smp.c 26.4 KB