lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 6 Feb 2014 13:37:12 +0000 From: David Laight <David.Laight@...LAB.COM> To: 'Emil Goode' <emilgoode@...il.com>, "David S. Miller" <davem@...emloft.net>, Ming Lei <ming.lei@...onical.com>, Mark Brown <broonie@...aro.org>, Jeff Kirsher <jeffrey.t.kirsher@...el.com>, Glen Turner <gdt@....id.au> CC: "linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org> Subject: RE: [PATCH] net: asix: fix bad header length bug From: Emil Goode > The AX88772B occasionally send rx packets that cross urb boundaries > and the remaining partial packet is sent with no header. > When the buffer with a partial packet is of less number of octets > than the value of hard_header_len the buffer is discarded by the > usbnet module. This is causing dropped packages and error messages > in dmesg. > > This can be reproduced by using ping with a packet size > between 1965-1976. I think this can affect other USB ethernet drivers. Probably most of the ones that explicitly set rx_urb_len. The ax88179_178a driver sets massive 20k receive urb. I've seen over 10k of data in a single urb, dunno if it can actually generate more than 20k - possibly if the usb3 link is loaded with other traffic. It would be much more efficient for it to use an aligned 4k urb and then merge the fragment into skbs. Once you've set: + dev->net->hard_header_len = 0; /* Partial packets have no header */ try setting the mtu to a multiple of 1k. There is a very odd check in usbnet_change_mtu() that tries to stop the receive urb_length being a multiple of the usb packet size. This code looks as though it is hoping that the usb controller will discard any full length bulk messages after finding a short buffer. I suspect that might be just wishful thinking! David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists