aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet
AgeCommit message (Collapse)AuthorFilesLines
2012-02-223com/typhoon: reuse eth_mac_addr()Danny Kukawka1-13/+1
Use eth_mac_addr() for .ndo_set_mac_address, remove typhoon_set_mac_address() since it do currently the same as eth_mac_addr(). Additional advantage: eth_mac_addr() already checks if the given address is valid. Signed-off-by: Danny Kukawka <[email protected]> Acked-by: Dave Dillow <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-22jme: Fix FIFO flush issueGuo-Fu Tseng2-10/+2
Set the RX FIFO flush watermark lower. According to Federico and JMicron's reply, setting it to 16QW would be stable on most platforms. Otherwise, user might experience packet drop issue. CC: [email protected] Reported-by: Federico Quagliata <[email protected]> Fixed-by: Federico Quagliata <[email protected]> Signed-off-by: Guo-Fu Tseng <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-22tg3: remove IRQF_SAMPLE_RANDOM flagDavidlohr Bueso1-1/+1
This driver is the last user of the IRQF_SAMPLE_RANDOM flag for net drivers, and since add_*_randomness interfaces have now deprecated the flag as a source of external noise, we can remove it. Signed-off-by: Davidlohr Bueso <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-21mlx4: Setting new port types after all interfaces unregisteredYevgeny Petrilin1-3/+2
In port type change flow, need to set the new port types only after all interfaces have finished the unregister process. Otherwise, during unregister, one of the interfaces might issue a SET_PORT command with wrong port types, it can cause bad FW behavior. Signed-off-by: Yevgeny Petrilin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-21mlx4: Replacing pool_lock with mutexYevgeny Petrilin3-6/+6
Under the spinlock we call request_irq(), which allocates memory with GFP_KERNEL, This causes the following trace when DEBUG_SPINLOCK is enabled, it can cause the following trace: BUG: spinlock wrong CPU on CPU#2, ethtool/2595 lock: ffff8801f9cbc2b0, .magic: dead4ead, .owner: ethtool/2595, .owner_cpu: 0 Pid: 2595, comm: ethtool Not tainted 3.0.18 #2 Call Trace: spin_bug+0xa2/0xf0 do_raw_spin_unlock+0x71/0xa0 _raw_spin_unlock+0xe/0x10 mlx4_assign_eq+0x12b/0x190 [mlx4_core] mlx4_en_activate_cq+0x252/0x2d0 [mlx4_en] ? mlx4_en_activate_rx_rings+0x227/0x370 [mlx4_en] mlx4_en_start_port+0x189/0xb90 [mlx4_en] mlx4_en_set_ringparam+0x29a/0x340 [mlx4_en] dev_ethtool+0x816/0xb10 ? dev_get_by_name_rcu+0xa4/0xe0 dev_ioctl+0x2b5/0x470 handle_mm_fault+0x1cd/0x2d0 sock_do_ioctl+0x5d/0x70 sock_ioctl+0x79/0x2f0 do_vfs_ioctl+0x8c/0x340 sys_ioctl+0xa1/0xb0 system_call_fastpath+0x16/0x1b Replacing with mutex, which is enough in this case. Signed-off-by: Yevgeny Petrilin <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20bnx2x: update driver version to 1.72.10-0Dmitry Kravkov1-2/+2
Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20bnx2x: add gro_checkDmitry Kravkov4-0/+25
The patch provides workaround for BUG in FW 7.2.16, which in GRO mode may miscalculate buffer and place on SGE one frag less than it could. It may happen only for some MTUs, we mark these MTUs with gro_check flag during device initialization or MTU change. Next FW should include fix for the issue and the patch could be reverted. Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20cnic: update for FW 7.2.xxMichael Chan1-12/+12
Signed-off-by: Michael Chan <[email protected]> Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20use FW 7.2.16Dmitry Kravkov8-82/+177
The patch integrates FW 7.2.16 HSI and implements driver part of GRO flow. FW 7.2.16 adds the ability to aggregate packets for GRO (and not just LRO) and also fixes some bugs. 1. Added new aggregation mode: GRO. In this mode packets are aggregated such that the original packets can be reconstructed by the OS. 2. 57712 HW bug workaround - initialized all CAM TM registers to 0x32. 3. Adding the FCoE statistics structures to the BNX2X HSI. 4. Wrong configuration of TX HW input buffer size may cause theoretical performance effect. Performed configuration fix. 5. FCOE - Arrival of packets beyond task IO size can lead to crash. Fix firmware data-in flow. 6. iSCSI - In rare cases of on-chip termination the graceful termination timer hangs, and the termination doesn't complete. Firmware fix to MSL timer tolerance. 7. iSCSI - Chip hangs when target sends FIN out-of-order or with isles open at the initiator side. Firmware implementation corrected to drop FIN received out-of-order or with isles still open. 8. iSCSI - Chip hangs when in case of retransmission not aligned to 4-bytes from the beginning of iSCSI PDU. Firmware implementation corrected to support arbitrary aligned retransmissions. 9. iSCSI - Arrival of target-initiated NOP-IN during intense ISCSI traffic might lead to crash. Firmware fix to relevant flow. Signed-off-by: Dmitry Kravkov <[email protected]> Signed-off-by: Eilon Greenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20mlx4_core: Do not map BF area if capability is 0Jack Morgenstein1-0/+3
BF can be disabled in some cases, the capability field, bf_reg_size is set to zero in this case. Don't map the BF area in this case, it would cause failures. In addition, leaving the BF area unmapped also alerts the ETH driver to not use BF. Signed-off-by: Jack Morgenstein <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20enic: Add support for fw init command on sriov vf'sRoopa Prabhu2-2/+2
This patch fixes enic_probe to do a fw init devcmd for sriov vfs. This enables vf driver in the guest to get into adapter init state without having to explicitly issue an init fw cmd with portprofile info. But a successful init on the vf will require the port profile information to be pre-provisioned by the hypervisor via the pf Signed-off-by: Roopa Prabhu <[email protected]> Signed-off-by: Christian Benvenuti <[email protected]> Signed-off-by: Sujith Sankar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20enic: Fix ndo_set_vf_mac and ndo_set_vf_port to set/get the sriov vf's macRoopa Prabhu2-9/+30
This patch fixes the ndo_set_vf_mac netdev op to set the sriov vf mac in adapter using the new fw devcmd CMD_SET_MAC_ADDR. During port profile associate the pf driver gets the vf mac using CMD_GET_MAC_ADDR. Signed-off-by: Roopa Prabhu <[email protected]> Signed-off-by: Christian Benvenuti <[email protected]> Signed-off-by: Sujith Sankar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20enic: Add new fw devcmd to set mac address of an interfaceRoopa Prabhu4-1/+23
This patch adds a new devcmd CMD_SET_MAC_ADDR to set the mac address of an interface. Signed-off-by: Roopa Prabhu <[email protected]> Signed-off-by: Christian Benvenuti <[email protected]> Signed-off-by: Sujith Sankar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20enic: rename CMD_MAC_ADDR to CMD_GET_MAC_ADDRRoopa Prabhu4-6/+6
firmware devcmd CMD_MAC_ADDR gets the mac address of a vnic from adapter. This patch renames it to CMD_GET_MAC_ADDR more appropriately. Signed-off-by: Roopa Prabhu <[email protected]> Signed-off-by: Christian Benvenuti <[email protected]> Signed-off-by: Sujith Sankar <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-20ll_temac: Fix build.David S. Miller1-1/+1
Reported-by: Stephen Rothwell <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19adi: adapt to eth_hw_addr_random() and changes in arch/blackfinDanny Kukawka2-7/+10
Adapt adi ethernet driver to changes in bfin_get_ether_addr() from arch/blackfin. bfin_get_ether_addr() returns now a state. Set a random mac address via new eth_hw_addr_random() in case the return value is not 0. Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v2: change the logic to reduce unneeded checks Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19ethernet: Fix typo in lantiq_etop.cMasanari Iida1-1/+1
Correct spelling "platfom" to "platform" in drivers/net/ethernet/lantiq_etop.c Signed-off-by: Masanari Iida <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19bnx2x: make bnx2x_close() static againMichal Schmidt2-3/+3
Commit 8304859a "bnx2x: add fan failure event handling" made the function bnx2x_close() non-static unnecessarily. The function is not called from other sources. Make it static again. Signed-off-by: Michal Schmidt <[email protected]> Acked-by: Yuval Mintz <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19b44: remove __exit from b44_pci_exit()Nikola Pajkovsky1-1/+1
WARNING: drivers/net/ethernet/broadcom/built-in.o(.init.text+0x5d): Section mismatch in reference from the function b44_init() to the function .exit.text:b44_pci_exit() module exits with b44_cleanup() Signed-off-by: Nikola Pajkovsky <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19net/ethernet: ks8851_mll: signedness bug in ks8851_probe()Dan Carpenter1-1/+1
netdev->irq is unsigned, so it's never less than zero. Signed-off-by: Dan Carpenter <[email protected]> Tested-by: Jan Weitzel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19atl1c: dont use highprio tx queueEric Dumazet1-4/+0
This driver attempts to use two TX rings but lacks proper support : 1) IRQ handler only takes care of TX completion on first TX ring 2) the stop/start logic uses the legacy functions (for non multiqueue drivers) This means all packets witk skb mark set to 1 are sent through high queue but are never cleaned and queue eventualy fills and block the device, triggering the infamous "NETDEV WATCHDOG" message. Lets use a single TX ring to fix the problem, this driver is not a real multiqueue one yet. Minimal fix for stable kernels. Reported-by: Thomas Meyer <[email protected]> Tested-by: Thomas Meyer <[email protected]> Signed-off-by: Eric Dumazet <[email protected]> Cc: Jay Cliburn <[email protected]> Cc: Chris Snook <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-19Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller19-157/+153
Conflicts: drivers/net/ethernet/broadcom/bnx2x/bnx2x_stats.c Small minor conflict in bnx2x, wherein one commit changed how statistics were stored in software, and another commit fixed endianness bugs wrt. reading the values provided by the chip in memory. Signed-off-by: David S. Miller <[email protected]>
2012-02-18cisco/enic: use eth_hw_addr_random() instead of random_ether_addr()Danny Kukawka1-1/+2
Use dev_hw_addr_random() instead of calling random_ether_addr() to set addr_assign_type correctly to NET_ADDR_RANDOM. Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v3: adapt to net-next v2: use bitops, adapt to eth_hw_addr_random(), add a comment Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17net: ethernet: xilinx: Convert xilinx_axienet to module_platform_driverTobias Klauser1-12/+1
Follow commit db62f684. Convert the driver to use the module_platform_driver() macro which makes the code a bit smaller and simpler. Signed-off-by: Tobias Klauser <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17atheros eth: set addr_assign_type if random_ether_addr() usedDanny Kukawka4-9/+15
Set addr_assign_type correctly to NET_ADDR_RANDOM in case a random MAC address was generated and assigned to the netdevice. Fix error handling in atl1c_probe(). If atl1c_read_mac_addr() couldn't get the hw mac address, and a random mac address get set return the error code. Don't go to err_eeprom in atl1c_probe(), use the generated MAC address in this case. Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v2: use bitops Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17ethoc: set addr_assign_type if random_ether_addr() usedDanny Kukawka1-2/+18
Set addr_assign_type correctly to NET_ADDR_RANDOM in case a random MAC address was generated and assigned to the netdevice. Fixed ethoc_set_mac_address() to check if the given mac address is valid and set also dev_addr of the net_device. Check also the return value of ethoc_set_mac_address() in ethoc_probe(). Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v2: set net_device->dev_addr in ethoc_set_mac_address(), check if given address is valid Signed-off-by: Danny Kukawka <[email protected]>
2012-02-17igbvf: reset netdevice addr_assign_type if changedDanny Kukawka1-0/+1
Reset the state of addr_assign_type to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v2: use bitops to reset addr_assign_type Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17xilinx ll_temac: use eth_hw_addr_random() instead of random_ether_addr()Danny Kukawka1-1/+3
Use eth_hw_addr_random() instead of calling random_ether_addr() to set addr_assign_type correctly to NET_ADDR_RANDOM. Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. v2: reworked to prevent using an extra variable Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17davinci_emac: use eth_hw_addr_random() instead of random_ether_addr()Danny Kukawka1-2/+3
Use eth_hw_addr_random() instead of calling random_ether_addr() to set addr_assign_type correctly to NET_ADDR_RANDOM. Reset the state to NET_ADDR_PERM as soon as the MAC get changed via .ndo_set_mac_address. Remove one memcpy from emac_dev_setmac_addr() since this is a duplicate: it's already done some lines above. v2: use bitops, adapt to eth_hw_addr_random, remove a memcpy Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17lantiq_etop: set addr_assign_type if random_ether_addr() usedDanny Kukawka1-0/+7
Set addr_assign_type correctly to NET_ADDR_RANDOM in case a random MAC address was generated and assigned to the netdevice. v2: added comment, renamed bool variable to random_mac Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-17au1000_eth: use eth_hw_addr_random() instead of random_ether_addr()Danny Kukawka1-4/+5
Use eth_hw_addr_random() instead of calling random_ether_addr() to set addr_assign_type correctly to NET_ADDR_RANDOM. v2: adapt to eth_hw_addr_random() Signed-off-by: Danny Kukawka <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16net: sh_eth: add support for VLAN tag filteringYoshihiro Shimoda2-0/+64
Some controllers have TSU. It can register one VLAN tag, and it can filter other VLAN tag by hardware. If vlan_rx_add_vid() is called twice or more, the driver will disable the filtering. Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16net: sh_eth: add support for multicast filteringYoshihiro Shimoda2-5/+286
Some controllers have TSU. It can filter multicast by hardware. This patch supports it. Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16net: sh_eth: modify a condition of ioremap for TSUYoshihiro Shimoda1-11/+14
If the controller has TSU, the each channel needs TSU registers. This patch also fixes the iounmap condition in the sh_eth_drv_remove(). Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16net: sh_eth: change the condition of initializationYoshihiro Shimoda1-2/+2
The SH7757 has 2 Fast Ethernet and 2 Gigabit Ethernet, and the first Gigabit channel needs the initialization. So, this patch adds the parameter of "needs_init", and if the sh_eth_plat_data is set it to 1, the driver will initialize the channel. Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16net: sh_eth: add the value of tsu to the SH7757's GETHERYoshihiro Shimoda1-0/+1
The SH7757's GETHER has TSU registers. So, this patch adds the value of ".tsu = 1" in the sh_eth_cpu_data. Signed-off-by: Yoshihiro Shimoda <[email protected]> Signed-off-by: David S. Miller <[email protected]>
2012-02-16Merge git://git.kernel.org/pub/scm/linux/kernel/git/bwh/sfc-nextDavid S. Miller21-604/+3170
2012-02-16sfc: Add SR-IOV back-end support for SFC9000 familyBen Hutchings13-26/+2192
On the SFC9000 family, each port has 1024 Virtual Interfaces (VIs), each with an RX queue, a TX queue, an event queue and a mailbox register. These may be assigned to up to 127 SR-IOV virtual functions per port, with up to 64 VIs per VF. We allocate an extra channel (IRQ and event queue only) to receive requests from VF drivers. There is a per-port limit of 4 concurrent RX queue flushes, and queue flushes may be initiated by the MC in response to a Function Level Reset (FLR) of a VF. Therefore, when SR-IOV is in use, we submit all flush requests via the MC. The RSS indirection table is shared with VFs, so the number of RX queues used in the PF is limited to the number of VIs per VF. This is almost entirely the work of Steve Hodgson, formerly [email protected]. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Allocate SRAM between buffer table and descriptor caches at init timeBen Hutchings6-14/+50
Each port has a block of 64-bit SRAM that is divided between buffer table and descriptor cache regions at initialisation time. Currently we use a fixed allocation, but it needs to be changed to support larger numbers of queues. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Pass NIC structure into efx_wanted_parallelism()Ben Hutchings1-4/+4
This lets us identify the NIC affected in case of failure, and will be necessary to adjust for SR-IOV constraints. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Add support for 'extra' channel typesBen Hutchings3-108/+239
Abstract some of the channel operations to allow for 'extra' channels that do not have RX or TX queues. - Try to assign a channel to each extra channel type that is enabled for the NIC, but gracefully degrade if we can't allocate sufficient MSI-X vectors - Allow each extra channel type to generate its own channel name - Allow channel types to disable reallocation and reinitialisation of their channels Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Make all CPU/IRQ/channel/queue counts unsignedBen Hutchings2-9/+11
Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Make buffer table indices and counts consistently unsignedBen Hutchings2-3/+3
Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Disable flow control during flushesSteve Hodgson3-0/+9
The TX DMA engine issues upstream read requests when there is room in the TX FIFO for the completion. However, the fetches for the rest of the packet might be delayed by any back pressure. Since a flush must wait for an EOP, the entire flush may be delayed by back pressure. Mitigate this by disabling flow control before the flushes are started. Since PF and VF flushes run in parallel introduce fc_disable, a reference count of the number of flushes outstanding. The same principle could be applied to Falcon, but that would bring with it its own testing. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Generalise event generation to cover VF-owned event queuesBen Hutchings2-6/+7
For SR-IOV we will need to send events to event queues that belong to VFs serviced by other drivers. Change the parameters of efx_generate_event() to allow this and declare it extern. While we're at it, remove the existing declaration under the wrong name efx_nic_generate_event(). Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Use proper function to test for RX channel in efx_poll()Ben Hutchings1-1/+1
Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Leave interrupts and event queues enabled whenever we canBen Hutchings4-318/+308
When SR-IOV is enabled we may receive FLR (Function-Level Reset) events, associated queue flush events and requests from VF drivers at any time. Therefore we need to keep event queues and interrupts enabled whenever possible. Currently we stop interrupt-driven event processing before flushing RX and TX queues; efx_nic_flush_queues() then polls event queues for flush events and discards any others it finds. Change it to work with the regular event handling functions. Currently efx_start_channel() fills RX queues synchronously when a device is brought up. This could now race with NAPI, so change it to send fill events. This was almost entirely written by Steve Hodgson, formerly [email protected]. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Generate RX fill events based on RX queues, not channelsBen Hutchings3-9/+13
This makes it harder to accidentally send such events to TX-only channels. Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Generalise driver event generationBen Hutchings1-24/+27
Signed-off-by: Ben Hutchings <[email protected]>
2012-02-16sfc: Correct MAC filter bitfield definitionsBen Hutchings1-10/+10
The RMFT_DEST_MAC and TMFT_SRC_MAC register fields were previously documented as 44 bits wide, whereas a MAC address has 48 bits. Thankfully the hardware uses the correct width and the driver has used separate definitions that divide each of these into 32-bit and 16-bit fields. Fix the initial definitions for these fields and rewrite the latter definitions to use them. Signed-off-by: Ben Hutchings <[email protected]>