linux-2.6
16 years agosfc: If AN is enabled, always read speed/duplex from the AN advertising bits
Ben Hutchings [Fri, 26 Dec 2008 21:49:25 +0000 (13:49 -0800)] 
sfc: If AN is enabled, always read speed/duplex from the AN advertising bits

When AN is enabled and the link is down the speed/duplex control bits
will not be meaningful.  Use the advertising bits instead, and mask
them with the LPA bits if and only if AN is complete (as before).

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: When disabling the NIC, close the device rather than unregistering it
Ben Hutchings [Fri, 26 Dec 2008 21:48:51 +0000 (13:48 -0800)] 
sfc: When disabling the NIC, close the device rather than unregistering it

This should reduce user confusion and may also aid recovery (ioctls
will still be available).

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: SFT9001: Add cable diagnostics
Ben Hutchings [Fri, 26 Dec 2008 21:48:00 +0000 (13:48 -0800)] 
sfc: SFT9001: Add cable diagnostics

The SFT9001 firmware implements cable diagnostics; run those and
include their results in a self-test.  In case of a cable fault, do
not fail the self-test as a whole; only faults in the NIC should cause
that.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: Add support for multiple PHY self-tests
Ben Hutchings [Fri, 26 Dec 2008 21:47:25 +0000 (13:47 -0800)] 
sfc: Add support for multiple PHY self-tests

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: Merge top-level functions for self-tests
Ben Hutchings [Fri, 26 Dec 2008 21:47:04 +0000 (13:47 -0800)] 
sfc: Merge top-level functions for self-tests

Pass in ethtool test flags to determine which tests to run.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: Clean up PHY mode management in loopback self-test
Ben Hutchings [Fri, 26 Dec 2008 21:46:38 +0000 (13:46 -0800)] 
sfc: Clean up PHY mode management in loopback self-test

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: Fix unreliable link detection in some loopback modes
Ben Hutchings [Fri, 26 Dec 2008 21:46:12 +0000 (13:46 -0800)] 
sfc: Fix unreliable link detection in some loopback modes

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosfc: Generate unique names for per-NIC workqueues
Ben Hutchings [Fri, 26 Dec 2008 21:44:39 +0000 (13:44 -0800)] 
sfc: Generate unique names for per-NIC workqueues

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: use standard ethhdr instead of ad_header
Holger Eitzenberger [Fri, 26 Dec 2008 21:41:53 +0000 (13:41 -0800)] 
802.3ad: use standard ethhdr instead of ad_header

802.3ad has its own ethhdr-like structure in the form of an ad_header,
which is at the start of both the LACPDU and marker PDU.  Both are
the same from the struct values, both are packed as well.

It's therefore perfectly fine to replace the ad_header by the ethhdr
and to remove its definition.

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: generalize out mac address initializer
Holger Eitzenberger [Fri, 26 Dec 2008 21:40:48 +0000 (13:40 -0800)] 
802.3ad: generalize out mac address initializer

Generalize out mac address initializer for the LACPDU multicast
address and use in two places.  Remove the now unused
AD_MULTICAST_LACPDU_ADDR.

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: initialize ports LACPDU from const initializer
Holger Eitzenberger [Fri, 26 Dec 2008 21:28:33 +0000 (13:28 -0800)] 
802.3ad: initialize ports LACPDU from const initializer

Save some text by initializing ports LACPDU from const initializer,
then get rid of ad_initialize_lacpdu().

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: remove typedef around ad_system
Holger Eitzenberger [Fri, 26 Dec 2008 21:27:57 +0000 (13:27 -0800)] 
802.3ad: remove typedef around ad_system

As typedefs are considered a bad thing most of the time remove the
typedef around ad_system.

Signed-off-by: Holger Eitzenberger <heitzenberger@astaro.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: turn ports is_individual into a bool
Holger Eitzenberger [Fri, 26 Dec 2008 21:27:21 +0000 (13:27 -0800)] 
802.3ad: turn ports is_individual into a bool

Turn ports is_individual into a bool.  There is no functional change.

Signed-off-by: Holger Eitzenberger <heitzenberger@astaro.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: turn ports is_enabled into a bool
Holger Eitzenberger [Fri, 26 Dec 2008 21:26:54 +0000 (13:26 -0800)] 
802.3ad: turn ports is_enabled into a bool

Turn ports is_enabled into a bool.  There is no functional change.

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years ago802.3ad: make ntt bool
Holger Eitzenberger [Fri, 26 Dec 2008 19:18:15 +0000 (11:18 -0800)] 
802.3ad: make ntt bool

Turn Need-To-Transmit port variable into a bool.  There is no
functional change.

Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoixgbe: Fix set_ringparam in ixgbe to use the same memory pools.
Peter P Waskiewicz Jr [Fri, 26 Dec 2008 09:36:33 +0000 (01:36 -0800)] 
ixgbe: Fix set_ringparam in ixgbe to use the same memory pools.

The adapter rings are kcalloc()'d, but in set_ringparam() in ixgbe_ethtool,
we replace that memory from the vmalloc() pool.  This can result in a NULL
pointer reference when trying to modify the rings at a later time, or on
device removal.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoixgbe: Fix NAPI enable/disable path when using DCB
Peter P Waskiewicz Jr [Fri, 26 Dec 2008 09:36:05 +0000 (01:36 -0800)] 
ixgbe: Fix NAPI enable/disable path when using DCB

This change allows DCB mode to change the number of queues, and presumably
the number of NAPI instances, safely.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: Init NAPI dev_list on napi_del
Peter P Waskiewicz Jr [Fri, 26 Dec 2008 09:35:35 +0000 (01:35 -0800)] 
net: Init NAPI dev_list on napi_del

The recent GRO patches introduced the NAPI removal of devices in
free_netdev.  For drivers that can change the number of queues during
driver operation, the NAPI infrastructure doesn't allow the freeing and
re-addition of NAPI entities without reloading the driver.

