01 Oct, 2013
2 commits
-
Pass-all-multicast is controlled by bit 3 in RX control, not bit 2
(pass undersized frames).Reported-by: Joseph Chang
Signed-off-by: Peter Korsgaard
Signed-off-by: David S. Miller -
Cinterion PLXX LTE devices have a 0x0060 product ID, not 0x12d1.
The blacklisting in the serial/option driver does actually use the correct PID,
as per commit 8ff10bdb14a52e3f25d4ce09e0582a8684c1a6db ('USB: Blacklisted
Cinterion's PLxx WWAN Interface').CC: Hans-Christoph Schemmel
CC: Christian Schmiedl
CC: Nicolaus Colberg
Signed-off-by: Aleksander Morgado
Acked-by: Bjørn Mork
Acked-by: Christian Schmiedl
Signed-off-by: David S. Miller
29 Sep, 2013
1 commit
-
Commit 638c5115a7949(USBNET: support DMA SG) introduces DMA SG
if the usb host controller is capable of building packet from
discontinuous buffers, but missed handling padding packet when
building DMA SG.This patch attachs the pre-allocated padding packet at the
end of the sg list, so padding packet can be sent to device
if drivers require that.Reported-by: David Laight
Acked-by: Oliver Neukum
Signed-off-by: Ming Lei
Signed-off-by: David S. Miller
17 Sep, 2013
3 commits
-
Use USB_DEVICE_AND_INTERFACE_INFO and USB_VENDOR_AND_INTERFACE_INFO
macros to reduce boilerplate.Signed-off-by: Fabio Porcedda
Acked-by: Oliver Neukum
Signed-off-by: David S. Miller -
Signed-off-by: Fabio Porcedda
Acked-by: Oliver Neukum
Signed-off-by: David S. Miller -
Signed-off-by: Fabio Porcedda
Cc: # 3.0+ as far back as it applies cleanly
Acked-by: Oliver Neukum
Signed-off-by: David S. Miller
12 Sep, 2013
1 commit
-
Adding the device list from the Windows driver description files
included with a new Qualcomm MDM9615 based device, "Alcatel-sbell
ASB TL131 TDD LTE", from China Mobile. This device is tested
and verified to work. The others are assumed to work based on
using the same Windows driver.Many of these devices support multiple QMI/wwan ports, requiring
multiple interface matching entries. All devices are composite,
providing a mix of one or more serial, storage or Android Debug
Brigde functions in addition to the wwan function.This device list included an update of one previously known device,
which was incorrectly assumed to have a Gobi 2K layout. This is
corrected.Reported-by: 王康
Signed-off-by: Bjørn Mork
Signed-off-by: David S. Miller
06 Sep, 2013
3 commits
-
Pull networking changes from David Miller:
"Noteworthy changes this time around:1) Multicast rejoin support for team driver, from Jiri Pirko.
2) Centralize and simplify TCP RTT measurement handling in order to
reduce the impact of bad RTO seeding from SYN/ACKs. Also, when
both timestamps and local RTT measurements are available prefer
the later because there are broken middleware devices which
scramble the timestamp.From Yuchung Cheng.
3) Add TCP_NOTSENT_LOWAT socket option to limit the amount of kernel
memory consumed to queue up unsend user data. From Eric Dumazet.4) Add a "physical port ID" abstraction for network devices, from
Jiri Pirko.5) Add a "suppress" operation to influence fib_rules lookups, from
Stefan Tomanek.6) Add a networking development FAQ, from Paul Gortmaker.
7) Extend the information provided by tcp_probe and add ipv6 support,
from Daniel Borkmann.8) Use RCU locking more extensively in openvswitch data paths, from
Pravin B Shelar.9) Add SCTP support to openvswitch, from Joe Stringer.
10) Add EF10 chip support to SFC driver, from Ben Hutchings.
11) Add new SYNPROXY netfilter target, from Patrick McHardy.
12) Compute a rate approximation for sending in TCP sockets, and use
this to more intelligently coalesce TSO frames. Furthermore, add
a new packet scheduler which takes advantage of this estimate when
available. From Eric Dumazet.13) Allow AF_PACKET fanouts with random selection, from Daniel
Borkmann.14) Add ipv6 support to vxlan driver, from Cong Wang"
Resolved conflicts as per discussion.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1218 commits)
openvswitch: Fix alignment of struct sw_flow_key.
netfilter: Fix build errors with xt_socket.c
tcp: Add missing braces to do_tcp_setsockopt
caif: Add missing braces to multiline if in cfctrl_linkup_request
bnx2x: Add missing braces in bnx2x:bnx2x_link_initialize
vxlan: Fix kernel panic on device delete.
net: mvneta: implement ->ndo_do_ioctl() to support PHY ioctls
net: mvneta: properly disable HW PHY polling and ensure adjust_link() works
icplus: Use netif_running to determine device state
ethernet/arc/arc_emac: Fix huge delays in large file copies
tuntap: orphan frags before trying to set tx timestamp
tuntap: purge socket error queue on detach
qlcnic: use standard NAPI weights
ipv6:introduce function to find route for redirect
bnx2x: VF RSS support - VF side
bnx2x: VF RSS support - PF side
vxlan: Notify drivers for listening UDP port changes
net: usbnet: update addr_assign_type if appropriate
driver/net: enic: update enic maintainers and driver
driver/net: enic: Exposing symbols for Cisco's low latency driver
... -
Conflicts:
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
net/bridge/br_multicast.c
net/ipv6/sit.cThe conflicts were minor:
1) sit.c changes overlap with change to ip_tunnel_xmit() signature.
2) br_multicast.c had an overlap between computing max_delay using
msecs_to_jiffies and turning MLDV2_MRC() into an inline function
with a name using lowercase instead of uppercase letters.3) stmmac had two overlapping changes, one which conditionally allocated
and hooked up a dma_cfg based upon the presence of the pbl OF property,
and another one handling store-and-forward DMA made. The latter of
which should not go into the new of_find_property() basic block.Signed-off-by: David S. Miller
-
This module generates a common default address on init,
using eth_random_addr. Set addr_assign_type to let
userspace know the address is random unless it was
overridden by the minidriver.Signed-off-by: Bjørn Mork
Acked-by: Oliver Neukum
Signed-off-by: David S. Miller
04 Sep, 2013
3 commits
-
Use the new bool function ether_addr_equal to add
some clarity and reduce the likelihood for misuse
of compare_ether_addr for sorting.Done via cocci script: (and a little typing)
$ cat compare_ether_addr.cocci
@@
expression a,b;
@@
- !compare_ether_addr(a, b)
+ ether_addr_equal(a, b)@@
expression a,b;
@@
- compare_ether_addr(a, b)
+ !ether_addr_equal(a, b)@@
expression a,b;
@@
- !ether_addr_equal(a, b) == 0
+ ether_addr_equal(a, b)@@
expression a,b;
@@
- !ether_addr_equal(a, b) != 0
+ !ether_addr_equal(a, b)@@
expression a,b;
@@
- ether_addr_equal(a, b) == 0
+ !ether_addr_equal(a, b)@@
expression a,b;
@@
- ether_addr_equal(a, b) != 0
+ ether_addr_equal(a, b)@@
expression a,b;
@@
- !!ether_addr_equal(a, b)
+ ether_addr_equal(a, b)Signed-off-by: Joe Perches
Signed-off-by: David S. Miller -
Signed-off-by: Liu Junliang
Signed-off-by: David S. Miller -
Pull USB patches from Greg KH:
"Here's the big USB driver pull request for 3.12-rc1Lots of USB driver fixes and updates. Nothing major, just the normal
xhci, gadget, and other driver changes. Full details in the shortlog"* tag 'usb-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (352 commits)
usbcore: fix incorrect type in assignment in descriptors_changed()
usbcore: compare and release one bos descriptor in usb_reset_and_verify_device()
ehci: remove debugging statement with ehci statistics in ehci_stop()
ehci: remove duplicate debug_async_open() prototype in ehci-dbg.c
ehci: enable debugging code when CONFIG_DYNAMIC_DEBUG is set
ehci: remove ehci_vdbg() verbose debugging statements
Documentation sysfs-bus-usb: Document which files are used by libusb
Documentation sysfs-bus-usb: Document the speed file used by libusb
Documentation sysfs-bus-usb: Move files with known users to stable
USB: fix build error when CONFIG_PM_SLEEP isn't enabled
usb: r8a66597-hcd: use platform_{get,set}_drvdata()
usb: phy-tegra-usb: use platform_{get,set}_drvdata()
usb: acm gadget: Null termintate strings table
dma: cppi41: off by one in desc_to_chan()
xhci: Fix warning introduced by disabling runtime PM.
dev-core: fix build break when DEBUG is enabled
USB: OHCI: Allow runtime PM without system sleep
usb: ohci-at91: remove unnecessary dev_set_drvdata()
usb: renesas_usbhs: use platform_{get,set}_drvdata()
usb: fotg210-udc: use platform_{get,set}_drvdata()
...
29 Aug, 2013
1 commit
-
This patch adds another entry (HP hs2434 Mobile Broadband) to the list
of exceptional devices that require a zero length packet in order to
function properly. This list was added in commit 844e88f0. The hs2434
is manufactured by Sierra Wireless, who also produces the MC7710,
which the ZLP exception list was created for in the first place. So
hopefully it is just this one producer's devices that will need this
workaround.Tested on a DM1-4310NR HP notebook, which does not function without this
change.Signed-off-by: Rob Gardner
Acked-by: Bjørn Mork
Signed-off-by: David S. Miller
27 Aug, 2013
1 commit
-
Conflicts:
drivers/net/wireless/iwlwifi/pcie/trans.c
include/linux/inetdevice.hThe inetdevice.h conflict involves moving the IPV4_DEVCONF values
into a UAPI header, overlapping additions of some new entries.The iwlwifi conflict is a context overlap.
Signed-off-by: David S. Miller
22 Aug, 2013
2 commits
-
As Sergei Shtylyov explained in the #mipslinux IRC channel:
[Mon 2013-08-19 12:28:21 PM PDT] guys, are you sure it's not "DMA off stack" case?
[Mon 2013-08-19 12:28:35 PM PDT] it's a known stack corruptor on non-coherent arches
[Mon 2013-08-19 12:31:48 PM PDT] headless: for usb/ehci?
[Mon 2013-08-19 12:34:11 PM PDT] headless: explain
[Mon 2013-08-19 12:35:38 PM PDT] usb_control_msg() (or other such func) should not use buffer on stack. DMA from/to stack is prohibited
[Mon 2013-08-19 12:35:58 PM PDT] and EHCI uses DMA on control xfers (as well as all the others)Signed-off-by: Daniel Gimpelevich
Acked-by: Greg Kroah-Hartman
Signed-off-by: David S. Miller -
There is no need to get an interface specification if we know it's the
wrong one.Signed-off-by: Daniel Gimpelevich
Acked-by: Greg Kroah-Hartman
Signed-off-by: David S. Miller
20 Aug, 2013
7 commits
-
Add comments.
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Split some parts of code into another function to simplify
tx_bottom(). Use while loop to replace the goto loop.Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Move some declearation of variables in rx_bottom().
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
- Use r8152_get_tx_agg for getting tx agg list
- Replace submit rx with goto submitSigned-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Replace lockflags with flags.
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Change the type of contex of tx_agg and rx_agg from void * to
staruc r8152 *.Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Remove memset(tp, 0, sizeof(*tp));
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller
15 Aug, 2013
3 commits
-
Use the interrupt transfer to replace polling link status.
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Enable tx checksum.
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Enable the tx/rx aggregation which could contain one or more packets
for each bulk in/out. This could reduce the loading of the host
controller by sending less bulk transfer.The rx packets in the bulk in buffer should be 8-byte aligned, and
the tx packets in the bulk out buffer should be 4-byte aligned.Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller
14 Aug, 2013
2 commits
-
Ensure that the definition of ax88172a_info matches the declaration seen
by users and silence sparse warnings about symbols without declarations
in the global namespace by moving the declaration into the shared header
asix.h.Signed-off-by: Mark Brown
Signed-off-by: David S. Miller -
Make functions that are only referenced from ops structures static, they
do not need to be in the global namespace and sparse complains about this.Signed-off-by: Mark Brown
Signed-off-by: David S. Miller
13 Aug, 2013
2 commits
-
This patch enables 'can_dma_sg' flag for ax88179_178a device
if the attached host controller supports building packet from
discontinuous buffers(DMA SG is possible), so TSO can be enabled
and skb fragment buffers can be passed to usb stack via urb->sg
directly.With the patch, system CPU utilization decreased ~50% and throughput
increased by ~10% when doing iperf client test on one ARM A15 dual
core board.Cc: Ben Hutchings
Cc: Grant Grundler
Cc: Oliver Neukum
Cc: Alan Stern
Cc: Freddy Xin
Signed-off-by: Ming Lei
Acked-by: Eric Dumazet
Acked-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman -
This patch introduces support of DMA SG if the USB host controller
which usbnet device is attached to is capable of building packet from
discontinuous buffers.The patch supports passing the skb fragment buffers to usb stack directly
via urb->sg.Cc: Ben Hutchings
Cc: Grant Grundler
Cc: Freddy Xin
Cc: Alan Stern
Acked-by: Oliver Neukum
Signed-off-by: Ming Lei
Reviewed-by: Eric Dumazet
Acked-by: David S. Miller
Signed-off-by: Greg Kroah-Hartman
04 Aug, 2013
2 commits
-
ax88179_tx_fixup() has quite complex code trying to push 8 bytes
of control data (len/mss), but fails to do it properly for TCP packets,
incurring an extra copy and point of memory allocation failure.Lets use the simple and approved way.
dev->needed_headroom being 8, all frames should have 8 bytes of
headroom, so the extra copy should be unlikely anyway.This patch should improve performance for TCP xmits.
Reported-by: Ming Lei
Tested-by: Ming Lei
Signed-off-by: Eric Dumazet
Signed-off-by: David S. Miller -
Merge net into net-next to setup some infrastructure Eric
Dumazet needs for usbnet changes.Signed-off-by: David S. Miller
01 Aug, 2013
5 commits
-
- fix the conversion between cpu and __le32
- replace some pla_ocp and usb_ocp functions with generic_ocp functionSigned-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Allocate the required memory before calling usb_control_msg. And
the additional memory copy is necessary.Signed-off-by: Hayes Wang
Acked-by: Greg Kroah-Hartman
Signed-off-by: David S. Miller -
Replace 0 with the result from usbnet_cdc_bind().
Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Don't replace the usb_control_msg() with usbnet_{read,write}_cmd()
which couldn't be called inside suspend/resume callback. Keep the
basic functions unlimited. Instead, using usb_autopm_get_interface()
and usb_autopm_put_interface() in r815x_mdio_{read,write}().Signed-off-by: Hayes Wang
Signed-off-by: David S. Miller -
Some USB buffers use stack which may not be DMA-able.
Use the buffers from kmalloc to replace those one.Signed-off-by: Hayes Wang
Acked-by: Greg Kroah-Hartman
Signed-off-by: David S. Miller
28 Jul, 2013
2 commits
-
The default RX_QLEN()/TX_QLEN() didn't consider super speed
USB device, so only max 4 URBs are scheduled at the same time
for tx/rx, then USB3 NIC can't perform very well.With this patch, both rx and tx thoughput are increased more than
100Mbps when doing iperf test on ax88179_178a USB 3.0 NIC.Signed-off-by: Ming Lei
Signed-off-by: David S. Miller -
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 tooGenerally, 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
Signed-off-by: David S. Miller