firewire: net: max MTU off by one
authorStefan Richter <stefanr@s5r6.in-berlin.de>
Wed, 2 Nov 2016 20:09:44 +0000 (21:09 +0100)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Sat, 13 Jan 2018 15:37:24 +0000 (16:37 +0100)
The latest max_mtu patch missed that datagram_size is actually one less
than the datagram's Total Length.

Fixes: 357f4aae859b ("firewire: net: really fix maximum possible MTU")
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
drivers/firewire/net.c

index 242359c2d1f1839999fdfa68aff7c1ee708fc291..60e75e6d9104c3db01c8ca36b25b70f02bb70c83 100644 (file)
@@ -1480,9 +1480,14 @@ static int fwnet_probe(struct fw_unit *unit,
                goto out;
        dev->local_fifo = dev->handler.offset;
 
+       /*
+        * default MTU: RFC 2734 cl. 4, RFC 3146 cl. 4
+        * maximum MTU: RFC 2734 cl. 4.2, fragment encapsulation header's
+        *              maximum possible datagram_size + 1 = 0xfff + 1
+        */
        net->mtu = 1500U;
        net->min_mtu = ETH_MIN_MTU;
-       net->max_mtu = 0xfff;
+       net->max_mtu = 4096U;
 
        /* Set our hardware address while we're at it */
        ha = (union fwnet_hwaddr *)net->dev_addr;