This change reinitializes the dev_list in each NAPI struct on delete,
instead of just deleting it (and assigning the list pointers to POISON).
Drivers that wish to remove/re-add NAPI will need to re-initialize the
netdev napi_list after removing all NAPI instances, before re-adding NAPI
devices again.

Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoigb: re-order queues to support cleaner use of ivar on 82576
Alexander Duyck [Fri, 26 Dec 2008 09:34:11 +0000 (01:34 -0800)] 
igb: re-order queues to support cleaner use of ivar on 82576

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>
16 years agoigb: defeature tx head writeback
Alexander Duyck [Fri, 26 Dec 2008 09:33:18 +0000 (01:33 -0800)] 
igb: defeature tx head writeback

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>
16 years agoipsec: Remove useless ret variable
Herbert Xu [Fri, 26 Dec 2008 09:31:18 +0000 (01:31 -0800)] 
ipsec: Remove useless ret variable

This patch removes a useless ret variable from the IPv4 ESP/UDP
decapsulation code.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoucc_geth: Eliminate the need for forward references
Anton Vorontsov [Tue, 23 Dec 2008 06:59:25 +0000 (06:59 +0000)] 
ucc_geth: Eliminate the need for forward references

This patch simply reorders some functions to eliminate the need for
forward references. No other changes than that.

Suggested-by: Timur Tabi <timur@freescale.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoatm: Driver for Solos PCI ADSL2+ card.
David Woodhouse [Tue, 23 Dec 2008 04:09:02 +0000 (04:09 +0000)] 
atm: Driver for Solos PCI ADSL2+ card.

This adds basic support for the 'Solos' PCI ADSL2+ cards being developed
by Traverse Technologies and Xrio Ltd:
http://www.traverse.com.au/productview.php?product_id=116

Signed-off-by: Nathan Williams <nathan@traverse.com.au>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agogigaset: ifdef cleanup
Tilman Schmidt [Fri, 26 Dec 2008 09:22:03 +0000 (01:22 -0800)] 
gigaset: ifdef cleanup

Remove unnecessary #ifdef-s and #if-0-ed code sections.

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agogigaset: use pr_err() and pr_info()
Tilman Schmidt [Fri, 26 Dec 2008 09:21:29 +0000 (01:21 -0800)] 
gigaset: use pr_err() and pr_info()

Switch from private printk wrapper macros to using pr_err() and
pr_info() from linux/kernel.h, at the same time unifying a few
error messages.

Signed-off-by: Tilman Schmidt <tilman@imap.cc>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agocxgb3: add control to access embedded images
Divy Le Ray [Fri, 26 Dec 2008 09:16:39 +0000 (01:16 -0800)] 
cxgb3: add control to access embedded images

Update contol path between cxgb3 and ULP modules (iWARP, iSCSI)
to provide access to firware and protocol engine info.

Signed-off-by: Divy Le Ray <divy@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wireless/prism54: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:15:03 +0000 (00:15 -0800)] 
drivers/net/wireless/prism54: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/wireless/prism54/islpci_hotplug.c:97:1: warning: symbol 'prism54_probe' was not declared. Should it be static?
  drivers/net/wireless/prism54/islpci_hotplug.c:220:1: warning: symbol 'prism54_remove' was not declared. Should it be static?
  drivers/net/wireless/prism54/islpci_hotplug.c:263:1: warning: symbol 'prism54_suspend' was not declared. Should it be static?
  drivers/net/wireless/prism54/islpci_hotplug.c:286:1: warning: symbol 'prism54_resume' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wireless/ipw2x00: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:14:41 +0000 (00:14 -0800)] 
drivers/net/wireless/ipw2x00: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/wireless/ipw2x00/ipw2100.c:5271:6: warning: symbol 'ipw2100_queues_initialize' was not declared. Should it be static?
  drivers/net/wireless/ipw2x00/ipw2100.c:5278:6: warning: symbol 'ipw2100_queues_free' was not declared. Should it be static?
  drivers/net/wireless/ipw2x00/ipw2100.c:5285:5: warning: symbol 'ipw2100_queues_allocate' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wireless/b43: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:13:46 +0000 (00:13 -0800)] 
drivers/net/wireless/b43: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/wireless/b43/phy_a.c:80:6: warning: symbol 'b43_radio_set_tx_iq' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_a.c:150:6: warning: symbol 'b43_radio_init2060' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:57:10: warning: symbol 'b43_radio_channel_codes_bg' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:218:6: warning: symbol 'b43_set_txpower_g' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:386:6: warning: symbol 'b43_nrssi_hw_write' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:393:5: warning: symbol 'b43_nrssi_hw_read' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:404:6: warning: symbol 'b43_nrssi_hw_update' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:418:6: warning: symbol 'b43_nrssi_mem_update' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:592:6: warning: symbol 'b43_calc_nrssi_slope' was not declared. Should it be static?
  drivers/net/wireless/b43/phy_g.c:1357:5: warning: symbol 'b43_radio_init2050' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wireless/ath9k: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:13:29 +0000 (00:13 -0800)] 
drivers/net/wireless/ath9k: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/wireless/ath9k/eeprom.c:195:6: warning: symbol 'ath9k_fill_eeprom' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:463:5: warning: symbol 'ath9k_check_eeprom' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:1219:6: warning: symbol 'ath9k_hw_set_def_power_per_rate_table' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:1510:6: warning: symbol 'ath9k_hw_set_4k_power_per_rate_table' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2007:5: warning: symbol 'ath9k_set_txpower' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2106:6: warning: symbol 'ath9k_set_addac' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2543:6: warning: symbol 'ath9k_eeprom_set_board_values' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2606:5: warning: symbol 'ath9k_get_eeprom_antenna_cfg' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2622:4: warning: symbol 'ath9k_hw_get_4k_num_ant_config' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2628:4: warning: symbol 'ath9k_hw_get_def_num_ant_config' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2647:4: warning: symbol 'ath9k_get_num_ant_config' was not declared. Should it be static?
  drivers/net/wireless/ath9k/eeprom.c:2790:5: warning: symbol 'ath9k_get_eeprom' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wireless: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:12:59 +0000 (00:12 -0800)] 
