Commit Graph

20289 Commits

Author SHA1 Message Date
Dan Williams
1db733eff6 [PATCH] libertas: don't tear down netdev in libertas_activate_card
libertas_activate_card() doesn't create the netdev, and shouldn't
free it on error.  The caller of libertas_activate_card() is
responsible for cleaning up errors from libertas_add_card(),
not libertas_activate_card().

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:41 -04:00
Dan Williams
c72368310d [PATCH] libertas: correctly unregister mesh netdev on error
Subject says it all.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:41 -04:00
Dan Williams
4ace113876 [PATCH] libertas: replace 'macaddress' with 'bssid'
Start to normalize bss_descriptor with ieee80211_network so we can
eventually replace bss_descriptor more easily.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Dan Williams
7732ca45c6 [PATCH] libertas: call SET_NETDEV_DEV from common code
Move usage of SET_NETDEV_DEV into common code since it has nothing
to do with bus-specific devices.  Also fixes a bug where the mesh
device was getting SET_NETDEV_DEV called after register_netdevice,
resulting in no 'device' link in /sys/class/net/mshX/.

Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Luis Carlos Cobo
0681f98935 [PATCH] libertas: fixed kernel oops on module/card removal
Fixed kernel oops on module/card removal (using dongles)

Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Luis Carlos Cobo
b46794dffa [PATCH] libertas: add URB debug info
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Luis Carlos Cobo
60045136ab [PATCH] libertas: fixed incorrect assigment of fcs errors to frag errors
Signed-off-by: Luis Carlos Cobo <luisca@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Holger Schurig
634b8f49c1 [PATCH] libertas: remove unused variables in wlan_dev_t
Actually, this patch removev wlan_dev_t totally and puts the used variables
of it directly into wlan_private. That reduces one level of indirection and
looks a little bit simpler. It's now "priv->card" and not
"priv->wlan_dev.card" and "priv->dev" instead of "priv->wlan_dev.netdev"

Changed two occurences of "((wlan_private *) dev->priv)->wlan_dev.netdev"
into "dev", because I didn't see the point in doing pointer-ping-pong.

The variables "ioport", "upld_rcv" and "upld_type" where unused. They have
been removed.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Holger Schurig
ec3eef28d9 [PATCH] libertas: let DRV_NAME be overridable
For now, it's "libertas" by default, but that is overwritten in
if_usb.c/if_bootcmd.c and in if_cs.c.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:40 -04:00
Holger Schurig
435a1acba2 [PATCH] libertas: fix RESET logic at unload time
Previously, we had a fixed array of 5 elements where we remembered all
initialized devices. This has been changed to use a "struct list_head"
organization, which is IMHO cleaner.

Also renamed usb_cardp to cardp, as in the reset of the code.

Renamed reset_device() to if_usb_reset_device() like many other functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Holger Schurig
084708b610 [PATCH] libertas: split module into two (libertas.ko and usb8xxx.ko)
* add CONFIG_LIBERTAS to Kconfig
* remove global variable libertas_fw_name, the USB module might want to
    use a different default FW name than the CF module, so libertas_fw_name
    is now local to if_usb.c
* exported some symbols as GPL

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Holger Schurig
ed457037c5 [PATCH] libertas: move contents of fw.h to decl.h
Also removes some useless "extern" declarations from function declaration.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Holger Schurig
208fdd2f44 [PATCH] libertas: indirect all hardware access via hw_XXXX functions
This functions makes all libertas_sbi_XXX functions static to the
if_usb.c file and renames them to if_usb_XXXX(). The get called from
other places of the source code via priv->hw_XXXX().

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Chris Ball
0583e8ef14 [PATCH] libertas: wakeup both mesh and normal wakeup when getting out of scan
The previous patch wakes up the mesh device *instead* of the wlan device
when coming out of scan. We need to wake up both of them.

Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Javier Cardona
0601e7ee46 [PATCH] libertas: added transmission failures to mesh statistics
Added transmission failures to mesh statistics.
Removed whitespace before newlines.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Marcelo Tosatti
6a8121572e [PATCH] libertas: fix error handling of card initialization
Subject says it all.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:39 -04:00
Javier Cardona
51d84f5016 [PATCH] libertas: fixed transmission flow control on the mesh interface
This patch implements proper transmission flow control on mshX.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
32a74b7c8f [PATCH] libertas: split wlan_add_card()
Split wlan_add_card() into a part that just setups kernel parameters and
into the function libertas_activate_card(), which will implizitly use
hardware functions by the started thread.

