summaryrefslogtreecommitdiff
path: root/scripts/Kbuild.include
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2010-10-25 09:42:20 (GMT)
committerStefan Richter <stefanr@s5r6.in-berlin.de>2010-10-30 21:37:19 (GMT)
commita1f805e5e73a8fe166b71c6592d3837df0cd5e2e (patch)
treef8bc4a2d8d0bcaf4a1b7d4c547d7a2525459f852 /scripts/Kbuild.include
parent85f7ffd5d2b320f73912b15fe8cef34bae297daf (diff)
downloadlinux-fsl-qoriq-a1f805e5e73a8fe166b71c6592d3837df0cd5e2e.tar.xz
firewire: ohci: fix race in AR split packet handling
When handling an AR buffer that has been completely filled, we assumed that its descriptor will not be read by the controller and can be overwritten. However, when the last received packet happens to end at the end of the buffer, the controller might not yet have moved on to the next buffer and might read the branch address later. If we overwrite and free the page before that, the DMA context will either go dead because of an invalid Z value, or go off into some random memory. To fix this, ensure that the descriptor does not get overwritten by using only the actual buffer instead of the entire page for reassembling the split packet. Furthermore, to avoid freeing the page too early, move on to the next buffer only when some data in it guarantees that the controller has moved on. This should eliminate the remaining firewire-net problems. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: 2.6.22-2.6.36 <stable@kernel.org> Tested-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'scripts/Kbuild.include')
0 files changed, 0 insertions, 0 deletions