drivers/net/wireless: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/wireless/airo.c:3610:6: warning: symbol 'mpi_receive_802_11' was not declared. Should it be static?
  drivers/net/wireless/atmel.c:3183:6: warning: symbol 'atmel_join_bss' was not declared. Should it be static?
  drivers/net/wireless/ray_cs.c:831:5: warning: symbol 'ray_dev_init' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wan/z85230.c: fix sparse warnings: un-EXPORT symbols
Hannes Eder [Fri, 26 Dec 2008 08:12:08 +0000 (00:12 -0800)] 
drivers/net/wan/z85230.c: fix sparse warnings: un-EXPORT symbols

The symbols are only references within the translation unit they are
defined in, so un-EXPORT them und make them 'static'.

Fix this sparse warnings:

  drivers/net/wan/z85230.c:604:25: warning: symbol 'z8530_dma_sync' was not declared. Should it be static?
  drivers/net/wan/z85230.c:613:25: warning: symbol 'z8530_txdma_sync' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wan: fix sparse warning: make symbol static
Hannes Eder [Fri, 26 Dec 2008 08:11:21 +0000 (00:11 -0800)] 
drivers/net/wan: fix sparse warning: make symbol static

Fix this sparse warning:

  drivers/net/wan/x25_asy.c:623:5: warning: symbol 'x25_asy_esc' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wan: fix sparse warnings: make do-while a compound statement
Hannes Eder [Mon, 22 Dec 2008 09:17:55 +0000 (09:17 +0000)] 
drivers/net/wan: fix sparse warnings: make do-while a compound statement

Fix this sparse warnings:

  drivers/net/wan/wanxl.c:414:3: warning: do-while statement is not a compound statement
  drivers/net/wan/wanxl.c:441:3: warning: do-while statement is not a compound statement

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/tulip: fix sparse warnings: make do-while a compound statement
Hannes Eder [Fri, 26 Dec 2008 08:07:45 +0000 (00:07 -0800)] 
drivers/net/tulip: fix sparse warnings: make do-while a compound statement

Fix this sparse warnings:

  drivers/net/tulip/de2104x.c:1695:4: warning: do-while statement is not a compound statement
  drivers/net/tulip/tulip_core.c:1433:5: warning: do-while statement is not a compound statement

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/tokenring: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:07:15 +0000 (00:07 -0800)] 
drivers/net/tokenring: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/tokenring/ibmtr.c:1840:6: warning: symbol 'tok_rerun' was not declared. Should it be static?
  drivers/net/tokenring/madgemc.c:469:16: warning: symbol 'madgemc_setnselout_pins' was not declared. Should it be static?
  drivers/net/tokenring/proteon.c:286:16: warning: symbol 'proteon_setnselout_pins' was not declared. Should it be static?
  drivers/net/tokenring/skisa.c:303:16: warning: symbol 'sk_isa_setnselout_pins' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/skfp: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:06:28 +0000 (00:06 -0800)] 
drivers/net/skfp: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/skfp/skfddi.c:620:13: warning: symbol 'skfp_interrupt' was not declared. Should it be static?
  drivers/net/skfp/skfddi.c:687:25: warning: symbol 'skfp_ctl_get_stats' was not declared. Should it be static?
  drivers/net/skfp/skfddi.c:1232:6: warning: symbol 'CheckSourceAddress' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/qlge: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:04:53 +0000 (00:04 -0800)] 
drivers/net/qlge: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/qlge/qlge_ethtool.c:100:6: warning: symbol 'ql_update_stats' was not declared. Should it be static?
  drivers/net/qlge/qlge_mpi.c:22:5: warning: symbol 'ql_get_mb_sts' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/netxen: fix sparse warnings: use NULL pointer instead of plain integer
Hannes Eder [Fri, 26 Dec 2008 08:04:26 +0000 (00:04 -0800)] 
drivers/net/netxen: fix sparse warnings: use NULL pointer instead of plain integer

Fix this sparse warnings:

  drivers/net/netxen/netxen_nic_hw.c:1462:18: warning: Using plain integer as NULL pointer
  drivers/net/netxen/netxen_nic_hw.c:1536:18: warning: Using plain integer as NULL pointer

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/ixgbe: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:03:59 +0000 (00:03 -0800)] 
drivers/net/ixgbe: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/ixgbe/ixgbe_82598.c:180:5: warning: symbol 'ixgbe_get_copper_link_capabilities_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:245:5: warning: symbol 'ixgbe_setup_fc_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:729:5: warning: symbol 'ixgbe_set_vmdq_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:773:5: warning: symbol 'ixgbe_set_vfta_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:897:5: warning: symbol 'ixgbe_read_analog_reg8_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:919:5: warning: symbol 'ixgbe_write_analog_reg8_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:940:5: warning: symbol 'ixgbe_read_i2c_eeprom_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_82598.c:1000:5: warning: symbol 'ixgbe_get_supported_physical_layer_82598' was not declared. Should it be static?
  drivers/net/ixgbe/ixgbe_dcb_82598.c:100:5: warning: symbol 'ixgbe_dcb_config_packet_buffers_82598' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/irda: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 08:03:19 +0000 (00:03 -0800)] 