This allows us later to do something like this:

priv = libertas_add_card();
priv->hw_command_to_host = if_usb_command_to_host;
priv->hw_xxxx = if_usb_xxxx;
priv->hw_yyyy = if_usb_yyyy;
wlan_activate_card()

and of course the CF driver can set it's own functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
3874d0fefd [PATCH] libertas: move reset_device() code main.c to if_usb.c
The reset_device() logic is only needed for USB devices, not for CF
devices.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
fb3dddf22c [PATCH] libertas: changed some occurences of kmalloc() + memset(&a,0,sz) to kzalloc()
The subject says it all.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
6df3073d29 [PATCH] libertas: fix SSID output
* a newline was missing
* changed %32s to '%s', no need to right justify the ESSID

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
1ac812f161 [PATCH] libertas: get rid of libertas_sbi_get_priv()
It's not really needed, because we can call wlan_remove_card() with
wlan_private* anyway.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:38 -04:00
Holger Schurig
ed37b51610 [PATCH] libertas: change debug output of libertas_interrupt()
It used to be LBS_DEB_MAIN, now it's LBS_DEB_THREAD

Also fixed a missing ":" in lbs_deb_enter()

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
78523daa86 [PATCH] libertas: single out mesh code
This patches adds the two functions wlan_add_mesh() and wlan_remove_mesh(),
which are responsible for the mshX interface. In a CF driver with a non-
mesh-aware firmware you can omit the calls to this functions.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
a46c64108b [PATCH] libertas: tune debug code
* renamed module parameter back to libertas_debug
* change from bit shifts to constants, that way it's easier to look at the
    source and specify the libertas_debug=0xXXXX module parameter
* moved module_param from fw.c to main.c, where it belongs better

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
9012b28a40 [PATCH] libertas: make debug configurable
The debug output of libertas was either not present or it was overwhelming.
This patch adds the possibility to specify a bitmask for the area of
interest. One should then only get the desired output.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
46868202b2 [PATCH] libertas: exclude non-used code when PROC_DEBUG is not set
This reduces usb8xxx.ko by 951 bytes (text) and 256 bytes (data)
when PROC_DEBUG isn't defined.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Marcelo Tosatti
2be9219680 [PATCH] libertas: fix scanning from associate path
The previous scan fix did not account for scan paths other than set_scan()
that need to do a full scan at once.

Add a "full_scan" parameter to wlan_scan_networks() to control such
behaviour.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
bf68dac89b [PATCH] libertas: make libertas_wlan_data_rates static
Move libertas_wlan_data_rates into wext.c and make it static. wext.c is the
only user of this array.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:37 -04:00
Holger Schurig
66fcc55904 [PATCH] libertas: move vendor & product id's into if_usb.c
For me it looks cleaner, because it removes one level of indirection.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Holger Schurig
7b1d5c0b60 [PATCH] libertas: remove unused/superfluous definitions of DEV_NAME_LEN
DEV_NAME_LEN is already defined in defs.h and that is sufficient.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Holger Schurig
42fff92aa5 [PATCH] libertas: remove __FILE__ from debug output
Remove filename from debug output because it's way too long.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Marcelo Tosatti
5c20676fcd [PATCH] libertas: remove deprecated pm_register and associated code
Subject says it all.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Holger Schurig
0b7db95602 [PATCH] libertas: fix removal of all debugfs files
rmmod did not remove /sys/kernel/debug/libertas_wireless/eth1/
subscribed_events/high_snr. After I fixed this, I noticed that
it also didn't remove /sys/kernel/debug/libertas_wireless/eth1
as well.

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Holger Schurig
604ba49150 [PATCH] libertas: a debug output was missing a newline
Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Holger Schurig
eb3ce631f9 [PATCH] libertas: rename wlan_association_worker
Renames wlan_association_worker into libertas_association_worker

Signed-off-by: Holger Schurig <hs4233@mail.mn-solutions.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:36 -04:00
Marcelo Tosatti
064827edf6 [PATCH] libertas: scan two channels per scan command
Scan two channels per each command on set_scan(), then bail out and let
get_scan() continue the scanning work up to the last channel.

This gives time to the firmware so it can go back to the association
channel and keep the connection alive.

