OSDN Git Service

scsi_debug: deadlock between completions and surprise module removal
authorDouglas Gilbert <dgilbert@interlog.com>
Sun, 31 Aug 2014 23:09:59 +0000 (19:09 -0400)
committerChristoph Hellwig <hch@lst.de>
Tue, 30 Sep 2014 07:34:37 +0000 (09:34 +0200)
commitdb525fce95f0ee39102f06f8599ced3f3f3af128
tree104a30ca4d06b3d62234a06007e192ff4ecc3fdb
parenta41a9ad3bbf61fae0b6bfb232153da60d14fdbd9
scsi_debug: deadlock between completions and surprise module removal

A deadlock has been reported when the completion
of SCSI commands (simulated by a timer) was surprised
by a module removal. This patch removes one half of
the offending locks around timer deletions. This fix
is applied both to stop_all_queued() which is were
the deadlock was discovered and stop_queued_cmnd()
which has very similar logic.

This patch should be applied both to the lk 3.17 tree
and Christoph's drivers-for-3.18 tree.

Tested-and-reported-by: Milan Broz <gmazyland@gmail.com>
Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/scsi/scsi_debug.c