drivers/net/irda: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/irda/ma600-sir.c:239:5: warning: symbol 'ma600_reset' was not declared. Should it be static?
  drivers/net/irda/smsc-ircc2.c:875:5: warning: symbol 'smsc_ircc_hard_xmit_sir' was not declared. Should it be static?
  drivers/net/irda/smsc-ircc2.c:1131:6: warning: symbol 'smsc_ircc_set_sir_speed' was not declared. Should it be static?
  drivers/net/irda/smsc-ircc2.c:1897:6: warning: symbol 'smsc_ircc_sir_start' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:150:5: warning: symbol 'w83977af_open' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:313:5: warning: symbol 'w83977af_probe' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:412:6: warning: symbol 'w83977af_change_speed' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:492:5: warning: symbol 'w83977af_hard_xmit' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:734:5: warning: symbol 'w83977af_dma_receive' was not declared. Should it be static?
  drivers/net/irda/w83977af_ir.c:806:5: warning: symbol 'w83977af_dma_receive_complete' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/igb: remove dead code (function 'igb_read_pci_cfg')
Hannes Eder [Fri, 26 Dec 2008 08:02:49 +0000 (00:02 -0800)] 
drivers/net/igb: remove dead code (function 'igb_read_pci_cfg')

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>
16 years agodrivers/net/enic: fix sparse warning: make symbol static
Hannes Eder [Fri, 26 Dec 2008 08:01:18 +0000 (00:01 -0800)] 
drivers/net/enic: fix sparse warning: make symbol static

Fix this sparse warning:

  drivers/net/enic/vnic_dev.c:288:5: warning: symbol 'vnic_dev_capable' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/e1000e: fix sparse warnings: make symbols static
Hannes Eder [Mon, 22 Dec 2008 09:16:13 +0000 (09:16 +0000)] 
drivers/net/e1000e: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/e1000e/es2lan.c:1265:5: warning: symbol 'e1000_read_kmrn_reg_80003es2lan' was not declared. Should it be static?
  drivers/net/e1000e/es2lan.c:1298:5: warning: symbol 'e1000_write_kmrn_reg_80003es2lan' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/cxgb3: comment out dead code
Hannes Eder [Fri, 26 Dec 2008 07:59:28 +0000 (23:59 -0800)] 
drivers/net/cxgb3: comment out dead code

The function 'vsc8211_set_speed_duplex' is not used, so comment it
out.  For 'vsc8211_set_automdi' the function 'vsc8211_set_speed_duplex'
is the only caller, so comment it out as well.

Fix this (sparse) warning:

  drivers/net/cxgb3/vsc8211.c:269: warning: 'vsc8211_set_automdi' defined but not used
  drivers/net/cxgb3/vsc8211.c:295:5: warning: symbol 'vsc8211_set_speed_duplex' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/bonding: fix sparse warnings: move decls to header file
Hannes Eder [Fri, 26 Dec 2008 07:58:57 +0000 (23:58 -0800)] 
drivers/net/bonding: fix sparse warnings: move decls to header file

Fix this sparse warnings:

  drivers/net/bonding/bond_main.c:104:20: warning: symbol 'bonding_defaults' was not declared. Should it be static?
  drivers/net/bonding/bond_main.c:204:22: warning: symbol 'ad_select_tbl' was not declared. Should it be static?
  drivers/net/bonding/bond_sysfs.c:60:21: warning: symbol 'bonding_rwsem' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/atlx: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 07:58:35 +0000 (23:58 -0800)] 
drivers/net/atlx: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/atlx/atl1.c:198:16: warning: symbol 'atl1_check_options' was not declared. Should it be static?
  drivers/net/atlx/atl1.c:526:5: warning: symbol 'atl1_read_mac_addr' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/arcnet: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 07:57:21 +0000 (23:57 -0800)] 
drivers/net/arcnet: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/arcnet/capmode.c:64:6: warning: symbol 'arcnet_cap_init' was not declared. Should it be static?
  drivers/net/arcnet/com90xx.c:586:5: warning: symbol 'com90xx_reset' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net: fix sparse warnings: make symbols static
Hannes Eder [Fri, 26 Dec 2008 07:56:45 +0000 (23:56 -0800)] 
drivers/net: fix sparse warnings: make symbols static

Fix this sparse warnings:

  drivers/net/3c523.c:350:6: warning: symbol 'alloc586' was not declared. Should it be static?
  drivers/net/cs89x0.c:1029:14: warning: symbol 'reset_chip' was not declared. Should it be static?
  drivers/net/eepro.c:1399:1: warning: symbol 'read_eeprom' was not declared. Should it be static?
  drivers/net/plip.c:1020:5: warning: symbol 'plip_hard_header_cache' was not declared. Should it be static?
  drivers/net/s2io.c:5116:6: warning: symbol 'do_s2io_store_unicast_mc' was not declared. Should it be static?
  drivers/net/smc9194.c:767:12: warning: symbol 'smc_findirq' was not declared. Should it be static?

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net: fix sparse warning: returning void-valued expression
Hannes Eder [Fri, 26 Dec 2008 07:56:04 +0000 (23:56 -0800)] 
drivers/net: fix sparse warning: returning void-valued expression

Fix this sparse warning:

  drivers/net/niu.c:8850:2: warning: returning void-valued expression

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net: fix sparse warnings: make do-while a compound statement
Hannes Eder [Fri, 26 Dec 2008 07:55:35 +0000 (23:55 -0800)] 
drivers/net: fix sparse warnings: make do-while a compound statement

While at it insert some extra curly braces and fix formatting.

Fix this sparse warnings:

  drivers/net/atp.c:811:8: warning: do-while statement is not a compound statement
  drivers/net/atp.c:813:8: warning: do-while statement is not a compound statement
  drivers/net/atp.c:815:11: warning: do-while statement is not a compound statement
  drivers/net/atp.c:817:11: warning: do-while statement is not a compound statement
  drivers/net/plip.c:642:4: warning: do-while statement is not a compound statement
  drivers/net/plip.c:647:4: warning: do-while statement is not a compound statement
  drivers/net/plip.c:820:4: warning: do-while statement is not a compound statement
  drivers/net/plip.c:825:4: warning: do-while statement is not a compound statement
  drivers/net/starfire.c:886:3: warning: do-while statement is not a compound statement

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net: fix sparse warning: use ANSI-style function declaration
Hannes Eder [Fri, 26 Dec 2008 07:52:57 +0000 (23:52 -0800)] 
drivers/net: fix sparse warning: use ANSI-style function declaration

