]> git.baikalelectronics.ru Git - kernel.git/commit
firewire: prevent dropping of completed iso packet header data
authorClemens Ladisch <clemens@ladisch.de>
Sun, 18 Mar 2012 18:05:29 +0000 (19:05 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sun, 18 Mar 2012 21:15:39 +0000 (22:15 +0100)
commit5ff55fe9e98d9b0287d6c83c55b2f040691b6768
tree44281ec110668e9f7a583303b28ba2ca47012a20
parent919b9913d5776b483c56c9a383019b787a76cd75
firewire: prevent dropping of completed iso packet header data

The buffer for the header data of completed iso packets has a fixed
size, so it is possible to configure a stream with a big interval
between interrupt packets or with big headers so that this buffer would
overflow.  Previously, ohci.c would drop any data that would not fit,
but this could make unsuspecting applications believe that fewer than
the actual number of packets have completed.

Instead of dropping data, add calls to flush_iso_completion() so that
there are as many events as needed to report all of the data.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/core-cdev.c
drivers/firewire/ohci.c
include/linux/firewire-cdev.h