blob: b50b2d102ee4b9073a5d9a00750d14bb2eeaa623 [file] [log] [blame]
commit 89f13816d5c24f561be035e6977bcaebfa288114
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 14:35:57 2009 -0800
bnx2: Refine VPD logic.
- Replace magic values with constants
- Simplify length calculation and fix a bug
Based on valuable feedback from Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
commit 55dbabee63462a455d8fb57caf08b69db256b012
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 09:46:35 2009 +0000
bnx2: Update version to 2.0.3.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 76d9906170259b581691c3cec6bc5d4ab3aaaede
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 09:46:34 2009 +0000
bnx2: Read firmware version from VPD.
And display it through ethtool -i.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b929e53cb7796a8abe47174dfdfdf90cbb65a8bf
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 09:46:33 2009 +0000
bnx2: Print warning when unable to allocate the full SKB/page ring.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 20175c57f23cde2049c509eb00a2f9d373478107
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 09:46:32 2009 +0000
bnx2: Dump some state during tx timeout.
To help debug the problem.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 51bf6bb424c14bfd3590a0de03fbd07fc800435e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 3 09:46:31 2009 +0000
bnx2: Protect tx timeout reset with rtnl_lock().
To prevent race conditions with other reset events.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e00484023ebe94dce03fdd1270edf3e191c2bc79
Merge: 3248e16 1f5865e
Author: David S. Miller <davem@davemloft.net>
Date: Wed Dec 2 22:00:34 2009 -0800
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
commit e95524a726904a1d2b91552f0577838f67d53c6c
Author: Alexander Duyck <alexander.h.duyck@intel.com>
Date: Wed Dec 2 16:47:57 2009 +0000
bnx2: remove skb_dma_map/unmap calls from driver
Due to the fact that skb_dma_map/unmap do not work correctly when a HW
IOMMU is enabled it has been recommended to go about removing the calls
from the network device drivers.
[ Fix bnx2_free_tx_skbs() ring indexing and use NETDEV_TX_OK return
code in bnx2_start_xmit() after cleaning up DMA mapping errors. -Mchan ]
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 529fab67d78747ddc3a8a2bbd0d1aab1d059439f
Author: Breno Leitao <leitao@linux.vnet.ibm.com>
Date: Thu Nov 26 07:31:49 2009 +0000
bnx2: EEH is failing with timeout
bnx2 is failing when a PCI error is detected. The error is the
following:
bnx2: Chip not in correct endian mode
bnx2: fw sync timeout, reset code = 404001d
This error was caused because the way pci_restore_state() is working
after commit 4b77b0a2ba27d64f58f16d8d4d48d8319dda36ff ("PCI: Clear
saved_state after the state has been restored").
Signed-off-by: Breno Leitao<leitao@linux.vnet.ibm.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c7079857cd89cb5bc686df1d441db8ef0137abf1
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date: Mon Nov 2 23:17:42 2009 +0000
bnx2: avoid compiler warnings
drivers/net/bnx2.c: In function ‘bnx2_enable_forced_2g5’:
drivers/net/bnx2.c:1447: warning: ‘bmcr’ may be used uninitialized in this function
drivers/net/bnx2.c: In function ‘bnx2_disable_forced_2g5’:
drivers/net/bnx2.c:1482: warning: ‘bmcr’ may be used uninitialized in this function
One fix would be to have an initial value, but a plain return might be better.
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7ab0f2736bfe137a82a7084bbfb5f809da95cabd
Author: Ben Hutchings <bhutchings@solarflare.com>
Date: Thu Sep 3 10:39:43 2009 +0000
netdev: Remove redundant checks for CAP_NET_ADMIN in MDIO implementations
dev_ioctl() already checks capable(CAP_NET_ADMIN) before calling the
driver's implementation of MDIO ioctls.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 61357325f377889a1daffa14962d705dc814dd0e
Author: Stephen Hemminger <shemminger@vyatta.com>
Date: Mon Aug 31 19:50:58 2009 +0000
netdev: convert bulk of drivers to netdev_tx_t
In a couple of cases collapse some extra code like:
int retval = NETDEV_TX_OK;
...
return retval;
into
return NETDEV_TX_OK;
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 078b0735881c7969aaf21469f3577831cddd9f8c
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Aug 29 00:02:46 2009 -0700
bnx2: Update firmware to 5.0.0.j3.
- Better small packet receive performance.
- Better handling of Flow control on 5709.
- Fixed iSCSI TMP ABORT TASK problem.
- Added iSCSI TCP timestamp option.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8fea0f0db87a4aaed41a93eed147af61cc5f9e3f
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:50 2009 +0000
bnx2: Update version to 2.0.2.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0ced9d01d19795f913b95cebedd7d03986671379
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:49 2009 +0000
bnx2: Use const on flash_table structure.
The structure, once initialized, never changes.
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>
commit cf7474a6f4eda22603591b7d6253dffc224e4784
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:48 2009 +0000
bnx2: Refine coalescing parameters.
- Set the USE_INT_PARAM bit so the rx-frames-irq and tx-frames-irq will take
effect on 5709.
- Increase the default rx-frames to reduce interrupt count.
- Decrease the default rx-frames-irq and tx-frames-irq to catch more events
during NAPI poll.
All these will reduce interrupts without affecting latency.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 790dab2f671cb477e6179322a6c48c898e311e72
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:47 2009 +0000
bnx2: Report FTQ discard counter.
Report this counter to ethtool -S and include it in netstat.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 61d9e3fa7eacabfb7879e3da91709f1a5420c507
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:46 2009 +0000
bnx2: Apply BROKEN_STATS workaround to 5706 and 5708.
Add flag to expand the workaround to both chips.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6fefb65e78f098c09d0ab877b2c70421e4c84116
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:45 2009 +0000
bnx2: Close device if MTU change or ring size change fails.
When unable to allocate memory for new MTU or new ring size, we need
to close the device to prevent it from crashing.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3767546cc24de8f104e745d59a0a43a09d9267df
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:44 2009 +0000
bnx2: Check if_running() before touching chip registers.
Add this check to bnx2_netif_stop() and bnx2_vlan_rx_register() to
prevent bus lockups on some systems when the chip is in low power state.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 155d5561f570c5b3af7a178670061927d89209fb
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 21 16:20:43 2009 +0000
bnx2: Zero out status block before chip reset.
In case IRQs are shared, we will not mistakenly start processing
the ring based on old status block indices.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c5a889508203446c1abc1d670599b3a816841813
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 14 15:49:45 2009 +0000
bnx2: Use mutex on slow path cnic calls.
The slow path calls to the cnic driver are sleepable calls so we
cannot use rcu_read_lock(). Use mutex for these slow path calls
instead.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2ec3de26d2dc666159b79a8b9394fa00b6f414ae
Author: Dean Nelson <dnelson@redhat.com>
Date: Fri Jul 31 09:13:18 2009 +0000
bnx2: return PCI_ERS_RESULT_DISCONNECT on permanent failure
PCI drivers that implement the struct pci_error_handlers' error_detected
callback should return PCI_ERS_RESULT_DISCONNECT if the state passed in is
pci_channel_io_perm_failure. This patch fixes the issue for bnx2.
Signed-off-by: Dean Nelson <dnelson@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 72dccb01e8632aa5ffe58070003d0fa19d007116
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date: Thu Jul 23 02:01:38 2009 +0000
bnx2: Update vlan_features
[PATCH net-next-2.6] bnx2: Update vlan_features
In order to get full use of some advanced features of BNX2, we now need to
fill dev->vlan_features.
Patch successfully tested with vlan devices built on top of bonding.
(bond0 : one bnx2 slave, one tg3 slave (not yet vlan_features enabled)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7959ea254ed18faee41160b1c50b3c9664735967
Author: Ooiwa Naohiro <nooiwa@miraclelinux.com>
Date: Wed Jun 24 00:19:06 2009 -0700
bnx2: Fix the behavior of ethtool when ONBOOT=no
I found a little bug.
When configure in ifcfg-eth* is ONBOOT=no,
the behavior of ethtool command is wrong.
# grep ONBOOT /etc/sysconfig/network-scripts/ifcfg-eth2
ONBOOT=no
# ethtool eth2 | tail -n1
Link detected: yes
I think "Link detected" should be "no".
Signed-off-by: Ooiwa Naohiro <nooiwa@miraclelinux.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 31278e71471399beaff9280737e52b47db4dc345
Author: Jiri Pirko <jpirko@redhat.com>
Date: Wed Jun 17 01:12:19 2009 +0000
net: group address list and its count
This patch is inspired by patch recently posted by Johannes Berg. Basically what
my patch does is to group list and a count of addresses into newly introduced
structure netdev_hw_addr_list. This brings us two benefits:
1) struct net_device becames a bit nicer.
2) in the future there will be a possibility to operate with lists independently
on netdevices (with exporting right functions).
I wanted to introduce this patch before I'll post a multicast lists conversion.
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
drivers/net/bnx2.c | 4 +-
drivers/net/e1000/e1000_main.c | 4 +-
drivers/net/ixgbe/ixgbe_main.c | 6 +-
drivers/net/mv643xx_eth.c | 2 +-
drivers/net/niu.c | 4 +-
drivers/net/virtio_net.c | 10 ++--
drivers/s390/net/qeth_l2_main.c | 2 +-
include/linux/netdevice.h | 17 +++--
net/core/dev.c | 130 ++++++++++++++++++--------------------
9 files changed, 89 insertions(+), 90 deletions(-)
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9cbc1cb8cd46ce1f7645b9de249b2ce8460129bb
Merge: ca44d6e... 45e3e19...
Author: David S. Miller <davem@davemloft.net>
Date: Mon Jun 15 03:02:23 2009 -0700
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
Documentation/feature-removal-schedule.txt
drivers/scsi/fcoe/fcoe.c
net/core/drop_monitor.c
net/core/net-traces.c
commit 4edd473f208cff77ce1f7ef26d5a41f31fa198e0
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 8 18:14:42 2009 -0700
[SCSI] bnx2: Add support for CNIC driver.
Add interface and functions to support a new CNIC driver to drive
the Broadcom bnx2 hardware for iSCSI offload.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
commit d62fda082c48b417b47a553860abf75d9cf8b591
Author: Eric Dumazet <dada1@cosmosbay.com>
Date: Tue May 12 20:48:02 2009 +0000
bnx2: bnx2_tx_int() optimizations
When using bnx2 in a high transmit load, bnx2_tx_int() cost is pretty high.
There are two reasons.
One is an expensive call to bnx2_get_hw_tx_cons(bnapi) for each freed skb
One is cpu stalls when accessing skb_is_gso(skb) / skb_shinfo(skb)->nr_frags
because of two cache line misses.
(One to get skb->end/head to compute skb_shinfo(skb),
one to get is_gso/nr_frags)
This patch :
1) avoids calling bnx2_get_hw_tx_cons(bnapi) too many times.
2) makes bnx2_start_xmit() cache is_gso & nr_frags into sw_tx_bd descriptor.
This uses a litle bit more ram (256 longs per device on x86), but helps a lot.
3) uses a prefetch(&skb->end) to speedup dev_kfree_skb(), bringing
cache line that will be needed in skb_release_data()
result is 5 % bandwidth increase in benchmarks, involving UDP or TCP receive
& transmits, when a cpu is dedicated to ksoftirqd for bnx2.
bnx2_tx_int going from 3.33 % cpu to 0.5 % cpu in oprofile
Note : skb_dma_unmap() still very expensive but this is for another patch,
not related to bnx2 (2.9 % of cpu, while it does nothing on x86_32)
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 06d4a1dac60723a1fca2dcd0107a962759749908
Author: Michael Chan <mchan@broadcom.com>
Date: Wed May 6 10:15:34 2009 -0700
bnx2: Fix panic in bnx2_poll_work().
Add barrier() to bnx2_get_hw_{tx|rx}_cons() to fix this issue:
http://bugzilla.kernel.org/show_bug.cgi?id=12698
This issue was reported by multiple i386 users. Without barrier(),
the compiled code looks like the following where %eax contains the
address of the tx_cons or rx_cons in the DMA status block. The
status block contents can change between the cmpb and the movzwl
instruction. The driver would crash if the value was not 0xff during
the cmpb instruction, but changed to 0xff during the movzwl
instruction.
6828: 80 38 ff cmpb $0xff,(%eax)
682b: 0f b7 10 movzwl (%eax),%edx
With the added barrier(), the compiled code now looks correct:
683d: 0f b7 10 movzwl (%eax),%edx
6840: 0f b6 c2 movzbl %dl,%eax
6843: 3d ff 00 00 00 cmp $0xff,%eax
Thanks to Pascal de Bruijn <pmjdebruijn@pcode.nl> for reporting the
problem and Holger Noefer <hnoefer@pironet-ndh.com> for patiently
testing test patches for us.
Also updated version to 2.0.1.
Signed-off-by: Michael Chan <mchan@broadcom.com>
commit 690103137267e9ed893febf7ff061af63e8235a9
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Mar 18 18:11:51 2009 -0700
bnx2: Fix problem of using wrong IRQ handler.
The MSI-X handler was chosen before the call to pci_enable_msix().
If MSI-X was not available, the wrong MSI-X handler would be used in
INTA mode. This would cause a screaming interrupt problem because
INTA would not be cleared by the MSI-X handler.
Fixed by assigning MSI-X handler after pci_enable_msix() returns
successfully. Also update version to 1.9.3.
Thomas Chenault <thomas_chenault@dell.com> helped us find this problem.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit a6952b5299ab506051f05395f7c26ff1352759ad
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Feb 12 16:54:48 2009 -0800
bnx2: Update version to 1.9.2 and copyright.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 990ec3804bb9fd37fcce3e165c95e8b79a783aa3
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Feb 12 16:54:13 2009 -0800
bnx2: Fix jumbo frames error handling.
If errors are reported on a frame descriptor, we need to
account for the buffer pages that may have been used for this
error packet and recycle them. Otherwise, we may get the wrong
pages for the next packet.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 259436a505bedc59a0114f2d17fa56af71d94129
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Feb 12 16:53:48 2009 -0800
bnx2: Update 5709 firmware.
New firmware fixes a data corruption issue when receiving and
placing jumbo frames into host buffers. In some cases, the
buffer descriptor is not updated correctly and this will lead
to the driver linking the wrong number of pages into the SKB.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 86f95f9eac4370ca7b9cf5d34dea24faae5e4be6
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Feb 12 16:53:22 2009 -0800
bnx2: Update 5706/5708 firmware.
New firmware fixes a data corruption issue when receiving and
placing jumbo frames into host buffers. In some cases, the
buffer descriptor is not updated correctly and this will lead
to the driver linking the wrong number of pages into the SKB.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0c8dfc830aadd978e461dad66c33741b71c6a0be
Author: David S. Miller <davem@davemloft.net>
Date: Tue Jan 27 16:22:32 2009 -0800
net: Add skb_record_rx_queue() calls to multiqueue capable drivers.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 52d07b1f5039f51101a589856d9058e9cc8ce5dc
Author: Harvey Harrison <harvey.harrison@gmail.com>
Date: Mon Jan 19 17:27:06 2009 -0800
bnx2: annotate bp->phy_lock functions
It looks like the locking is OK as the locks were being taken before the
various phy setup functions, add the annotations as they release and
reacquire the phy_lock.
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 288379f050284087578b77e04f040b57db3db3f8
Author: Ben Hutchings <bhutchings@solarflare.com>
Date: Mon Jan 19 16:43:59 2009 -0800
net: Remove redundant NAPI functions
Following the removal of the unused struct net_device * parameter from
the NAPI functions named *netif_rx_* in commit 908a7a1, they are
exactly equivalent to the corresponding *napi_* functions and are
therefore redundant.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 908a7a16b852ffd618a9127be8d62432182d81b4
Author: Neil Horman <nhorman@tuxdriver.com>
Date: Mon Dec 22 20:43:12 2008 -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>
commit 3298a7388c00227e736d1037328788073c80c7b4
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 17 19:06:08 2008 -0800
bnx2: Fix bug in bnx2_free_rx_mem().
DMA memory for the jumbo rx page rings was freed incorrectly using the
wrong local variable as the array index.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1f2435e532bd64742c3f766b7d5c17cc9d0b8558
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Dec 16 20:28:13 2008 -0800
bnx2: Update version to 1.9.0.
And fix the 5716S pci_device_id entry to point to the proper string.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 4e1d0de95c55383f598516ebf82969260c18e4bd
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Dec 16 20:27:45 2008 -0800
bnx2: Rename MSI-X vectors.
Change MSI-X vector names to "ethx-%d".
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit efba01803c8570bab11d0d6188a630231d0ddccf
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 3 00:36:15 2008 -0800
bnx2: Add workaround to handle missed MSI.
The bnx2 chips do not support per MSI vector masking. On 5706/5708, new MSI
address/data are stored only when the MSI enable bit is toggled. As a result,
SMP affinity no longer works in the latest kernel. A more serious problem is
that the driver will no longer receive interrupts when the MSI receiving CPU
goes offline.
The workaround in this patch only addresses the problem of CPU going offline.
When that happens, the driver's timer function will detect that it is making
no forward progress on pending interrupt events and will recover from it.
Eric Dumazet reported the problem.
We also found that if an interrupt is internally asserted while MSI and INTA
are disabled, the chip will end up in the same state after MSI is re-enabled.
The same workaround is needed for this problem.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Tested-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0421eae68ffaf5ecfac860ee86e6a92e5b32a992
Author: Stephen Hemminger <shemminger@vyatta.com>
Date: Fri Nov 21 17:31:27 2008 -0800
bnx2: convert to net_device_ops
Convert driver to new net_device_ops. Compile tested only.
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b2af2c1d3e4ddeea9d02c46d0df0c322cc7b7061
Author: Neil Horman <nhorman@tuxdriver.com>
Date: Wed Nov 12 16:23:44 2008 -0800
bnx2: fix poll_controller to pass proper structures and check all rx queues
Fix bnx2 so that netpoll works properly. Specifically:
1) Fix parameters to bnx2_interrupt to be a struct bnx2_napi rather than a
struct net_device
2) Fix poll_controller method to check every queue in the rx case so frames
aren't missed
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e4412cb8a6b4190cf73ae44c859fd7e3727d8b13
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Nov 12 16:03:05 2008 -0800
bnx2: Update version to 1.8.2.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 40105c0b0753515711318db87d36c8338dc74490
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Nov 12 16:02:45 2008 -0800
bnx2: Reorganize timeout constants.
Move all related timeout constants to the same location. BNX2
prefix is also added to make them more consistent.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d8026d939495c105cf747c0196a8fa738cf2ad20
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Nov 12 16:02:20 2008 -0800
bnx2: Set rx buffer water marks based on MTU.
The default rx buffer water marks for XOFF/XON are for 1500 MTU. At
larger MTUs, these water marks need to be adjusted for effective
flow control.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5ec6d7bf195c2e70003ff30e4f51390ef7e85a31
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Nov 12 16:01:41 2008 -0800
bnx2: Restrict WoL support.
On some quad-port cards that cannot support WoL on all ports due
to excessive power consumption, the driver needs to restrict WoL
on some ports by checking VAUX_PRESET bit.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1caacecb7cb2b72e798f06a32b5061075cf397fa
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Nov 12 16:01:12 2008 -0800
bnx2: Add PCI ID for 5716S.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit babcda74e9d96bb58fd9c6c5112dbdbff169e695
Author: David S. Miller <davem@davemloft.net>
Date: Mon Nov 3 21:11:17 2008 -0800
drivers/net: Kill now superfluous ->last_rx stores.
The generic packet receive code takes care of setting
netdev->last_rx when necessary, for the sake of the
bonding ARP monitor.
Drivers need not do it any more.
Some cases had to be skipped over because the drivers
were making use of the ->last_rx value themselves.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ec7e6fabbe72f1fe65eed14c106a0fbc00f6c2f1
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Oct 9 12:27:06 2008 -0700
bnx2: Update version to 1.8.1.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3d16af8665504c89f9ef3aae56f54fb93e48da61
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Oct 9 12:26:41 2008 -0700
bnx2: Handle DMA mapping errors.
Before, the driver would not care about the return codes from pci_map_*
functions. This could be potentially dangerous if a mapping failed.
Now, we will check all pci_map_* calls. On the transmit side, we switch
to use the new function skb_dma_map(). On the receive side, we add
pci_dma_mapping_error().
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>
commit a1efb4b686babf38e5e63add8b990f18e38becc4
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Oct 9 12:24:39 2008 -0700
bnx2: Eliminate TSO header modifications.
This is now possible with updated firmware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d5321e309c2fd1a1d534fc7bb674a1fff9f25d94
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Oct 9 12:22:38 2008 -0700
bnx2: Update 5706/5708 firmware.
With this new firmware, the driver no longer has to modify the
TCP/IP header fields when transmitting TSO packets.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9f52b564b7162ede5a73a4f4b421ccf93c55b025
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Oct 9 12:21:46 2008 -0700
bnx2: Check netif_running() in all ethtool operations.
We need to check netif_running() state in most ethtool operations
and properly handle the !netif_running() state where the chip is
in an uninitailzed state or low power state that may not accept
any MMIO.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 74bf4ba3d367aacbc04fef167289767f162cd730
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Oct 9 12:21:08 2008 -0700
bnx2: Add bnx2_shutdown_chip().
This logic is used in bnx2_close() and bnx2_suspend() and
so should be separated out into a separate function.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ac392abce936d78f7b731d90bfbc1001ddb446ea
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Sep 18 16:40:49 2008 -0700
bnx2: Remove timer_interval field from the bnx2 structure
The timer_interval field is only assigned once, and never reassigned.
We can safely replace all instances of the timer_interval with a
constant value.
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit fbbf68b7f88953a9c56b7a7b4019fa5212987b34
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Sep 18 16:40:03 2008 -0700
bnx2: Remove name field from bnx2 structure
The name of the board is only used during the initialization of
the adapter. We can save the space of a pointer by not storing
this information.
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 453a9c6e995149c4a43e50b5482a48ed0298b0dc
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Sep 18 16:39:16 2008 -0700
bnx2: Update MODULE_DESCRIPTION to include the 5716
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 344478db5385194ec27f6aaf780ea21c4b4ff02c
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Sep 18 16:38:24 2008 -0700
bnx2: In bnx2_set_mac_link() return void rather then int
bnx2_set_mac_link() doesn't need to return any error codes. And
all the callers don't check the return code. It is safe to
change the return type to a void.
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 27ed9ddfde8d2967076c51815e4ce297c4a18139
Author: Benjamin Li <benli@broadcom.com>
Date: Thu Sep 18 16:46:11 2008 -0700
bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned int
The bnx2 driver stores/uses the irq value from the pci_dev internally.
But when it stores the irq value, it has been performing an
integer demotion. Because of the recent changes made to
arch/x86/kernel/io_apic.c, the new method in creating the irq value
(using build_irq_for_pci_dev()) has exposed this bug on x86 systems.
Because of this demotion when calling request_irq() from
bnx2_request_irq(), the driver would get a return code of -EINVAL.
This is because the kernel could not find the requested irq descriptor.
By storing the irq value properly, the kernel can find the correct
irq descriptor and the bnx2 driver can operate normally.
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>
commit 08013fa353fdcfc0a03cae805393abfc56722387
Author: David S. Miller <davem@davemloft.net>
Date: Fri Aug 15 19:46:01 2008 -0700
bnx2: Fix build with VLAN_8021Q disabled.
Reported by Randy Dunlap.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0eb8b1fe9238ca4c1797e4c105d5790abda1726f
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 14 15:30:31 2008 -0700
bnx2: Update version to 1.8.0.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f22828e89f4f3e8c74ca7ffa69b0410afbd80eee
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 14 15:30:14 2008 -0700
bnx2: Reinsert VLAN tag when necessary.
In certain cases when ASF or other management firmware is running, the
chip may be configured to always strip out the VLAN tag even when
VLAN acceleration is not enabled. This causes some VLAN tagged
packets to be received by the host stack without any knowledge that
the original packet was VLAN tagged.
We fix this by re-inserting the VLAN tag into the packet when necessary.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 729b85cd47f4e63657505cb5c6af104e19250805
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 14 15:29:39 2008 -0700
bnx2: Use proper CONFIG_VLAN_8021Q to compile the VLAN code.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7c6337a15e3d4689efe703e8bb65ae82cc13c435
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 14 15:29:09 2008 -0700
bnx2: Fix logic to setup VLAN rx tagging.
We should now be checking BNX2_FLAG_CAN_KEEP_VLAN to determine how
to set the VLAN rx tagging in the RX_MODE register.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3ca4095f246c21c285d9e4be2ea4d3ee7fbacebd
Author: Benjamin Li <benli@broadcom.com>
Date: Fri Jul 18 17:58:57 2008 -0700
bnx2: Update version to 1.7.9.
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>
commit 8a31329eae0949a8a73b64fcead84bb44a350591
Author: Benjamin Li <benli@broadcom.com>
Date: Fri Jul 18 17:57:26 2008 -0700
bnx2: Fix Sparse warnings
This patch will fix the following sparse warnings:
/home/benli/sparse/bnx2.c:297:8: warning: symbol 'val' shadows an earlier one
/home/benli/sparse/bnx2.c:286:60: originally declared here
/home/benli/sparse/bnx2.c:7461:7: warning: symbol 'i' shadows an earlier one
/home/benli/sparse/bnx2.c:7265:10: originally declared here
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>
commit 706bf24038ba88ec77503b4829b16da712a32f04
Author: Benjamin Li <benli@broadcom.com>
Date: Fri Jul 18 17:55:11 2008 -0700
bnx2: Add TX multiqueue support.
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>
commit 4f83ec19bbd0c78a2158c7a5d28f70d8b4417803
Author: Benjamin Li <benli@broadcom.com>
Date: Fri Jul 18 17:54:17 2008 -0700
bnx2: Update TPAT firmware
This change allows the first TX ring (CID 16) and the first TSS TX ring
(CID 32) to be used concurrently. Before this change, we could get TSO
errors when both TX rings were used concurrently.
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>
commit 3cb29b1bca00736e984ea8ab368af40394a1bca0
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 14 22:40:21 2008 -0700
bnx2: Update version to 1.7.8.
Signed-off-by: Michael Chan <mchan@braodcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5fcaed0124cde73124227542bfce4ed57fccbb50
Author: Benjamin Li <benli@broadcom.com>
Date: Mon Jul 14 22:39:52 2008 -0700
bnx2: Support secondary MAC addresses.
Add support for configuring secondary unicast addresses. There
are 4 additional perfect match filters which can be used for
secondary unicast address support.
* Modified bnx2_set_mac_addr() to be more generic in handling
the setting of the perfect match filters
* Changed bnx2_set_rx_mode() to handle the unicast dev_addr_list
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>
commit 7c62e83beb1446d690ed921beddb0dcf34c9baa9
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 14 22:39:03 2008 -0700
bnx2: Allow flexible VLAN tag settings.
Negotiate with boot code and ASF firmware to see if it can
support keeping VLAN tags in the RX packets. If supported
by firmware, the VLAN tag will be kept in the RX packet
unless VLAN acceleration is registered.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit a2f138900d5c342742c369293edaf92d2173c92e
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 14 22:38:23 2008 -0700
bnx2: Add ack parameter to bnx2_fw_sync().
ack=1 means wait for firmware acknowledgement, and ack=0
means don't wait. All current callers will set it to 1.
In the next patch, new calls will set ack=0.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7bb0a04fcd610e5db59690332b2a46b6068c8bc3
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 14 22:37:47 2008 -0700
bnx2: Add PCI ID for 5716.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <Benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d6b14486953d0e8d1c57db29bf6104cea198b884
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 14 22:37:21 2008 -0700
bnx2: Prevent ethtool -s from crashing when device is down.
The device may be in D3-hot state and may crash if we try to
configure the speed settings by accessing the registers.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8427f1361225ca27679a6d810c04ddbc357602a7
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:44:44 2008 -0700
bnx2: Update driver version to 1.7.7.
And update module description.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2739a8bb5b13653999827da09565b1bca5cec67d
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:44:10 2008 -0700
bnx2: Cleanup error handling in bnx2_open().
All error handling in bnx2_open() can be consolidated.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5e9ad9e108883503fedfac3279ac101dce00bb56
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:43:17 2008 -0700
bnx2: Turn on multi rx rings.
Enable multiple rx rings if MSI-X vectors are available. We enable
up to 7 rx rings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f0ea2e63859cf234b7017a2d7bba2a5a1db3bf25
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:41:57 2008 -0700
bnx2: Use one handler for all MSI-X vectors.
Use the same MSI-X handler to schedule NAPI. Change the dev_instance
void pointer to the bnx2_napi struct instead so we can have the proper
context for each MSI-X vector.
Add a new bnx2_poll_msix() that is optimized for handling MSI-X
NAPI polling of rx/tx work only. Remove the old bnx2_tx_poll() that
is no longer needed. Each MSI-X vector handles 1 tx and 1 rx ring.
The first vector handles link events as well.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 43e80b89b65cbc62b5e0fde09b47c9fc572a8b11
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:41:08 2008 -0700
bnx2: Optimize fast-path tx and rx work.
Add hw_tx_cons_ptr and hw_rx_cons_ptr to speed up the retreival of
the tx and rx consumer index, since the MSI-X and default status
blocks have different structures.
Combine status_blk and status_blk_msix into a union. We'll only use
one type of status block for each vector.
Separate the code to detect more rx and tx work from the code to
detect link related work.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bb4f98abf590cf9899017f14f1a54984f02a0009
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:38:19 2008 -0700
bnx2: Put rx ring variables in a separate struct.
In preparation for multi-ring support, rx ring variables are now put
in a separate bnx2_rx_ring_info struct. With MSI-X, we can support
multiple rx rings.
The functions to allocate/free rx memory and to initialize rx rings
are now modified to handle multiple rings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 35e9010b22503f42cbf88144ffe1feff90ea3835
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 19 16:37:42 2008 -0700
bnx2: Put tx ring variables in a separate struct.
In preparation for multi-ring support, tx ring variables are now put
in a separate bnx2_tx_ring_info struct. Multi tx ring will not be
enabled until it is fully supported by the stack. Only 1 tx ring
will be used at the moment.
The functions to allocate/free tx memory and to initialize tx rings
are now modified to handle multiple rings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 4ae127d1b6c71f9240dd4245f240e6dd8fc98014
Merge: 875ec43... 7775c97...
Author: David S. Miller <davem@davemloft.net>
Date: Fri Jun 13 20:52:39 2008 -0700
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/smc911x.c
commit 4bb073c0e32a0862bdb5215d11af19f6c0180c98
Author: David S. Miller <davem@davemloft.net>
Date: Thu Jun 12 02:22:02 2008 -0700
net: Eliminate flush_scheduled_work() calls while RTNL is held.
If the RTNL is held when we invoke flush_scheduled_work() we could
deadlock. One such case is linkwatch, it is a work struct which tries
to grab the RTNL semaphore.
The most common case are net driver ->stop() methods. The
simplest conversion is to instead use cancel_{delayed_}work_sync()
explicitly on the various work struct the driver uses.
This is an OK transformation because these work structs are doing
things like resetting the chip, restarting link negotiation, and so
forth. And if we're bringing down the device, we're about to turn the
chip off and reset it anways. So if we cancel a pending work event,
that's fine here.
Some drivers were working around this deadlock by using a msleep()
polling loop of some sort, and those cases are converted to instead
use cancel_{delayed_}work_sync() as well.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 236ae64063faf7d3398b4f9a889421b0d27a69d2
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 16 22:20:59 2008 -0700
bnx2: Update version to 1.7.6.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 10343cca2bad3f9fdad214385bed0a9aadf4ffd4
Author: Benjamin Li <benli@broadcom.com>
Date: Fri May 16 22:20:27 2008 -0700
bnx2: Pre-initialize struct cpu_reg.
Instead of assigning values for the struct cpu_reg's at runtime,
we already know these values at compile time. Therefore, we can use
designated initializers, to initialize these structures and not have
to incur this assignment cost at run-time.
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>
commit 601d3d18b2c1e4c197aa3cd902fb77bd99c41f10
Author: Benjamin Li <benli@broadcom.com>
Date: Fri May 16 22:19:35 2008 -0700
bnx2: Rename RX_COPY_THRESH to BNX2_RX_COPY_THRESH.
To make the bnx2 code more consistent, all instances of
RX_COPY_THRESH have been changed to BNX2_RX_COPY_THRESH.
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>
commit d89cb6af41559a601e9cfe081d34de07945b0d8b
Author: Benjamin Li <benli@broadcom.com>
Date: Fri May 16 22:18:57 2008 -0700
bnx2: Remove the rx_offset field from the bnx2 structure.
The rx_offset field is set to a constant value and initialized
only once. By replacing all references to the rx_offset field,
we can eliminate rx_offset from the bnx2 structure. This will
save 4 bytes for every bnx2 instance.
[Added parentheses to the definition of BNX2_RX_OFFSET, as noted
by Ben Hutchings.]
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>
commit 6ff2da49c8a68320c2564006c94a492db58de5cd
Author: Wendy Xiong <wendyx@us.ibm.com>
Date: Fri May 16 22:18:21 2008 -0700
bnx2: Add EEH PCI recovery.
Add PCI recovery functions to the driver. The initial pci state is
also saved so the the MSI state can be restored during PCI recovery.
Signed-off-by: Wendy Xiong <wendyx@us.ibm.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9a120bc570627342c17befaa6af9b0a556dfda48
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 16 22:17:45 2008 -0700
bnx2: Allow phy reset to be skipped during chip reset.
Andy Gospodarek <andy@greyhouse.net> found that netconsole would
panic when resetting bnx2 devices.
>From Andy:
"The issue is the bnx2_set_link in bnx2_init_nic will print a link-status
message before we are fully initialized and ready to start polling.
Polling is currently disabled in this state, but since the
__LINK_STATE_RX_SCHED is overloaded to not only try and disable polling
but also to make the system aware there is something waiting to be
polled, we really have to fix this in drivers.
The problematic call is the one to netif_rx_complete as it tries to
remove an entry from the poll_list when there isn't one."
While this netconsole problem should be fixed separately, we really
should not reset the PHY when changing ring sizes, MTU, or other
similar settings. The PHY reset causes several seconds of unnecessary
link disruptions.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 705d209168681b4408d10fca7257de3343be573d
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:58:18 2008 -0700
bnx2: Update version to 1.7.5.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d25be1d3ecf0b1b95ae29919786372b87b2bfea6
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:57:59 2008 -0700
bnx2: Update RV2P firmware for 5709.
The new RV2P firmware fixes 2 issues:
1. The jumbo rx buffer page size is now configurable and set to the
proper PAGE_SIZE. Before, it was assumed to be always 4K.
2. Driver sometimes would crash when receiving jumbo packets mixed
with firmware management packets. This was caused by the old
firmware DMA'ing to the wrong address.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 352f76879ebde543817360ce9c18c973d4300f4f
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:57:26 2008 -0700
bnx2: Zero out context memory for 5709.
We should zero out the context memory for 5709 before each reset. When
we resume after suspend for example, the memory may not be zero and the
chip may not function correctly.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 15b169cccff1503a88f12f104e5657c65c53ade7
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:57:08 2008 -0700
bnx2: Fix register test on 5709.
The register BNX2_CTX_STATUS (0x1004) should be skipped on 5709 as it
contains reserved bits.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 543a827d7a5600a71855bd6afacac78536c86822
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:56:44 2008 -0700
bnx2: Fix remote PHY initial link state.
On some remote PHY blade systems, the driver receives no initial link
interrupt. As a result, the GMII/MII MAC mode does not get setup properly.
To fix this problem, we add an initial poll of the link state after chip
reset.
With this change, the setting of the initial carrier state in the init
code can be eliminated.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 74ecc62d6e595ca64bbef2471787bf53b94e5d3c
Author: Michael Chan <mchan@broadcom.com>
Date: Fri May 2 16:56:16 2008 -0700
bnx2: Refine remote PHY locking.
bnx2_set_remote_link() should be called under bp->phy_lock to protect
against concurrent polling and interrupt calls. This change is needed
by the next patch which will add one initial poll of the remote PHY
link status.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ab59859de1946a098b091308380179e92dc7683b
Author: Harvey Harrison <harvey.harrison@gmail.com>
Date: Thu May 1 02:47:38 2008 -0700
net: fix returning void-valued expression warnings
drivers/net/8390.c:37:2: warning: returning void-valued expression
drivers/net/bnx2.c:1635:3: warning: returning void-valued expression
drivers/net/xen-netfront.c:1806:2: warning: returning void-valued expression
net/ipv4/tcp_hybla.c:105:3: warning: returning void-valued expression
net/ipv4/tcp_vegas.c:171:3: warning: returning void-valued expression
net/ipv4/tcp_veno.c:123:3: warning: returning void-valued expression
net/sysctl_net.c:85:2: warning: returning void-valued expression
Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c73b1d1f26d4c9d54b49526edf9ee958ee5b80c1
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Feb 23 19:49:48 2008 -0800
[BNX2]: Update version to 1.7.4.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 38ea3686f6d1110a3787dfd7c5cf7bad1926818b
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Feb 23 19:48:57 2008 -0800
[BNX2]: Disable parallel detect on an HP blade.
Because of some board issues, we need to disable parallel detect on
an HP blade. Without this patch, the link state can become stuck
when it goes into parallel detect mode.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit a2724e2559a3c41ac6182da6e2446d3abf0720a5
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Feb 23 19:47:44 2008 -0800
[BNX2]: More 5706S link down workaround.
The previous patches to workaround the 5706S on an HP blade were not
sufficient. The link state still does not change properly in some
cases. This patch adds polling to make it completely reliable.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit fefa864530766d8da2b8606235387c5173fb2309
Author: Andrew Morton <akpm@linux-foundation.org>
Date: Sat Feb 9 23:17:15 2008 -0800
bnx2: section fix
gcc-3.4.4 on powerpc:
drivers/net/bnx2.c:67: error: version causes a section type conflict
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c26736ec171760a41307d775bbf05983ea45ea9e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jan 31 17:07:21 2008 -0800
[BNX2]: Fix ASYM PAUSE advertisement for remote PHY.
We were checking for the ASYM_PAUSE bit for 1000Base-X twice instead
checking for both the 1000Base-X bit and the 10/100/1000Base-T bit.
The purpose of the logic is to tell the firmware that ASYM_PAUSE is
set on either the Serdes or Copper interface.
Problem was discovered by Roel Kluin <12o3l@tiscali.nl>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 18c0226e3c0a75b0f1d6828c118bcedf59d7ee99
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:38:52 2008 -0800
[BNX2]: Update version to 1.7.3.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit df7f1ed6b85b936a4dd341c48e30aa207697997c
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:38:06 2008 -0800
[BNX2]: Update firmware.
Update firmware to support programmable flow control.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 83e3fc89bb2b7bb27b3a6da5a541c43ce7706f42
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:37:17 2008 -0800
[BNX2]: Fine-tune flow control on 5709.
Make use of the programmable high/low water marks in 5709 for
802.3 flow control.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 62a8313cddbea04f2a28d1d76acf317c2a56cfae
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:35:40 2008 -0800
[BNX2]: Remove CTX_WR macro.
The CTX_WR macro is unnecessary and obfuscates the code.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2726d6e126c0c16efeba30356d4ae105f1854d1e
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:35:05 2008 -0800
[BNX2]: Remove REG_WR_IND/REG_RD_IND macros.
The REG_WR_IND/REG_RD_IND macros are unnecessary and obfuscate the
code. Many callers to these macros read and write shared memory from
the bp->shmem_base, so we add 2 similar functions that automatically
add the shared memory base.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6f743ca052575a26439d796249d9e7740b8192d7
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:34:08 2008 -0800
[BNX2]: Refine tx coalescing setup.
Make the tx coalescing setup code independent of the MSIX vector.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f3014c0cb60ec15a0a2542cbfae7e8d888aa5cf8
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jan 29 21:33:03 2008 -0800
[BNX2]: Fix 5706 serdes link down bug.
1. Correct the MII expansion serdes control register definition.
2. Check an additional RUDI_INVALID bit when determining 5706S link.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b491edd5817f1618f4e06d67638739591a714bdb
Author: Al Viro <viro@ftp.linux.org.uk>
Date: Sat Dec 22 19:44:51 2007 +0000
bnx2 annotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 583c28e5645c464b57b4f5d3d53113c06bb0ac5f
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 21 19:51:35 2008 -0800
[BNX2]: Fix driver phy_flags name space.
Prefix "bp->phy_flags" names with BNX2_PHY_FLAG_* for consistency.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f86e82fb547efe05457391df069cce7ab530b181
Author: David S. Miller <davem@davemloft.net>
Date: Mon Jan 21 17:15:40 2008 -0800
[BNX2]: Fix driver software flag namespace.
Prefix "bnx2->flags" names with BNX2_* for consistency.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit feebb33183cee0fdf8e8a9c4f0da3231f0cfa2bb
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 21 17:07:29 2008 -0800
[BNX2] Update version to 1.7.2.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b2fadeae1334008c1bb4d87bc507141cb7aaf0e8
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 21 17:07:06 2008 -0800
[BNX2]: Add link-down workaround on 5706 serdes.
In some blade systems using the 5706 serdes, the hardware sometimes
does not properly generate link down interrupts. We add a workaround
in the driver's timer to force a link-down when some PHY registers
report loss of SYNC.
The parallel detect logic is cleaned up slightly to better integrate
the workaround.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1097f5e92107ca3950fabf5e1d724faa80c91e7f
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 21 17:06:41 2008 -0800
[BNX2]: Fix minor bug in bnx2_has_work().
It is more correct to get the status block from the bnx2_napi struct
instead of the bnx2 struct. It happens that they are the same in this
case because we are using the first MSIX vector.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2dd201d7b735f252df1a915a3f2e6a71910a3d87
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 21 17:06:09 2008 -0800
[BNX2]: Disable jumbo rx paging on 5709 Ax.
The chip has problem running in this mode and needs to be disabled.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 79ea13ce07c951bb4d95471e7300baa0f1be9e78
Author: Al Viro <viro@zeniv.linux.org.uk>
Date: Thu Jan 24 02:06:46 2008 -0800
NULL noise in drivers/net
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2ba582b782071c038b312ea330d3090a39f3c66a
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Dec 21 15:04:49 2007 -0800
[BNX2]: Fix compiler warning.
Change bnx2_init_napi() to void.
Warning was noted by DaveM.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 66a85fbe780c1c63778f0f56921b568f66f85202
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 20:02:14 2007 -0800
[BNX2]: Update version to 1.7.1.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8147c82e94c16aca4f54e0618ac9895227929118
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 20:01:44 2007 -0800
[BNX2]: Enable new tx ring.
Enable new tx ring and add new MSIX handler and NAPI poll function
for the new tx ring. Enable MSIX when the hardware supports it.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3fa6295d85117d39292ae7fe156a750a9ed12dcf
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 20:01:19 2007 -0800
[BNX2]: Add support for a new tx ring.
To separate TX IRQs into a different MSIX vector, we need to
support a new tx ring. The original tx ring will still be used
when not using MSIX.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 849b0261c0132a0c658eb5a7de23438f4a64975a
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:59:30 2007 -0800
[BNX2]: Support multiple MSIX IRQs.
Change bnx2_napi struct into an array and add code to manage multiple
IRQs. MSIX hardware structures and new registers are also added.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 24020b2831d5e1a718ce3084f8cf9d35f6eb94c4
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:57:19 2007 -0800
[BNX2]: Move rx indexes into bnx2_napi struct.
Rx related fields used in NAPI polling are moved from the main
bnx2 struct to the bnx2_napi struct.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f0395c3e8bb8c92f5a1bd6635319a6b27b6e138f
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:56:59 2007 -0800
[BNX2]: Move tx indexes into bnx2_napi struct.
Tx related fields used in NAPI polling are moved from the main
bnx2 struct to the bnx2_napi struct.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bc68ce52acc25ab3c199c04ad24ccaca49c8d07c
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:56:37 2007 -0800
[BNX2]: Introduce new bnx2_napi structure.
Introduce a bnx2_napi structure that will hold a napi_struct and
other fields to handle NAPI polling for the napi_struct. Various tx
and rx indexes and status block pointers will be moved from the main
bnx2 structure to this bnx2_napi structure.
Most NAPI path functions are modified to be passed this bnx2_napi
struct pointer.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7b3ba00e5614b549013978dce4189780e04df3f3
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:56:09 2007 -0800
[BNX2]: Restructure IRQ datastructures.
Add a table to keep track of multiple IRQs and restructure the IRQ
request and free functions so that they can be easily expanded to
handle multiple IRQs.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit a8d05ac5cb6b6f4fb5fd341248c52a2792fbc77a
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 20 19:55:39 2007 -0800
[BNX2]: Add function to fetch hardware tx index.
This makes the code cleaner and easier to support different tx rings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit dc2d76df54c8211df766819749beb802f69733fc
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:20:22 2007 -0800
[BNX2]: Update version to 1.6.9.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit eb5015797535422720a2258b01770ca20ae124a4
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:19:57 2007 -0800
[BNX2]: Enable S/G for jumbo RX.
If the MTU requires more than 1 page for the SKB, enable the page ring
and calculate the size of the page ring. This will guarantee order-0
allocation regardless of the MTU size.
Fixup loopback test packet size so that we don't deal with the pages
during loopback test.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c2d60259485422c436f82d52038313031db0e9d0
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:19:35 2007 -0800
[BNX2]: Add fast path code to handle RX pages.
Add function to reuse a page in case of allocation or other errors.
Add code to construct the completed SKB with the additional data in
the pages.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d98b035a014eb6a93719a5daee83994b4dfbd91b
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:19:12 2007 -0800
[BNX2]: Add init. code to handle RX pages.
Add new fields to keep track of the pages and the page rings.
Add functions to allocate and free pages.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ce8dcd8f8e771515778143ca3d503aa4804412a8
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:18:34 2007 -0800
[BNX2]: Update firmware to support S/G RX buffers.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ce4585172ba03e808364a352fe6142293f950155
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:17:43 2007 -0800
[BNX2]: Restructure RX ring init. code.
Factor out the common functions that will be used to initialize the
normal RX rings and the page rings.
Change the copybreak constant RX_COPY_THRESH to 128. This same
constant will be used for the max. size of the linear SKB when pages
are used. Copybreak will be turned off when pages are used.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 08bacdc7d57c4db4a57b948e3ff711483c64d7fe
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:17:01 2007 -0800
[BNX2]: Restructure RX fast path handling.
Add a new function to handle new SKB allocation and to prepare the
completed SKB. This makes it easier to add support for non-linear
SKB.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 736a4da6abcb164bfc2aecafd214bc009ab9dbd4
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Dec 12 11:16:19 2007 -0800
[BNX2]: Add ring constants.
Define the various ring constants to make the code cleaner.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bbe42974215eb7a483c344fca50652b3b9dd1ae4
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Dec 10 17:18:51 2007 -0800
[BNX2]: Update version to 1.6.9.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c09c262783dcac62352293912d82b794063cefc3
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Dec 10 17:18:37 2007 -0800
[BNX2]: Fix RX packet rot.
Packets can be left in the RX ring if the NAPI budget is reached.
This is caused by storing the latest rx index at the beginning of
bnx2_rx_int(). We may not process all the work up to this index
if the budget is reached and so some packets in the RX ring may rot
when we later check for more work using this stored rx index.
The fix is to not store this latest hw index and only store the
processed rx index. We use a new function bnx2_get_hw_rx_cons()
to fetch the latest hw rx index.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit fb0c18bd1f61086fcfac90017b59891a356cc288
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Dec 10 17:18:23 2007 -0800
[BNX2]: Add PHY_DIS_EARLY_DAC workaround.
5709 Ax and Bx chips all need this workaround.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1977f032722c27ee3730284582fd3991ad9ac81b
Author: Jiri Slaby <jirislaby@gmail.com>
Date: Thu Oct 18 23:40:25 2007 -0700
remove asm/bitops.h includes
remove asm/bitops.h includes
including asm/bitops directly may cause compile errors. don't include it
and include linux/bitops instead. next patch will deny including asm header
directly.
Cc: Adrian Bunk <bunk@kernel.org>
Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
commit 898eb71cb17644964c5895fb190e79e3d0c49679
Author: Joe Perches <joe@perches.com>
Date: Thu Oct 18 03:06:30 2007 -0700
Add missing newlines to some uses of dev_<level> messages
Found these while looking at printk uses.
Add missing newlines to dev_<level> uses
Add missing KERN_<level> prefixes to multiline dev_<level>s
Fixed a wierd->weird spelling typo
Added a newline to a printk
Signed-off-by: Joe Perches <joe@perches.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Cc: Roland Dreier <rolandd@cisco.com>
Cc: Tilman Schmidt <tilman@imap.cc>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: Stephen Hemminger <shemminger@linux-foundation.org>
Cc: Greg KH <greg@kroah.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Cc: David Brownell <david-b@pacbell.net>
Cc: James Smart <James.Smart@Emulex.Com>
Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Jaroslav Kysela <perex@suse.cz>
Cc: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
commit 0c2bef49764d0a5a404ae0bd65217f7dadbd1821
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 17 19:26:28 2007 -0700
[BNX2]: Update version to 1.6.8.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 239cd34327d12e84f5528caa7b11c9e651372c39
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 17 19:26:15 2007 -0700
[BNX2]: Fix Serdes WoL bug.
The bug is in the code in bnx2_set_power_state() that assumes copper
devices when setting up WoL. This is no longer true after adding WoL
support for Serdes devices.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8499fb594ad34ccde38058d7c3ae8093058b346a
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 17 19:25:27 2007 -0700
[BNX2]: Update 5709 firmware to 3.7.1.
This firmware update fixes a problem running with IPMI management
firmware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6dee6421581d3484e9a01d403dbf158161942db6
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Oct 12 01:40:38 2007 -0700
[BNX2]: Refine napi poll loop.
Need to read and store sblk->status_idx before checking for more work.
The status idx is later written back to the hardware when enabling
interrupts to acknowledge how much work has been processed. If the
order is reversed, we can end up acknowledging work we haven't
processed.
When completing bnx2_poll(), we should always break out of the while
loop and return work_done instead of returning 0.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6f535763165331bb91277d7519b507fed22034e5
Author: David S. Miller <davem@sunset.davemloft.net>
Date: Thu Oct 11 18:08:29 2007 -0700
[NET]: Fix NAPI completion handling in some drivers.
In order for the list handling in net_rx_action() to be
correct, drivers must follow certain rules as stated by
this comment in net_rx_action():
/* Drivers must not modify the NAPI state if they
* consume the entire weight. In such cases this code
* still "owns" the NAPI instance and therefore can
* move the instance around on the list at-will.
*/
A few drivers do not do this because they mix the budget checks
with reading hardware state, resulting in crashes like the one
reported by takano@axe-inc.co.jp.
BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
Hemminger.
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 32d1316b91424423d7b44944f18cdaca268f3db2
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 10 16:17:11 2007 -0700
[BNX2]: Update version to 1.6.7.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 846f5c622fe033520c775cc2c40c06f3e2adea85
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 10 16:16:51 2007 -0700
[BNX2]: Fix default WoL setting.
Change the default WoL setting to match the NVRAM's setting. It
always defaulted to WoL disabled before and caused a lot of confusion
for users.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 489310a440e606512b1fd79d8562d1da6b715448
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Oct 10 16:16:31 2007 -0700
[BNX2]: Fix remote PHY media detection problems.
The remote PHY media type and link status can change between
->probe() and ->open(). For correct operation, we need to get the
new status again during ->open().
The ethtool link test and loopback test are also fixed to work with
remote PHY. PHY loopback is simply skipped when remote PHY is
present.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f74347d7ac0aa175b2bbd85eb58a13fbe80a3785
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Oct 2 16:28:09 2007 -0700
[BNX2]: Update version to 1.6.6.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ea1f8d5c3a593a791463c2efc07e5dfebd056500
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Oct 2 16:27:35 2007 -0700
[BNX2]: Optimize firmware loading.
This is a follow up to the patches from Denys Vlasenkos
<vda.linux@googlemail.com> to further optimize firmware loading.
1. In bnx2_init_cpus(), we allocate memory for decompression once
and use it repeatedly instead of doing this for every firmware image.
2. We eliminate the BSS and SBSS firmware sections in bnx2_fw*.h since
these are always zeros.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8336793baf962163c9fab5a3f39614295fdbab27
Author: Denys Vlasenko <vda.linux@googlemail.com>
Date: Sun Sep 30 17:56:49 2007 -0700
[ZLIB]: Move bnx2 driver gzip unpacker into zlib.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b3448b0bde5f1a858397fe791f76632e978a1dc8
Author: Denys Vlasenko <vda.linux@googlemail.com>
Date: Sun Sep 30 17:55:51 2007 -0700
[BNX2]: factor out gzip unpacker
This patch modifies gzip unpacking code in bnx2 driver so that
it does not depend on bnx2 internals. I will move this code
out of the driver and into zlib in follow-on patch.
It can be useful in other drivers which need to store firmwares
or any other relatively big binary blobs - fonts, cursor bitmaps,
whatever.
Patch is run tested by Michael Chan (driver author).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b9f2c0440d806e01968c3ed4def930a43be248ad
Author: Jeff Garzik <jeff@garzik.org>
Date: Wed Oct 3 18:07:32 2007 -0700
[netdrvr] Stop using legacy hooks ->self_test_count, ->get_stats_count
These have been superceded by the new ->get_sset_count() hook.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0795af5729b18218767fab27c44b1384f72dc9ad
Author: Joe Perches <joe@perches.com>
Date: Wed Oct 3 17:59:30 2007 -0700
[NET]: Introduce and use print_mac() and DECLARE_MAC_BUF()
This is nicer than the MAC_FMT stuff.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 88d3aafdae5c5e1d2dd9489a5c8a24e29d335f2e
Author: Jeff Garzik <jeff@garzik.org>
Date: Sat Sep 15 14:41:06 2007 -0700
[ETHTOOL] Provide default behaviors for a few ethtool sub-ioctls
For the operations
get-tx-csum
get-sg
get-tso
get-ufo
the default ethtool_op_xxx behavior is fine for all drivers, so we
permit op==NULL to imply the default behavior.
This provides a more uniform behavior across all drivers, eliminating
ethtool(8) "ioctl not supported" errors on older drivers that had
not been updated for the latest sub-ioctls.
The ethtool_op_xxx() functions are left exported, in case anyone
wishes to call them directly from a driver-private implementation --
a not-uncommon case. Should an ethtool_op_xxx() helper remain unused
for a while, except by net/core/ethtool.c, we can un-export it at a
later date.
[ Resolved conflicts with set/get value ethtool patch... -DaveM ]
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ff8ac60948ba819b89e9c87083e8050fc2f89999
Author: Denis Cheng <crquan@gmail.com>
Date: Sun Sep 2 18:30:18 2007 +0800
drivers/net/: all drivers/net/ cleanup with ARRAY_SIZE
Signed-off-by: Denis Cheng <crquan@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 10d024c1b2fd58af8362670d7d6e5ae52fc33353
Author: Ralf Baechle <ralf@linux-mips.org>
Date: Mon Sep 17 13:11:17 2007 -0700
[NET]: Nuke SET_MODULE_OWNER macro.
It's been a useless no-op for long enough in 2.6 so I figured it's time to
remove it. The number of people that could object because they're
maintaining unified 2.4 and 2.6 drivers is probably rather small.
[ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bea3348eef27e6044b6161fd04c3152215f96411
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date: Wed Oct 3 16:41:36 2007 -0700
[NET]: Make NAPI polling independent of struct net_device objects.
Several devices have multiple independant RX queues per net
device, and some have a single interrupt doorbell for several
queues.
In either case, it's easier to support layouts like that if the
structure representing the poll is independant from the net
device itself.
The signature of the ->poll() call back goes from:
int foo_poll(struct net_device *dev, int *budget)
to
int foo_poll(struct napi_struct *napi, int budget)
The caller is returned the number of RX packets processed (or
the number of "NAPI credits" consumed if you want to get
abstract). The callee no longer messes around bumping
dev->quota, *budget, etc. because that is all handled in the
caller upon return.
The napi_struct is to be embedded in the device driver private data
structures.
Furthermore, it is the driver's responsibility to disable all NAPI
instances in it's ->stop() device close handler. Since the
napi_struct is privatized into the driver's private data structures,
only the driver knows how to get at all of the napi_struct instances
it may have per-device.
With lots of help and suggestions from Rusty Russell, Roland Dreier,
Michael Chan, Jeff Garzik, and Jamal Hadi Salim.
Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,
Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.
[ Ported to current tree and all drivers converted. Integrated
Stephen's follow-on kerneldoc additions, and restored poll_list
handling to the old style to fix mutual exclusion issues. -DaveM ]
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit cd46171c7297739dc7e46d885862e98023eab9c7
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Sep 20 11:04:58 2007 -0700
[BNX2]: Add PHY workaround for 5709 A1.
Add the DIS_EARLY_DAC PHY workaround for 5709 A1. Without it, link
sometimes does not come up.
Update version to 1.6.5.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 594a9dfae7113d9601b2c353754c40d0b7e00a03
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Aug 28 15:39:42 2007 -0700
[BNX2]: Add write posting comment.
Add comment to explain why we cannot read back after chip reset
before delaying.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8e54588161577435d64dfb5cfdf40a73a5705ea0
Author: Arjan van de Ven <arjan@linux.intel.com>
Date: Tue Aug 28 14:34:43 2007 -0700
[BNX2]: Use msleep().
bnx2.c (incorrectly) sets current->state directly to
TASK_UNINTERRUPTIBLE, without going through set_task_state(). However
all the code wants to do is an msleep so just make it do that instead...
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6caebb02294b503c5eced4a3f90e6166548ce879
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Aug 3 20:57:25 2007 -0700
[BNX2]: Fix suspend/resume problem.
The device would not resume properly if it was shutdown before the system
was suspended. In such scenario where the netif_running state is 0,
bnx2_suspend() would not save the PCI state and so the memory enable bit
and bus master enable bit would be lost.
We fix this by always saving and restoring the PCI state in
bnx2_suspend() and bnx2_resume() regardless of netif_running() state.
Update version to 1.6.4.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 313674afa8fdced2fe79f50f38e1c387b63d8790
Author: Matthew Wilcox <matthew@wil.cx>
Date: Tue Jul 31 14:00:29 2007 -0700
[NET]: ethtool_perm_addr only has one implementation
All drivers implement ethtool get_perm_addr the same way -- by calling
the generic function. So we can inline the generic function into the
caller and avoid going through the drivers.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit dd121c4bbf60336773485e91b5cfc57596b45151
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 16 18:27:32 2007 -0700
[BNX2]: Update version to 1.6.3.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7ea6920ee9480118e2bd2d712d667820703f55cd
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 16 18:27:10 2007 -0700
[BNX2]: Use constants for stats ticks.
Change all stats related magic numbers to constants.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c2d3db8c7cbb94e77461627085b85d74dc64d716
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 16 18:26:43 2007 -0700
[BNX2]: Add delay before reading firmware version.
The management firmware may still be loading during bnx2_init_one()
because of the D3hot -> D0 transition and the firmware version may
not be available without waiting a bit.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e30372c91273bb5777597362c74e63f96d9cd434
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jul 16 18:26:23 2007 -0700
[BNX2]: Support NVRAM on 5709.
The NVRAM interface is slightly modified on the 5709. To properly
support it, we need to change the buffered flag in the flash data
structure into multiple flags to indicate buffered operation, address
translation, and the use of write enable (WREN). The 5709 flash
only requires the buffered operation bit to be set.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6460d948f3ebf7d5040328a60a0ab7221f69945b
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 14 19:07:52 2007 -0700
[NET]: Add ethtool support for NETIF_F_IPV6_CSUM devices.
Add ethtool utility function to set or clear IPV6_CSUM feature flag.
Modify tg3.c and bnx2.c to use this function when doing ethtool -K
to change tx checksum.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit de081fa517fed81b0369f2e90ca87c30182879c8
Author: Linus Torvalds <torvalds@woody.linux-foundation.org>
Date: Thu Jul 12 16:40:08 2007 -0700
Revert "[BNX2]: Seems to not need net/tcp.h"
This reverts commit 963bd949b12158d9b5380b718b31c4b33372ed73. The
driver _does_ need the networking header files;
CC [M] drivers/net/bnx2.o
drivers/net/bnx2.c: In function 'bnx2_start_xmit':
drivers/net/bnx2.c:5177: warning: implicit declaration of function 'tcp_optlen'
drivers/net/bnx2.c:5181: error: invalid application of 'sizeof' to incomplete type 'struct ipv6hdr'
drivers/net/bnx2.c:5202: error: invalid application of 'sizeof' to incomplete type 'struct tcphdr'
drivers/net/bnx2.c:5207: warning: implicit declaration of function 'tcp_hdr'
drivers/net/bnx2.c:5207: error: invalid type argument of '->'
make[2]: *** [drivers/net/bnx2.o] Error 1
make[1]: *** [drivers/net] Error 2
make: *** [drivers] Error 2
Cc: Ilpo Jävinen <ilpo.jarvinen@helsinki.fi>
Cc: David Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
commit 963bd949b12158d9b5380b718b31c4b33372ed73
Author: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Date: Sat Jul 7 22:54:56 2007 -0700
[BNX2]: Seems to not need net/tcp.h
Got bored to always recompile it for no reason.
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3a334b34b62d94be0275e5c76fa153cf7fd42770
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:52:37 2007 -0700
[BNX2]: Update version to 1.6.2.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 58fc2ea4057511f84deaa182b1a3612327ecbf2d
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:52:02 2007 -0700
[BNX2]: Print management firmware version.
Add management firmware version for ethtool -i.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit df149d70e1f34ec4995c8a703dbde38071ff4a05
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:51:36 2007 -0700
[BNX2]: Enhance the heartbeat.
In addition to the periodic heartbeat, we're adding a heartbeat
request interrupt when the heartbeat is late. This is needed during
netpoll where the timer is not available. -rt kernels will also
benefit since the timer is not as accurate.
[ We discussed this patch last time and we decided that the -rt
kernel problem alone did not justify this patch. I think the
netpoll problem makes this patch necessary. ]
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b8a7ce7bedb2134acb731e08e588ad92087a40ff
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:51:03 2007 -0700
[BNX2]: Reduce spurious INTA interrupts.
Spurious interrupts are often encountered especially on systems
using the 8259 PIC mode. This is because the I/O write to deassert
the interrupt is posted and won't get to the chip immediately. As
a result, the IRQ may remain asserted after the IRQ handler exits,
causing spurious interrupts.
Add read back to flush the I/O write to deassert the IRQ immediately.
We also store the last_status_idx immediately in the IRQ handler to
help detect whether the interrupt is ours or not when the IRQ is
entered again before ->poll gets called.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9b1084b8f99a6b5e97c0c9bc1b4455db4fa51a07
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:50:37 2007 -0700
[BNX2]: Modify link up message.
Modify the link up dmesg to report remote copper or Serdes link.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7b6b83474cb9bdd07dadfb7497a29c3005ad9d1d
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:50:15 2007 -0700
[BNX2]: Add ethtool support for remote PHY.
Modify the driver's ethtool_ops->get_settings and set_settings
functions to support remote PHY. Users control the remote copper
PHY settings by specifying link settings for the tp (twisted pair)
port.
The nway_reset function is also modified to support remote PHY.
mii-tool operations are not supported on remote PHY and we will
return -EOPNOTSUPP.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0d8a6571051d23c214d7a316976138a6fd8bda1c
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:49:43 2007 -0700
[BNX2]: Add support for remote PHY.
In blade servers, the Serdes PHY in 5708S can control the remote
copper PHY through autonegotiation on the backplane. This patch adds
the logic to interface with the firmware to control the remote PHY
autonegotiation and to handle remote PHY link events.
When remote PHY is present, the 5708S Serdes device practically
becomes a copper device with full control over the 1000Base-T
link settings.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit deaf391b4cc9d9f8e2b2793ebd56da776b54197a
Author: Michael Chan <mchan@broadcom.com>
Date: Sat Jul 7 22:48:00 2007 -0700
[BNX2]: Add bnx2_set_default_link().
Put existing code to setup the default link settings in this new
function. This makes it easier to support the remote PHY feature in
the next few patches.
Also change ETHTOOL_ALL_FIBRE_SPEED to include 2500Mbps if supported.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d212f87b068c9d72065ef579d85b5ee6b8b59381
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date: Wed Jun 27 00:47:37 2007 -0700
[NET]: IPV6 checksum offloading in network devices
The existing model for checksum offload does not correctly handle
devices that can offload IPV4 and IPV6 only. The NETIF_F_HW_CSUM flag
implies device can do any arbitrary protocol.
This patch:
* adds NETIF_F_IPV6_CSUM for those devices
* fixes bnx2 and tg3 devices that need it
* add NETIF_F_IPV6_CSUM to ipv6 output (incl GSO)
* fixes assumptions about NETIF_F_ALL_CSUM in nat
* adjusts bridge union of checksumming computation
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5befdf807a6574a53e1b8c3af543ad6b4ed74c40
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 4 21:24:42 2007 -0700
[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>
commit c3e9c5db307359cf98885f12f566ef87679f4e4f
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 4 21:24:07 2007 -0700
[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>
commit 80e945a500f68558d8236a107d4ee03b4a1eca88
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 4 21:23:06 2007 -0700
[BNX2]: Enable DMA on 5709.
Add missing code to enable DMA on 5709 A1. The bit is a no-op on A0
and therefore can be set on all 5709 chips.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f0e8602f418a597d73865af2854b90cd24c90d6f
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 4 21:22:24 2007 -0700
[BNX2]: Add missing wait in bnx2_init_5709_context().
For correctness, we need to wait for the MEM_INIT bit to be cleared
in the BNX2_CTX_COMMAND register before proceeding.
[Added return -EBUSY when the MEM_INIT bit doesn't clear, suggested
by Jeff Garzik.]
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 19322456884bffde9703f0fec8df3581d41fc244
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 4 21:17:10 2007 -0700
[BNX2]: Fix netdev watchdog on 5708.
There's a bug in the driver that only initializes half of the context
memory on the 5708. Surprisingly, this works most of the time except
for some occasional netdev watchdogs when sending a lot of 64-byte
packets. The fix is to add the missing code to initialize the 2nd
halves of all context memory.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 25805dcf9d83098cf5492117ad2669cd14cc9b24
Author: Stephen Hemminger <shemminger@linux-foundation.org>
Date: Fri Jun 1 09:44:01 2007 -0700
network drivers: eliminate unneeded kill_vid code
Many drivers had code that did kill_vid, but they weren't doing vlan
filtering. With new API the stub is unneeded unless device sets
NETIF_F_HW_VLAN_FILTER.
Bad habit: I couldn't resist fixing a couple of nearby style things
in acenic, and forcedeth.
Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit fde82055c1d0e64ff660d83c705db0e1abc9d12e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 17:23:35 2007 -0700
[BNX2]: Fix TSO problem with small MSS.
Remove the check for skb->len greater than MTU when doing TSO. When
the destination has a smaller MSS than the source, a TSO packet may
be smaller than the MTU at the source and we still need to process it
as a TSO packet.
Thanks to Brian Ristuccia <bristuccia@starentnetworks.com> for
reporting the problem.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 72fbaeb623971c321112de7fe3fa4e24e12ca59e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:25:32 2007 -0700
[BNX2]: Update version and reldate.
Update version to 1.5.10.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 883e51511815930154c64a2645f4df112aa066fb
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:25:11 2007 -0700
[BNX2]: Print bus information for PCIE devices.
Fix the code to print PCI or PCIE bus information for all devices.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 8e6a72c435bf8bdd738ad08a746d697abedacfc0
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:24:48 2007 -0700
[BNX2]: Add 1-shot MSI handler for 5709.
The 5709 supports the one-shot MSI handler similar to some of the tg3
chips. In this mode, the MSI disables itself automatically until it
is re-enabled at the end of NAPI poll.
Put the request_irq/free_irq logic in common procedures.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit da3e4fbed21a5d7edab10ffb77a8c04a725f9eff
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:24:23 2007 -0700
[BNX2]: Restructure PHY event handling.
Restructure by adding bnx2_phy_event_is_set() to make code cleaner
and easier to understand.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1b8227c48e164655f02aa0eff55862af2d05da51
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:24:05 2007 -0700
[BNX2]: Add indirect spinlock.
The indirect register access method will be used by more than one
caller in BH context (NAPI poll and timer), so a spinlock is required.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 27a005b883984ef3a3cf24e7ddd78eb78902f494
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:23:41 2007 -0700
[BNX2]: Add support for 5709 Serdes.
Add PCI ID and code to support the 5709 Serdes PHY.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 605a9e20aaea23f31a5403e969bd4ab4d0405dab
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:23:13 2007 -0700
[BNX2]: Re-structure the 2.5G Serdes code.
Add some common procedures to handle enabling and disabling 2.5G.
Add some missing code to resolve flow control.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ca58c3af99b15f729e56dffe9b74b8b2ce157e8d
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:22:52 2007 -0700
[BNX2]: Put MII register offsets in the bnx2 struct.
The 5709 Serdes device uses non-standard MII register offsets. This
re-structuring will make it easier to support 5709 Serdes.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 4666f87a82cf74b63737a7f55a8b3b057a7b83df
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:22:28 2007 -0700
[BNX2]: Add ipv6 TSO and checksum for 5709.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 874bb672fdd939aec37ad3a06b50be4ff8b4feac
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:21:48 2007 -0700
[BNX2]: Update 5709 firmware.
Add ipv6 TSO support in firmware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 41ccf61cf09c9a042415c04ccf0dc3c198623a9a
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:21:13 2007 -0700
[BNX2]: Update 5708 firmware.
This fixes the problem of not counting all dropped multicast packets.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 30c517b29130ddede977300235afcda1c256530b
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:20:40 2007 -0700
[BNX2]: Save PCI state during suspend.
This is needed to save the MSI state which will be lost during
suspend.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1b2f922f6869eb13dadfe1ba3f8337bd42e50a2e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:20:19 2007 -0700
[BNX2]: Fix race conditions when calling register_netdev().
Hot-plug scripts can call bnx2_open() as soon as register_netdev() is
called in bnx2_init_one(). We need to call pci_set_drvdata() and
setup everything before calling register_netdev(). netif_carrier_off()
also needs to be moved to bnx2_open() to avoid race conditions with
the irq.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 40453c839fdbf86738256cae1c9c1ebe55645d4a
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:19:18 2007 -0700
[BNX2]: Add 40-bit DMA workaround for 5708.
The internal PCIE-to-PCIX bridge of the 5708 has the same 40-bit DMA
limitation as some of the tg3 chips. Set dma_mask and persistent DMA
mask to 40-bit to workaround.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5bae30c96a3bd09563e484b4ac7211b4b4664679
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:18:46 2007 -0700
[BNX2]: Fix register and memory test on 5709.
Tweak registers and memory test range for 5709.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit dad3e452dacd3c6c637e2f7c6469556cc8ffcd94
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 3 13:18:03 2007 -0700
[BNX2]: Block MII access when ifdown.
The device may be in D3hot state and should not allow MII register
access.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit aa8223c7bb0b05183e1737881ed21827aa5b9e73
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Tue Apr 10 21:04:22 2007 -0700
[SK_BUFF]: Introduce tcp_hdr(), remove skb->h.th
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ab6a5bb6b28a970104a34f0f6959b73cf61bdc72
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Sun Mar 18 17:43:48 2007 -0700
[TCP]: Introduce tcp_hdrlen() and tcp_optlen()
The ip_hdrlen() buddy, created to reduce the number of skb->h.th-> uses and to
avoid the longer, open coded equivalent.
Ditched a no-op in bnx2 in the process.
I wonder if we should have a BUG_ON(skb->h.th->doff < 5) in tcp_optlen()...
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit eddc9ec53be2ecdbf4efe0efd4a83052594f0ac0
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Fri Apr 20 22:47:35 2007 -0700
[SK_BUFF]: Introduce ip_hdr(), remove skb->nh.iph
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c9bdd4b5257406b0608385d19c40b5511decf4f6
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Mon Mar 12 20:09:15 2007 -0300
[IP]: Introduce ip_hdrlen()
For the common sequence "skb->nh.iph->ihl * 4", removing a good number of open
coded skb->nh.iph uses, now to go after the rest...
Just out of curiosity, here are the idioms found to get the same result:
skb->nh.iph->ihl << 2
skb->nh.iph->ihl<<2
skb->nh.iph->ihl * 4
skb->nh.iph->ihl*4
(skb->nh.iph)->ihl * sizeof(u32)
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 68c9f75a0539db583db074059d54deb607d1a475
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Apr 24 15:35:53 2007 -0700
[BNX2]: Fix occasional NETDEV WATCHDOG on 5709.
Tweak a register setting to prevent the tx mailbox from halting.
Update version to 1.5.8.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c873879c4db31bab414655e191cf56019b48c751
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Mar 30 14:53:06 2007 -0700
[BNX2]: Fix nvram write logic.
The nvram dword alignment logic was broken when writing less than 4
bytes on a non-aligned offset. It was missing logic to round the
length to 4 bytes.
The page erase code is also moved so that it is only called when
using non-buffered flash for better code clarity.
Update version to 1.5.7.
Based on initial patch from Tony Cureington <tony.cureington@hp.com>.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit db8b22550d4b83f0910d27a34d05aa16f7f7159f
Author: Michael Chan <mchan@broadcom.com>
Date: Wed Mar 28 14:17:36 2007 -0700
[BNX2]: Fix link interrupt problem.
bnx2_has_work()'s logic is flawed and can cause the driver to miss
a link event. The fix is to compare the status block's attn_bits
and attn_bits_ack to determine if there is a link event.
Update version to 1.5.6.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 5c15bdec5c38f4ccf73ef2585fc80a6164de9554
Author: Dan Aloni <da-x@monatomic.org>
Date: Fri Mar 2 20:44:51 2007 -0800
[VLAN]: Avoid a 4-order allocation.
This patch splits the vlan_group struct into a multi-allocated struct. On
x86_64, the size of the original struct is a little more than 32KB, causing
a 4-order allocation, which is prune to problems caused by buddy-system
external fragmentation conditions.
I couldn't just use vmalloc() because vfree() cannot be called in the
softirq context of the RCU callback.
Signed-off-by: Dan Aloni <da-x@monatomic.org>
Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 78149df6d565c36675463352d0bfe0000b02b7a7
Merge: c96e2c9... 14719f3...
Author: Linus Torvalds <torvalds@woody.linux-foundation.org>
Date: Wed Feb 7 19:23:44 2007 -0800
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (41 commits)
Revert "PCI: remove duplicate device id from ata_piix"
msi: Make MSI useable more architectures
msi: Kill the msi_desc array.
msi: Remove attach_msi_entry.
msi: Fix msi_remove_pci_irq_vectors.
msi: Remove msi_lock.
msi: Kill msi_lookup_irq
MSI: Combine pci_(save|restore)_msi/msix_state
MSI: Remove pci_scan_msi_device()
MSI: Replace pci_msi_quirk with calls to pci_no_msi()
PCI: remove duplicate device id from ipr
PCI: remove duplicate device id from ata_piix
PCI: power management: remove noise on non-manageable hw
PCI: cleanup MSI code
PCI: make isa_bridge Alpha-only
PCI: remove quirk_sis_96x_compatible()
PCI: Speed up the Intel SMBus unhiding quirk
PCI Quirk: 1k I/O space IOBL_ADR fix on P64H2
shpchp: delete trailing whitespace
shpchp: remove DBG_XXX_ROUTINE
...
commit 88187dfa4d8bb565df762f272511d2c91e427e0d
Author: Michael Ellerman <michael@ellerman.id.au>
Date: Thu Jan 25 19:34:07 2007 +1100
MSI: Replace pci_msi_quirk with calls to pci_no_msi()
I don't see any reason why we need pci_msi_quirk, quirk code can just
call pci_no_msi() instead.
Remove the check of pci_msi_quirk in msi_init(). This is safe as all
calls to msi_init() are protected by calls to pci_msi_supported(),
which checks pci_msi_enable, which is disabled by pci_no_msi().
The pci_disable_msi routines didn't check pci_msi_quirk, only
pci_msi_enable, but as far as I can see that was a bug not a feature.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
commit b659f44e4e144bae02c5beaba78a37db60783ba2
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Feb 2 00:46:35 2007 -0800
[BNX2]: PHY workaround for 5709 A0.
5709 A0 copper devices will not link up with some link partners
without this workaround.
Update driver to 1.5.5.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 24cb230b587cf3aad8794b150682d8d8303a2120
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jan 25 15:49:56 2007 -0800
[BNX2]: Fix 2nd port's MAC address.
On the 5709, we need to add the proper offset to calculate the shared
memory base address of the 2nd port correctly. Otherwise, the 2nd
port's MAC address and other information will be the same as the 1st
port.
Update version to 1.5.4.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d6aa4acebafe3acb0aade7704ec5b2f03742ea14
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 8 19:56:31 2007 -0800
[BNX2]: Update version and reldate.
Update version to 1.5.3.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e6be763f63420c334710a5a0818e6bfcf5d593f8
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 8 19:56:13 2007 -0800
[BNX2]: Fix bug in bnx2_nvram_write().
The bug was a bogus pointer being passed to kfree(). The pointer was
incremented in the write loop and then passed to kfree().
The fix is to use align_buf to save the original address.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 253c8b75546c5f21d5321d691df92c1e84d9b0fb
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 8 19:56:01 2007 -0800
[BNX2]: Fix 5709 Serdes detection.
5709 has a new register to detect copper/fiber PHYs.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 261dd5ca05c6f36c9216f2d60b018f59f92620c4
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 8 19:55:46 2007 -0800
[BNX2]: Don't apply CRC PHY workaround to 5709.
The workaround is only needed on 5706/5708 and cannot be applied on
5709.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6634292be47856c571634944dc0f6c8498602032
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 14 15:57:04 2006 -0800
[BNX2]: Fix minor loopback problem.
Use the configured MAC address instead of the permanent MAC address
for loopback frames.
Update version to 1.5.2.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6a13add1e1b802a29187a9af98a6ca26539dc33d
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 14 15:56:50 2006 -0800
[BNX2]: Fix bug in bnx2_nvram_write().
Length was not calculated correctly if the NVRAM offset is on a non-
aligned offset.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit faac9c4b753f420c02bdce0785d2657087830a12
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Dec 14 15:56:32 2006 -0800
[BNX2]: Fix panic in bnx2_tx_int().
There was an off-by-one bug in bnx2_tx_avail(). If the tx ring is
completely full, the producer and consumer indices may be apart by
256 even though the ring size is only 255. One entry in the ring is
unused and must be properly accounted for when calculating the number
of available entries. The bug caused the tx ring entries to be
reused by mistake, overwriting active entries, and ultimately causing
it to crash.
This bug rarely occurs because the tx ring is rarely completely full.
We always stop when there is less than MAX_SKB_FRAGS entries available
in the ring.
Thanks to Corey Kovacs <cjk@techma.com> and Andy Gospodarek
<agospoda@redhat.com> for reporting the problem and helping to collect
debug information.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6c1bbcc8836358294c431e0c09e85e3480895659
Author: Adrian Bunk <bunk@stusta.de>
Date: Thu Dec 7 15:10:06 2006 -0800
[BNX2]: Add an error check.
This patch adds a missing error check spotted by the Coverity checker.
Signed-off-by: Adrian Bunk <bunk@stusta.de>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit a49ec9f0df6da3ea2b316cba333ff2a03417ca4c
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:15:31 2006 -0800
[BNX2]: Update version and rel date.
Update version to 1.5.1.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 699e9760f3bf0171da9c6238f7c4a03428a650be
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:15:05 2006 -0800
[BNX2]: Add 5709 PCI ID.
Add PCI ID and detection for 5709 copper and SerDes chips.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c002ceca7d1ffd9c9b6b84dbc8d7de8099465e33
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:14:35 2006 -0800
[BNX2]: Download 5709 firmware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6a81f85b845c0e73a8e7fba294dc520cc044e053
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:13:52 2006 -0800
[BNX2]: New firmware to support 5709 (part 4).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1b9338fea4e2560e909a6a8e092d6b9b951db9fb
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:13:23 2006 -0800
[BNX2]: New firmware to support 5709 (part 3).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c57d62d5963deae42db5a1a623ff0a4b50f2b0b4
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:12:55 2006 -0800
[BNX2]: New firmware to support 5709 (part 2).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 775795f207bf197e3e23e50ca7c7f8f45547a64b
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:12:28 2006 -0800
[BNX2]: New firmware to support 5709 (part 1).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7976227c57d5f3b2847df87775f2eba04feb85f7
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:11:41 2006 -0800
[BNX2]: Add 5709 reset and runtime code.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 39008dbc89aff49407d0e71ab3e2262c76ea2268
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:10:45 2006 -0800
[BNX2]: Add 5709 init code.
Add basic support to initialize the 5709 chip.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 421d4e096f0cf3a34bd18cc53ddb42cda43974f8
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:10:12 2006 -0800
[BNX2]: Add new 5709 registers (part 2).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9276b3445d3146a61b18c473738f407623d2f14e
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:09:48 2006 -0800
[BNX2]: Add new 5709 registers (part 1).
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e051495ae3bf9d4b36e3b8611930c6bdf2193702
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:09:25 2006 -0800
[BNX2]: Re-organize firmware structures.
Re-organize the firmware handling code and declarations a bit to make
the code more compact.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b62c8680c0694969cb206ff9971cf0e246454569
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:08:56 2006 -0800
[BNX2]: Remove udelay() in copper PHY code.
Change a long udelay() in bnx2_setup_copper_phy() to msleep().
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3092dd42615b8e8ec1dfe8c242a2835fb43862f7
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:08:29 2006 -0800
[BNX2]: Add 5708S parallel detection.
Add code to parallel detect 1Gbps and 2.5Gbps link speeds.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2e5f34adf1cfd7c5dc076a3a3ca49ede52993688
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:08:00 2006 -0800
[BNX2]: Add bnx2_5706_serdes_timer().
Separate the 5706S SerDes handling code in bnx2_timer() and put it
in a new function.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 275adaf3765cd9fc6df270f963d2554fe4f60331
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:07:28 2006 -0800
[BNX2]: Improve SerDes handling.
1. Add support for 2.5Gbps forced speed setting.
2. Remove a long udelay() loop and change to msleep().
3. Other misc. SerDes fixes.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit fdfbd1e956322b44d9fcba0bb2832cca29cbf4aa
Author: Michael Chan <mchan@broadcom.com>
Date: Sun Nov 19 14:06:40 2006 -0800
[BNX2]: Fix Xen problem.
This fixes the problem of not receiving packets in the Xen bridging
environment. The Xen script sets the device's MAC address to
FE:FF:FF:FF:FF:FF and puts the device in promiscuous mode. The
firmware had problem receiving all packets in this configuration.
New firmware and setting the PROM_VLAN bit when in promiscuous mode
will fix this problem.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7d12e780e003f93433d49ce78cfedf4b4c52adc5
Author: David Howells <dhowells@redhat.com>
Date: Thu Oct 5 14:55:46 2006 +0100
IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
of passing regs around manually through all ~1800 interrupt handlers in the
Linux kernel.
The regs pointer is used in few places, but it potentially costs both stack
space and code to pass it around. On the FRV arch, removing the regs parameter
from all the genirq function results in a 20% speed up of the IRQ exit path
(ie: from leaving timer_interrupt() to leaving do_IRQ()).
Where appropriate, an arch may override the generic storage facility and do
something different with the variable. On FRV, for instance, the address is
maintained in GR28 at all times inside the kernel as part of general exception
handling.
Having looked over the code, it appears that the parameter may be handed down
through up to twenty or so layers of functions. Consider a USB character
device attached to a USB hub, attached to a USB controller that posts its
interrupts through a cascaded auxiliary interrupt controller. A character
device driver may want to pass regs to the sysrq handler through the input
layer which adds another few layers of parameter passing.
I've build this code with allyesconfig for x86_64 and i386. I've runtested the
main part of the code on FRV and i386, though I can't test most of the drivers.
I've also done partial conversion for powerpc and MIPS - these at least compile
with minimal configurations.
This will affect all archs. Mostly the changes should be relatively easy.
Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
struct pt_regs *old_regs = set_irq_regs(regs);
And put the old one back at the end:
set_irq_regs(old_regs);
Don't pass regs through to generic_handle_irq() or __do_IRQ().
In timer_interrupt(), this sort of change will be necessary:
- update_process_times(user_mode(regs));
- profile_tick(CPU_PROFILING, regs);
+ update_process_times(user_mode(get_irq_regs()));
+ profile_tick(CPU_PROFILING);
I'd like to move update_process_times()'s use of get_irq_regs() into itself,
except that i386, alone of the archs, uses something other than user_mode().
Some notes on the interrupt handling in the drivers:
(*) input_dev() is now gone entirely. The regs pointer is no longer stored in
the input_dev struct.
(*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
something different depending on whether it's been supplied with a regs
pointer or not.
(*) Various IRQ handler function pointers have been moved to type
irq_handler_t.
Signed-Off-By: David Howells <dhowells@redhat.com>
(cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
commit f9317a40c4e09e20ef01601fc9f5de9e6acb5b96
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Sep 29 17:06:23 2006 -0700
[BNX2]: Disable MSI on 5706 if AMD 8132 bridge is present.
MSI is defined to be 32-bit write. The 5706 does 64-bit MSI writes
with byte enables disabled on the unused 32-bit word. This is legal
but causes problems on the AMD 8132 which will eventually stop
responding after a while.
Without this patch, the MSI test done by the driver during open will
pass, but MSI will eventually stop working after a few MSIs are
written by the device.
AMD believes this incompatibility is unique to the 5706, and
prefers to locally disable MSI rather than globally disabling it
using pci_msi_quirk.
Update version to 1.4.45.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 84fa7933a33f806bbbaae6775e87459b1ec584c0
Author: Patrick McHardy <kaber@trash.net>
Date: Tue Aug 29 16:44:56 2006 -0700
[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE
Replace CHECKSUM_HW by CHECKSUM_PARTIAL (for outgoing packets, whose
checksum still needs to be completed) and CHECKSUM_COMPLETE (for
incoming packets, device supplied full checksum).
Patch originally from Herbert Xu, updated by myself for 2.6.18-rc3.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7282d491ecaee9883233a0e27283c4c79486279a
Author: Jeff Garzik <jeff@garzik.org>
Date: Wed Sep 13 14:30:00 2006 -0400
drivers/net: const-ify ethtool_ops declarations
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 6aa20a2235535605db6d6d2bd850298b2fe7f31e
Author: Jeff Garzik <jeff@garzik.org>
Date: Wed Sep 13 13:24:59 2006 -0400
drivers/net: Trim trailing whitespace
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 299176206b266f204be859adf9e66efd06628ab2
Author: Jeff Garzik <jeff@garzik.org>
Date: Sat Aug 19 17:48:59 2006 -0400
drivers/net: Remove deprecated use of pci_module_init()
From: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 38f26d7e0b77770bf537d475fcc80174f51e2b4a
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Aug 15 01:39:36 2006 -0700
[BNX2]: Convert to netdev_alloc_skb()
Convert dev_alloc_skb() to netdev_alloc_skb() and increase default
rx ring size to 255. The old ring size of 100 was too small.
Update version to 1.4.44.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b1952e0f3691835620b3629e0674c80255b56def
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Aug 15 01:39:10 2006 -0700
[BNX2]: Fix tx race condition.
Fix a subtle race condition between bnx2_start_xmit() and bnx2_tx_int()
similar to the one in tg3 discovered by Herbert Xu:
CPU0 CPU1
bnx2_start_xmit()
if (tx_ring_full) {
tx_lock
bnx2_tx()
if (!netif_queue_stopped)
netif_stop_queue()
if (!tx_ring_full)
update_tx_ring
netif_wake_queue()
tx_unlock
}
Even though tx_ring is updated before the if statement in bnx2_tx_int() in
program order, it can be re-ordered by the CPU as shown above. This
scenario can cause the tx queue to be stopped forever if bnx2_tx_int() has
just freed up the entire tx_ring. The possibility of this happening
should be very rare though.
The following changes are made, very much identical to the tg3 fix:
1. Add memory barrier to fix the above race condition.
2. Eliminate the private tx_lock altogether and rely solely on
netif_tx_lock. This eliminates one spinlock in bnx2_start_xmit()
when the ring is full.
3. Because of 2, use netif_tx_lock in bnx2_tx_int() before calling
netif_wake_queue().
4. Add memory barrier to bnx2_tx_avail().
5. Add bp->tx_wake_thresh which is set to half the tx ring size.
6. Check for the full wake queue condition before getting
netif_tx_lock in tg3_tx(). This reduces the number of unnecessary
spinlocks when the tx ring is full in a steady-state condition.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 89114afd435a486deb8583e89f490fc274444d18
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date: Sat Jul 8 13:34:32 2006 -0700
[NET] gso: Add skb_is_gso
This patch adds the wrapper function skb_is_gso which can be used instead
of directly testing skb_shinfo(skb)->gso_size. This makes things a little
nicer and allows us to change the primary key for indicating whether an skb
is GSO (if we ever want to do that).
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9b91cf9daac41eeaaea57ecfe68dc13bb0305fa9
Author: Jeff Garzik <jeff@garzik.org>
Date: Tue Jun 27 11:39:50 2006 -0400
[netdrvr] use dev_xxx() printk helpers, rather than dev_printk(KERN_xxx, ...
Suggested by Jiri Slaby.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 2e8a538d865de0eb9813c8a0f2284e920299c0cc
Author: Jeff Garzik <jeff@garzik.org>
Date: Tue Jun 27 10:47:51 2006 -0400
[netdrvr] Use dev_printk() when ethernet interface isn't available
For messages prior to register_netdev(), prefer dev_printk() because
that prints out both our driver name and our [PCI | whatever] bus id.
Updates: 8139{cp,too}, b44, bnx2, cassini, {eepro,epic}100, fealnx,
hamachi, ne2k-pci, ns83820, pci-skeleton, r8169.
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 1fb9df5d3069064c037c81c0ab8bf783ffa5e373
Author: Thomas Gleixner <tglx@linutronix.de>
Date: Sat Jul 1 19:29:39 2006 -0700
[PATCH] irq-flags: drivers/net: Use the new IRQF_ constants
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
commit 6ab3d5624e172c553004ecc862bfeac16d9d68b7
Author: Jörn Engel <joern@wohnheim.fh-wedel.de>
Date: Fri Jun 30 19:25:36 2006 +0200
Remove obsolete #include <linux/config.h>
Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
commit 6c4f095eae35e83eb6148dec7f72874eeadf0c9b
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 29 12:38:15 2006 -0700
[BNX2]: Turn off link during shutdown
Minor change in shutdown logic to effect a link down.
Update version to 1.4.43.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 745720e58303f940e12944bf7fab52bc9ce48bda
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 29 12:37:41 2006 -0700
[BNX2]: Use dev_kfree_skb() instead of the _irq version
Change all dev_kfree_skb_irq() and dev_kfree_skb_any() to
dev_kfree_skb(). These calls are never used in irq context.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b11d6213529b33d81c21eeba97343e3b714e62e7
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Jun 29 12:31:21 2006 -0700
[BNX2]: Add NETIF_F_TSO_ECN
Add NETIF_F_TSO_ECN feature for all bnx2 hardware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 7967168cefdbc63bf332d6b1548eca7cd65ebbcc
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date: Thu Jun 22 02:40:14 2006 -0700
[NET]: Merge TSO/UFO fields in sk_buff
Having separate fields in sk_buff for TSO/UFO (tso_size/ufo_size) is not
going to scale if we add any more segmentation methods (e.g., DCCP). So
let's merge them.
They were used to tell the protocol of a packet. This function has been
subsumed by the new gso_type field. This is essentially a set of netdev
feature bits (shifted by 16 bits) that are required to process a specific
skb. As such it's easy to tell whether a given device can process a GSO
skb: you just have to and the gso_type field and the netdev's features
field.
I've made gso_type a conjunction. The idea is that you have a base type
(e.g., SKB_GSO_TCPV4) that can be modified further to support new features.
For example, if we add a hardware TSO type that supports ECN, they would
declare NETIF_F_TSO | NETIF_F_TSO_ECN. All TSO packets with CWR set would
have a gso_type of SKB_GSO_TCPV4 | SKB_GSO_TCPV4_ECN while all other TSO
packets would be SKB_GSO_TCPV4. This means that only the CWR packets need
to be emulated in software.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 9e1881dec9e3e8f8408551cddfda489857a7ec99
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jun 13 15:04:12 2006 -0700
[BNX2]: Update version and reldate
Update driver version to 1.4.42.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c86a31f452f7dd132a1765d6d7160b0947f37b14
Author: Michael Chan <mchan@broadcom.com>
Date: Tue Jun 13 15:03:47 2006 -0700
[BNX2]: Use CPU native page size
Use CPU native page size to determine various ring sizes. This allows
order-0 memory allocations on all systems.
Added check to limit the page size to 16K since that's the maximum rx
ring size that will be used. This will prevent using unnecessarily
large page sizes on some architectures with large page sizes.
[Suggested by David Miller]
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit fba9fe911bb4213c3de1d142fe0ee127cd361a78
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 12 22:21:25 2006 -0700
[BNX2]: Add firmware decompression
Add functions to decompress firmware before loading to the internal
CPUs. Compressing the firmware reduces the driver size significantly.
Added file name length sanity check in the gzip header to prevent
going past the end of buffer [suggested by DaveM].
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 160882722cb21cbe5cead55cf38a5e70fc3af63e
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 12 22:16:43 2006 -0700
[BNX2]: Allow WoL settings on new 5708 chips
Allow WOL settings on 5708 B2 and newer chips that have the problem
fixed.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit cea94db9b496d7fe25bbd3ebd0f24afaac2069d5
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jun 12 22:16:13 2006 -0700
[BNX2]: Add an rx drop counter
Add a counter for packets dropped by firmware.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit d1e100ba69131bb788e89a07b94b08f6e006725a
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date: Sun Jun 11 20:57:17 2006 -0700
[BNX2]: Endian fixes.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 932ff279a43ab7257942cddff2595acd541cc49b
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date: Fri Jun 9 12:20:56 2006 -0700
[NET]: Add netif_tx_lock
Various drivers use xmit_lock internally to synchronise with their
transmission routines. They do so without setting xmit_lock_owner.
This is fine as long as netpoll is not in use.
With netpoll it is possible for deadlocks to occur if xmit_lock_owner
isn't set. This is because if a printk occurs while xmit_lock is held
and xmit_lock_owner is not set can cause netpoll to attempt to take
xmit_lock recursively.
While it is possible to resolve this by getting netpoll to use
trylock, it is suboptimal because netpoll's sole objective is to
maximise the chance of getting the printk out on the wire. So
delaying or dropping the message is to be avoided as much as possible.
So the only alternative is to always set xmit_lock_owner. The
following patch does this by introducing the netif_tx_lock family of
functions that take care of setting/unsetting xmit_lock_owner.
I renamed xmit_lock to _xmit_lock to indicate that it should not be
used directly. I didn't provide irq versions of the netif_tx_lock
functions since xmit_lock is meant to be a BH-disabling lock.
This is pretty much a straight text substitution except for a small
bug fix in winbond. It currently uses
netif_stop_queue/spin_unlock_wait to stop transmission. This is
unsafe as an IRQ can potentially wake up the queue. So it is safer to
use netif_tx_disable.
The hamradio bits used spin_lock_irq but it is unnecessary as
xmit_lock must never be taken in an IRQ handler.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ae181bc44c65fdc93d0d2d908534b22e43f60f56
Author: Michael Chan <mchan@broadcom.com>
Date: Mon May 22 16:39:20 2006 -0700
[BNX2]: Use kmalloc instead of array
Use kmalloc() instead of a local array in bnx2_nvram_write().
Update version to 1.4.40.
Signed-off-by: Michael Chan <mchan@broadcom.com>
commit bae25761c92c5eec781b6ea72bbe7e98fc8382a0
Author: Michael Chan <mchan@broadcom.com>
Date: Mon May 22 16:38:38 2006 -0700
[BNX2]: Fix bug in bnx2_nvram_write()
Fix a bug in bnx2_nvram_write() caused by a counter variable not
correctly incremented by 4.
Signed-off-by: Michael Chan <mchan@broadcom.com>
commit e19360f2945f54eb44ae170ec9c33910d29834a2
Author: Randy Dunlap <rdunlap@xenotime.net>
Date: Mon Apr 10 23:22:06 2006 -0700
[PATCH] net drivers: fix section attributes for gcc
If CONFIG_HOTPLUG=n, gcc doesn't like some __initdata to be const (rodata)
and other __initdata not const, so make the non-const __initdata const.
gcc errors:
drivers/net/bnx2.c:66: error: version causes a section type conflict
drivers/net/starfire.c:338: error: version causes a section type conflict
drivers/net/typhoon.c:137: error: version causes a section type conflict
drivers/net/natsemi.c:241: error: version causes a section type conflict
Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
commit 5e2e71141ca93a3e2543966ced6a6077d4fb8fd8
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Mar 23 01:14:09 2006 -0800
[BNX2]: Update version and reldate
Update version to 1.4.39.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 29b12174ac14f110225d6d9ebb66c30df5023baf
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Mar 23 01:13:43 2006 -0800
[BNX2]: Separate tx producer and consumer fields
Put the tx producer and consumer fields in separate cache lines in
the device structure, similar to the VJ net channel queue structure.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f2a4f05216e95f3b8c06b858abc0fe9a77500816
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Mar 23 01:13:12 2006 -0800
[BNX2]: Move .h files to bnx2.c
Move all #include <> from bnx2.h to bnx2.c.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0f31f99446270e66c6f18c7d87aadd7db1dad214
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Mar 23 01:12:38 2006 -0800
[BNX2]: Combine small mem allocations
Combine two small (56 byte and 320 byte) pci consistent memory
allocations into one allocation. Jeff Garzik suggested to store
the combined size in the bp structure for later use when freeing
the memory.
Use kzalloc() instead of kmalloc() + memset().
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bf5295bba804a6aead9bc1c0d5970173a9d4e08e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Mar 23 01:11:56 2006 -0800
[BNX2]: Fix link change handling
Fix some link-related problems by doing a coalesce_now after link
change interrupt to flush out the transient link status.
To facilitate this, the host coalesce cmd register value is cached in
the device structure.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 0d36f37bb1e1cbadca6dc90a840bb2bc9ab51c44
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:55:25 2006 -0800
[BNX2]: include <linux/vmalloc.h>
Include <linux/vmalloc.h> so that it compiles properly on all archs.
Update version to 1.4.38.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1d60290f27e7dc4bce2c43922d0bfa9abd246fc9
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:50:08 2006 -0800
[BNX2]: Update version
Update version to 1.4.37.
Add missing flush_scheduled_work() in bnx2_suspend as noted by Jeff
Garzik.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 3fdfcc2c95ffc7ee04b480a4c1fd4809b5ff2f7c
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:49:49 2006 -0800
[BNX2]: Support larger rx ring sizes (part 2)
Support bigger rx ring sizes (up to 1020) in the rx fast path.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 13daffa2f2ba65674e7816a0e95e7b93246cb686
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:49:20 2006 -0800
[BNX2]: Support larger rx ring sizes (part 1)
Increase maximum receive ring size from 255 to 1020 by supporting
up to 4 linked pages of receive descriptors. To accomodate the
higher memory usage, each physical descriptor page is allocated
separately and the software ring that keeps track of the SKBs and the
DMA addresses is allocated using vmalloc.
Some of the receive-related fields in the bp structure are re-
organized a bit for better locality of reference.
The max. was reduced to 1020 from 4080 after discussion with David
Miller.
This patch contains ring init code changes only. This next patch
contains rx data path code changes.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 236b6394bb49ea58465c6f935a286d2342576f8d
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:49:02 2006 -0800
[BNX2]: Fix bug when rx ring is full
Fix the rx code path that does not handle the full rx ring correctly.
When the rx ring is set to the max. size (i.e. 255), the consumer and
producer indices will be the same when completing an rx packet. Fix
the rx code to handle this condition properly.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 244ac4f446ac6a19caf5eb692c4844f29e6478bf
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:48:46 2006 -0800
[BNX2]: Add ethtool -d support
Add ETHTOOL_GREGS support.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 6b39777c5924b9db2406c5769a044da383782d0e
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Mar 20 17:48:32 2006 -0800
[BNX2]: Reduce register test size
Eliminate some of the registers in ethtool register test to reduce
driver size.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit f71e130966ba429dbd24be08ddbcdf263df9a5ad
Author: Arjan van de Ven <arjan@infradead.org>
Date: Fri Mar 3 21:33:57 2006 -0500
Massive net driver const-ification.
commit 206cc83ccdc29e4a73786e9093f9eeec25868441
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:14:05 2006 -0800
[BNX2]: Update version and copyright year
Update version to 1.4.31 and add 2006 copyright.
Skip the last digit when reporting the firmware version.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit bc5a0690e917206b423c7b565c997b06675fb572
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:13:22 2006 -0800
[BNX2]: Add PHY loopback test
Enhance the ethtool loopback test with PHY loopback test.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 972ec0d4ba67bf0ec7f00cd93fbac47452f80d25
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:12:43 2006 -0800
[BNX2]: Use netdev_priv()
Replace dev->priv with netdev_priv(dev)
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1122db717ab5443ca9043fc0d23c1e862cfb3a61
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:11:42 2006 -0800
[BNX2]: Fix nvram sizing
Add code to correctly determine nvram size.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1269a8a64a37c8a06af672f4cff4fed16a478734
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:11:03 2006 -0800
[BNX2]: Workaround hw interrupt bug
Add workaround for a hardware interrupt issue. When using INTA,
unmasking of the interrupt and the tag update should be done
separately to avoid some spurious interrupts,
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit ade2bfe7d1f0ea804d2e63209cc6318ad8bf17ae
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:09:51 2006 -0800
[BNX2]: Fix UDP checksum verification
Fix TCP/UDP checksum verification. Use status bits in the buffer
descriptor instead of the checksum value to verify rx checksum.
Using the checksum value will be incorrect if the UDP packet has
zero in the UDP checksum field.
Firmware update required for this fix.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit dda1e390bf9e2889a3abc48590a015b307637753
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:08:14 2006 -0800
[BNX2]: Misc. fixes
Some misc. fixes for WoL, 5708 B1, and a typo '=' instead of '=='.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b090ae2b59f3db57732340c6af3beceec8d6c148
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:07:10 2006 -0800
[BNX2]: Improve handshake with firmware
Improve handshake with bootcode with the following changes:
1. Increase timeout to 100msec and use msleep instead of udelay.
2. Add more error checking for timeouts and errors.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e29054f92d7d575631691865c1b95bee5bc974cc
Author: Michael Chan <mchan@broadcom.com>
Date: Mon Jan 23 16:06:06 2006 -0800
[BNX2]: Fix VLAN on ASF
Always set up the device to strip incoming VLAN tags when ASF is
enabled. ASF firmware will not parse packets correctly if VLAN tags
are not stripped.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 1064e944d03eb7a72c0fa11236d5e69cfd877a71
Author: John W. Linville <linville@tuxdriver.com>
Date: Thu Nov 10 12:58:24 2005 -0800
[BNX2]: simplify parameter checks in bnx2_{get,set}_eeprom
Remove the superfluous parameter checking in bnx2_{get,set}_eeprom.
The parameters are already validated in ethtool_{get,set}_eeprom.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b6cbc3b6fe588c0ea1341d10413e12c2a96a6032
Author: John W. Linville <linville@tuxdriver.com>
Date: Thu Nov 10 12:58:00 2005 -0800
[BNX2]: check return of dev_alloc_skb in bnx2_test_loopback
Check return of dev_alloc_skb in bnx2_test_loopback, and handle
appropriately.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 2f23c523f32324e5b5f39565cbcb0a8ff8923019
Author: John W. Linville <linville@tuxdriver.com>
Date: Thu Nov 10 12:57:33 2005 -0800
[BNX2]: output driver name as prefix in error message
Output driver name as prefix to "Unknown flash/EEPROM type." message.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 05d0f1cf69fd589634b38b6f6e4b8cfdaace9ca0
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Nov 4 08:53:48 2005 -0800
[PATCH] bnx2: update version and minor fixes
Some book keeping and a style fix.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
commit f4e418f7f3286f854883f9f7e3bbf7005340d2de
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Nov 4 08:53:48 2005 -0800
[PATCH] bnx2: refine bnx2_poll
Refine bnx2_poll() logic to write back the most up-to-date status tag
when all work has been processed. This eliminates some occasional
extra interrupts when a older status tag is written even though all
work has been processed.
The idea is to read the status tag just before exiting bnx2_poll() and
then check again for any new work. If no new work is pending, the
status tag written back will not generate any extra interrupt. This
logic is similar to the changes David Miller did to tg3_poll().
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
commit e3648b3d8de3b37fae7acbb57db1e001a19cd3b7
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Nov 4 08:51:21 2005 -0800
[PATCH] bnx2: update firmware handshake for 5708
Dynamically determine the shared memory location where eeprom
parameters are stored instead of using a fixed location.
Add speed reporting to management firmware. This allows management
firmware to know the current speed without contending for MII
registers.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
commit 371377091dff14090cbe995d0a9291364f8583cb
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Nov 4 08:49:17 2005 -0800
[PATCH] bnx2: update nvram code for 5708
Update bnx2 nvram code with support for 5708.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
commit 5b0c76ad94faf95ca50fa0de9ab07460bea19568
Author: Michael Chan <mchan@broadcom.com>
Date: Fri Nov 4 08:45:49 2005 -0800
[PATCH] bnx2: add 5708 support
Add 5708 copper and serdes basic support, including 2.5 Gbps support
on 5708 serdes. SPEED_2500 is also added to ethtool.h
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
commit b4558ea93d66a43f7990d26f145fd4c54a01c9bf
Author: Jesper Juhl <jesper.juhl@gmail.com>
Date: Fri Oct 28 16:53:13 2005 -0400
drivers/net: Remove pointless checks for NULL prior to calling kfree()
commit 24b8e05dc1b03c1f80828e642838511c16e17250
Author: John W. Linville <linville@tuxdriver.com>
Date: Mon Sep 12 14:45:08 2005 -0700
[BNX2]: Add support for ETHTOOL_GPERMADDR.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c921e4c4dbb043f9435414c4e661e7f0a783053d
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Sep 8 13:15:32 2005 -0700
[BNX2]: Fix bug in irq handler and add prefetch
Fix bug in bnx2_interrupt() that caused an unnecessary register read.
The BNX2_PCICFG_MISC_STATUS should only be read when the status tag
has not changed.
Add prefetch of the status block in bnx2_msi() similar to tg3_msi().
The status block is not touched in bnx2_msi() and prefetching it will
speed up bnx2_poll() that will run on the same CPU that received the
MSI.
Update version.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 829ca9a30a2ddb727981d80fabdbff2ea86bc9ea
Author: Pavel Machek <pavel@ucw.cz>
Date: Sat Sep 3 15:56:56 2005 -0700
[PATCH] swsusp: fix remaining u32 vs. pm_message_t confusion
Fix remaining bits of u32 vs. pm_message confusion. Should not break
anything.
Signed-off-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
commit 73eef4cddb2738c4e8c5ef157ebb1b19d6c9272f
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 25 15:39:15 2005 -0700
[BNX2]: update version and minor fixes
Update version and add 4 minor fixes, the last 2 were suggested by
Jeff Garzik:
1. check for a valid ethernet address before setting it
2. zero out bp->regview if init_one encounters an error and unmaps
the IO address. This prevents remove_one from unmapping again.
3. use netif_rx_schedule() instead of hand coding the same.
4. use IRQ_HANDLED and IRQ_NONE.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit c770a65cee7cc250d7bccd99fa55e742988ae4e0
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 25 15:38:39 2005 -0700
[BNX2]: change irq locks to bh locks
Change all locks from spin_lock_irqsave() to spin_lock_bh(). All
places that require spinlocks are in BH context.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit e89bbf1049aac3625fdafe3657ed8d7d5373d351
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 25 15:36:58 2005 -0700
[BNX2]: remove atomics in tx
Remove atomic operations in the fast tx path. Expensive atomic
operations were used to keep track of the number of available tx
descriptors. The new code uses the difference between the consumer
and producer index to determine the number of free tx descriptors.
As suggested by Jeff Garzik, the name of the inline function is
changed to all lower case.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit cd339a0ed61097d92ce03b6d1042b1e4d58535e7
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 25 15:35:24 2005 -0700
[BNX2]: speedup serdes linkup
This speeds up link-up time on 5706 SerDes if the link partner does
not autoneg, a rather common scenario in blade servers. Some blade
servers use IPMI for keyboard input and it's important to minimize
link disruptions.
The speedup is achieved by shortening the timer to (HZ / 3) during
the transient period right after initiating a SerDes autoneg. If
autoneg does not complete, parallel detect can be done sooner. After
the transient period is over, the timer goes back to its normal HZ
interval.
As suggested by Jeff Garzik, the timer initialization is moved to
bnx2_init_board() from bnx2_open().
An eeprom bit is also added to allow default forced SerDes speed for
even faster link-up time.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit afdc08b9f9a7174d7912a160f657f39d46379b5e
Author: Michael Chan <mchan@broadcom.com>
Date: Thu Aug 25 15:34:29 2005 -0700
[BNX2]: Fix rtnl deadlock in bnx2_close
This fixes an rtnl deadlock problem when flush_scheduled_work() is
called from bnx2_close(). In rare cases, linkwatch_event() may be on
the workqueue from a previous close of a different device and it will
try to get the rtnl lock which is already held by dev_close().
The fix is to set a flag if we are in the reset task which is run
from the workqueue. bnx2_close() will loop until the flag is cleared.
As suggested by Jeff Garzik, the loop is changed to call msleep(1)
instead of yield() in the original patch.
flush_scheduled_work() is also moved to bnx2_remove_one() before the
netdev is freed.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit 14ab9b867aa6c107b4886bdc5b23f277ab10792e
Author: Peter Hagervall <hager@cs.umu.se>
Date: Wed Aug 10 14:18:16 2005 -0700
[BNX2]: Possible sparse fixes, take two
This patch contains the following possible cleanups/fixes:
- use C99 struct initializers
- make a few arrays and structs static
- remove a few uses of literal 0 as NULL pointer
- use convenience function instead of cast+dereference in bnx2_ioctl()
- remove superfluous casts to u8 * in calls to readl/writel
Signed-off-by: Peter Hagervall <hager@cs.umu.se>
Acked-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
commit b6016b767397258b58163494a869f8f1199e6897
Author: Michael Chan <mchan@broadcom.com>
Date: Thu May 26 13:03:09 2005 -0700
[BNX2]: New Broadcom gigabit network driver.
A new driver bnx2 for Broadcom bcm5706 is available.
The patch also includes new 1000BASE-X advertisement bit definitions in
mii.h
Thanks to David Miller and Jeff Garzik for reviewing and their valuable
feedback.
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>