• Brian King's avatar
    [SCSI] ibmvfc: Fix deadlock in EH · 43c8da90
    Brian King authored
    Fixes the following deadlock scenario shown below. We currently allow
    queuecommand to send commands when the ibmvfc workqueue is scanning for
    new rports, so we should also allow EH to function at this time as well.
    
    scsi_eh_3     D 0000000000000000 12304  1279      2
    Call Trace:
    [c0000002f7257730] [c0000002f72577e0] 0xc0000002f72577e0 (unreliable)
    [c0000002f7257900] [c0000000000118f4] .__switch_to+0x158/0x1a0
    [c0000002f72579a0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
    [c0000002f7257b60] [c0000000004f8f08] .schedule_timeout+0xa8/0xe8
    [c0000002f7257c50] [d0000000001d23e0] .ibmvfc_wait_while_resetting+0xe4/0x140 [ibmvfc]
    [c0000002f7257d20] [d0000000001d3984] .ibmvfc_eh_abort_handler+0x60/0xe4 [ibmvfc]
    [c0000002f7257dc0] [d000000000366714] .scsi_error_handler+0x38c/0x674 [scsi_mod]
    [c0000002f7257f00] [c0000000000a7470] .kthread+0x78/0xc4
    [c0000002f7257f90] [c000000000029b8c] .kernel_thread+0x4c/0x68
    ibmvfc_3      D 0000000000000000 12432  1280      2
    Call Trace:
    [c0000002f7253540] [c0000002f72535f0] 0xc0000002f72535f0 (unreliable)
    [c0000002f7253710] [c0000000000118f4] .__switch_to+0x158/0x1a0
    [c0000002f72537b0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
    [c0000002f7253970] [c0000000004f8e98] .schedule_timeout+0x38/0xe8
    [c0000002f7253a60] [c0000000004f80cc] .wait_for_common+0x138/0x220
    [c0000002f7253b40] [c0000000000a2784] .flush_cpu_workqueue+0xac/0xcc
    [c0000002f7253c10] [c0000000000a2960] .flush_workqueue+0x58/0xa0
    [c0000002f7253ca0] [d0000000000827fc] .fc_flush_work+0x4c/0x64 [scsi_transport_fc]
    [c0000002f7253d20] [d000000000082db4] .fc_remote_port_add+0x48/0x6c4 [scsi_transport_fc]
    [c0000002f7253dd0] [d0000000001d7d04] .ibmvfc_work+0x820/0xa7c [ibmvfc]
    [c0000002f7253f00] [c0000000000a7470] .kthread+0x78/0xc4
    [c0000002f7253f90] [c000000000029b8c] .kernel_thread+0x4c/0x68
    fc_wq_3       D 0000000000000000 10720  1283      2
    Call Trace:
    [c0000002f559ac30] [c0000002f559ace0] 0xc0000002f559ace0 (unreliable)
    [c0000002f559ae00] [c0000000000118f4] .__switch_to+0x158/0x1a0
    [c0000002f559aea0] [c0000000004f8b40] .schedule+0x8d4/0x9dc
    [c0000002f559b060] [c0000000004f8e98] .schedule_timeout+0x38/0xe8
    [c0000002f559b150] [c0000000004f80cc] .wait_for_common+0x138/0x220
    [c0000002f559b230] [c0000000002721c4] .blk_execute_rq+0xb4/0x100
    [c0000002f559b360] [d00000000036a1f8] .scsi_execute+0x118/0x194 [scsi_mod]
    [c0000002f559b420] [d00000000036a32c] .scsi_execute_req+0xb8/0x124 [scsi_mod]
    [c0000002f559b500] [d0000000000c1330] .sd_sync_cache+0x8c/0x108 [sd_mod]
    [c0000002f559b5e0] [d0000000000c15b4] .sd_shutdown+0x9c/0x158 [sd_mod]
    [c0000002f559b660] [d0000000000c16d0] .sd_remove+0x60/0xb4 [sd_mod]
    [c0000002f559b700] [c000000000392ecc] .__device_release_driver+0xd0/0x118
    [c0000002f559b7a0] [c000000000393080] .device_release_driver+0x30/0x54
    [c0000002f559b830] [c000000000392108] .bus_remove_device+0x128/0x16c
    [c0000002f559b8d0] [c00000000038f94c] .device_del+0x158/0x234
    [c0000002f559b960] [d00000000036f078] .__scsi_remove_device+0x5c/0xd4 [scsi_mod]
    [c0000002f559b9f0] [d00000000036f124] .scsi_remove_device+0x34/0x58 [scsi_mod]
    [c0000002f559ba80] [d00000000036f204] .__scsi_remove_target+0xb4/0x120 [scsi_mod]
    [c0000002f559bb10] [d00000000036f338] .__remove_child+0x2c/0x44 [scsi_mod]
    [c0000002f559bb90] [c00000000038f11c] .device_for_each_child+0x54/0xb4
    [c0000002f559bc50] [d00000000036f2e0] .scsi_remove_target+0x70/0x9c [scsi_mod]
    [c0000002f559bce0] [d000000000083454] .fc_starget_delete+0x24/0x3c [scsi_transport_fc]
    [c0000002f559bd70] [c0000000000a2368] .run_workqueue+0x118/0x208
    [c0000002f559be30] [c0000000000a2580] .worker_thread+0x128/0x154
    [c0000002f559bf00] [c0000000000a7470] .kthread+0x78/0xc4
    [c0000002f559bf90] [c000000000029b8c] .kernel_thread+0x4c/0x68
    Signed-off-by: default avatarBrian King <brking@linux.vnet.ibm.com>
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
    43c8da90
ibmvfc.c 120 KB