summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* qeth: avoid qeth recovery problemsUrsula Braun2008-09-253-8/+15
| | | | | | | | | | | | | Do not touch IFF_UP flag during qeth recovery, but invoke dev_close() in case of failing recovery. Cancel outstanding control commands in case of Data Checks or Channel Checks. Do not invoke qeth_l2_del_all_mc() in case of a hard stop to speed up removal of qeth devices. Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* qeth: use firmware MAC-address for layer2 hsi-devicesUrsula Braun2008-09-251-1/+2
| | | | | | | | | | Real HiperSocket devices in layer2 mode have a firmware-created MAC-address. This change enables the qeth driver to use this firmware MAC-address for layer2 HiperSocket devices. Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
* Merge branch 'for-2.6.28' of git://git.marvell.com/mv643xx_eth into ↵Jeff Garzik2008-09-2524-777/+820
|\ | | | | | | upstream-next
| * mv643xx_eth: bump version to 1.4Lennert Buytenhek2008-09-191-1/+1
| | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: convert to phylibLennert Buytenhek2008-09-192-145/+105Star
| | | | | | | | | | | | | | | | | | | | | | Switch mv643xx_eth from using drivers/net/mii.c to using phylib. Since the mv643xx_eth hardware does all the link state handling and PHY polling, the driver will use phylib in the "Doing it all yourself" mode described in the phylib documentation. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Andy Fleming <afleming@freescale.com>
| * phylib: allow incremental scanning of an mii busLennert Buytenhek2008-09-192-41/+50
| | | | | | | | | | | | | | | | | | | | | | This patch splits the bus scanning code in mdiobus_register() off into a separate function, and makes this function available for calling from external code. This allows incrementally scanning an mii bus, e.g. as information about which addresses are 'safe' to scan becomes available. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Acked-by: Andy Fleming <afleming@freescale.com>
| * mv643xx_eth: enforce frequent hardware statistics pollingLennert Buytenhek2008-09-191-0/+29
| | | | | | | | | | | | | | | | If we don't poll the hardware statistics counters at least once every ~34 seconds, overflow might occur without us noticing. So, set up a timer to poll the statistics counters at least once every 30 seconds. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: deal with unexpected ethernet header sizesLennert Buytenhek2008-09-191-48/+47Star
| | | | | | | | | | | | | | | | | | | | When the IP header doesn't start 14, 18, 22 or 26 bytes into the packet (which are the only four cases that the hardware can deal with if asked to do IP checksumming on transmit), invoke the software checksum helper instead of letting the packet go out with a corrupt checksum inserted into the packet in the wrong place. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: fix receive checksummingLennert Buytenhek2008-09-191-6/+4Star
| | | | | | | | | | | | | | | | | | | | | | | | | | We have to explicitly tell the hardware to include the pseudo-header when doing receive checksumming, otherwise hardware checksumming will fail for every received packet and we'll end up setting CHECKSUM_NONE on every received packet. While we're at it, when skb->ip_summed is set to CHECKSUM_UNNECESSARY on received packets, skb->csum is supposed to be undefined, and thus there is no need to set it. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: add support for chips without transmit bandwidth controlLennert Buytenhek2008-09-141-31/+58
| | | | | | | | | | | | | | | | Add support for mv643xx_eth versions that have no transmit bandwidth control registers at all, such as the ethernet block found in the Marvell 88F6183 ARM SoC. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: avoid reading ->byte_cnt twice during receive processingLennert Buytenhek2008-09-141-2/+5
| | | | | | | | | | | | | | | | | | | | Currently, the receive processing reads ->byte_cnt twice (once to update interface statistics and once to properly size the data area of the received skb), but since receive descriptors live in uncached memory, caching this value in a local variable saves one uncached access, and increases routing performance a tiny little bit more. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: shrink default receive and transmit queue sizesLennert Buytenhek2008-09-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Since the size of the receive queue is directly related to the data cache footprint of the driver (between refilling a receive ring entry with a fresh skb and receiving a packet in that entry, queue_size - 1 other skbs will have been touched), shrink the default receive queue size to a saner number of entries, as 400 is definite overkill for almost all workloads. While we are at it, trim the default transmit queue size a bit as well. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: replace array of skbs awaiting transmit completion with a queueLennert Buytenhek2008-09-141-29/+10Star
| | | | | | | | | | | | | | | | | | | | Get rid of the skb pointer array that we currently use for transmit reclaim, and replace it with an skb queue, to which skbuffs are appended when they are passed to the xmit function, and removed from the front and freed when we do transmit queue reclaim and hit a descriptor with the 'owned by device' bit clear and 'last descriptor' bit set. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: avoid dropping tx lock during transmit reclaimLennert Buytenhek2008-09-141-15/+7Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | By moving DMA unmapping during transmit reclaim back under the netif tx lock, we avoid the situation where we read the DMA address and buffer length from the descriptor under the lock and then not do anything with that data after dropping the lock on platforms where the DMA unmapping routines are all NOPs (which is the case on all ARM platforms that mv643xx_eth is used on at least). This saves two uncached reads, which makes a small but measurable performance difference in routing benchmarks. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: switch to netif tx queue lock, get rid of private spinlockLennert Buytenhek2008-09-141-30/+55
| | | | | | | | | | | | | | | | | | | | | | | | Since our ->hard_start_xmit() method is already called under spinlock protection (the netif tx queue lock), we can simply make that lock cover the private transmit state (descriptor ring indexes et al.) as well, which avoids having to use a private lock to protect that state. Since this was the last user of the driver-private spinlock, it can be killed off. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: move all work to the napi poll handlerLennert Buytenhek2008-09-141-246/+275
| | | | | | | | | | | | | | | | | | Move link status handling, transmit reclaim and TX_END handling from the interrupt handler to the napi poll handler. This allows switching ->lock over to a non-IRQ-safe lock and removes all explicit interrupt disabling from the driver. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: transmit multiqueue supportLennert Buytenhek2008-09-051-22/+18Star
| | | | | | | | | | | | | | | | | | | | | | As all the infrastructure for multiple transmit queues already exists in the driver, this patch is entirely trivial. The individual transmit queues are still serialised by the driver's per-port private spinlock, but that will disappear (i.e. be replaced by the per-subqueue ->_xmit_lock) in a subsequent patch. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: delete unused and uninteresting interrupt source mask bitsLennert Buytenhek2008-09-051-11/+6Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete a couple of unused and uninteresting interrupt source mask bits: - The receive resource underrun interrupt sources are uninteresting because if we are in out-of-memory mode, we are already dealing with the issue, and we don't need the hardware to remind us again that we are out of memory. - The LINK and PHY interrupt sources can be coalesced into one define, since we always use them together. - The transmit resource underrun interrupt source can be disabled since we never activate the head descriptor of a paged skb until the fragments are all activated, so transmit underrun during a packet should never happen. - The INT_EXT_TX_0 define is never used. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: get rid of netif_{stop,wake}_queue() calls on link down/upLennert Buytenhek2008-09-051-19/+8Star
| | | | | | | | | | | | | | There is no need to call netif_{stop,wake}_queue() when the link goes down/up, as the networking already takes care of this internally. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: remove force_phy_addr fieldLennert Buytenhek2008-09-0520-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, there are two different fields in the mv643xx_eth_platform_data struct that together describe the PHY address -- one field (phy_addr) has the address of the PHY, but if that address is zero, a second field (force_phy_addr) needs to be set to distinguish the actual address zero from a zero due to not having filled in the PHY address explicitly (which should mean 'use the default PHY address'). If we are a bit smarter about the encoding of the phy_addr field, we can avoid the need for a second field -- this patch does that. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: smi sharing is a per-unit property, not a per-port oneLennert Buytenhek2008-09-053-12/+15
| | | | | | | | | | | | | | | | | | Which top-level unit's SMI interface to use should be a property of the top-level unit, not of the individual ports. This patch moves the ->shared_smi pointer from the per-port platform data to the global platform data. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: require contiguous receive and transmit queue numberingLennert Buytenhek2008-09-052-82/+47Star
| | | | | | | | | | | | | | Simplify receive and transmit queue handling by requiring the set of queue numbers to be contiguous starting from zero. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: get rid of compile-time configurable transmit checksummingLennert Buytenhek2008-09-051-22/+3Star
| | | | | | | | | | | | | | | | | | Get rid of the mv643xx_eth-internal MV643XX_ETH_CHECKSUM_OFFLOAD_TX compile-time option. Using transmit checksumming is the sane default, and anyone wanting to disable it should use ethtool(8) instead of recompiling their kernels. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: get rid of receive-side lockingLennert Buytenhek2008-09-051-64/+68
| | | | | | | | | | | | | | | | | | | | | | By having the receive out-of-memory handling timer schedule the napi poll handler and then doing oom processing from the napi poll handler, all code that touches receive state moves to napi context, letting us get rid of all explicit locking in the receive paths since the only mutual exclusion we need anymore at that point is protection against reentering ourselves, which is provided by napi synchronisation. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: make napi unconditionalLennert Buytenhek2008-09-051-28/+3Star
| | | | | | | | | | | | | | Make napi unconditional on the receive side, so that we can get rid of all the locking and local interrupt disabling in the receive path. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: use the SMI done interrupt to wait for SMI access completionLennert Buytenhek2008-09-051-57/+134
| | | | | | | | | | | | | | | | | | If the platform code has passed us the IRQ number of the mv643xx_eth top-level error interrupt, use the error interrupt to wait for SMI access completion instead of polling the SMI busy bit, since SMI bus accesses can take up to tens of milliseconds. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: switch ->phy_lock from a spinlock to a mutexLennert Buytenhek2008-09-051-16/+7Star
| | | | | | | | | | | | | | | | | | | | | | Since commit 81600eea98789da09a32de69ca9d3be8b9503c54 ("mv643xx_eth: use auto phy polling for configuring (R)(G)MII interface"), mv643xx_eth no longer does SMI accesses from interrupt context. The only other callers that do SMI accesses all do them from process context, which means we can switch the PHY lock from a spinlock to a mutex, and get rid of the extra locking in some ethtool methods. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: get rid of modulo operationsLennert Buytenhek2008-09-051-8/+24
| | | | | | | | | | | | | | Get rid of the modulo operations that are currently used for computing successive TX/RX descriptor ring indexes. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: get rid of IRQF_SAMPLE_RANDOMLennert Buytenhek2008-09-051-2/+1Star
| | | | | | | | | | | | | | | | Using IRQF_SAMPLE_RANDOM for the mv643xx_eth interrupt handler significantly increases interrupt processing overhead, so get rid of it. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: fix receive buffer DMA unmappingLennert Buytenhek2008-09-051-1/+1
| | | | | | | | | | | | | | | | When tearing down a DMA mapping for a receive buffer, we should pass dma_unmap_single() the exact same address that dma_map_single() gave us when we originally set up the mapping. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
| * mv643xx_eth: fix 'netdev_priv(dev) == dev->priv' assumptionLennert Buytenhek2008-09-051-1/+1
| | | | | | | | Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
* | Merge branch 'davem-next' of ↵David S. Miller2008-09-2577-2376/+3422
|\ \ | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
| * | bonding: add more ethtool supportStephen Hemminger2008-09-251-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows reporting the link, checksum, and feature settings of bonded device by using generic hooks. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | netxen: enable msi-x for quad-gig boardsDhananjay Phadke2008-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | NX3031 firmware now supports MSI-X interrupts on Quad GbE boards. Signed-off-by: Dhananjay Phadke <dhananjay@netxen.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | sundance: set carrier status on link change eventsDan Nicholson2008-09-251-33/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check if the link is available when a changed interrupt has been received and set the carrier status appropriately. The code is copied nearly verbatim from the dl2k module. The link status could be used in more places in the driver, but this is enough to get the carrier status reported to userspace. Fixes kernel bug #7487: http://bugzilla.kernel.org/show_bug.cgi?id=7487 [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Dan Nicholson <dbn.lists@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | drivers/net: replace __FUNCTION__ with __func__Harvey Harrison2008-09-2531-235/+235
| | | | | | | | | | | | | | | | | | | | | | | | __FUNCTION__ is gcc-specific, use __func__ Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ehea: Enable DLPAR memory removeHannes Hering2008-09-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds the capability flag to the capability list for dynamic LPAR memory remove to enable this feature. Signed-off-by: Hannes Hering <hering2@de.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | [netdrvr] usb/hso: throttle to prevent loss of serial dataDenis Joseph Barrow2008-09-251-92/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch to stop loss of characters on the hso modems, this patch throttles & unthrottles the modem by not putting out urbs until the tty/line discipline layer has enough space for newly received packets. serial ports. This is required for firmware diagnostics being done at Option. Signed-off-by: Denis Joseph Barrow <D.Barow@option.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | myri10ge: use DCA if DCA is compiled as a moduleBrice Goglin2008-09-252-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Use DCA in myri10ge when CONFIG_DCA_MODULE is set as well. And thus force INTEL_IOATDMA to =y so that DCA=y if we are =y. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | cxgb3 - remove duplicate tests in lroDivy Le Ray2008-09-251-35/+0Star
| | | | | | | | | | | | | | | | | | | | | | | | The generic lro code checks TCP flags/options. Remove duplicate tests done in the driver. Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | r8169: select MII in KconfigFrancois Romieu2008-09-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | drivers/built-in.o: In function `rtl8169_gset_xmii': r8169.c:(.text+0x82259): undefined reference to `mii_ethtool_gset' Signed-off-by: Hugh Dickins <hugh@veritas.com> Acked-by: Francois Romieu <romieu@fr.zoreil.com> Cc: Edward Hsu <edward_hsu@realtek.com.tw> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ehea: fix mutex and spinlock useSebastien Dugue2008-09-251-22/+4Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Looks like to me that the ehea_fw_handles.lock mutex and the ehea_bcmc_regs.lock spinlock are taken much longer than necessary and could as well be pushed inside the functions that need them (ehea_update_firmware_handles() and ehea_update_bcmc_registrations()) rather than at each callsite. Signed-off-by: Sebastien Dugue <sebastien.dugue@bull.net> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: fix DCA dependency in KconfigJesse Brandeburg2008-09-251-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ixgbe can depend on dca IF it is enabled. So if we are compiled as IXGBE=y, and DCA is enabled, then we must force INTEL_IOATDMA and therefore DCA to be =y also. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: whitespace/formatting cleanupAlexander Duyck2008-09-251-71/+54Star
| | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up some whitespace items, reorders a couple of functions, and removes some outdated comments. 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>
| * | ixgbe: correctly add and remove napi queuesAlexander Duyck2008-09-251-100/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch corrects support for NAPI so that queues are correctly added and removed during suspend/resume in the event that the number of MSI-X vectors changes. 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>
| * | ixgbe: Whitespace, copyright update and version number change patchPeter P Waskiewicz2008-09-259-300/+266Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch cleans up a bit of whitespace issues with the driver, updates the copyright information, and bumps the version number up. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: bump versionJeff Kirsher2008-09-251-1/+1
| | | | | | | | | | | | | | | | | | Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: xmit frame refactorJesse Brandeburg2008-09-251-25/+17Star
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ixgbe_xmit_frame can be refactored to use fewer locals and better utilize common kernel macros. also fixed minor buglet with internal to driver vlan flag variable being passed incorrectly. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: lower stack space usageJesse Brandeburg2008-09-251-9/+6Star
| | | | | | | | | | | | | | | | | | | | | | | | some functions were un-necessarily using local variables. Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
| * | ixgbe: cleanup definesJesse Brandeburg2008-09-251-7/+0Star
| | | | | | | | | | | | | | | | | | Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>