Fix this sparse warning:

  drivers/net/ne.c:932:24: warning: non-ANSI function declaration of function 'init_module'

Signed-off-by: Hannes Eder <hannes@hanneseder.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoehea: use get_zeroed_page for alignment-sensitive allocation
Nathan Lynch [Mon, 22 Dec 2008 08:42:11 +0000 (08:42 +0000)] 
ehea: use get_zeroed_page for alignment-sensitive allocation

With slub debug enabled, I see the following errors and crash with
2.6.28-rc9:

IBM eHEA ethernet device driver (Release EHEA_0095)
ehea: Error in ehea_h_register_rpage_mr: not on pageboundary
ehea: Error in ehea_reg_mr_section: register_rpage_mr failed
ehea: Error in ehea_reg_kernel_mr: registering mr failed
ehea: Error in ehea_setup_ports: creating MR failed
ehea 23c00100.lhea: setup_ports failed
Unable to handle kernel paging request for data at address 0x6b6b6b6b6b6bbdcb
Faulting instruction address: 0xd000000000064a24
cpu 0x0: Vector: 300 (Data Access) at [c0000000740e7190]
    pc: d000000000064a24: .ehea_update_firmware_handles+0x84/0x47c [ehea]
    lr: d00000000006df34: .ehea_probe_adapter+0x35c/0x39c [ehea]
    sp: c0000000740e7410
   msr: 8000000000009032
   dar: 6b6b6b6b6b6bbdcb
 dsisr: 40000000
  current = 0xc000000074233780
  paca    = 0xc0000000008a3300
    pid   = 2046, comm = modprobe
