• Ingo Molnar's avatar
    drivers/char/esp.c: fix bootup lockup · 80d38f9a
    Ingo Molnar authored
    randconfig testing found a bootup lockup in drivers/char/esp.c because
    of a spinlock that wasn't correctly initialized.
    
    I'm not sure why it became more prominent in 2.6.25-rc4, the bug seems
    rather old and i've been doing allyesconfig bootups for ages with
    CONFIG_ESP enabled.
    
    This fixes this bootup lockup:
    
     PM: Adding info for No Bus:ttyP63
     ttyP32 at 0x0240 (irq = 0) is an ESP primary port
     BUG: spinlock lockup on CPU#0, swapper/1, f56dd004
     Pid: 1, comm: swapper Not tainted 2.6.25-rc4-sched-devel.git-x86-latest.git #402 [<c03ac6f4>] _raw_spin_lock+0x134/0x140
      [<c08649be>] _spin_lock_irqsave+0x5e/0x80
      [<c0b9fbfe>] ? espserial_init+0x2be/0x6e0
      [<c0b9fbfe>] espserial_init+0x2be/0x6e0
      [<c0b877a3>] kernel_init+0x83/0x260
      [<c0b9f940>] ? espserial_init+0x0/0x6e0
      [<c010416a>] ? restore_nocheck_notrace+0x0/0xe
      [<c0b87720>] ? kernel_init+0x0/0x260
      [<c0b87720>] ? kernel_init+0x0/0x260
      [<c0104507>] kernel_thread_helper+0x7/0x10
      =======================
    
    kzalloc() is not the way to initialize spinlocks anymore.
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    80d38f9a
esp.c 66.4 KB