summaryrefslogtreecommitdiffstats
path: root/drivers/firewire
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2007-08-21 01:05:14 +0200
committerStefan Richter <stefanr@s5r6.in-berlin.de>2007-08-25 18:00:27 +0200
commit8a2d9ed3210464d22fccb9834970629c1c36fa36 (patch)
tree20c8f95275658d53a38b608412bbcdd485400c7a /drivers/firewire
parentieee1394: sbp2: fix sbp2_remove_device for error cases (diff)
downloadlinux-8a2d9ed3210464d22fccb9834970629c1c36fa36.tar.xz
linux-8a2d9ed3210464d22fccb9834970629c1c36fa36.zip
firewire: fix unloading of fw-ohci while devices are attached
Fix panic in run_timer_softirq right after "modprobe -r firewire-ohci" if a FireWire disk was attached and firewire-sbp2 loaded. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire')
-rw-r--r--drivers/firewire/fw-card.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/firewire/fw-card.c b/drivers/firewire/fw-card.c
index 0aeab3218bb6..3e9719948a8e 100644
--- a/drivers/firewire/fw-card.c
+++ b/drivers/firewire/fw-card.c
@@ -510,9 +510,11 @@ fw_core_remove_card(struct fw_card *card)
/* Set up the dummy driver. */
card->driver = &dummy_driver;
- fw_flush_transactions(card);
-
fw_destroy_nodes(card);
+ flush_scheduled_work();
+
+ fw_flush_transactions(card);
+ del_timer_sync(&card->flush_timer);
fw_card_put(card);
}