diff options
author | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-07-12 08:51:18 -0400 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2008-07-14 07:06:04 -0400 |
commit | 1e8afea124added6409d5209f90d9949f5a13b32 (patch) | |
tree | 21acef703f0816768f15b9d31c122feb1561f3a0 /drivers/firewire | |
parent | b9549bc6803d6a16fe6a85b316b742ef82bd3931 (diff) |
firewire: warn on unfinished transactions during card removal
After card->done and card->work are completed, any remaining pending
request would be a bug. We cannot safely complete a transaction at
that point anymore.
IOW card users must not drop their last fw_card reference (usually
indirect references through fw_device references) before their last
outbound transaction through that card was finished.
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire')
-rw-r--r-- | drivers/firewire/fw-card.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/fw-card.c b/drivers/firewire/fw-card.c index da873d795aad..bbd73a406e53 100644 --- a/drivers/firewire/fw-card.c +++ b/drivers/firewire/fw-card.c | |||
@@ -539,7 +539,7 @@ fw_core_remove_card(struct fw_card *card) | |||
539 | wait_for_completion(&card->done); | 539 | wait_for_completion(&card->done); |
540 | 540 | ||
541 | cancel_delayed_work_sync(&card->work); | 541 | cancel_delayed_work_sync(&card->work); |
542 | fw_flush_transactions(card); | 542 | WARN_ON(!list_empty(&card->transaction_list)); |
543 | del_timer_sync(&card->flush_timer); | 543 | del_timer_sync(&card->flush_timer); |
544 | } | 544 | } |
545 | EXPORT_SYMBOL(fw_core_remove_card); | 545 | EXPORT_SYMBOL(fw_core_remove_card); |