Skip to content
  • Eddie Wai's avatar
    [SCSI] bnx2fc: Fixed scsi_remove_target soft lockup when rmmod bnx2x · 06c4f20d
    Eddie Wai authored
    
    
    The problem has been identified to be a change in the scsi_remove_device
    path where a call to the pm_runtime_set_memalloc_noio was added when
    del_gendisk is called in this path.  Note that the new pm routine
    attempts to cycle through all parent devices from the FC target device
    to set the memalloc_noio flag.  Because of this new change, a dependency
    was created between the FC target device and the parent netdev device
    in the destroy path.
    
    In order to synchronized the destroy paths, bnx2fc has been modified
    to flush all destroy workqueues in the NETDEV_UNREGISTER return path.
    
    [    4.123584] BUG: soft lockup - CPU#8 stuck for 22s! [kworker/8:3:8082]
    [    4.123713] Call Trace:
    [    4.123719]  [<ffffffff815dfbe0>] klist_next+0x20/0xf0
    [    4.123725]  [<ffffffff813e9220>] ? pm_save_wakeup_count+0x70/0x70
    [    4.123731]  [<ffffffff813d9e4e>] device_for_each_child+0x4e/0x70
    [    4.123735]  [<ffffffff813e9554>] pm_runtime_set_memalloc_noio+0x94/0xf0
    [    4.123740]  [<ffffffff812d4d74>] del_gendisk+0x264/0x2a0
    [    4.123747]  [<ffffffffa00c6dc9>] sd_remove+0x69/0xb0 [sd_mod]
    [    4.123751]  [<ffffffff813de24f>] __device_release_driver+0x7f/0xf0
    [    4.123754]  [<ffffffff813de2e3>] device_release_driver+0x23/0x30
    [    4.123757]  [<ffffffff813ddab4>] bus_remove_device+0xf4/0x170
    [    4.123760]  [<ffffffff813da475>] device_del+0x135/0x1d0
    [    4.123765]  [<ffffffff81411b75>] __scsi_remove_device+0xc5/0xd0
    [    4.123768]  [<ffffffff81411ba6>] scsi_remove_device+0x26/0x40
    [    4.123770]  [<ffffffff81411d40>] scsi_remove_target+0x160/0x210
    [    4.123775]  [<ffffffffa0420e4c>] fc_rport_final_delete+0xac/0x1f0 [scsi_transport_fc]
    [    4.123780]  [<ffffffff810774ab>] process_one_work+0x17b/0x460
    [    4.123783]  [<ffffffff8107825b>] worker_thread+0x11b/0x400
    [    4.123786]  [<ffffffff81078140>] ? rescuer_thread+0x3e0/0x3e0
    [    4.123791]  [<ffffffff8107e9c0>] kthread+0xc0/0xd0
    [    4.123794]  [<ffffffff8107e900>] ? kthread_create_on_node+0x110/0x110
    [    4.123798]  [<ffffffff8160ceec>] ret_from_fork+0x7c/0xb0
    [    4.123801]  [<ffffffff8107e900>] ? kthread_create_on_node+0x110/0x110
    
    Signed-off-by: default avatarEddie Wai <eddie.wai@broadcom.com>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    06c4f20d