aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/arm
Commit message (Collapse)AuthorAgeFilesLines
* netdev: drivers should make ethtool_ops constStephen Hemminger2009-09-023-3/+3
| | | | | | | No need to put ethtool_ops in data, they should be const. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2009-09-021-2/+2
|\ | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/yellowfin.c
| * net: Rename MAC platform driver for w90p910 platformWan ZongShun2009-08-181-2/+2
| | | | | | | | | | | | | | | | | | Due to I modified the corresponding platform device name, so I make the patch to rename MAC platform driver for w90p910 platform. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Add support for w90p910 mac driverWan ZongShun2009-08-131-94/+112
| | | | | | | | | | | | | | | | I fixed up my mac driver, which relatives to previous mac driver actually in the tree. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2009-07-234-2/+1115
|\ \ | |/ | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/wireless/iwmc3200wifi/netdev.c net/wireless/scan.c
| * register at91_ether using platform_driver_probeUwe Kleine-König2009-07-221-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | at91ether_probe lives in .init.text, so using platform_driver_register to register it is wrong because binding a device after the init memory is discarded (e.g. via sysfs) results in an oops. As requested by David Brownell platform_driver_probe is used instead of moving the probe function to .devinit.text as proposed initially. This saves some memory, but devices registered after the driver is probed are not bound (probably there are none) and binding via sysfs isn't possible. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: David Brownell <dbrownell@users.sourceforge.net> Acked-by: Andrew Victor <linux@maxim.org.za> Signed-off-by: David S. Miller <davem@davemloft.net>
| * Add mac driver for w90p910Wan ZongShun2009-07-203-0/+1114
| | | | | | | | | | | | | | Add mac driver support for evaluation board based on w90p910. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Merge branch 'master' of ↵David S. Miller2009-07-161-1/+3
|\ \ | |/ | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/wireless/orinoco/main.c
| * netdev: restore MTU change operationBen Hutchings2009-07-121-0/+1
| | | | | | | | | | | | | | | | | | alloc_etherdev() used to install a default implementation of this operation, but it must now be explicitly installed in struct net_device_ops. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
| * netdev: restore MAC address set and validate operationsBen Hutchings2009-07-121-1/+2
| | | | | | | | | | | | | | | | | | alloc_etherdev() used to install default implementations of these operations, but they must now be explicitly installed in struct net_device_ops. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: use NETDEV_TX_OK instead of 0 in ndo_start_xmit() functionsPatrick McHardy2009-07-054-5/+5
|/ | | | | | | | | | | This patch is the result of an automatic spatch transformation to convert all ndo_start_xmit() return values of 0 to NETDEV_TX_OK. Some occurences are missed by the automatic conversion, those will be handled in a seperate patch. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2009-06-151-12/+14
|\ | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: Documentation/feature-removal-schedule.txt drivers/scsi/fcoe/fcoe.c net/core/drop_monitor.c net/core/net-traces.c
| * IXP4xx: Change QMgr function names to qmgr_stat_*_watermark and clean the ↵Krzysztof Hałasa2009-05-251-7/+6
| | | | | | | | | | | | comments. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Whitespace fixes in the Ethernet driver.Krzysztof Hałasa2009-05-231-5/+5
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Ethernet and WAN drivers now support "high" hardware queues.Krzysztof Hałasa2009-05-231-6/+9
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
* | net: use symbolic values for ndo_start_xmit() return codesPatrick McHardy2009-06-132-2/+2
| | | | | | | | | | | | | | | | | | | | Convert magic values 1 and -1 to NETDEV_TX_BUSY and NETDEV_TX_LOCKED respectively. 0 (NETDEV_TX_OK) is not changed to keep the noise down, except in very few cases where its in direct proximity to one of the other values. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* | net: replace dma_sync_single with dma_sync_single_for_cpuFUJITA Tomonori2009-05-292-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | This replaces dma_sync_single() with dma_sync_single_for_cpu() because dma_sync_single() is an obsolete API; include/linux/dma-mapping.h says: /* Backwards compat, remove in 2.7.x */ #define dma_sync_single dma_sync_single_for_cpu #define dma_sync_sg dma_sync_sg_for_cpu Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Signed-off-by: David S. Miller <davem@davemloft.net>
* | ixp4xx_eth: Remove references to BUS_ID_SIZE.David S. Miller2009-05-261-2/+2
|/ | | | | | Use MII_BUS_ID_SIZE instead. Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds2009-05-101-15/+16
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (26 commits) bonding: fix panic if initialization fails IXP4xx: complete Ethernet netdev setup before calling register_netdev(). IXP4xx: use "ENODEV" instead of "ENOSYS" in module initialization. ipvs: Fix IPv4 FWMARK virtual services ipv4: Make INET_LRO a bool instead of tristate. net: remove stale reference to fastroute from Kconfig help text net: update skb_recycle_check() for hardware timestamping changes bnx2: Fix panic in bnx2_poll_work(). net-sched: fix bfifo default limit igb: resolve panic on shutdown when SR-IOV is enabled wimax: oops: wimax_dev_add() is the only one that can initialize the state wimax: fix oops if netlink fails to add attribute Bluetooth: Move dev_set_name() to a context that can sleep netfilter: ctnetlink: fix wrong message type in user updates netfilter: xt_cluster: fix use of cluster match with 32 nodes netfilter: ip6t_ipv6header: fix match on packets ending with NEXTHDR_NONE netfilter: add missing linux/types.h include to xt_LED.h mac80211: pid, fix memory corruption mac80211: minstrel, fix memory corruption cfg80211: fix comment on regulatory hint processing ...
| * IXP4xx: complete Ethernet netdev setup before calling register_netdev().Krzysztof Hałasa2009-05-091-12/+13
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: use "ENODEV" instead of "ENOSYS" in module initialization.Krzysztof Hałasa2009-05-091-3/+3
| | | | | | | | | | | | ENOSYS makes modutils complain about missing kernel module support. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
* | Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2009-04-171-1/+1
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/home/rmk/linux-2.6-arm: (48 commits) [ARM] S3C24XX: ADC: Check pending queue before freeing adc client [ARM] S3C: Fix ADC driver sparse warning [ARM] Osiris: Fix double initialisation in machine block [ARM] Anubis: Fix sparse warnings for items that should be static [ARM] JIVE: Fix sparse warnings about items which should be static [ARM] S3C: Fix sparse warning from missing 's3c_device_hwmon' [ARM] S3C24XX: Fix sparse error in gpiolib.c [ARM] 5455/1: Fix IRQ noise from VIC code [ARM] 5454/1: ep93xx_eth: fix sparse warnings [ARM] remove .gitignore from include/asm-arm Update MAINTAINERS mxc defconfig updates mx31ads: Mark as having full regulatoion constraints with 1133-EV1 board mx31ads: Depend on all the WM8350 core dependencies for WM1133-EV1 board Fix ifdef in plat-mxc/irc.c MX1ADS: remove I2C ifdefs qong: remove AIPS[12] mappings from machine-specific iotable mx31ads: imoux pins should be passed in as unsigned int MXC: remove orphan imx_init_uart() definition mx31: pin definition for csi ...
| * [ARM] 5454/1: ep93xx_eth: fix sparse warningsHartley Sweeten2009-04-161-1/+1
| | | | | | | | | | | | | | | | | | Fix 50+ sparse warnings in the ep93xx ethernet driver. warning: incorrect type in argument 1 (different address spaces) Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ether3: convert to net_device_opsAlexander Beregalov2009-04-111-6/+13
| | | | | | | | | | Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | ether1: convert to net_device_opsAlexander Beregalov2009-04-111-6/+13
| | | | | | | | | | Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | ep93xx_eth: convert to net_device_opsAlexander Beregalov2009-04-111-6/+13
| | | | | | | | | | | | | | Also make ep93xx_dev_alloc static. Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | at91_ether: convert to net_device_opsAlexander Beregalov2009-04-111-13/+19
| | | | | | | | | | Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | am79c961a: convert to net_device_opsAlexander Beregalov2009-04-111-9/+15
|/ | | | | Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'origin' into develRussell King2009-03-283-11/+11
|\ | | | | | | | | Conflicts: sound/soc/pxa/pxa2xx-i2s.c
| * Merge branch 'master' of ↵David S. Miller2009-03-053-7/+7
| |\ | | | | | | | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 Conflicts: drivers/net/tokenring/tmspci.c drivers/net/ucc_geth_mii.c
| * | Revert "etherh: Get working again."David S. Miller2009-02-222-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7d3d5ec168f1f40e8547d2a1659670ef222a053b. Russell is going to merge this in via the ARM tree. Signed-off-by: David S. Miller <davem@davemloft.net>
| * | etherh: Get working again.Russell King2009-02-212-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further to a71558d, this is round five of fixes to make etherh work again. As mainline kernels stand, the fixes in b9a9b4b were the wrong approach. The 8390 driver was structured by Al Viro to allow the flexibility required by platforms. lib8390.c contains the core code which drivers explicitly include: - 8390.c includes lib8390.c to provide the standard ISA based driver. - etherh.c includes it with the accessors defined for RiscPC platforms, where it is addressed via the MMIO accessors with a device dependent register spacing. Other platform drivers do something similar. However, b9a9b4b caused the kernel to contain not only the etherh private build of lib8390 (included in etherh.c) but also lib8390.c itself, and referred the new net_device_ops methods to the ISA version. The result of this is is not pretty: Unable to handle kernel paging request at virtual address 12032030 pgd = c8330000 [12032030] *pgd=00000000 Internal error: Oops: 18331805 [#1] Modules linked in: ipv6 CPU: 0 Not tainted (2.6.29-rc3 #167) PC is at do_set_multicast_list+0xd0/0x190 LR is at bitrev32+0x28/0x34 pc : [<c017aab4>] lr : [<c0139120>] psr: a0000093 sp : c8321d9c ip : c8321d84 fp : c8321dbc r10: c80c6800 r9 : 00000000 r8 : c80c6b60 r7 : c80c6b80 r6 : cc80c800 r5 : c80c6800 r4 : 00000000 r3 : cc80c80c r2 : 00000004 r1 : 00000007 r0 : e0000000 Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user ... Fix up b9a9b4b by making etherh's net_device_ops refer to the internal lib8390 functions, and remove the build of the ISA 8390.c driver. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | Merge branch 'master' of /home/davem/src/GIT/linux-2.6/David S. Miller2009-02-041-1/+1
| |\ \
| * | | net: struct device - replace bus_id with dev_name(), dev_set_name()Kay Sievers2009-01-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: David S. Miller <davem@davemloft.net>
| * | | Merge branch 'master' of ↵David S. Miller2009-01-261-10/+10
| |\ \ \ | | | | | | | | | | | | | | | master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
| * | | | net: Remove redundant NAPI functionsBen Hutchings2009-01-212-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Following the removal of the unused struct net_device * parameter from the NAPI functions named *netif_rx_* in commit 908a7a1, they are exactly equivalent to the corresponding *napi_* functions and are therefore redundant. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | | | [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.hRussell King2009-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | | | | Merge branch 'for-russell' of ↵Russell King2009-03-171-7/+13
|\ \ \ \ \ | |_|_|_|/ |/| | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6 into devel
| * | | | IXP4xx: add Ethernet and NPE support for IXP43x CPU.Krzysztof Hałasa2009-03-171-7/+13
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
* | | | | Merge branch 'master' of /home/davem/src/GIT/linux-2.6/David S. Miller2009-03-042-6/+6
|\ \ \ \ \ | |/ / / /
| * | | | [ARM] RiscPC: Fix etherh oopsRussell King2009-02-222-6/+6
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The 8390 driver was structured by Al Viro to allow the flexibility required by platforms. lib8390.c contains the core code which drivers explicitly include: - 8390.c includes lib8390.c to provide the standard ISA based driver. - etherh.c includes it with the accessors defined for RiscPC platforms, where it is addressed via the MMIO accessors with a device dependent register spacing. Other platform drivers do something similar. However, b9a9b4b caused the kernel to contain not only the etherh private build of lib8390 (included in etherh.c) but also lib8390.c itself, and referred the new net_device_ops methods to the ISA version. The result of this is is not pretty: Unable to handle kernel paging request at virtual address 12032030 pgd = c8330000 [12032030] *pgd=00000000 Internal error: Oops: 18331805 [#1] Modules linked in: ipv6 CPU: 0 Not tainted (2.6.29-rc3 #167) PC is at do_set_multicast_list+0xd0/0x190 LR is at bitrev32+0x28/0x34 pc : [<c017aab4>] lr : [<c0139120>] psr: a0000093 sp : c8321d9c ip : c8321d84 fp : c8321dbc r10: c80c6800 r9 : 00000000 r8 : c80c6b60 r7 : c80c6b80 r6 : cc80c800 r5 : c80c6800 r4 : 00000000 r3 : cc80c80c r2 : 00000004 r1 : 00000007 r0 : e0000000 Flags: NzCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment user ... Fix up b9a9b4b by making etherh's net_device_ops refer to the internal lib8390 functions, and remove the build of the ISA 8390.c driver. Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | | | net: more timeouts that reach -1Roel Kluin2009-03-041-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | with while (timeout-- > 0); timeout reaches -1 after the loop, so the tests below are off by one. also don't do an '< 0' test on an unsigned. Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | | [ARM] etherh: continue fixing build failureRussell King2009-01-281-1/+1
| |/ |/| | | | | | | | | | | | | Further to 483a2b3a3182abcb7fcea986d7ea13e793bb00b1, also fix: drivers/net/arm/etherh.c:649: error: 'eth_set_mac_addr' undeclared here (not in a function) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | Merge master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2009-01-261-10/+10
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/home/rmk/linux-2.6-arm: (22 commits) [ARM] fix section-based ioremap [NET] am79c961a: fix spin_lock usage [ARM] omap: usb: thou shalt not provide empty release functions [ARM] omap: watchdog: allow OMAP watchdog driver on OMAP34xx platforms [ARM] 5369/1: omap mmc: Add new omap hsmmc controller for 2430 and 34xx, v3 [ARM] clkdev: fix clock matching [ARM] 5370/1: at91: fix rm9200 watchdog [ARM] 5368/1: arch/arm/mach-davinci/usb.c buildfix [ARM] 5365/1: s3cmci: Use new include path of dma.h [ARM] fix StrongARM-11x0 page copy implementation [ARM] omap: ensure OMAP drivers pass a struct device to clk_get() ARM: OMAP: Fix compile for h3 MMC ARM: OMAP: Remove unused platform devices, v3 ARM: OMAP: Fix ASoC by enabling writes to XCCR and RCCR McBSP registers, v3 ARM: OMAP: Fix OSK ASoC by registering I2C board info for tlvaic23 ARM: OMAP: remove duplicated #include's ARM: OMAP: Fix DMA CCR programming for request line > 63, v3 ARM: OMAP: Fix gpio.c compile on 15xx with CONFIG_DEBUGFS ARM: OMAP: Fix compile for beagle ARM: OMAP: Fix gpio by switching to generic gpio calls, v2 ...
| * [NET] am79c961a: fix spin_lock usageUwe Kleine-König2009-01-241-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | spin_lock functions take a pointer to the lock, not the lock itself. This error was noticed by compiling ebsa110_defconfig for linux-rt where the locking functions obviously are more picky about their arguments. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Roel Kluin <12o3l@tiscali.nl> Cc: Steven Rostedt <srostedt@redhat.com> Cc: netdev@vger.kernel.org Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | ARM etherh: Fix build failure.David S. Miller2009-01-141-1/+1
|/ | | | | | | | Reported by Russell King: drivers/net/arm/etherh.c:649: error: unknown field 'ndo_set_mac_addr' specified in initializer Signed-off-by: David S. Miller <davem@davemloft.net>
* netdev: missing validate_address hooksStephen Hemminger2009-01-111-0/+1
| | | | | | | | Some devices were converted incorrectly and are missing the validate address hooks. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* netdev: add missing set_mac_address hookStephen Hemminger2009-01-111-0/+1
| | | | | | | | Many drivers lost the ability to set ethernet address accidently during the net_device_ops conversion. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: KS8695: removed duplicated #includeHuang Weiyi2008-12-291-1/+0
| | | | | | | Removed duplicated include in drivers/net/arm/ks8695net.c. Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* net: Fix more NAPI interface netdev argument drop fallout.Kamalesh Babulal2008-12-292-2/+2
| | | | | | | | | | | | | | | | | | | I hit similar build failure due to the change in the netif_rx_reschedule() drivers/net/ehea/ehea_main.c: In function 'ehea_poll': drivers/net/ehea/ehea_main.c:844: warning: passing argument 1 of 'netif_rx_reschedule' from incompatible pointer type drivers/net/ehea/ehea_main.c:844: error: too many arguments to function 'netif_rx_reschedule' make[3]: *** [drivers/net/ehea/ehea_main.o] Error 1 greping through the sources for the changes missed out, we have ./drivers/net/arm/ixp4xx_eth.c:507: netif_rx_reschedule(dev, napi)) { ./drivers/net/arm/ep93xx_eth.c:310: if (more && netif_rx_reschedule(dev, napi)) ./drivers/net/wan/ixp4xx_hss.c:657: netif_rx_reschedule(dev, napi)) { Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>