aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/e1000
Commit message (Collapse)AuthorAge
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* e100, e1000, ixgb: increment version numbersAuke Kok2006-09-27
| | | | | | | | e100-3.5.17-k2 e1000-7.2.9-k2 ixgb-1.0.117-k2 Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: possible memory leak in e1000_set_ringparamVasily Averin2006-09-27
| | | | | | | | | | Memory allocated for new tx_ring and rx_ring leaks if e1000_setup_XX_resources() fails.c Also this patch reduces stack usage (removed tx_new and rx_new) and uses kzalloc instead kmalloc+memset(0) Signed-off-by: Vasily Averin <vvs@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: Janitor: Use #defined values for literalsLinas Vepstas2006-09-27
| | | | | | | Minor janitorial patch: use #defines for literal values. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: don't strip vlan ID if 8021q claims itBruce Allan2006-09-27
| | | | | Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: rework polarity, NVM, eeprom code and fixes.Jeff Kirsher2006-09-27
| | | | | | | | | | | | Several minor issues exist in the low-level device handling code of e1000. The NVM and EEPROM writing/reading code was updated which fixes unneeded delays, adds proper eeprom aqcuiring steps and handle shadow ram and flash access. Minor cosmetic adjustments to the polarity code adding symbols. PHY reset code mistakenly distinguished between MAC types instead of PHY types, and was fixes. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: driver state fixes (race fix)Auke Kok2006-09-27
| | | | | | | | | | We were plagued by our interrupt handler posting a watchdog event which could occur when our adapter was going down in case a late packet arrived just before e1000_down() finished. This caused the watchdog timer to start after the NIC was down and keep rescheduling it every N seconds. Once the driver unloaded it would panic. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: reduce RAR entries available for ICH8Jeff Kirsher2006-09-27
| | | | | | | | Manageability is using one more RAR entry than we anticipated earlier for ICH8. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: add PCI-E capability detection codeJeff Kirsher2006-09-27
| | | | | | | Add code to display the detected PCI-E bus width. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: handle manageability for pci-e adapters at PHY powerdownBruce Allan2006-09-27
| | | | | | | | When powering down the PHY (if WoL is disabled) we should only check copper PHY's and handle PCI-E adapters differently. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: gather hardware bit tweaks.Jeff Kirsher2006-09-27
| | | | | | | | Several hardware bits were set all over the driver and have been consolidated into a single function. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: Maybe stop TX if not enough free descriptorsJesse Brandeburg2006-09-27
| | | | | | Cc: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: Jumbo frames fixes for 82573Bruce Allan2006-09-27
| | | | | | | | | | Disable jumbo frames for 82573L alltogether and when ASPM is enabled since the hardware has problems with it. For the NICs that do support this in the 82573 series we set ERT_2048 to attempt to receive as much traffic as early as we can. Signed-off-by: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: Fix MANC detection for PCIE adaptersJeff Kirsher2006-09-27
| | | | | | | | | Several manageability capability detection parts hinted towards our code being incomplete for PCI-E. According to spec, we do not want to poke any MANC bits at all. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: allow ethtool to pass arbitrary speed advertismentJeff Kirsher2006-09-27
| | | | | | | | | | With a patch, ethtool can now signify the driver to advertise more than just a single speed/duplex setting. This allows you to tell the card to advertise in 10/100 in any speed if you don't have a gigabit switch for instance. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: add multicast stats countersMitch Williams2006-09-27
| | | | | | | | Add 4 multicast and broadcast hardware counters (rx/tx), and eliminate as many non-hardware counters as possible. Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: remove unused code and make symbols staticNicholas Nunley2006-09-27
| | | | | Signed-off-by: Nicholas Nunley <nicholas.d.nunley@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: add enums for several link propertiesJeff Kirsher2006-09-27
| | | | | Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: rename flow control symbolsJeff Kirsher2006-09-27
| | | | | Sogned-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e1000: keep .suspend and .resume driver methods in CONFIG_PMAuke Kok2006-09-27
| | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e100, e1000, ixgb: Fix an impossible memory overwrite bugAuke Kok2006-09-27
| | | | | | | | | We keep getting requests from people that think that this might be an exploitable hole where we would overwrite 4 bytes in the netdev struct if the pci name would exceed 15 characters. In reality this will never happen but we fix it anyway. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* e100, e1000, ixgb: update copyright header and remove LICENSEAuke Kok2006-09-27
| | | | | | | | This update to the copyright header adds the mailinglist, and aligns it with the kernel licensing as well as remove the offending 'all rights reserved'. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
* [PATCH] restore __iomem annotations in e1000Al Viro2006-09-25
| | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Jeff Garzik <jeff@garzik.org>
* Merge branch 'upstream-linus' of ↵Linus Torvalds2006-09-24
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (217 commits) net/ieee80211: fix more crypto-related build breakage [PATCH] Spidernet: add ethtool -S (show statistics) [NET] GT96100: Delete bitrotting ethernet driver [PATCH] mv643xx_eth: restrict to 32-bit PPC_MULTIPLATFORM [PATCH] Cirrus Logic ep93xx ethernet driver r8169: the MMIO region of the 8167 stands behin BAR#1 e1000, ixgb: Remove pointless wrappers [PATCH] Remove powerpc specific parts of 3c509 driver [PATCH] s2io: Switch to pci_get_device [PATCH] gt96100: move to pci_get_device API [PATCH] ehea: bugfix for register access functions [PATCH] e1000 disable device on PCI error drivers/net/phy/fixed: #if 0 some incomplete code drivers/net: const-ify ethtool_ops declarations [PATCH] ethtool: allow const ethtool_ops [PATCH] sky2: big endian [PATCH] sky2: fiber support [PATCH] sky2: tx pause bug fix drivers/net: Trim trailing whitespace [PATCH] ehea: IBM eHEA Ethernet Device Driver ... Manually resolved conflicts in drivers/net/ixgb/ixgb_main.c and drivers/net/sky2.c related to CHECKSUM_HW/CHECKSUM_PARTIAL changes by commit 84fa7933a33f806bbbaae6775e87459b1ec584c0 that just happened to be next to unrelated changes in this update.
| * e1000, ixgb: Remove pointless wrappersJeff Garzik2006-09-19
| | | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] e1000 disable device on PCI errorLinas Vepstas2006-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A recent patch in -mm3 titled "gregkh-pci-pci-don-t-enable-device-if-already-enabled.patch" causes pci_enable_device() to be a no-op if the kernel thinks that the device is already enabled. This change breaks the PCI error recovery mechanism in the e1000 device driver, since, after PCI slot reset, the card is no longer enabled. This is a trivial fix for this problem. Tested. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> Cc: John Ronciak <john.ronciak@intel.com> Cc: Jesse Brandeburg <jesse.brandeburg@intel.com> Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Acked-by: Auke Kok <auke-jan.h.kok@intel.com> Cc: Jeff Garzik <jeff@garzik.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * drivers/net: const-ify ethtool_ops declarationsJeff Garzik2006-09-13
| | | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * [PATCH] e1000: revert 'e1000: Remove 0x1000 as supported device'Auke-Jan H Kok2006-09-12
| | | | | | | | | | | | | | | | | | | | | | | | | | The commit 'e1000: Remove 0x1000 as supported device' (Jeff Kirsher, 673a052fde79ab5e9dce569b0336358812ddba2d) Removes PIC device ID 8086:1000 from the list of supported devices. A fix was submitted for the original issue (commit 6a9516989f94df10d9a27ba543c6b53b3e69c84a). This commit reverts commit 673a052fde79ab5e9dce569b0336358812ddba2d and re-enables 82542rev3 chips completely. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * Merge branch 'upstream-fixes' into upstreamJeff Garzik2006-09-12
| |\
| * | [PATCH] make drivers/net/e1000/e1000_hw.c:e1000_phy_igp_get_info() staticAdrian Bunk2006-09-06
| | | | | | | | | | | | | | | | | | | | | This patch makes the needlessly global e1000_phy_igp_get_info() static. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Jeff Garzik <jeff@garzik.org>
| * | e1000: Increment driver version to 7.2.7-k2Auke Kok2006-08-31
| | | | | | | | | | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: clean up skb allocation codeChristoph Hellwig2006-08-31
| | | | | | | | | | | | | | | | | | Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: Add PCI ID 0x10a4 for our new 4-port PCI-Express deviceJesse Brandeburg2006-08-31
| | | | | | | | | | | | | | | | | | | | | | | | Device 0x10a4 is a double 82571 on a single PCI-Express card and has 4 gigabit capable ports. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: unify WoL capability detection codeJesse Brandeburg2006-08-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | WoL is constantly giving problems and needed a rewrite. Consolidates all WoL capabilities into a single function, and disables WoL for all other ports on the device except for port A. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: Use module param array codeAuke Kok2006-08-28
| | | | | | | | | | | | | | | | | | | | | Use module param array code to distinguish between defaults and user specified values. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: remove unused part_num reading codeAuke Kok2006-08-28
| | | | | | | | | | | | | | | | | | | | | Remove the code that reads part_num from the EEPROM. This part number is never displayed or queryable by the user. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: error out if we cannot enable PCI device on resumeAuke Kok2006-08-28
| | | | | | | | | | | | | | | | | | Do not ignore errors returned by pci_enable_device, instead error out. Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: ring buffers resources cleanupVasily Averin2006-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Memory leak was found in 2.6.18-rc4 and e1000 7.2.7 from sourceforge: We should free resources allocated for previous rings if following allocation fails. Signed-off-by: Vasily Averin <vvs@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: e1000_probe resources cleanupVasily Averin2006-08-28
| | | | | | | | | | | | | | | | | | | | | | | | Fix resources cleanup in e1000_probe() Signed-off-by: Vasily Averin <vvs@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: IRQ resources cleanupVasily Averin2006-08-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | irq leak was found in 2.6.18-rc4 and e1000 7.2.7 from sourceforge: if e1000_up fails in e1000_open() we do not free allocated irq Signed-off-by: Vasily Averin <vvs@sw.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | e1000: Whitespace cleanup, cosmetic changesAuke Kok2006-08-28
| | | | | | | | | | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| * | Merge branch 'upstream-fixes' of ↵Jeff Garzik2006-08-24
| |\ \ | | | | | | | | | | | | git://lost.foo-projects.org/~ahkok/git/netdev-2.6 into tmp
| | * | e1000: Increment driver version to 7.1.9-k6Auke Kok2006-08-16
| | | | | | | | | | | | | | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Disable aggressive clocking on esb2 with SERDES portJeff Kirsher2006-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Disable aggressive clocking on esb2 with SERDES port as it causes hardware problems. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Force full DMA clocking for 10/100 speedJeff Kirsher2006-08-16
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Allow NVM to setup LPLU for IGP2 and IGP3Jeff Kirsher2006-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow NVM to setup LPLU for IGP2 and IGP3. Only IGP needs LPLU D3 disabled during init here. Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: explicit locking for two ethtool path functionsJesse Brandeburg2006-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Explicitly lock two more ethtool entry points completely instead of the hardware reset only to prevent a race condition. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Explicitly power up the PHY during loopback testing.Jesse Brandeburg2006-08-16
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Remove 0x1000 as supported deviceJeff Kirsher2006-08-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove pci ID 8086:1000 from the list fo supported devices. This device has not functioned with the driver for very long (since v. 5.2.4!) and we lack the resources to come with a substantial fix. There are only few cards of this type out there. Signed-off-by: Jeff Kirsher <Jeffrey.t.kirsher@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
| | * | e1000: Same cosmetic fix as earlier sent out for IPV4.Auke Kok2006-08-16
| | | | | | | | | | | | | | | | Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>