aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb
Commit message (Collapse)AuthorAge
* igb: fix anoying type mismatch warning on rx/tx queue sizingLinus Torvalds2009-01-05
| | | | | | | | | | When using "min()", the types of both sides should match. With the cpu mask changes, the type of num_online_cpus() will now depend on config options. Use "min_t()" with an explicit type instead. And make the rx/tx case look the same too, just for sanity. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* igb: Fix build warning when DCA is disabled.David S. Miller2008-12-26
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: re-order queues to support cleaner use of ivar on 82576Alexander Duyck2008-12-26
| | | | | | | | | | | The 82576 adapter orders the queues in pairs when virtualization is in use. The queue ordering previously conflicted with the ordering when sr-iov was enabled. This new ordering allows a PF to allocate 2 queues without using any VF resources. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: defeature tx head writebackAlexander Duyck2008-12-26
| | | | | | | | | | This patch removes tx head writeback as it was found to not provide a significant improvement in tx performance and on some systems has been seen to cause a performance degredation due to partial cache line writes. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* drivers/net/igb: remove dead code (function 'igb_read_pci_cfg')Hannes Eder2008-12-26
| | | | | | | | | | Fix this warning: drivers/net/igb/e1000_mac.c:54: warning: 'igb_read_pci_cfg' defined but not used Signed-off-by: Hannes Eder <hannes@hanneseder.net> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: Remove unused netdev arg from some NAPI interfaces.Neil Horman2008-12-22
| | | | | | | | | | When the napi api was changed to separate its 1:1 binding to the net_device struct, the netif_rx_[prep|schedule|complete] api failed to remove the now vestigual net_device structure parameter. This patch cleans up that api by properly removing it.. Signed-off-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: fixup AER with proper error handlingJeff Kirsher2008-12-11
| | | | | | | | | Based on Peter Waskiewicz patch for ixgbe. Add error handling based on Hemminger's recommendation. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: Correctly determine pci-e function number in virtual environmentAlexander Duyck2008-12-10
| | | | | | | | | | When running in a virtual environment the ports of an 82575/6 can appear to be single function devices which is not correct. To resolve this we rely on the function number stored in the status register. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: update handling of RCTL for smaller buffer sizesAlexander Duyck2008-12-10
| | | | | | | | | | As we begin to move into virtualization the use of a global value for buffer sizes becomes undesirable. This change makes it so only 256 and 512 byte buffers require use of the RCTL register. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb/e1000e: Naming interrupt vectorsAlexander Duyck2008-12-05
| | | | | | | | | Change interrupt vector naming to match recent changes from Robert Olsson. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Acked-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: Add support for pci-e Advanced Error ReportingAlexander Duyck2008-11-27
| | | | | | | | | Add the calls necessary to enable advanced error reporting for igb on systems with AER enabled. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: link up/down messages must follow a specific formatAlexander Duyck2008-11-27
| | | | | | | | | The system log messages created on a link status change need to follow a specific format to work with tools some customers use. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2008-11-27
|\ | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/hp-plus.c drivers/net/wireless/ath5k/base.c drivers/net/wireless/ath9k/recv.c net/wireless/reg.c
| * driver/net/*: remove redundant argument commentsQinghuang Feng2008-11-23
| | | | | | | | | | | | | | remove redundant argument comments in files of drivers/net/* Signed-off-by: Qinghuang Feng <qhfeng.kernel@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: loopback bits not correctly cleared from RCTL registerAlexander Duyck2008-11-25
| | | | | | | | | | | | | | | | | | This change forces the bits to 0 by using an &= operation with an inverted mask of all options instead of using an |= with a value of 0. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: remove unneeded bit refrence when enabling jumbo framesAlexander Duyck2008-11-25
| | | | | | | | | | | | | | | | | | | | There is a reference to a Buffer Size extention bit that is unneded by 82575/82576 hardware. Since it is not needed it should be removed from the code. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: do not use phy ops in ethtool test cleanup for non-copper partsAlexander Duyck2008-11-22
| | | | | | | | | | | | | | | | | | | | | | Currently the igb driver is experiencing a panic due to a null function pointer being used during the cleanup of the ethtool looback test on fiber/serdes parts. This patch prevents that and adds a check prior to calling any phy function. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netdev: add more functions to netdevice opsStephen Hemminger2008-11-20
| | | | | | | | | | | | | | | | | | | | | | | | This patch moves neigh_setup and hard_start_xmit into the network device ops structure. For bisection, fix all the previously converted drivers as well. Bonding driver took the biggest hit on this. Added a prefetch of the hard_start_xmit in the fast path to try and reduce any impact this would have. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: Fix tx/rx_ring_count parameters for igb on suspend/resume/ring resizeAlexander Duyck2008-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When suspending the device the ring structure is freed which causes it to loose track of the count. To resolve this we need to move the ring count outside of the ring structure and store it in the adapter struct. In addition to resolving the suspend/resume issue this patch also addresses issues seen in the event of memory allocation errors causing uneven ring sizes on multiple queues. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: simplify swap in clean_rx_irq if using packet splitAlexander Duyck2008-11-20
| | | | | | | | | | | | | | | | | | | | This update replaces the xchg calls that were added with a pair of assignments as there is no need for the xchg calls and they were found to cause issues on some architectures. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | igb: convert to net_device_opsStephen Hemminger2008-11-20
| | | | | | | | | | | | | | Convert to new network device ops interface. Compile tested only. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2008-11-19
|\| | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/isdn/i4l/isdn_net.c fs/cifs/connect.c
| * igb: use dev_printk instead of printkBjorn Helgaas2008-11-16
| | | | | | | | | | | | | | | | Use dev_printk() instead of printk() to give a little more context and use consistent format. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
| * igb: Use device_set_wakeup_enable\"Rafael J. Wysocki\2008-11-16
| | | | | | | | | | | | | | | | | | | | | | | | Since dev->power.should_wakeup bit is used by the PCI core to decide whether the device should wake up the system from sleep states, set/unset this bit whenever WOL is enabled/disabled using igb_set_wol(). Accordingly, use device_can_wakeup() for checking if wake-up is supported by the device. Signed-off-by: "Rafael J. Wysocki" <rjw@sisk.pl> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | netdevice: safe convert to netdev_priv() #part-2Wang Chen2008-11-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have some reasons to kill netdev->priv: 1. netdev->priv is equal to netdev_priv(). 2. netdev_priv() wraps the calculation of netdev->priv's offset, obviously netdev_priv() is more flexible than netdev->priv. But we cann't kill netdev->priv, because so many drivers reference to it directly. This patch is a safe convert for netdev->priv to netdev_priv(netdev). Since all of the netdev->priv is only for read. But it is too big to be sent in one mail. I split it to 4 parts and make every part smaller than 100,000 bytes, which is max size allowed by vger. Signed-off-by: Wang Chen <wangchen@cn.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | drivers/net: Kill now superfluous ->last_rx stores.David S. Miller2008-11-04
| | | | | | | | | | | | | | | | | | | | | | | | | | The generic packet receive code takes care of setting netdev->last_rx when necessary, for the sake of the bonding ARP monitor. Drivers need not do it any more. Some cases had to be skipped over because the drivers were making use of the ->last_rx value themselves. Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: convert more to %pMJohannes Berg2008-10-27
|/ | | | | | | | | A number of places still use %02x:...:%02x because it's in debug statements or for no real reason. Make a few of them use %pM. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: add IGB_DCA instead of selecting INTEL_IOATDMAJeff Kirsher2008-10-22
| | | | | | | | Add a bool IGB_DCA defined to y if IGB and DCA are enabled, but IGB isn't y while DCA=m. And thus remove the need to select INTEL_IOATDMA when IGB is enabled, so that non-x86 architectures can build the igb driver. Based on work/patch from Brice Goglin <brice@myri.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: fix tx data corruption with transition to L0s on 82575Alexander Duyck2008-10-22
| | | | | | | | | | The 82575 has an issue in which the DMA will go out of sync if the link partner goes into an L0s state. To prevent this we set the pci-e link partner capability bits to disable the L0s transition on the hw. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: clean up a stray fake netdev code left in rx pathAlexander Duyck2008-09-03
| | | | | | | | Remove code that was in place to support fake netdev Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: remove unneeded cleaned variable in clean_tx_irq pathAlexander Duyck2008-09-03
| | | | | | | | | The cleaned variable can be replaced by the count of packets cleaned during the tx interrupt routine so it can be removed. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: remove 82576 quad adapterAlexander Duyck2008-08-27
| | | | | | | | | Disable support for device 8086:10E8. Currently the result of loading the driver with the device present causes system instability. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: fix setting the number of tx queuesAlexander Duyck2008-08-27
| | | | | | | | | The real_num_tx_queues was not being set when in MSI-X only mode. This patch corrects that path so all interrupt types are correctly configured. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: ethtool -d reads EICR which is incorrect as it is read on clearAlexander Duyck2008-08-27
| | | | | | | | | | | Ethtool -d is reading the EICR and ICR registers which is currently clearing these registers and masking off interrupts. To prevent this we read the EICS and ICS equivilents as they can be read without clearing or masking. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: force all queues to interrupt once every 2 secondsAlexander Duyck2008-08-27
| | | | | | | | | Set the EICS bit for each of the RX queues at least once every 2 seconds to prevent the rx queues from stalling. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: remove igb_init_managability as it is deprecatedAlexander Duyck2008-08-07
| | | | | | | | | | igb_init_managability does not actually perform any function as the two registers it attempts to write are both read only on the host. This patch removes the function and all references to it from the driver. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: remove three redundant functions left in the codeAlexander Duyck2008-08-07
| | | | | | | | | Three functions were left in the code that are no longer used. I am removing these functions just to keep the code clean. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: correct issue of set_mta member of mac.ops not being populatedAlexander Duyck2008-08-07
| | | | | | | | The igb_mta_set function was not being correctly used Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: fixes 82576 serdes init to correctly support manual flow control changesAlexander Duyck2008-08-07
| | | | | | | | | This patch changes the PCS configuration for serdes so that the flow control options change be set via the ethtool -A option. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: fix null pointer dereference seen with fiber NICsAlexander Duyck2008-08-07
| | | | | | | | | With a fiber or serdes NIC installed the driver was causing a null pointer dereference on driver unload. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: fix commentsAlexander Duyck2008-08-07
| | | | | | | | The internal name was used in comments, replaced with silicon part number. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* net: igb_main.c fix sparse integer as NULL pointer warningHarvey Harrison2008-07-22
| | | | | | | drivers/net/igb/igb_main.c:388:20: warning: Using plain integer as NULL pointer Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb/ixgbe/e1000e: resolve tx multiqueue bugJeff Kirsher2008-07-18
| | | | | | | | | | | With the recent changes to tx mutiqueue, igb/ixgbe/e1000e was not calling netif_tx_start_all_queues() before calling netif_tx_wake_all_queues(). This causes an issue during loading of the driver. In addition, updated e1000e to use the updated tx mutliqueue api. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: Use queue aware tests throughout.David S. Miller2008-07-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This effectively "flips the switch" by making the core networking and multiqueue-aware drivers use the new TX multiqueue structures. Non-multiqueue drivers need no changes. The interfaces they use such as netif_stop_queue() degenerate into an operation on TX queue zero. So everything "just works" for them. Code that really wants to do "X" to all TX queues now invokes a routine that does so, such as netif_tx_wake_all_queues(), netif_tx_stop_all_queues(), etc. pktgen and netpoll required a little bit more surgery than the others. In particular the pktgen changes, whilst functional, could be largely improved. The initial check in pktgen_xmit() will sometimes check the wrong queue, which is mostly harmless. The thing to do is probably to invoke fill_packet() earlier. The bulk of the netpoll changes is to make the code operate solely on the TX queue indicated by by the SKB queue mapping. Setting of the SKB queue mapping is entirely confined inside of net/core/dev.c:dev_pick_tx(). If we end up needing any kind of special semantics (drops, for example) it will be implemented here. Finally, we now have a "real_num_tx_queues" which is where the driver indicates how many TX queues are actually active. With IGB changes from Jeff Kirsher. Signed-off-by: David S. Miller <davem@davemloft.net>
* netdev: Kill NETIF_F_MULTI_QUEUE.David S. Miller2008-07-17
| | | | | | | There is no need for a feature bit for something that can be tested by simply checking the TX queue count. Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: Kill CONFIG_NETDEVICES_MULTIQUEUE references, no longer exists.David S. Miller2008-07-17
| | | | Signed-off-by: David S. Miller <davem@davemloft.net>
* netdrv intel: always enable VLAN filtering except in promiscous modePatrick McHardy2008-07-16
| | | | | | | | | | | | Currently VLAN filtering is enabled when the first VLAN is added. Obviously before that there's no point in receiving any VLAN packets. Now that we disable VLAN filtering in promiscous mode, we can keep the VLAN filters enabled the remaining time. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* netdrv intel: disable VLAN filtering in promiscous modePatrick McHardy2008-07-16
| | | | | | | | | | | | | | | As discussed in this thread: http://www.mail-archive.com/netdev@vger.kernel.org/msg53976.html promiscous mode means to disable *all* filters. Currently only unicast and multicast filtering is disabled. This patch changes all Intel drivers to also disable VLAN filtering. Signed-off-by: Patrick McHardy <kaber@trash.net> Acked-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Acked-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* igb: Improve multiqueue AIM supportAlexander Duyck2008-07-11
| | | | | | | | | | | | | Improve multiqueue performance Change itr_val to reflect ITR timer value instead of ints/sec Cleaned up AIM algorithms in general Based on work by Mitch Williams Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Acked-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* igb: unused variable warning in igb removeAlexander Duyck2008-07-11
| | | | | | | | | Wrap hw variable declaration in DCA flags to prevent unused variable warning during compilation. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>