mpt2sas: Refcount fw_events and fix unsafe list usage
authorCalvin Owens <calvinowens@fb.com>
Fri, 14 Aug 2015 01:48:10 +0000 (18:48 -0700)
committerJames Bottomley <JBottomley@Odin.com>
Sun, 6 Sep 2015 17:56:17 +0000 (10:56 -0700)
commit008549f6e8a1dc4aeea4a8d64184909786b27713
tree7c455324b35c5944e7cb1523d005ae91607564be
parentd224fe0d609734888af63656ddaf3a8352f0a7b5
mpt2sas: Refcount fw_events and fix unsafe list usage

The fw_event_work struct is concurrently referenced at shutdown, so
add a refcount to protect it, and refactor the code to use it.

Additionally, refactor _scsih_fw_event_cleanup_queue() such that it
no longer iterates over the list without holding the lock, since
_firmware_event_work() concurrently deletes items from the list.

Signed-off-by: Calvin Owens <calvinowens@fb.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Nicholas Bellinger <nab@linux-iscsi.org>
Tested-by: Chaitra Basappa <chaitra.basappa@avagotech.com>
Acked-by: Sreekanth Reddy <sreekanth.reddy@avagotech.com>
Signed-off-by: James Bottomley <JBottomley@Odin.com>
drivers/scsi/mpt2sas/mpt2sas_scsih.c