ARCNET: fix hard_header_len limit
authorMichael Grzeschik <m.grzeschik@pengutronix.de>
Thu, 17 Sep 2015 13:18:34 +0000 (15:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Sep 2015 05:26:55 +0000 (22:26 -0700)
For arcnet the bare minimum header only contains the 4 bytes to
specify source, dest and offset (1, 1 and 2 bytes respectively).
The corresponding struct is struct arc_hardware.

The struct archdr contains additionally a union of possible soft
headers. When doing $insertusecasehere packets might well
include short (or even no?) soft headers.

For this reason only use arc_hardware instead of archdr to
determine the hard_header_len for an arcnet device.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/arcnet/arcnet.c

index 10f71c732b5995c9121acf41724848f49994b49f..816d0e94961c9fec79ed48eefe7450a806df7f39 100644 (file)
@@ -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;