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>

