From 3f121f2459fdaf2e12f925e208c56b58fd849ffb Mon Sep 17 00:00:00 2001 From: Stephan Gatzka Date: Wed, 28 Nov 2012 20:04:32 +0100 Subject: [PATCH] --- yaml --- r: 343007 b: refs/heads/master c: 9d2373420900a39f5212a3b289331aa3535b1000 h: refs/heads/master i: 343005: 1b18d8c1565c619316098fa305dad77cd613a33d 343003: 7b2c60f505a2013f07f66751c340655b11028bf1 342999: 3b1c91d1b52205f7639826e330dfdf1e59c75641 342991: 738897131881bc82f0e55b24dbff0e9a67c860ab 342975: 2e16b64eb46647b99eb25992c40140c4b407e3b8 v: v3 --- [refs] | 2 +- trunk/drivers/firewire/net.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 080caf85989c..9b520978bb6d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b0ea5f19d3d848008d87e455c8d9b6d9cae7101a +refs/heads/master: 9d2373420900a39f5212a3b289331aa3535b1000 diff --git a/trunk/drivers/firewire/net.c b/trunk/drivers/firewire/net.c index 08c674957af8..638e1f71284a 100644 --- a/trunk/drivers/firewire/net.c +++ b/trunk/drivers/firewire/net.c @@ -861,8 +861,8 @@ static void fwnet_receive_broadcast(struct fw_iso_context *context, if (specifier_id == IANA_SPECIFIER_ID && ver == RFC2734_SW_VERSION) { buf_ptr += 2; length -= IEEE1394_GASP_HDR_SIZE; - fwnet_incoming_packet(dev, buf_ptr, length, - source_node_id, -1, true); + fwnet_incoming_packet(dev, buf_ptr, length, source_node_id, + context->card->generation, true); } packet.payload_length = dev->rcv_buffer_size; @@ -958,7 +958,12 @@ static void fwnet_transmit_packet_done(struct fwnet_packet_task *ptask) break; } - skb_pull(skb, ptask->max_payload); + if (ptask->dest_node == IEEE1394_ALL_NODES) { + skb_pull(skb, + ptask->max_payload + IEEE1394_GASP_HDR_SIZE); + } else { + skb_pull(skb, ptask->max_payload); + } if (ptask->outstanding_pkts > 1) { fwnet_make_sf_hdr(&ptask->hdr, RFC2374_HDR_INTFRAG, dg_size, fg_off, datagram_label); @@ -1062,7 +1067,7 @@ static int fwnet_send_packet(struct fwnet_packet_task *ptask) smp_rmb(); node_id = dev->card->node_id; - p = skb_push(ptask->skb, 8); + p = skb_push(ptask->skb, IEEE1394_GASP_HDR_SIZE); put_unaligned_be32(node_id << 16 | IANA_SPECIFIER_ID >> 8, p); put_unaligned_be32((IANA_SPECIFIER_ID & 0xff) << 24 | RFC2734_SW_VERSION, &p[4]);