]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
[SCSI] bfa: vport fixes
authorJing Huang <huangj@brocade.com>
Fri, 9 Jul 2010 03:01:49 +0000 (20:01 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 27 Jul 2010 17:04:28 +0000 (12:04 -0500)
commitc54d557c3f6a7bbf833a8f9cffad88f34513a7c4
tree47e06fc3992844dda1f1a29a38ce41764680141f
parent8a4adf1c906ee07a01cb47297130a71489f2e4f0
[SCSI] bfa: vport fixes

This patch fixes 3 bugs in vport create/delete.
1) Replace scsi_add_host() with scsi_add_host_with_dma()
2) Fix rmmod hang when there are vports configured. This is due to a race
condition between the workqueue destroy in pci remove context and the vport
delete works being handled. The fix is to use a counter to track the
vport delete work, so that workqueue destroy will not be called until all
configured vports are deleted from workqueue.
3) Fix rmmmod crash when there are PBC vport configured. PBC is not allowed
to be deleted dynamically. However, if someone try to delete it, it leaves the
vport is wrong state. The fix is to restore the vport back to original state
when the attempt to delete pbc vport delete is failed.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/bfa/bfad_attr.c
drivers/scsi/bfa/bfad_drv.h
drivers/scsi/bfa/bfad_im.c