1dfddff5fc
NCM buffer sizes are negotiated with the device independently of the network device MTU. The RX buffers are allocated by the usbnet framework based on the rx_urb_size value set by cdc_ncm. A single RX buffer can hold a number of MTU sized packets. The default usbnet change_mtu ndo only modifies rx_urb_size if it is equal to hard_mtu. And the cdc_ncm driver will set rx_urb_size and hard_mtu independently of each other, based on dwNtbInMaxSize and dwNtbOutMaxSize respectively. It was therefore assumed that usbnet_change_mtu() would never touch rx_urb_size. This failed to consider the case where dwNtbInMaxSize and dwNtbOutMaxSize happens to be equal. Fix by implementing an NCM specific change_mtu ndo, modifying the netdev MTU without touching the buffer size settings. Signed-off-by: Bjørn Mork <bjorn@mork.no> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
association.h | ||
atmel_usba_udc.h | ||
audio-v2.h | ||
audio.h | ||
c67x00.h | ||
cdc-wdm.h | ||
cdc.h | ||
cdc_ncm.h | ||
ch9.h | ||
chipidea.h | ||
composite.h | ||
ehci-dbgp.h | ||
ehci_def.h | ||
ehci_pdriver.h | ||
ezusb.h | ||
functionfs.h | ||
g_hid.h | ||
gadget.h | ||
gadget_configfs.h | ||
gpio_vbus.h | ||
hcd.h | ||
input.h | ||
iowarrior.h | ||
irda.h | ||
isp116x.h | ||
isp1301.h | ||
isp1362.h | ||
isp1760.h | ||
m66592.h | ||
msm_hsusb.h | ||
msm_hsusb_hw.h | ||
musb-omap.h | ||
musb-ux500.h | ||
musb.h | ||
net2280.h | ||
of.h | ||
ohci_pdriver.h | ||
otg-fsm.h | ||
otg.h | ||
phy.h | ||
phy_companion.h | ||
quirks.h | ||
r8a66597.h | ||
renesas_usbhs.h | ||
rndis_host.h | ||
samsung_usb_phy.h | ||
serial.h | ||
sl811.h | ||
storage.h | ||
tegra_usb_phy.h | ||
tilegx.h | ||
uas.h | ||
ulpi.h | ||
usb338x.h | ||
usb_phy_generic.h | ||
usbnet.h | ||
wusb-wa.h | ||
wusb.h | ||
xhci_pdriver.h |