summaryrefslogtreecommitdiffstats
path: root/drivers (follow)
Commit message (Collapse)AuthorAgeFilesLines
* baycom: convert to internal net_device_statsStephen Hemminger2009-01-211-22/+7
| | | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Acked-by: Thomas Sailer <t.sailer@alumni.ethz.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
* 6pack: convert to net_device_opsStephen Hemminger2009-01-211-7/+9
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* znet: convert to net_device_opsStephen Hemminger2009-01-211-5/+12
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c559: convert to net_device_opsStephen Hemminger2009-01-211-7/+10
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* tms380tr: convert to net_device_opsStephen Hemminger2009-01-214-13/+23
| | | | | | | Conver this related group of drivers to new API Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* olympic: convert to net_device_opsStephen Hemminger2009-01-211-7/+10
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* olympic: convert to internal network device statsStephen Hemminger2009-01-212-16/+6
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* lanstreamer: convert to net_device_opsStephen Hemminger2009-01-211-11/+13
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* lanstreamer: convert to internal network statsStephen Hemminger2009-01-212-15/+5
| | | | | | | Use internal network_device_stats to keep track of statistics. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ibmtr: convert to net_device_opsStephen Hemminger2009-01-211-5/+9
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* ibmtr: convert to internal network_device_statsStephen Hemminger2009-01-211-23/+6
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c59x: convert to net_device_opsStephen Hemminger2009-01-211-15/+40
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c527: convert to net_device_opsStephen Hemminger2009-01-211-6/+13
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c523: convert to net_device_opsStephen Hemminger2009-01-211-10/+15
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c515: convert to net_device_opsStephen Hemminger2009-01-211-6/+15
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c509: convert to net_device_opsStephen Hemminger2009-01-211-9/+16
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c507: convert to net_device_opsStephen Hemminger2009-01-211-4/+11
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c505: convert to net_device_opsStephen Hemminger2009-01-211-6/+12
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* 3c501: convert to net_device_opsStephen Hemminger2009-01-211-5/+12
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* com20020: convert to net_devic_opsStephen Hemminger2009-01-213-2/+13
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* arcnet: convert to net_device_opsStephen Hemminger2009-01-211-17/+16
| | | | | Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* arcnet: convert to internal statsStephen Hemminger2009-01-215-59/+42
| | | | | | | | Use pre-existing network_device_stats inside network_device rather than own private structure. Signed-off-by: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* usb/mcs7830: Don't use buffers from stack for USB transfersChristian Eggers2009-01-211-2/+18
| | | | | | | | | | | mcs7830_set_reg() and mcs7830_get_reg() are called with buffers from stack which must not be used directly for USB transfers. This causes corruption of the stack particulary on non x86 architectures because DMA may be used for these transfers. Signed-off-by: Christian Eggers <christian.eggers@kathrein.de> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
* usbnet: allow type check of devdbg arguments in non-debug buildSteve Glendinning2009-01-211-2/+0
| | | | | | | | | | | | | Improve usbnet's devdbg to always type-check diagnostic arguments, like dev_dbg (device.h). This makes no change to the resulting size of usbnet modules. This patch also removes an #ifdef DEBUG directive from rndis_wlan so it's devdbg statements are always type-checked at compile time. Signed-off-by: Steve Glendinning <steve.glendinning@smsc.com> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: David S. Miller <davem@davemloft.net>
* via-velocity: fix hot spinroel kluin2009-01-201-1/+1
| | | | | | | while(--j >= 0) keeps spinning when j is unsigned: Signed-off-by: Roel Kluin <roel.kluin@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* myri10ge: don't forget pci_disable_device()Brice Goglin2009-01-201-6/+9
| | | | | | | | | | Don't forget to call pci_disable_device() in myri10ge_remove() and when myri10ge_probe() fails. By the way, update the copyright years. Signed-off-by: Brice Goglin <brice@myri.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* Merge branch 'master' of ↵David S. Miller2009-01-207-54/+53
|\ | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
| * p54: fix p54_set_key's return codeChristian Lamparter2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | p54 doesn't support AES-128-CMAC offload. This patch will fix the noisy mac80211 warnings, when 802.11w is enabled: mac80211-phy189: failed to set key (4, ff:ff:ff:ff:ff:ff) to hardware (-22) mac80211-phy189: failed to set key (5, ff:ff:ff:ff:ff:ff) to hardware (-22) Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * p54: set_tim must be atomic.Artur Skawina2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for: BUG: scheduling while atomic: named/2004/0x10000200 Pid: 2004, comm: named Not tainted 2.6.29-rc1-00271-ge9fa6b0 #45 Call Trace: [<c04d4ef7>] schedule+0x2a7/0x320 [<c03aed74>] __alloc_skb+0x34/0x110 [<c011f5b3>] __cond_resched+0x13/0x30 [<c04d501d>] _cond_resched+0x2d/0x40 [<c016d8c5>] kmem_cache_alloc+0x95/0xc0 [<c016b8d4>] check_object+0xc4/0x230 [<c03aed74>] __alloc_skb+0x34/0x110 [<c02ede91>] p54_alloc_skb+0x71/0xf0 [<c02ee36f>] p54_set_tim+0x3f/0xa0 [<c04ae064>] sta_info_set_tim_bit+0x64/0x80 [<c04c1017>] invoke_tx_handlers+0xd57/0xd80 [<c016c397>] free_debug_processing+0x197/0x210 [<c03ae215>] pskb_expand_head+0xf5/0x170 [<c04bfd94>] __ieee80211_tx_prepare+0x164/0x2f0 [<c04c1a8d>] ieee80211_skb_resize+0x6d/0xe0 [<c04c250f>] ieee80211_master_start_xmit+0x23f/0x550 [<c016d188>] __slab_alloc+0x2b8/0x4f0 [<c013a711>] getnstimeofday+0x51/0x120 [<c03b5e7b>] dev_hard_start_xmit+0x1db/0x240 [<c03c6a4b>] __qdisc_run+0x1ab/0x200 [<c0136aa1>] __run_hrtimer+0x31/0xf0 [<c03b6247>] dev_queue_xmit+0x247/0x500 [<c04c1e56>] ieee80211_subif_start_xmit+0x356/0x7d0 [<c0466ff7>] packet_rcv_spkt+0x37/0x150 [<c0466ff7>] packet_rcv_spkt+0x37/0x150 [<c03b5e7b>] dev_hard_start_xmit+0x1db/0x240 [<c03c6a4b>] __qdisc_run+0x1ab/0x200 [<c03b6247>] dev_queue_xmit+0x247/0x500 [<c03bc1e2>] neigh_resolve_output+0xe2/0x200 [<c0410080>] ip_finish_output+0x0/0x290 [<c0410267>] ip_finish_output+0x1e7/0x290 [<c040f355>] ip_local_out+0x15/0x20 [<c040f5d2>] ip_push_pending_frames+0x272/0x380 [<c042bbc6>] udp_push_pending_frames+0x146/0x3a0 [<c042d52a>] udp_sendmsg+0x2fa/0x6b0 [<c0433bc7>] inet_sendmsg+0x37/0x70 [<c03a7b7e>] sock_sendmsg+0xbe/0x100 [<c0133cd0>] autoremove_wake_function+0x0/0x50 [<c011c043>] __wake_up_common+0x43/0x70 [<c024a892>] copy_from_user+0x32/0x130 [<c024a892>] copy_from_user+0x32/0x130 [<c03b001e>] verify_iovec+0x2e/0xb0 [<c03a7d3f>] sys_sendmsg+0x17f/0x290 [<c017730a>] pipe_write+0x29a/0x570 [<c013a172>] update_wall_time+0x492/0x8e0 [<c013a711>] getnstimeofday+0x51/0x120 [<c011b05d>] sched_slice+0x3d/0x80 [<c013a711>] getnstimeofday+0x51/0x120 [<c0136657>] hrtimer_forward+0x147/0x1a0 [<c01101b0>] lapic_next_event+0x10/0x20 [<c013ccb3>] clockevents_program_event+0xa3/0x170 [<c03a9054>] sys_socketcall+0xa4/0x290 [<c0110920>] smp_apic_timer_interrupt+0x40/0x70 [<c0103165>] sysenter_do_call+0x12/0x25 Signed-off-by: Artur Skawina <art.08.09@gmail.com> Acked-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * rt2x00: fix a wrong parameter for __test_and_clear_bit() in rt2x00rfkill_free().Rami Rosen2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When running modprobe rt73usb, and then rmmod rt73usb, and then iwconfig, the wlan0 device does not disappear. When repeating this process again, we get a kernel Oops errors and "BUG: unable to handle kernel paging request..." message in the kernel log. The reason for this is that there is an error in rt2x00rfkill_free(), which is called in the process of removing the device (rt2x00lib_remove_dev() in rt2x00dev.c). rt2x00rfkill_free() clears the RFKILL_STATE_ALLOCATED bit , which is bit number 1 () in rt2x00dev->flags instead of in rt2x00dev->rfkill_state. As a result, when checking the DEVICE_STATE_REGISTERED_HW bit (bit number 1 in rt2x00dev->flags) in rt2x00lib_remove_hw() it is **unset**, and we wrongly **don't** call ieee80211_unregister_hw(). This patch corrects this: the parameter for __test_and_clear_bit() in rt2x00rfkill_free() should be &rt2x00dev->rfkill_state and not &rt2x00dev->flags. Signed-off-by: Rami Rosen <ramirose@gmail.com> Acked-by: Ivo van Doorn <IvDoorn@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * iwlwifi: remove CMD_WANT_SKB flag if send_cmd_sync failureZhu Yi2009-01-162-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | In function iwl_send_cmd_sync(), if the flag CMD_WANT_SKB is set but we are not provided with a valid SKB (cmd->meta.u.skb == NULL), we need to remove the CMD_WANT_SKB flag from the TX cmd queue. Otherwise in case the cmd comes in later, it will possibly set an invalid address. Thus it causes an invalid memory access. This fixed the bug http://bugzilla.kernel.org/show_bug.cgi?id=11326. Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * ath9k: Fix an operator typo in REG_DOMAIN_2GHZ_MASKJouni Malinen2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | Incorrect operator causes the REG_DOMAIN_2GHZ_MASK to be zero which surely was not the goal of this definition. Mask out the 11a flags correctly. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * ath9k: Fix an operator typo in phy rate validationJouni Malinen2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | This was not supposed to be a bitwise AND operation, but a check of two separate conditions. Anyway, the old code happened to result in the same behavior, so this is just changing the code to be easier to understand and also to keep sparse from warning about dubious operators. Signed-off-by: Jouni Malinen <jouni.malinen@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * libertas: Fix alignment issues in libertas coreAndrey Yurovsky2009-01-161-46/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Data structures that come over the wire from the WLAN firmware must be packed. This fixes alignment problems on the blackfin architecture and, reportedly, on the AVR32. This is a replacement for the previous version of this patch which had also explicitly used get_unaligned_ macros. As Johannes Berg pointed out, these macros were unnecessary. Signed-off-by: Andrey Yurovsky <andrey@cozybit.com> Signed-off-by: Colin McCabe <colin@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
| * p54: fix oops caused by bad eepromsChristian Lamparter2009-01-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes a bug that could occur, if it the eeprom is incomplete or partly corrupted. BUG: unable to handle kernel NULL pointer dereference at 00000008 IP: p54_assign_address+0x108/0x15d [p54common] Oops: 0002 [#1] SMP Pid: 12988, comm: phy1 Tainted: P W 2.6.28-rc6-wl #3 RIP: 0010: p54_assign_address+0x108/0x15d [p54common] [...] Call Trace: p54_alloc_skb+0xa3/0xc0 [p54common] p54_scan+0x37/0x204 [p54common] [...] Signed-off-by: Christian Lamparter <chunkeey@web.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
* | wimax/i2400m: error paths that need to free an skb should use kfree_skb()Inaky Perez-Gonzalez2009-01-202-4/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Roel Kluin reported a bug in two error paths where skbs were wrongly being freed using kfree(). He provided a fix where it was replaced to kfree_skb(), as it should be. However, in i2400mu_rx(), the error path was missing returning an indication of the failure. Changed to reset rx_skb to NULL and return it to the caller, i2400mu_rxd(). It will be treated as a transient error and just ignore the packet. Depending on the buffering conditions inside the device, the data packet might be dropped or the device will signal the host again for data-ready-to-read and the host will retry. Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | mv643xx_eth: prevent interrupt storm on ifconfig downGabriel Paubert2009-01-201-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Contrary to what the docs say, the 'extended interrupt cause' bit in the interrupt cause register (bit 1) appears to not be maskable on at least some of the mv643xx_eth platforms, making writing zeroes to the interrupt mask register but not the extended interrupt mask register insufficient to stop interrupts from occuring. Therefore, also write zeroes to the extended interrupt mask register when shutting down the port. This fixes the interrupt storm seen on the Pegasos board when shutting down the interface. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | mv643xx_eth: fix multicast filter programmingLennert Buytenhek2009-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 66e63ffbc04706568d8789cbb00eaa8ddbcae648 ("mv643xx_eth: implement ->set_rx_mode()") cleaned up mv643xx_eth's multicast filter programming, but broke it as well. The non-special multicast filter table (for multicast addresses that are not of the form 01:00:5e:00:00:xx) consists of 256 hash table buckets organised as 64 32-bit words, where the 'accept' bits are in the LSB of each byte, so in bits 24 16 8 0 of each 32-bit word. The old code got this right, but the referenced commit broke this by using bits 3 2 1 0 instead. This commit fixes this up. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | Revert "mv643xx_eth: use longer DMA bursts".Lennert Buytenhek2009-01-201-6/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit cd4ccf76bfd2c36d351e68be7e6a597268f98a1a. On the Pegasos board, we can't do DMA burst that are longer than one cache line. For now, go back to using 32 byte DMA bursts for all mv643xx_eth platforms -- we can switch the ARM-based platforms back to doing long 128 byte bursts in the next development cycle. Signed-off-by: Lennert Buytenhek <buytenh@marvell.com> Reported-by: Alan Curry <pacman@kosh.dhis.org> Reported-by: Gabriel Paubert <paubert@iram.es> Signed-off-by: David S. Miller <davem@davemloft.net>
* | tg3: Fix firmware loadingMatt Carlson2009-01-202-31/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch modifies how the tg3 driver handles device firmware. The patch starts by consolidating David Woodhouse's earlier patch under the same name. Specifically, the patch moves the request_firmware call into a separate tg3_request_firmware() function and calls that function from tg3_open() rather than tg3_init_one(). The patch then goes on to limit the number of devices that will make request_firmware calls. The original firmware patch unnecessarily requested TSO firmware for devices that did not need it. This patch reduces the set of devices making TSO firmware patches to approximately the following device set : 5703, 5704, and 5705. Finally, the patch reduces the effects of a request_firmware() failure. For those devices that are requesting TSO firmware, the driver will turn off the TSO capability. If TSO firmware becomes available at a later time, the device can be closed and then opened again to reacquire the TSO capability. Signed-off-by: Matt Carlson <mcarlson@broadcom.com> Signed-off-by: Michael Chan <mchan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | ixgbe: Fix usage of netif_*_all_queues() with netif_carrier_{off|on}()Peter P Waskiewicz Jr2009-01-201-3/+3
| | | | | | | | | | | | | | | | | | | | netif_carrier_off() is sufficient to stop Tx into the driver. Stopping the Tx queues is redundant and unnecessary. By the same token, netif_carrier_on() will be sufficient to re-enable Tx, so waking the queues is unnecessary. 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>
* | ixgbe: fix tag stripping for VLAN ID 0Don Skidmore2009-01-201-26/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Register VLAN ID 0 so that frames with VLAN ID 0 are received and get their tag stripped when ixgbe is not in DCB mode. VLAN ID 0 means that the frame is 'priority tagged' only - it is not a VLAN, but the priority value is the tag in valid. The functions ixgbe_vlan_rx_register() and ixgbe_vlan_rx_kill_vid() were moved up a couple functions to correct compiling issues with this change. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Eric W Multanen <eric.w.multanen@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | ixgbe: fix dca issue with relaxed ordering turned onDon Skidmore2009-01-202-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The is an issue where setting Relaxed Ordering (RO) bit (in a PCI-E write transaction) on 82598 causing the chipset to drop DCA hints. This patch forces RO not to be set for descriptors as well as payload. This will only be in effect while DCA is enabled and no performance difference was noticed in testing. Signed-off-by: Don Skidmore <donald.c.skidmore@intel.com> 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>
* | korina: drop leftover assignmentPhil Sutter2009-01-201-2/+1
| | | | | | | | | | | | | | | | | | | | As the assigned value is being overwritten shortly after, it can be dropped and so the whole variable definition moved to the start of the function. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | korina: adjust headroom for new skb's alsoPhil Sutter2009-01-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | This is copy and paste from the original driver. As skb_reserve() is also called within korina_alloc_ring() when initially allocating the receive descriptors, the same should be done when allocating new space after passing an skb to upper layers. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | korina: fix loop back of receive descriptorsPhil Sutter2009-01-201-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | After the last loop iteration, i has the value RC32434_NUM_RDS and therefore leads to an index overflow when used afterwards to address the last element. This is yet another another bug introduced when rewriting parts of the driver for upstream preparation, as the original driver used 'RC32434_NUM_RDS - 1' instead. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Acked-by: Florian Fainelli <florian@openwrt.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | cxgb3: Fix LRO misalignmentDivy Le Ray2009-01-201-0/+1
| | | | | | | | | | | | | | | | | | | | The lro manager's frag_align_pad setting was missing, leading to misaligned access to the skb passed up to the stack. Tested-by: Rick Jones <rick.jones2@hp.com> Signed-off-by: Divy Le Ray <divy@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | macb: avoid lockup when TGO during underrunRichard Röjfors2009-01-201-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In rare cases when an underrun occur, all macb buffers where consumed and the netif_queue was stopped infinitely. This happens then the TGO (transfer ongoing) bit in the TSR is set (and UND). It seems like clening up after the underrun makes the driver and the macb hardware end up in an inconsistent state. The result of this is that in the following calls to macb_tx no TX buffers are released -> the netif_queue was stopped, and never woken up again. The solution is to disable the transmitter, if TGO is set, before clening up after the underrun, and re-enable the transmitter when the cleaning up is done. Signed-off-by: Richard Röjfors <richard.rojfors@endian.se> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2x: Version updateEilon Greenstein2009-01-204-6/+6
| | | | | | | | | | | | | | Updating the version and the year of updated files Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
* | bnx2x: Barriers for the compilerEilon Greenstein2009-01-202-19/+27
| | | | | | | | | | | | | | | | To make sure no swapping are made by the compiler, changed HAS_WORK to inline functions and added all the necessary barriers Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>