Messages in this thread | | | Date | Sun, 24 Feb 2008 18:56:10 +0100 (CET) | From | Stefan Richter <> | Subject | [PATCH 0/5] firewire: fix crashes in workqueue jobs |
| |
Here come 3 fixes + 2 cleanups.
1/5 firewire: invalid pointers used in fw_card_bm_work 2/5 firewire: fix crash in automatic module unloading 3/5 firewire: remove superfluous reference counting 4/5 firewire: fw-sbp2: fix reference counting 5/5 firewire: refactor fw_unit reference counting
The main theme is that the firewire-core module has to stay loaded until after all workqueue jobs of the core and of protocol drivers have been finished. This is accomplished by tracking the sum of references to instances of fw_device for each card. (As a side effect, we don't need to count references to instances of fw_card anymore.)
drivers/firewire/fw-card.c | 99 ++++++++++++++++---------------------- drivers/firewire/fw-device.c | 21 ++------ drivers/firewire/fw-device.h | 35 ++++++++++--- drivers/firewire/fw-ohci.c | 8 +-- drivers/firewire/fw-sbp2.c | 9 ++- drivers/firewire/fw-topology.c | 1 drivers/firewire/fw-transaction.h | 6 -- 7 files changed, 89 insertions(+), 90 deletions(-) -- Stefan Richter -=====-==--- --=- ==--- http://arcgraph.de/sr/
| |