aboutsummaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)AuthorFilesLines
2013-11-04qlcnic: Enable multiple Tx queue support for 83xx/84xx Series adapters.Himanshu Madhani5-17/+18
o 83xx and 84xx firmware is capable of multiple Tx queues. This patch will enable multiple Tx queues for 83xx/84xx series adapters. Max number of Tx queues supported will be 8. Signed-off-by: Himanshu Madhani <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-04qlcnic: refactor Tx/SDS ring calculation and validation in driver.Himanshu Madhani12-311/+404
o Current driver has duplicate code for validating user input for changing Tx/SDS rings using set_channel ethtool interface. This patch removes duplicate code and refactored Tx/SDS ring validation for 82xx/83xx/84xx series adapter. o Refactored code now calculates maximum Tx/Rx ring driver can support based on Default, NPAR and SRIOV PF/VF mode of driver. Signed-off-by: Himanshu Madhani <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-04qlcnic: Enhance ethtool Statistics for Multiple Tx queue.Himanshu Madhani4-62/+94
o Enhance ethtool statistics to display multiple Tx queue stats for all supported adapters. Signed-off-by: Himanshu Madhani <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-04qlcnic: Register netdev in FAILED state for 83xx/84xxSucheta Chakraborty6-33/+67
o Without failing probe, register netdev when device is in FAILED state. o Device will come up with minimum functionality and allow diagnostics and repair of the adapter. Signed-off-by: Sucheta Chakraborty <[email protected]> Signed-off-by: Himanshu Madhani <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-04Merge branch 'master' of ↵John W. Linville108-2771/+8703
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem Conflicts: drivers/net/wireless/brcm80211/brcmfmac/sdio_host.h
2013-11-04Merge branch 'master' of ↵John W. Linville37-155/+224
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless Conflicts: drivers/net/wireless/iwlwifi/pcie/drv.c
2013-11-04Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller20-159/+116
Conflicts: drivers/net/ethernet/emulex/benet/be.h drivers/net/netconsole.c net/bridge/br_private.h Three mostly trivial conflicts. The net/bridge/br_private.h conflict was a function signature (argument addition) change overlapping with the extern removals from Joe Perches. In drivers/net/netconsole.c we had one change adjusting a printk message whilst another changed "printk(KERN_INFO" into "pr_info(". Lastly, the emulex change was a new inline function addition overlapping with Joe Perches's extern removals. Signed-off-by: David S. Miller <[email protected]>
2013-11-04net/mlx4_core: Fix call to __mlx4_unregister_macJack Morgenstein1-1/+1
In function mlx4_master_deactivate_admin_state() __mlx4_unregister_mac was called using the MAC index. It should be called with the value of the MAC itself. Signed-off-by: Jack Morgenstein <[email protected]> Signed-off-by: Or Gerlitz <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02bonding: bond_get_size() returns wrong sizeDan Carpenter1-2/+2
There is an extra semi-colon so bond_get_size() doesn't return the correct value. Fixes: ec76aa49855f ('bonding: add Netlink support active_slave option') Signed-off-by: Dan Carpenter <[email protected]> Acked-by: Veaceslav Falico <[email protected]> Reviewed-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: no not set tx_max higher than the device supportsBjørn Mork1-2/+1
There are MBIM devices out there reporting dwNtbInMaxSize=2048 dwNtbOutMaxSize=2048 and since the spec require a datagram max size of at least 2048, this means that a full sized datagram will never fit. Still, sending larger NTBs than the device supports is not going to help. We do not have any other options than either a) refusing to bindi, or b) respect the insanely low value. Alternative b will at least make these devices work, so go for it. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: improve bind error debug messagesBjørn Mork1-10/+26
Make it a bit easier for users to figure out what goes wrong when bind fails. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: return proper error if setup failsBjørn Mork1-2/+2
Most setup errors are ignored to ensure maximum firmware compatibilty. But GET_NTB_PARAMETERS and the functional descriptors are required. Use proper error codes and log level if these fail. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: refactoring cdc_ncm_setupBjørn Mork1-64/+44
Rewriting the "set max datagram" part of dc_ncm_setup to separate the selection and validatation of the size from the code which optionally informs the device of this value. This ensures that we use the correct value regardless of device support for the get and set commands. Removing some of the many indent levels while doing this to make the code more readable. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: endian convert constants instead of variablesBjørn Mork1-2/+2
Converting the constants used in these comparisons at build time instead of converting the variables for every received frame at run time. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: log signatures in hexBjørn Mork1-4/+6
These signatures are well known bit patterns, mostly made up of ascii characters. Mentally parsing works best if they are printed in hex. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: use netif_* and dev_* instead of pr_*Bjørn Mork1-50/+48
Take advantage of standard device name prefixing and netdevice msglvl control where possible. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: log the length we warn aboutBjørn Mork1-1/+1
Fix cut'n'paste typo. Log the bogus length and not the irrelevant signature. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: set correct dev->hard_mtuBjørn Mork1-7/+2
usbnet use the hard_mtu value for sizing the tx queue and nothing else. We will be transmitting buffers of up to tx_max size, so that's the proper value to give usbnet. The individual datagram size is completely irrelevant here. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove ethtool opsBjørn Mork1-26/+0
No need to keep this code duplicated from usbnet. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove probe and disconnect wrappersBjørn Mork1-18/+2
These functions were merely wrappers around the usbnet variants. Remove them. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: no point in filling up the NTBs if we send ZLPsBjørn Mork1-1/+5
Padding NTBs to max size is part of the support for devices optimizing their DMA transfers. This optimization depends on max sized NTBs not being ZLP terminated. So we are much better off dropping the padding if we are going to send a ZLP anyway. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: only the control intf can be probedBjørn Mork1-6/+8
The probed interface must be the master/control interface of the function. Make this explicit and simplify redundant tests. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove descriptor pointersBjørn Mork1-6/+6
header_desc was completely unused and union_desc was never used outside cdc_ncm_bind_common. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: fix SET_MAX_DATAGRAM_SIZEBjørn Mork1-0/+1
We need to inform the device about the *new* value, not the old one. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove ncm_parm fieldBjørn Mork1-23/+23
Moving the call to cdc_ncm_setup() after the endpoint setup removes the last remaining reference to ncm_parm outside cdc_ncm_setup. Collecting all the ncm_parm based calculations in cdc_ncm_setup improves readability. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove tx_speed and rx_speed fieldsBjørn Mork1-23/+14
These fields are only used to prevent printing the same speeds multiple times if we receive multiple identical speed notifications. The value of these printk's is questionable, and even more so when we filter out some of the notifications sent us by the firmware. If we are going to print any of these, then we should print them all. Removing little used fields is a bonus. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove unused udev fieldBjørn Mork1-2/+0
We already use the usbnet udev field everywhere this could have been used. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove redundant netdev fieldBjørn Mork2-37/+38
Too many pointers back and forth are likely to confuse developers, creating subtle bugs whenever we forget to syncronize them all. As a usbnet driver, we should stick with the standard struct usbnet fields as much as possible. The netdevice is one such field. Cc: Greg Suarez <[email protected]> Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove redundant endpoint pointersBjørn Mork1-19/+19
No need to duplicate stuff already in the common usbnet struct. We still need to keep our special find_endpoints function because we need explicit control over the selected altsetting. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: remove redundant "intf" fieldBjørn Mork1-3/+1
This is always a duplicate of the "control" field. It causes confusion wrt intf_data updates and cleanups. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_ncm: simplify and optimize frame paddingBjørn Mork1-12/+19
We can avoid the costly division for the common case where we pad the frame to tx_max size as long as we ensure that tx_max is either the device specified dwNtbOutMaxSize or not a multiplum of wMaxPacketSize. Using the preconverted 'maxpacket' field avoids converting wMaxPacketSize to CPU endianness for every transmitted frame And since we only will hit the one byte padding rule for short frames, we can drop testing the skb for tailroom. The change means that tx_max now represents the real maximum skb size, enabling us to allocate the correct size instead of always making room for one extra byte. Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_mbim: change the default to send ZLPsBjørn Mork1-11/+17
A number of devices in the wild have turned out to require ZLPs. Even if this is a spec violation, our priority is to make any device work as good as possible. Devices needing ZLPs will fail to receive any full sized frame we send. On the other hand, devices which do not need the ZLP will still work if we send them. This gives us no other option than sending ZLPs by default. This will prevent devices conforming to the spec from making the optimizations which are possible without ZLPs. Adding known such devices to a whitelist, to avoid the possible negative impact of the new spec violating default. Cc: Greg Suarez <[email protected]> Cc: Alexey Orishko <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02net: cdc_mbim: handle IPv6 Neigbor SolicitationsBjørn Mork1-0/+58
MBIM is a point-to-point protocol transporting raw IP packets with no L2 headers. Only IPv4 and IPv6 are supported. ARP in particular is not, which is quite logical given the lack of L2 headers. The driver still emulates an ethernet interface, dropping all unsupported protocols, and avoiding neigbour resolving by setting the IFF_NOARP flag. The MBIM specification does not explicitly forbid IPv6 Neighbor Discovery, and it seems the other OS support will respond to Neighbor Solicitations on MBIM links. There are therefore buggy devices out there, which despite the pointlessness, still require Neighbor Discovery for IPv6 over MBIM. This is incompatible with the IFF_NOARP flag which disables both ARP and ND. We cannot support ARP in any case, so we have to keep that flag. This patch implements a workaround for the buggy devices, letting the driver respond directly to Neighbor Solicitations from the device. This is not optimal, but will have minimal effect on any sane device. Cc: Greg Suarez <[email protected]> Reported-and-tested-by: Thomas Schäfer <[email protected]> Signed-off-by: Bjørn Mork <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smsc9420: replace printk with netdev_ callsBen Boeckel1-13/+13
Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smc91c92_cs: replace printk with netdev_ callsBen Boeckel1-22/+21
Also snipes some trailing whitespace. Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smc9194: replace printk with netdev_ callsBen Boeckel1-27/+25
Also snipes some whitespace errors. Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smsc911x: replace printk with netdev_ callsBen Boeckel1-1/+1
Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smc911x: replace printk with netdev_ callsBen Boeckel2-167/+166
Also fixes an incorrect function comment (probably copy/paste). Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02smc91x: replace printk with netdev_ callsBen Boeckel2-123/+118
Also snipes some whitespace errors. Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02epic100: replace printk with netdev_ callsBen Boeckel1-67/+58
Also snipes some whitespace errors. Signed-off-by: Ben Boeckel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2013-11-02Merge branch 'master' of ↵David S. Miller6-28/+27
git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/net-next Jeff Kirsher says: ==================== This series contains updates to e1000, igb, ixgbe and ixgbevf. Hong Zhiguo provides a fix for e1000 where tx_ring and adapter->tx_ring are already of type "struct e1000_tx_ring" so no need to divide by e1000_tx_ring size in the idx calculation. Emil provides a fix for ixgbevf to remove a redundant workaround related to header split and a fix for ixgbe to resolve an issue where the MTA table can be cleared when the interface is reset while in promisc mode. Todd provides a fix for igb to prevent ethtool from writing to the iNVM in i210/i211 devices. This issue was reported by Marek Vasut <[email protected]>. Anton Blanchard provides a fix for ixgbe to reduce memory consumption with larger page sizes, seen on PPC. Don provides a cleanup in ixgbe to replace the IXGBE_DESC_UNUSED macro with the inline function ixgbevf_desc_unused() to make the logic a bit more readable. ==================== Signed-off-by: David S. Miller <[email protected]>
2013-11-01ixgbe: fix inconsistent clearing of the multicast tableEmil Tantilov1-8/+7
This patch resolves an issue where the MTA table can be cleared when the interface is reset while in promisc mode. As result IPv6 traffic between VFs will be interrupted. This patch makes the update of the MTA table unconditional to avoid the inconsistent clearing on reset. Signed-off-by: Emil Tantilov <[email protected]> Tested-by: Phil Schmitt <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-11-01ixgbe: cleanup IXGBE_DESC_UNUSEDDon Skidmore2-8/+12
This patch just replaces the IXGBE_DESC_UNUSED macro with a like named inline function ixgbevf_desc_unused. The inline function makes the logic a bit more readable. Signed-off-by: Alexander Duyck <[email protected]> Signed-off-by: Don Skidmore <[email protected]> Tested-by: Phil Schmitt <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-11-01ixgbe: Reduce memory consumption with larger page sizesAnton Blanchard1-0/+4
The ixgbe driver allocates pages for its receive rings. It currently uses 512 pages, regardless of page size. During receive handling it adds the unused part of the page back into the rx ring, avoiding the need for a new allocation. On a ppc64 box with 64 threads and 64kB pages, we end up with 512 entries * 64 rx queues * 64kB = 2GB memory used. Even more of a concern is that we use up 2GB of IOMMU space in order to map all this memory. The driver makes a number of decisions based on if PAGE_SIZE is less than 8kB, so use this as the breakpoint and only allocate 128 entries on 8kB or larger page sizes. Signed-off-by: Anton Blanchard <[email protected]> Tested-by: Phil Schmitt <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-11-01igb: Don't let ethtool try to write to iNVM in i210/i211Fujinaka, Todd1-1/+3
Don't let ethtool try to write to iNVM in i210/i211. This fixes an issue seen by Marek Vasut. Reported-by: Marek Vasut <[email protected]> Signed-off-by: Todd Fujinaka <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-11-01ixgbevf: remove redundant workaroundEmil Tantilov1-9/+0
This patch removes a workaround related to header split, which is redundant because the driver does not support splitting packet headers on Rx. Signed-off-by: Emil Tantilov <[email protected]> Tested-by: Phil Schmitt <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-11-01e1000: fix wrong queue idx calculationHong Zhiguo1-2/+1
tx_ring and adapter->tx_ring are already of type "struct e1000_tx_ring *" Signed-off-by: Hong Zhiguo <[email protected]> Tested-by: Aaron Brown <[email protected]> Signed-off-by: Jeff Kirsher <[email protected]>
2013-10-31sfc: Fix DMA unmapping issue with firmware assisted TSOAlexandre Rames2-2/+8
When using firmware assisted TSO, we use a single DMA mapping for the linear area of a TSO skb. We still have to segment the super-packet and insert a descriptor containing the original headers before each segment of payload, so we can unmap the linear area only after the last segment is completed. The unmapping information for the linear area is therefore associated with the last header descriptor. We calculate the DMA address to unmap from using the map length and the invariant that the end of the DMA mapping matches the end of the data referenced by the last descriptor. But this invariant is broken when there is TCP payload in the linear area. Fix this by adding and using an explicit dma_offset field. Signed-off-by: Ben Hutchings <[email protected]>
2013-10-31can: ti_hecc: remove priv->can.do_get_state() callbackMarc Kleine-Budde1-10/+0
This patch removes the priv->can.do_get_state() callback, as it just returns priv->can.state. The callback's only user can_fill_info() has direct access to priv->can.state. Signed-off-by: Marc Kleine-Budde <[email protected]>
2013-10-31can: dev: sort can_changelink() by IFLA_CAN_*Marc Kleine-Budde1-13/+13
This patch sorts the handling of data[IFLA_CAN_*] by IFLA_CAN_*. Signed-off-by: Marc Kleine-Budde <[email protected]>