USBNET: centralize computing of max rx/tx qlen
authorMing Lei <ming.lei@canonical.com>
Thu, 25 Jul 2013 05:47:53 +0000 (13:47 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 28 Jul 2013 03:10:57 +0000 (20:10 -0700)
commita88c32ae15f25fcf0a3c9fadd92f840a1abf0e43
treeaf3102f094d7e5d842bf204f49bd0f8f99a54616
parent6680ec68eff47d36f67b4351bc9836fd6cba9532
USBNET: centralize computing of max rx/tx qlen

This patch centralizes computing of max rx/tx qlen, because:

- RX_QLEN()/TX_QLEN() is called in hot path
- computing depends on device's usb speed, now we have ls/fs, hs, ss,
so more checks need to be involved
- in fact, max rx/tx qlen should not only depend on device USB
speed, but also depend on ethernet link speed, so we need to
consider that in future.
- if SG support is done, max tx qlen may need change too

Generally, hard_mtu and rx_urb_size are changed in bind(), reset()
and link_reset() callback, and change mtu network operation, this
patches introduces the API of usbnet_update_max_qlen(), and calls
it in above path.

Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/asix_devices.c
drivers/net/usb/ax88179_178a.c
drivers/net/usb/usbnet.c
include/linux/usb/usbnet.h