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>