enter ? for help
[c0000000740e74f0d00000000006df34 .ehea_probe_adapter+0x35c/0x39c [ehea]
[c0000000740e75a0c00000000041d5a4 .of_platform_device_probe+0x78/0xb0
[c0000000740e7630c0000000002d8b38 .driver_probe_device+0x13c/0x200
[c0000000740e76c0c0000000002d8c90 .__driver_attach+0x94/0xd8
[c0000000740e7750c0000000002d7d64 .bus_for_each_dev+0x80/0xd8
[c0000000740e7800c0000000002d889c .driver_attach+0x28/0x40
[c0000000740e7880c0000000002d8340 .bus_add_driver+0xd4/0x284
[c0000000740e7920c0000000002d90a0 .driver_register+0xc4/0x198
[c0000000740e79d0c00000000041d45c .of_register_driver+0x4c/0x60
[c0000000740e7a50c000000000020ef8 .ibmebus_register_driver+0x30/0x4c
[c0000000740e7ae0d00000000006e108 .ehea_module_init+0x194/0x208c [ehea]
[c0000000740e7b90c000000000009028 .do_one_initcall+0x90/0x1ac
[c0000000740e7d90c00000000008619c .sys_init_module+0xc4/0x200
[c0000000740e7e30c0000000000084ac syscall_exit+0x0/0x40

(When slub debug is disabled it works fine.)

PAGE_SIZE allocations via slab are not guaranteed to be page-aligned;
use get_zeroed_page for the 'pt' buffer (I don't really know what this
is, only that it is passed to firmware and that the first error
message complains about its alignment).  This allows the system to
boot.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomlx4_en: Remove pauses module parameters.
Yevgeny Petrilin [Fri, 26 Dec 2008 02:20:13 +0000 (18:20 -0800)] 
mlx4_en: Remove pauses module parameters.

They are controlled through Ethtool interface.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomlx4_en: Removed Interrupt moderation module parameters
Yevgeny Petrilin [Fri, 26 Dec 2008 02:19:47 +0000 (18:19 -0800)] 
mlx4_en: Removed Interrupt moderation module parameters

They are controlled through Ethtool interface, no need to have two
ways to modify them.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomlx4_en: Removed redundant cq->armed flag
Yevgeny Petrilin [Fri, 26 Dec 2008 02:14:04 +0000 (18:14 -0800)] 
mlx4_en: Removed redundant cq->armed flag

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomlx4_en: Removed TX locking when polling TX cq
Yevgeny Petrilin [Fri, 26 Dec 2008 02:13:45 +0000 (18:13 -0800)] 
mlx4_en: Removed TX locking when polling TX cq

There is no need to synchronize the polling with the transmit
function. The only place to synchronize is when we process
the cq from the transmit function. Also removed spin_lock_irq,
and using spin_trylock, if somebody else is already processing the cq,
no need to wait for it to finish.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomlx4_en: Memory leak on completion queue free
Yevgeny Petrilin [Fri, 26 Dec 2008 02:13:20 +0000 (18:13 -0800)] 
mlx4_en: Memory leak on completion queue free

If port is being destroyed without being activated before,
CQ resources are not freed.

Signed-off-by: Yevgeny Petrilin <yevgenyp@mellanox.co.il>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'for-david' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6
David S. Miller [Fri, 26 Dec 2008 02:10:12 +0000 (18:10 -0800)] 
Merge branch 'for-david' of git://git./linux/kernel/git/chris/linux-2.6

16 years agomyri10ge: update driver version to 1.4.4-1.395
Brice Goglin [Fri, 26 Dec 2008 02:09:16 +0000 (18:09 -0800)] 
myri10ge: update driver version to 1.4.4-1.395

Update myri10ge driver version to 1.4.4-1.395.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agomyri10ge: update firmware headers to 1.4.37
Brice Goglin [Fri, 26 Dec 2008 02:08:59 +0000 (18:08 -0800)] 
myri10ge: update firmware headers to 1.4.37

Update myri10ge firmware headers to 1.4.37:
* Make each member of the error/cmd enum an initialized one, so there
  is a convenient numerical reference to look for reverse conversion.
* Add new MXGEFW_CMD_RELAX_RXBUFFER_ALIGNMENT command.
* Add new "features" field to mcp_header.

Signed-off-by: Brice Goglin <brice@myri.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoforcedeth: don't poll NV event 36
Johannes Berg [Fri, 26 Dec 2008 02:07:50 +0000 (18:07 -0800)] 
forcedeth: don't poll NV event 36

Polling doesn't seem to be necessary on my hardware, at
least I haven't seen any bad effects testing it a while.
Remove the polling so the CPU doesn't have to wake up a
hundred times per second.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet/appletalk: Remove redundant test
Julia Lawall [Fri, 26 Dec 2008 02:04:51 +0000 (18:04 -0800)] 
net/appletalk: Remove redundant test

atif is tested for being NULL twice, with the same effect in each case.  I
have kept the second test, as it seems to fit well with the comment above it.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/wan: Remove redundant test
Julia Lawall [Fri, 26 Dec 2008 02:03:44 +0000 (18:03 -0800)] 
drivers/net/wan: Remove redundant test

arg is checked not to be NULL a few lines before.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net: Remove redundant test
Julia Lawall [Fri, 26 Dec 2008 02:03:28 +0000 (18:03 -0800)] 
drivers/net: Remove redundant test

In each case, ap is checked not to be NULL a few lines before.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/ehea: Remove redundant test
Julia Lawall [Fri, 26 Dec 2008 02:03:09 +0000 (18:03 -0800)] 
drivers/net/ehea: Remove redundant test

In each case, vpage is checked not to be NULL just after it is initialized
at the beginning of each loop iteration.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agodrivers/net/au1000_eth.c: Remove redundant test
Julia Lawall [Fri, 26 Dec 2008 02:02:49 +0000 (18:02 -0800)] 
drivers/net/au1000_eth.c: Remove redundant test

phydev is checked to be not NULL a few lines above.

A simplified version of the semantic patch that makes this change is as
follows: (http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression x;
expression E;
position p1,p2;
@@

if (x@p1 == NULL || ...) { ... when forall
   return ...; }
... when != \(x=E\|x--\|x++\|--x\|++x\|x-=E\|x+=E\|x|=E\|x&=E\|&x\)
(
x@p2 == NULL
|
x@p2 != NULL
)

// another path to the test that is not through p1?
@s exists@
local idexpression r.x;
position r.p1,r.p2;
@@

... when != x@p1
(
x@p2 == NULL
|
x@p2 != NULL
)

@fix depends on !s@
position r.p1,r.p2;
expression x,E;
statement S1,S2;
@@

(
- if ((x@p2 != NULL) || ...)
  S1
|
- if ((x@p2 == NULL) && ...) S1
|
- BUG_ON(x@p2 == NULL);
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoqlge: ql_adapter_down() typo
Roel Kluin [Fri, 26 Dec 2008 01:23:50 +0000 (17:23 -0800)] 
qlge: ql_adapter_down() typo

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetlink: fix (theoretical) overrun in message iteration
Vegard Nossum [Fri, 26 Dec 2008 01:21:17 +0000 (17:21 -0800)] 
netlink: fix (theoretical) overrun in message iteration

See commit 1045b03e07d85f3545118510a587035536030c1c ("netlink: fix
overrun in attribute iteration") for a detailed explanation of why
this patch is necessary.

In short, nlmsg_next() can make "remaining" go negative, and the
remaining >= sizeof(...) comparison will promote "remaining" to an
unsigned type, which means that the expression will evaluate to
true for negative numbers, even though it was not intended.

I put "theoretical" in the title because I have no evidence that
this can actually happen, but I suspect that a crafted netlink
packet can trigger some badness.

Note that the last test, which seemingly has the exact same
problem (also true for nla_ok()), is perfectly OK, since we
already know that remaining is positive.

Signed-off-by: Vegard Nossum <vegard.nossum@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotcp: Always set urgent pointer if it's beyond snd_nxt
Herbert Xu [Fri, 26 Dec 2008 01:12:58 +0000 (17:12 -0800)] 
tcp: Always set urgent pointer if it's beyond snd_nxt

Our TCP stack does not set the urgent flag if the urgent pointer
does not fit in 16 bits, i.e., if it is more than 64K from the
sequence number of a packet.

This behaviour is different from the BSDs, and clearly contradicts
the purpose of urgent mode, which is to send the notification
(though not necessarily the associated data) as soon as possible.
Our current behaviour may in fact delay the urgent notification
indefinitely if the receiver window does not open up.

Simply matching BSD however may break legacy applications which
incorrectly rely on the out-of-band delivery of urgent data, and
conversely the in-band delivery of non-urgent data.

Alexey Kuznetsov suggested a safe solution of following BSD only
if the urgent pointer itself has not yet been transmitted.  This
way we guarantee that when the remote end sees the packet with
non-urgent data marked as urgent due to wrap-around we would have
advanced the urgent pointer beyond, either to the actual urgent
data or to an as-yet untransmitted packet.

The only potential downside is that applications on the remote
end may see multiple SIGURG notifications.  However, this would
occur anyway with other TCP stacks.  More importantly, the outcome
of such a duplicate notification is likely to be harmless since
the signal itself does not carry any information other than the
fact that we're in urgent mode.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosctp: Add validity check for SCTP_PARTIAL_DELIVERY_POINT socket option
Wei Yongjun [Fri, 26 Dec 2008 00:59:03 +0000 (16:59 -0800)] 
sctp: Add validity check for SCTP_PARTIAL_DELIVERY_POINT socket option

The latest ietf socket extensions API draft said:

  8.1.21.  Set or Get the SCTP Partial Delivery Point

    Note also that the call will fail if the user attempts to set
    this value larger than the socket receive buffer size.

This patch add this validity check for SCTP_PARTIAL_DELIVERY_POINT
socket option.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosctp: Avoid memory overflow while FWD-TSN chunk is received with bad stream ID
Wei Yongjun [Fri, 26 Dec 2008 00:58:11 +0000 (16:58 -0800)] 
sctp: Avoid memory overflow while FWD-TSN chunk is received with bad stream ID

If FWD-TSN chunk is received with bad stream ID, the sctp will not do the
validity check, this may cause memory overflow when overwrite the TSN of
the stream ID.

The FORWARD-TSN chunk is like this:

FORWARD-TSN chunk
  Type                       = 192
  Flags                      = 0
  Length                     = 172
  NewTSN                     = 99
  Stream                     = 10000
  StreamSequence             = 0xFFFF

This patch fix this problem by discard the chunk if stream ID is not
less than MIS.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosctp: Implement socket option SCTP_GET_ASSOC_NUMBER
Wei Yongjun [Fri, 26 Dec 2008 00:57:24 +0000 (16:57 -0800)] 
sctp: Implement socket option SCTP_GET_ASSOC_NUMBER

Implement socket option SCTP_GET_ASSOC_NUMBER of the latest ietf socket
extensions API draft.

  8.2.5.  Get the Current Number of Associations (SCTP_GET_ASSOC_NUMBER)

   This option gets the current number of associations that are attached
   to a one-to-many style socket.  The option value is an uint32_t.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosctp: Fix a typo in socket.c
Wei Yongjun [Fri, 26 Dec 2008 00:56:45 +0000 (16:56 -0800)] 
sctp: Fix a typo in socket.c

Just fix a typo in socket.c.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosctp: Bring SCTP_MAXSEG socket option into ietf API extension compliance
Wei Yongjun [Fri, 26 Dec 2008 00:54:58 +0000 (16:54 -0800)] 
sctp: Bring SCTP_MAXSEG socket option into ietf API extension compliance

Brings maxseg socket option set/get into line with the latest ietf socket
extensions API draft, while maintaining backwards compatibility.

Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: PHYLIB mdio fixes #2
Krzysztof Halasa [Fri, 26 Dec 2008 00:50:41 +0000 (16:50 -0800)] 
net: PHYLIB mdio fixes #2

The PHYLIB mdio code has more problems in error paths:
- mdiobus_release can be called before bus->state is set to
  MDIOBUS_REGISTERED
- mdiobus_scan allocates resources which need to be freed
- the comment is wrong, the resistors used are actually pull-ups.

Signed-off-by: Krzysztof Halasa <khc@pm.waw.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agovlan: fix convertion to net_device_ops
Eric Dumazet [Fri, 26 Dec 2008 00:45:19 +0000 (16:45 -0800)] 
vlan: fix convertion to net_device_ops

commit 656299f706e52e0409733d704c2761f1b12d6954
(vlan: convert to net_device_ops) added a net_device_ops
with a NULL ndo_start_xmit field.

This gives a crash in dev_hard_start_xmit()

Fix it using two net_device_ops structures, one for hwaccel vlan,
one for non hwaccel vlan.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosmsc911x: fix platform resource call during module unload
Steve Glendinning [Fri, 26 Dec 2008 00:44:01 +0000 (16:44 -0800)] 
smsc911x: fix platform resource call during module unload

This patch fixes a typo, the platform_get_resource calls in
smsc911x_drv_remove are supposed to look the same as those in
smsc911x_drv_probe.

Reported and fixed by dfoley@telus.net.

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosmsc911x: don't clobber driver_data
Steve Glendinning [Fri, 26 Dec 2008 00:43:34 +0000 (16:43 -0800)] 
smsc911x: don't clobber driver_data

smsc911x uses driver_data to store our net_device, don't overwrite this
with the mii_bus.

Reported and fixed by dfoley@telus.net.

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetns: igmp: make /proc/net/{igmp,mcfilter} per netns
Alexey Dobriyan [Fri, 26 Dec 2008 00:42:51 +0000 (16:42 -0800)] 
netns: igmp: make /proc/net/{igmp,mcfilter} per netns

This patch makes the followinf proc entries per-netns:
/proc/net/igmp
/proc/net/mcfilter

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Acked-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonetns: igmp: allow IPPROTO_IGMP sockets in netns
Alexey Dobriyan [Fri, 26 Dec 2008 00:42:23 +0000 (16:42 -0800)] 
netns: igmp: allow IPPROTO_IGMP sockets in netns

Looks like everything is already ready.

Required for ebtables(8) for one thing.

Also, required for ipmr per-netns (coming soon). (Benjamin)

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Acked-by: Benjamin Thery <benjamin.thery@bull.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosmsc911x: make smsc911x_ethtool_ops constant
Steve Glendinning [Fri, 26 Dec 2008 00:41:09 +0000 (16:41 -0800)] 
smsc911x: make smsc911x_ethtool_ops constant

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosmsc911x: convert driver to use net_device_ops
Steve Glendinning [Fri, 26 Dec 2008 00:40:47 +0000 (16:40 -0800)] 
smsc911x: convert driver to use net_device_ops

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agosmsc911x: fix BUG if module is removed while interface is up
Steve Glendinning [Fri, 26 Dec 2008 00:40:19 +0000 (16:40 -0800)] 
smsc911x: fix BUG if module is removed while interface is up

If the module is removed while its interface is up, smsc911x_stop is not
called until after smsc911x_drv_remove has disposed of phy_dev.  This
patch changes the stop method to handle this situation.

This is a different problem to the one reported by dfoley@telus.net.

Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoMerge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Wed, 24 Dec 2008 01:56:23 +0000 (17:56 -0800)] 
Merge branch 'master' of /linux/kernel/git/davem/net-2.6

Conflicts:

drivers/net/ppp_generic.c

16 years agonet: Remove unused netdev arg from some NAPI interfaces.
Neil Horman [Tue, 23 Dec 2008 04:43:12 +0000 (20:43 -0800)] 
net: Remove unused netdev arg from some NAPI interfaces.

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>
16 years agonet: startup race in hso driver
Oliver Neukum [Thu, 18 Dec 2008 03:57:35 +0000 (03:57 +0000)] 
net: startup race in hso driver

The flag marking a device running must be set before the URBs for
recption are submitted or they may complete too early and fail to resubmit.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Remove smp_wmb() in qdisc_watchdog()
Jarek Poplawski [Tue, 23 Dec 2008 03:44:13 +0000 (19:44 -0800)] 
pkt_sched: Remove smp_wmb() in qdisc_watchdog()

While implementing a TCQ_F_THROTTLED flag there was used an smp_wmb()
in qdisc_watchdog(), but since this flag is practically used only in
sch_netem(), and since it's not even clear what reordering is avoided
here (TCQ_F_THROTTLED vs. __QDISC_STATE_SCHED?) it seems the barrier
could be safely removed.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agor6040: bump release number to 0.19
Florian Fainelli [Tue, 23 Dec 2008 03:40:38 +0000 (19:40 -0800)] 
r6040: bump release number to 0.19

This patch bumps the release number of the driver.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agor6040: save and restore MIER correctly in the interrupt routine
Joe Chou [Tue, 23 Dec 2008 03:40:02 +0000 (19:40 -0800)] 
r6040: save and restore MIER correctly in the interrupt routine

This patch saves the MIER register contents before treating
interrupts, then restores them correcty at the end of the
interrupt routine.

Signed-off-by: Joe Chou <Joe.Chou@rdc.com.tw>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agor6040: fix wrong logic in mdio code
Joe Chou [Tue, 23 Dec 2008 03:38:17 +0000 (19:38 -0800)] 
r6040: fix wrong logic in mdio code

This patch fixes a reverse logic in the MDIO code.

Signed-off-by: Joe Chou <Joe.Chou@rdc.com.tw>
Signed-off-by: Florian Fainelli <florian@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: Fix oops in dev_ifsioc()
Jarek Poplawski [Tue, 23 Dec 2008 03:35:28 +0000 (19:35 -0800)] 
net: Fix oops in dev_ifsioc()

A command like this: "brctl addif br1 eth1" issued as a user gave me
an oops when bridge module wasn't loaded. It's caused by using a dev
pointer before checking for NULL.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotg3: Update version to 3.97
Matt Carlson [Mon, 22 Dec 2008 04:21:52 +0000 (20:21 -0800)] 
tg3: Update version to 3.97

This patch updates the version number to 3.97.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotg3: tg3.h cleanups
Matt Carlson [Mon, 22 Dec 2008 04:21:18 +0000 (20:21 -0800)] 
tg3: tg3.h cleanups

This patch cleans up the tg3 header file by removing the preprocessor
definitions for standard PCI configuration space registers.  The driver
should be using the standard definitions when needed.  The patch
continues by removing redundant PHY related definitions and reorganizes
some of the remaining entries.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotg3: Remove unused cfgspc device members
Matt Carlson [Mon, 22 Dec 2008 04:19:57 +0000 (20:19 -0800)] 
tg3: Remove unused cfgspc device members

This patch removes the pci_bist and pci_hdr_type members from the
device structure and removes the code that references them.  They are
not really used.

The patch rounds out the changes by moving the pci_cmd member to plug
a structure hole that would have been created.  On 32-bit systems, this
movement removes a subsequent structure hole later in the structure. On
64-bit systems though, the movement merely consolidates two holes into
one larger hole.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotg3: Cleanup IPV6 LSO
Matt Carlson [Mon, 22 Dec 2008 04:19:30 +0000 (20:19 -0800)] 
tg3: Cleanup IPV6 LSO

This patch attempts to make the relationship between IPV6 checksum
offload and IPV6 LSO more obvious.  The patch also toggles a bit
needed for IPV6 LSO on 5785 and 57780 devices.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agotg3: WOL fixes
Matt Carlson [Mon, 22 Dec 2008 04:18:56 +0000 (20:18 -0800)] 
tg3: WOL fixes

The first hunk of this patch inverts a flag that was accidentally
toggled as part of commit 0a459aac9d151c2e36ec65723b9b845b24c5cbc3
("tg3: Allow WOL for phylib controlled Broadcom phys").

The second hunk of the patch removes the call to
device_may_wakeup() in the 5906 config detection path.  At the
point of the call, the driver shouldn't be querying for WOL
capability.  It should be detecting and setting it.

Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agopkt_sched: Annotate uninitialized var in sfq_enqueue()
Jarek Poplawski [Mon, 22 Dec 2008 04:14:48 +0000 (20:14 -0800)] 
pkt_sched: Annotate uninitialized var in sfq_enqueue()

Some gcc versions warn that ret may be used uninitialized in
sfq_enqueue(). It's a false positive, so let's annotate this.

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agoixgbe: fix the display of DCB control stats in ethtool
Don Skidmore [Mon, 22 Dec 2008 04:11:04 +0000 (20:11 -0800)] 
ixgbe: fix the display of DCB control stats in ethtool

Priority flow contol statistics for Data Center Bridging (DCB) weren't
included in ethtool.  This patch adds them.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Eric W Multanen <eric.w.multanen@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
16 years agonet: add DCNA attribute to the BCN interface for DCB
Don Skidmore [Mon, 22 Dec 2008 04:10:29 +0000 (20:10 -0800)] 
net: add DCNA attribute to the BCN interface for DCB

Adds the Backward Congestion Notification Address (BCNA) attribute to the
Backward Congestion Notification (BCN) interface for Data Center Bridging
(DCB), which was missing.  Receive the BCNA attribute in the ixgbe driver.
The BCNA attribute is for a switch to inform the endstation about the physical
port identification in order to support BCN on aggregated links.

Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com>
Signed-off-by: Eric W Multanen <eric.w.multanen@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>