[PATCH] ARCNET: fix hard_header_len limit

Subsystems: arcnet network layer, networking drivers, the rest

STALE4102d

2 messages, 2 authors, 2015-07-30 · open the first message on its own page

[PATCH] ARCNET: fix hard_header_len limit

From: Michael Grzeschik <hidden>
Date: 2015-07-30 13:35:07

The commit <9c7077622dd9> ("packet: make packet_snd fail on len smaller
than l2 header") adds the check for minimum packet length of the used l2.
For arcnet the hardware header length is not the complete archdr which
includes hard + soft header. This patch changes the length to
sizeof(arc_hardware).

Signed-off-by: Michael Grzeschik <redacted>
---
 drivers/net/arcnet/arcnet.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/arcnet/arcnet.c b/drivers/net/arcnet/arcnet.c
index 10f71c73..816d0e9 100644
--- a/drivers/net/arcnet/arcnet.c
+++ b/drivers/net/arcnet/arcnet.c
@@ -326,7 +326,7 @@ static void arcdev_setup(struct net_device *dev)
 	dev->type = ARPHRD_ARCNET;
 	dev->netdev_ops = &arcnet_netdev_ops;
 	dev->header_ops = &arcnet_header_ops;
-	dev->hard_header_len = sizeof(struct archdr);
+	dev->hard_header_len = sizeof(struct arc_hardware);
 	dev->mtu = choose_mtu();
 
 	dev->addr_len = ARCNET_ALEN;
-- 
2.1.4

Re: [PATCH] ARCNET: fix hard_header_len limit

From: David Miller <davem@davemloft.net>
Date: 2015-07-30 18:16:39

From: Michael Grzeschik <redacted>
Date: Thu, 30 Jul 2015 15:34:36 +0200
The commit <9c7077622dd9> ("packet: make packet_snd fail on len smaller
than l2 header") adds the check for minimum packet length of the used l2.
For arcnet the hardware header length is not the complete archdr which
includes hard + soft header. This patch changes the length to
sizeof(arc_hardware).

Signed-off-by: Michael Grzeschik <redacted>
The hard header len is used for other purposes as well, are you sure
those don't get broken by this change?

Code assumes that if the data at the SKB mac pointer is taken, for
dev->hard_header_len bytes, that is exactly the link layer header.
And that this can be used to compare two MAC headers, copy the
MAC header from one packet to another, etc.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help