diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-20 10:48:01 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-03-20 10:48:01 -0700 |
commit | 45ddfbf9594a344dfecbb320d74636023d813539 (patch) | |
tree | 283811a1823faa3ec703c0275ab3e53db3db3d94 /drivers | |
parent | d67e91117d104d98635e1b1623aafb26604cecbb (diff) | |
parent | 10a4c735515a5afc317abe4d697a4c95f6d9d764 (diff) | |
download | lwn-45ddfbf9594a344dfecbb320d74636023d813539.tar.gz lwn-45ddfbf9594a344dfecbb320d74636023d813539.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6:
firewire: fix panic in handle_at_packet
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/firewire/fw-transaction.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c index 99529e59a0b1..e6f1bda38940 100644 --- a/drivers/firewire/fw-transaction.c +++ b/drivers/firewire/fw-transaction.c @@ -736,6 +736,12 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p) break; } + /* + * The response handler may be executed while the request handler + * is still pending. Cancel the request handler. + */ + card->driver->cancel_packet(card, &t->packet); + t->callback(card, rcode, data, data_length, t->callback_data); } EXPORT_SYMBOL(fw_core_handle_response); |