Fixes http://dev.laptop.org/ticket/841

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2007-06-11 14:28:35 -04:00
Jean-Christian de Rivaz
c5760abde7 Blackfin SMC91X ethernet supporting driver: SMC91C111 LEDs are note drived in the kernel like in uboot
Signed-off-by: Jean-Christian de Rivaz <jc@eclis.ch>
Signed-off-by: Bryan Wu <bryan.wu@analog.com>
2007-06-11 17:44:14 +08:00
Sam Ravnborg
c0811987c6 net: fix typo in drivers/net/usb/Kconfig
Replace invisible character with a space.

The diff looks like this on my terminal:
-        <A0>Choose this option if you're using a host-to-host cable
-        <A0>with one of these chips.
+         Choose this option if you're using a host-to-host cable
+         with one of these chips.

Reported by: Massimo Maiurana <maiurana@gmail.com>

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Massimo Maiurana <maiurana@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 19:01:15 -04:00
Kim Phillips
895ee682db phylib: add RGMII-ID mode to the Marvell m88e1111 PHY to fix broken ucc_geth
Support for configuring RGMII-ID (RGMII with internal delay) mode on the
88e1111 and 88e1145.  Ucc_geth on MPC8360EMDS(the main user of ucc_geth)
is broken after changed to use phylib.  It is fixed by adding this
internal delay.

Also renamed 88e1111s -> 88e1111 (no references to an 88e1111s part were
found), and fixed some whitespace.

Signed-off-by: Kim Phillips <kim.phillips@freescale.com>
Signed-off-by: Li Yang <leoli@freescale.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:35 -04:00
Thomas Klein
dec590c1bb ehea: Fixed possible kernel panic on VLAN packet recv
This patch fixes a possible kernel panic due to not checking the vlan group
when processing received VLAN packets and a malfunction in VLAN/hypervisor
registration.

Signed-off-by: Thomas Klein <tklein@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:35 -04:00
Mithlesh Thukral
0d04761d17 NetXen: Fix compile failure seen on PPC architecture
NetXen: Add NETXEN prefixes to macros to clean them up.
This is a cleanup patch which adds NETXEN prefix to some stand
alone macro names.
These posed compile errors when NetXen driver was backported to 2.6.9
on PPC architecture as macros like USER_START are defined in file
arch/ppc64/mm/hash_utils.c

Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off by: Wen Xiong <wenxiong@us.ibm.com>
Acked-off by: Mithlesh Thukral <mithlesh@netxen.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:35 -04:00
Mithlesh Thukral
3e2facef86 NetXen: Fix ping issue after reboot on Blades with 3.4.19 firmware
NetXen: Fix initialization and subsequent ping issue on 3.4.19 firmware
This patch fixes the ping problem seen X/PBlades after the adapter's
firmware was moved to 3.4.19. After configured interface up, ping
failed.
NetXen adapter couldn't accept ARP broadcast packet. Manual addition of
MAC address in the ARP table, made ping work.
NetXen adapter should finish initilization after system boot. But looks
NetXen adapter didn't initilization correctly after system boot up.
So have to re-load the firmware again in probe routine.
Also re-initilization netxen_config_0 and netxen_config_1 registers.

Signed-off by: Wen Xiong <wenxiong@us.ibm.com>
Signed-off by: Mithlesh Thukral <mithlesh@netxen.com>

Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:34 -04:00
Dave Jones
b4fea61a19 typo in via-velocity.c
http://bugzilla.kernel.org/show_bug.cgi?id=8160

Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:34 -04:00
Brian King
ce6eea58eb ibmveth: Automatically enable larger rx buffer pools for larger mtu
Currently, ibmveth maintains several rx buffer pools, which can
be modified through sysfs. By default, pools are not allocated by
default such that jumbo frames cannot be supported without first
activating larger rx buffer pools. This results in failures when attempting
to change the mtu. This patch makes ibmveth automatically allocate
these larger buffer pools when the mtu is changed.

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:34 -04:00
Brian King
4aa9c93e1c ibmveth: Fix h_free_logical_lan error on pool resize
When attempting to activate additional rx buffer pools on an ibmveth interface that
was not yet up, the error below was seen. The patch fixes this by only closing
and opening the interface to activate the resize if the interface is already
opened.

