firewire: sbp2: protect a reference counter properly
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Mon, 3 Mar 2014 22:22:35 +0000 (23:22 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Wed, 10 Dec 2014 19:53:20 +0000 (20:53 +0100)
commit0765cbd3be699b4a72db67069247d514f06a1e4f
treedd57c6f137bdfdb39d35d1b89241aa227726a213
parent0238507b951857360461b0635111e7376ffd44d1
firewire: sbp2: protect a reference counter properly

The assertion in the comment in sbp2_allow_block() is no longer true.
Or maybe it never was true.  At least now, the sole caller of
sbp2_allow_block(), sbp2_login, can run concurrently to one of
sbp2_unblock()'s callers, sbp2_remove.

sbp2_login is performed by sbp2_logical_unit.work.
sbp2_remove is performed by fw_device.work.
sbp2_remove cancels sbp2_logical_unit.work, but only after it called
sbp2_unblock.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/sbp2.c