• Finn Thain's avatar
    ncr5380: Add missing lock in eh_abort_handler · 9dafbd93
    Finn Thain authored
    The host spin lock needs to be acquired by NCR5380_abort() before it calls
    NCR5380_select(). This patch doesn't actually fix the EH issues in this
    driver but it does avoid this:
    
    BUG: spinlock already unlocked on CPU#0, kworker/u4:1/14
     lock: 0xc0c0f834, .magic: dead4ead, .owner: <none>/-1, .owner_cpu: -1
     CPU: 0 PID: 14 Comm: kworker/u4:1 Not tainted 3.15.5 #5
     Workqueue: scsi_tmf_4 scmd_eh_abort_handler
     Call Trace:
     [ef885d70] [c0008acc] show_stack+0x70/0x1bc (unreliable)
     [ef885db0] [c0492a00] dump_stack+0x84/0x684
     [ef885dc0] [c006f314] spin_dump+0xd0/0xe8
     [ef885dd0] [c006f460] do_raw_spin_unlock+0xd4/0xd8
     [ef885df0] [c0491c8c] _raw_spin_unlock_irq+0x10/0x3c
     [ef885e00] [f381fe3c] NCR5380_select+0x3e4/0x6e8 [dmx3191d]
     [ef885e40] [f382026c] NCR5380_abort+0x12c/0x190 [dmx3191d]
     [ef885e60] [c02fec9c] scmd_eh_abort_handler+0x100/0x460
     [ef885e80] [c0046470] process_one_work+0x16c/0x420
     [ef885ea0] [c0046870] worker_thread+0x14c/0x430
     [ef885ed0] [c004e4f4] kthread+0xd8/0xec
     [ef885f40] [c00124d4] ret_from_kernel_thread+0x5c/0x64
    Signed-off-by: default avatarFinn Thain <fthain@telegraphics.com.au>
    Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
    Tested-by: default avatarOndrej Zary <linux@rainbow-software.org>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    9dafbd93
NCR5380.c 81.7 KB