android_kernel_google_msm/drivers/firewire
Stephan Gatzka 2d2b65eeb5 firewire: net: Fix handling of fragmented multicast/broadcast packets.
commit 9d23734209 upstream.

This patch fixes both the transmit and receive portion of sending
fragmented mutlicast and broadcast packets.

The transmit section was broken because the offset for INTFRAG and
LASTFRAG packets were just miscalculated by IEEE1394_GASP_HDR_SIZE (which
was reserved with skb_push() in fwnet_send_packet).

The receive section was broken because in fwnet_incoming_packet is a call
to fwnet_peer_find_by_node_id(). Called with generation == -1 it will
not find a peer and the partial datagrams are associated to a peer.

[Stefan R:  The fix to use context->card->generation is not perfect.
It relies on the IR tasklet which processes packets from the prior bus
generation to run before the self-ID-complete worklet which sets the
current card generation.  Alas, there is no simple way of a race-free
implementation.  Let's do it this way for now.]

Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-01-17 08:50:43 -08:00
..
core-card.c firewire: allow explicit flushing of iso packet completions 2012-03-18 22:15:39 +01:00
core-cdev.c firewire: cdev: fix user memory corruption (i386 userland on amd64 kernel) 2012-10-21 09:27:58 -07:00
core-device.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
core-iso.c IEEE 1394 (FireWire) subsystem updates post v3.3: 2012-03-22 20:31:15 -07:00
core-topology.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +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: allow explicit flushing of iso packet completions 2012-03-18 22:15:39 +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: Fix handling of fragmented multicast/broadcast packets. 2013-01-17 08:50:43 -08: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
ohci.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ohci.h firewire: ohci: fix TI TSB82AA2 regression since 2.6.35 2010-10-17 14:09:12 +02:00
sbp2.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00