(drivers/net/ibmveth.c:597 ua:30000004) ERROR: h_free_logical_lan failed with fffffffffffffffc, continuing with close
Unable to handle kernel paging request for data at address 0x00000ff8
Faulting instruction address: 0xd0000000002540e0
Oops: Kernel access of bad area, sig: 11 [#1]
SMP NR_CPUS=128 NUMA PSERIES LPAR
Modules linked in: ip6t_REJECT xt_tcpudp ipt_REJECT xt_state iptable_mangle ipta
ble_nat ip_nat iptable_filter ip6table_mangle ip_conntrack nfnetlink ip_tables i
p6table_filter ip6_tables x_tables ipv6 apparmor aamatch_pcre loop dm_mod ibmvet
h sg ibmvscsic sd_mod scsi_mod
NIP: D0000000002540E0 LR: D0000000002540D4 CTR: 80000000001AF404
REGS: c00000001cd27870 TRAP: 0300   Not tainted  (2.6.16.46-0.4-ppc64)
MSR: 8000000000009032 <EE,ME,IR,DR>  CR: 24242422  XER: 00000007
DAR: 0000000000000FF8, DSISR: 0000000040000000
TASK = c00000001ca7b4e0[1636] 'sh' THREAD: c00000001cd24000 CPU: 0
GPR00: D0000000002540D4 C00000001CD27AF0 D000000000265650 C00000001C936500
GPR04: 8000000000009032 FFFFFFFFFFFFFFFF 0000000000000007 000000000002C2EF
GPR08: FFFFFFFFFFFFFFFF 0000000000000000 C000000000652A10 C000000000652AE0
GPR12: 0000000000004000 C0000000004A3300 00000000100A0000 0000000000000000
GPR16: 00000000100B8808 00000000100C0F60 0000000000000000 0000000010084878
GPR20: 0000000000000000 00000000100C0CB0 00000000100AF498 0000000000000002
GPR24: 00000000100BA488 C00000001C936760 D000000000258DD0 C00000001C936000
GPR28: 0000000000000000 C00000001C936500 D000000000265180 C00000001C936000
NIP [D0000000002540E0] .ibmveth_close+0xc8/0xf4 [ibmveth]
LR [D0000000002540D4] .ibmveth_close+0xbc/0xf4 [ibmveth]
Call Trace:
[C00000001CD27AF0] [D0000000002540D4] .ibmveth_close+0xbc/0xf4 [ibmveth] (unreliable)
[C00000001CD27B80] [D0000000002545FC] .veth_pool_store+0xd0/0x260 [ibmveth]
[C00000001CD27C40] [C00000000012E0E8] .sysfs_write_file+0x118/0x198
[C00000001CD27CF0] [C0000000000CDAF0] .vfs_write+0x130/0x218
[C00000001CD27D90] [C0000000000CE52C] .sys_write+0x4c/0x8c
[C00000001CD27E30] [C00000000000871C] syscall_exit+0x0/0x40
Instruction dump:
419affd8 2fa30000 419e0020 e93d0000 e89e8040 38a00255 e87e81b0 80c90018
48001531 e8410028 e93d00e0 7fa3eb78 <e8090ff8> f81d0430 4bfffdc9 38210090

Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-06-09 18:25:34 -04:00
Jack Morgenstein
b2d9308ae4 mlx4_core: Don't set MTT address in dMPT entries with PA set
If a dMPT entry has the PA flag (direct physical address) set, then
the (unused) MTT base address field has to be set to 0.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-06-07 23:24:38 -07:00
Roland Dreier
fe40900f40 mlx4_core: Check firmware command interface revision
HCA firmware with incompatible changes to the FW commmand interface is
coming soon.  Add a check of the interface revision during
initialization and bail out if the firmware advertises a revision that
the driver doesn't know about.  This will avoid strange failures later
if the driver goes on using the wrong interface revision. 

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2007-06-07 23:24:36 -07:00
Michael Chan
b91b9fd112 [BNX2]: Update version and reldate.
Update to version 1.5.11.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-07 13:38:40 -07:00
Michael Chan
02537b0676 [BNX2]: Fix occasional counter corruption on 5708.
The statistics block DMA on 5708 can be messed up occasionally on the
average of about once per hour.  If the user is reading the counters
within one second after the corruption, the counters will be all
messed up.  One second later, the counters will be ok again until the
next corruption occurs.

The workaround is to disable the periodic statistics DMA.  Instead,
we manually trigger the DMA once a second in bnx2_timer().  This
manual trigger of the DMA avoids the problem.

As a consequence, we can only allow 0 or 1 second settings for
ethtool -C statistics block.

Thanks to Jean-Daniel Pauget <jd@disjunkt.com> and
CaT <cat@zip.com.au> for reporting this rare problem.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-06-07 13:38:39 -07:00