summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Richter <stefanr@s5r6.in-berlin.de>2016-10-29 22:16:58 +0200
committerDavid S. Miller <davem@davemloft.net>2016-10-29 23:00:45 -0400
commit357f4aae859b5d74554b0ccbb18556f1df4166c3 (patch)
tree895f146bbc449ebe9de704554565b4875fc1f107
parent0e82c7635997a11dbcfa98835c179084447ae2b0 (diff)
downloadlinux-357f4aae859b5d74554b0ccbb18556f1df4166c3.tar.gz
linux-357f4aae859b5d74554b0ccbb18556f1df4166c3.tar.bz2
linux-357f4aae859b5d74554b0ccbb18556f1df4166c3.zip
firewire: net: really fix maximum possible MTU
The maximum unicast datagram size /without/ link fragmentation is 4096 - 4 = 4092 (max IEEE 1394 async payload size at >= S800 bus speed, minus unfragmented encapssulation header). Max broadcast datagram size without fragmentation is 8 bytes less than that (due to GASP header). The maximum datagram size /with/ link fragmentation is 0xfff = 4095 for unicast and broadcast. This is because the RFC 2734 fragment encapsulation header field for datagram size is only 12 bits wide. Fixes: 5d48f00d836a('firewire: net: fix maximum possible MTU') Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/firewire/net.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c
index 03715e7d9d92..363fc5ec1a4e 100644
--- a/drivers/firewire/net.c
+++ b/drivers/firewire/net.c
@@ -1465,7 +1465,7 @@ static int fwnet_probe(struct fw_unit *unit,
net->mtu = 1500U;
net->min_mtu = ETH_MIN_MTU;
- net->max_mtu = ETH_MAX_MTU;
+ net->max_mtu = 0xfff;
/* Set our hardware address while we're at it */
ha = (union fwnet_hwaddr *)net->dev_addr;