2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2025-01-18 10:34:24 +08:00
linux-next/drivers/firewire
Clemens Ladisch 0c0efbacab firewire: ohci: fix too-early completion of IR multichannel buffers
handle_ir_buffer_fill() assumed that a completed descriptor would be
indicated by a non-zero transfer_status (as in most other descriptors).
However, this field is written by the controller as soon as (the end of)
the first packet has been written into the buffer.  As a consequence, if
we happen to run into such a descriptor when the interrupt handler is
executed after such a packet has completed, the descriptor would be
taken out of the list of active descriptors as soon as the buffer had
been partially filled, so the event for the buffer being completely
filled would never be sent.

To fix this, handle descriptors only when they have been completely
filled, i.e., when res_count == 0.  (This also matches the condition
that is reported by the controller with an interrupt.)

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Cc: 2.6.36+ <stable@vger.kernel.org>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
2012-03-17 11:07:26 +01:00
..
core-card.c firewire: core: prefix log messages with card name 2012-02-22 22:36:00 +01:00
core-cdev.c firewire: core: prefix log messages with card name 2012-02-22 22:36:00 +01:00
core-device.c firewire: core: prefix log messages with card name 2012-02-22 22:36:00 +01:00
core-iso.c firewire: optimize iso queueing by setting wake only after the last packet 2011-05-10 22:53:45 +02:00
core-topology.c firewire: tone down some diagnostic log messages 2012-03-10 17:41:19 +01:00
core-transaction.c firewire: core: convert AR-req handler lock from _irqsave to _bh 2012-02-22 22:36:01 +01:00
core.h firewire: core: prefix log messages with card name 2012-02-22 22:36:00 +01:00
init_ohci1394_dma.c ieee1394: move init_ohci1394_dma to drivers/firewire/ 2010-10-11 14:48:03 +02:00
Kconfig firewire: ohci: move runtime debug facility out of #ifdef 2012-03-10 17:41:19 +01:00
Makefile ieee1394: move init_ohci1394_dma to drivers/firewire/ 2010-10-11 14:48:03 +02:00
net.c firewire: net: use dev_printk API 2012-02-22 22:36:00 +01:00
nosy-user.h firewire: nosy: endianess fixes and annotations 2010-07-27 11:04:11 +02:00
nosy.c firewire: nosy: Use the macro DMA_BIT_MASK(). 2012-02-22 22:36:01 +01:00
nosy.h firewire: nosy: misc cleanups 2010-07-27 11:04:10 +02:00
ohci.c firewire: ohci: fix too-early completion of IR multichannel buffers 2012-03-17 11:07:26 +01:00
ohci.h firewire: ohci: fix TI TSB82AA2 regression since 2.6.35 2010-10-17 14:09:12 +02:00
sbp2.c firewire: sbp2: replace a GFP_ATOMIC allocation 2012-03-10 17:41:19 +01:00