diff options
author | Daniel Borkmann <daniel@iogearbox.net> | 2015-11-11 23:25:44 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-11-15 18:00:35 -0500 |
commit | 5cfb4c8d05b4409c4044cb9c05b19705c1d9818b (patch) | |
tree | db5aba8f1e47af35a7557bff779b80a1a0daadbc /.gitignore | |
parent | c72219b75fde768efccf7666342282fab7f9e4e7 (diff) | |
download | op-kernel-dev-5cfb4c8d05b4409c4044cb9c05b19705c1d9818b.zip op-kernel-dev-5cfb4c8d05b4409c4044cb9c05b19705c1d9818b.tar.gz |
packet: fix tpacket_snd max frame len
Since it's introduction in commit 69e3c75f4d54 ("net: TX_RING and
packet mmap"), TX_RING could be used from SOCK_DGRAM and SOCK_RAW
side. When used with SOCK_DGRAM only, the size_max > dev->mtu +
reserve check should have reserve as 0, but currently, this is
unconditionally set (in it's original form as dev->hard_header_len).
I think this is not correct since tpacket_fill_skb() would then
take dev->mtu and dev->hard_header_len into account for SOCK_DGRAM,
the extra VLAN_HLEN could be possible in both cases. Presumably, the
reserve code was copied from packet_snd(), but later on missed the
check. Make it similar as we have it in packet_snd().
Fixes: 69e3c75f4d54 ("net: TX_RING and packet mmap")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '.gitignore')
0 files changed, 0 insertions, 0 deletions