linux-stable/drivers/firewire
Stefan Richter e9aeb46c93 firewire: fully initialize fw_transaction before marking it pending
In theory, card->flush_timer could already access a transaction between
fw_send_request()'s spin_unlock_irqrestore and the rest of what happens
in fw_send_request().  This would happen if the process which sends the
request is preempted and put to sleep right after spin_unlock_irqrestore
for longer than 100ms.

Therefore we fill in everything in struct fw_transaction at which the
flush_timer might look at before we lift the lock.

To do:  Ensure that the timer does not pick up the transaction before
the time of the AT request event plus split transaction timeout.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2008-07-14 13:06:04 +02:00
..
fw-card.c firewire: clean up fw_card reference counting 2008-07-14 13:06:03 +02:00
fw-cdev.c firewire: fill_bus_reset_event needs lock protection 2008-06-19 00:12:35 +02:00
fw-device.c firewire: clean up fw_card reference counting 2008-07-14 13:06:03 +02:00
fw-device.h firewire: remove unused struct members 2008-07-14 13:06:03 +02:00
fw-iso.c firewire: cleanups 2008-04-18 17:55:37 +02:00
fw-ohci.c firewire: remove unused struct members 2008-07-14 13:06:03 +02:00
fw-ohci.h firewire: fw-ohci: log regAccessFail events 2008-04-18 17:55:34 +02:00
fw-sbp2.c firewire: fw-sbp2: fix parsing of logical unit directories 2008-06-27 20:55:00 +02:00
fw-topology.c firewire: fix race of bus reset with request transmission 2008-07-14 13:06:04 +02:00
fw-topology.h firewire: reread config ROM when device reset the bus 2008-04-18 17:55:36 +02:00
fw-transaction.c firewire: fully initialize fw_transaction before marking it pending 2008-07-14 13:06:04 +02:00
fw-transaction.h firewire: clean up fw_card reference counting 2008-07-14 13:06:03 +02:00
Kconfig firewire: Kconfig menu touch-up 2008-06-19 00:12:35 +02:00
Makefile