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>
This commit is contained in:
@@ -539,7 +539,7 @@ fw_core_remove_card(struct fw_card *card)
|
|||||||
wait_for_completion(&card->done);
|
wait_for_completion(&card->done);
|
||||||
|
|
||||||
cancel_delayed_work_sync(&card->work);
|
cancel_delayed_work_sync(&card->work);
|
||||||
fw_flush_transactions(card);
|
WARN_ON(!list_empty(&card->transaction_list));
|
||||||
del_timer_sync(&card->flush_timer);
|
del_timer_sync(&card->flush_timer);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(fw_core_remove_card);
|
EXPORT_SYMBOL(fw_core_remove_card);
|
||||||
|
Reference in New Issue
Block a user