linux/drivers/net/usb
Fredrik Nyberg 9b6c20f788 net: usb: ax88179_178a: fix rx frame length for non-last packets
Commit 4ce62d5b2f ("net: usb: ax88179_178a: stop lying about
skb->truesize") replaced skb_clone() with a copy into a new skb for
every packet of a bulk-in transfer except the last one. The copy skips
the 2-byte IP alignment pseudo header but still copies pkt_len bytes,
and pkt_len includes that header. Each of these frames is therefore
delivered with two extra trailing bytes: the 0xeeee pseudo header of
the next slot when the frame ends on an 8-byte boundary, or slot
padding otherwise. The last packet is still trimmed to pkt_len - 2.

IPv4 and IPv6 trim the extra bytes, so most traffic is unaffected.
Anything that relies on the frame length is not. MACsec takes the ICV
from the last 16 bytes and drops every such frame as InPktsNotValid. In
our setup that was 0.2-1.2% of received MACsec frames, depending on how
many frames shared a transfer, including service discovery multicast.

Allocate and copy pkt_len - 2 bytes, like the last-packet path.

Fixes: 4ce62d5b2f ("net: usb: ax88179_178a: stop lying about skb->truesize")
Cc: stable@vger.kernel.org
Signed-off-by: Fredrik Nyberg <fredrik.nyberg@volvocars.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20261002-ax88179-rx-len-v1-1-f01a2a295079@volvocars.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-10-07 16:43:50 -07:00
..
aqc111.c net: usb: aqc111: Do not perform PM inside suspend callback 2026-03-17 13:36:12 +01:00
aqc111.h
asix_common.c
asix_devices.c net: usb: asix: ax88772: re-add usbnet_link_change() in phylink callbacks 2026-05-04 19:04:15 -07:00
asix.h
ax88172a.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ax88179_178a.c net: usb: ax88179_178a: fix rx frame length for non-last packets 2026-10-07 16:43:50 -07:00
catc.c net: usb: catc: bound the RX packet length in catc_rx_done() 2026-09-19 15:41:59 -07:00
cdc_eem.c
cdc_ether.c net: usb: cdc_ether: add quirk for AMI BMC stale link events 2026-08-05 18:08:50 -07:00
cdc_mbim.c net: usb: cdc_mbim: add MeiG Smart SRM821 to ZLP whitelist 2026-09-24 09:27:47 -07:00
cdc_ncm.c net: usb: cdc_ncm: add Apple MacBook Pro USB product ID 0x1902 2026-08-20 14:47:29 -07:00
cdc_subset.c
cdc-phonet.c net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete() 2026-04-14 12:05:01 +02:00
ch9200.c
cx82310_eth.c net: usb: cx82310_eth: drop URB after 0xffff reboot sentinel to prevent partial_data heap overflow 2026-09-04 16:05:48 -07:00
dm9601.c
gl620a.c usbnet: gl620a: fix out-of-bounds read in genelink_rx_fixup() 2026-06-29 18:54:46 -07:00
hso.c net: hso: fix TIOCMIWAIT race 2026-09-10 11:09:50 +02:00
huawei_cdc_ncm.c
int51x1.c
ipheth.c net: usb: ipheth: fix carrier_work UAF on disconnect 2026-08-06 08:21:57 -07:00
kalmia.c net: usb: kalmia: bound RX frame length in kalmia_rx_fixup() 2026-06-24 19:00:07 -07:00
kaweth.c net: usb: kaweth: validate USB endpoints 2026-02-25 18:58:05 -08:00
Kconfig
lan78xx.c net: usb: lan78xx: Fix URB reference leak in lan78xx_submit_deferred_urbs() 2026-09-22 15:54:42 +02:00
lan78xx.h net: usb: lan78xx: fix silent drop of packets with checksum errors 2026-03-09 19:48:33 -07:00
lg-vl600.c net: usb: lg-vl600: fix Ethernet header on fragmented RX packets 2026-08-13 18:55:35 -07:00
Makefile
mcs7830.c
net1080.c net: usb: net1080: validate packet_len before pad-byte access in rx_fixup 2026-07-03 08:23:23 +02:00
pegasus.c net: usb: pegasus: don't rely on id table pointer arithmetic 2026-07-10 15:16:07 +02:00
pegasus.h net: usb: pegasus: don't rely on id table pointer arithmetic 2026-07-10 15:16:07 +02:00
plusb.c
qmi_wwan.c net: usb: qmi_wwan: add Rolling Wireless RN947R 2026-09-30 18:05:08 -07:00
r8152.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2026-06-11 14:33:35 -07:00
r8153_ecm.c
rndis_host.c rndis_host: add overflow check in rndis_rx_fixup() 2026-07-21 09:18:49 -07:00
rtl8150.c net: usb: rtl8150: handle link status read failures 2026-07-02 10:57:48 +02:00
sierra_net.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsc75xx.c Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
smsc75xx.h
smsc95xx.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
smsc95xx.h
sr9700.c net: usb: sr9700: include receive overhead in the length check 2026-09-21 17:22:54 -07:00
sr9700.h
sr9800.c
sr9800.h
usbnet.c usbnet: cap max_mtu for drivers without bind callback 2026-08-04 18:17:20 -07:00
zaurus.c