commit 415199f2bd977fa4065d4e836b4b7543f7993bc3
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 20 14:55:24 2011 +0000

    cnic: Add VLAN ID as a parameter during netevent upcall
    
    The bnx2fc driver needs to handle netdev events on VLAN devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 74e49bbdabbac34c77b280152b1de9bef9bf9be7
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 20 14:55:23 2011 +0000

    cnic: Wait for all Context IDs to be deleted before sending FCOE_DESTROY_FUNC
    
    Otherwise, the firmware will not respond and we'll have to wait for
    timeout.  Refactor the wait loop we already have into a separate
    function for this purpose.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b37a41e390310429d4171b0f7b6c6eab04512dc0
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 20 14:55:22 2011 +0000

    cnic: Fix Context ID space calculation
    
    Include FCoE CID space only for E2_PLUS devices.  Remove old CID
    offset adjustments that are no longer needed.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 558e4c758c4c7bf209325f5865189c6558860b2b
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 13 17:24:20 2011 +0000

    cnic: Return proper error code if we fail to send netlink message
    
    to allow iSCSI connection to fail faster instead of waiting for the
    long timeout.
    
    Update version to 2.5.6.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e1dd883cb15310dc2ded9995a1f1d8b1cb1e88f3
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 13 17:24:19 2011 +0000

    cnic: Fix ring setup/shutdown code
    
    Latest bnx2x driver uses different CID for the iSCSI rings, so
    we need to pass it in the ring init data.  The rx ring is also
    zeroed out to prevent stale DMA addresses from being used after
    shutdown.
    
    The same cp local variable redefined inside the else branch is
    also eliminated.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b7d40315c9643034ac4b5c9dda480d0124416f89
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 13 17:24:18 2011 +0000

    cnic: Fix port_mode setting
    
    CHIP_2_PORT_MODE was not set correctly.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 973e574e26cc8f4704e5d7f112fd566386e37f04
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jul 13 17:24:17 2011 +0000

    cnic: Replace get_random_bytes() with random32()
    
    Suggested by Stephen Hemminger <shemminger@vyatta.com>
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Matt Carlson <mcarlson@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f4b5ad26bcb983c493e131ff34b2fa60100c82e5
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jun 20 15:15:56 2011 +0000

    cnic, bnx2i: Add support for new devices - 57800, 57810, and 57840
    
    And change iSCSI RQ doorbell size from 16B to 64B to match new firmware.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 43d620c82985b19008d87a437b4cf83f356264f7
Author: Joe Perches <joe@perches.com>
Date:   Thu Jun 16 19:08:06 2011 +0000

    drivers/net: Remove casts of void *
    
    Unnecessary casts of void * clutter the code.
    
    These are the remainder casts after several specific
    patches to remove netdev_priv and dev_priv.
    
    Done via coccinelle script (and a little editing):
    
    $ cat cast_void_pointer.cocci
    @@
    type T;
    T *pt;
    void *pv;
    @@
    
    - pt = (T *)pv;
    + pt = pv;
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Acked-by: Sjur Brændeland <sjur.brandeland@stericsson.com>
    Acked-By: Chris Snook <chris.snook@gmail.com>
    Acked-by: Jon Mason <jdmason@kudzu.us>
    Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Acked-by: David Dillow <dave@thedillows.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 619c5cb6885b936c44ae1422ef805b69c6291485
Author: Vlad Zolotarov <vladz@broadcom.com>
Date:   Tue Jun 14 14:33:44 2011 +0300

    New 7.0 FW: bnx2x, cnic, bnx2i, bnx2fc
    
    New FW/HSI (7.0):
     - Added support to 578xx chips
     - Improved HSI - much less driver's direct access to the FW internal
       memory needed.
    
    New implementation of the HSI handling layer in the bnx2x (bnx2x_sp.c):
     - Introduced chip dependent objects that have chip independent interfaces
       for configuration of MACs, multicast addresses, Rx mode, indirection table,
       fast path queues and function initialization/cleanup.
     - Objects functionality is based on the private function pointers, which
       allows not only a per-chip but also PF/VF differentiation while still
       preserving the same interface towards the driver.
     - Objects interface is not influenced by the HSI changes which do not require
       providing new parameters keeping the code outside the bnx2x_sp.c invariant
       with regard to such HSI chnages.
    
    Changes in a CNIC, bnx2fc and bnx2i modules due to the new HSI.
    
    Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@conan.davemloft.net>

commit 59e5137357559ec60b2e72bdc3d5a7e22c47212b
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jun 14 01:32:38 2011 +0000

    cnic: Move indexing function pointers to struct kcq_info
    
    The hardware indexing scheme for the FCoE kcq will change in the upcoming
    firmware.  This patch will cope with the change easily.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
    Signed-off-by: David S. Miller <davem@conan.davemloft.net>

commit 7625eb2f2fff7bfae41d3119b472c20b48874895
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jun 8 19:29:36 2011 +0000

    cnic, bnx2: Check iSCSI support early in bnx2_init_one()
    
    Based on earlier patch from Neil Horman <nhorman@tuxdriver.com>
    
    If iSCSI is not supported on a bnx2 device, bnx2_cnic_probe() will
    return NULL and the cnic device will not be visible to bnx2i.  This
    will prevent bnx2i from registering and then unregistering during
    cnic_start() and cause the warning message:
    
    bnx2 0003:01:00.1: eth1: Failed waiting for ULP up call to complete
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Cc: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit db1d350fcb156b58f66a67680617077bcacfe6fc
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jun 8 19:29:35 2011 +0000

    cnic: Improve NETDEV_UP event handling
    
    During NETDEV_UP, we use symbol_get() to get the net driver's cnic
    probe function.  This sometimes doesn't work if NETDEV_UP happens
    right after NETDEV_REGISTER and the net driver is still running module
    init code.  As a result, the cnic device may not be discovered.  We
    fix this by probing on all NETDEV events if the device's netif_running
    state is up.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 11f23aa8ccd56786f0a6f04211cf59b3fab2ce08
Author: Eddie Wai <eddie.wai@broadcom.com>
Date:   Wed Jun 8 19:29:34 2011 +0000

    cnic: Randomize initial TCP port for iSCSI connections
    
    This reduces the likelihood of port re-use when re-loading the driver.
    
    Signed-off-by: Eddie Wai <eddie.wai@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 101c40c8cb0d10c30f423805f9f5b7a75956832d
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jun 8 19:29:33 2011 +0000

    cnic: Fix race conditions with firmware
    
    During iSCSI connection terminations, if the target is also terminating
    at about the same time, the firmware may not complete the driver's
    request to close or reset the connection.  This is fixed by handling
    other events (instead of the expected completion event) as an indication
    that the driver's request has been rejected.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 93736656138e6d2f39f19c1d68f9ef81cfc9dd66
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jun 8 19:29:32 2011 +0000

    cnic: Fix interrupt logic
    
    We need to keep looping until cnic_get_kcqes() returns 0.  cnic_get_kcqes()
    returns a maximum of 64 entries.  If there are more entries in the queue
    and we don't loop back, the remaining entries may not be serviced for a
    long time.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 70c71606190e9115e5f8363bfcd164c582eb314a
Author: Paul Gortmaker <paul.gortmaker@windriver.com>
Date:   Sun May 22 16:47:17 2011 -0400

    Add appropriate <linux/prefetch.h> include for prefetch users
    
    After discovering that wide use of prefetch on modern CPUs
    could be a net loss instead of a win, net drivers which were
    relying on the implicit inclusion of prefetch.h via the list
    headers showed up in the resulting cleanup fallout.  Give
    them an explicit include via the following $0.02 script.
    
     =========================================
     #!/bin/bash
     MANUAL=""
     for i in `git grep -l 'prefetch(.*)' .` ; do
     	grep -q '<linux/prefetch.h>' $i
     	if [ $? = 0 ] ; then
     		continue
     	fi
    
     	(	echo '?^#include <linux/?a'
     		echo '#include <linux/prefetch.h>'
     		echo .
     		echo w
     		echo q
     	) | ed -s $i > /dev/null 2>&1
     	if [ $? != 0 ]; then
     		echo $i needs manual fixup
     		MANUAL="$i $MANUAL"
     	fi
     done
     echo ------------------- 8\<----------------------
     echo vi $MANUAL
     =========================================
    
    Signed-off-by: Paul <paul.gortmaker@windriver.com>
    [ Fixed up some incorrect #include placements, and added some
      non-network drivers and the fib_trie.c case    - Linus ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 93ae653491f0a413d5f4d9aa4df45d09ecb55d62
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Apr 8 13:03:02 2011 -0700

    cnic: Fix rtnl deadlock
    
    When cnic_stop_hw() -> cnic_cm_stop_bnx2x_hw() is called under rtnl_lock()
    from NETDEV_DOWN event, it waits for cnic_delete_task() to complete.
    It will deadlock when cnic_delete_task() takes rtnl_lock() before
    calling cnic_ulp_stop_one().
    
    We fix it by removing the rtnl_lock() in cnic_delete_task().
    cnic_ulp_stop_one() has mutex and atomic bit ops to prevent important
    operations from being done more than once, so it is not necessary to take
    rtnl_lock().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fab0dc89f0d98459c6ce7fa27422949ac15837fa
Author: Dmitry Kravkov <dmitry@broadcom.com>
Date:   Thu Mar 31 17:04:22 2011 -0700

    bnx2x, cnic: Disable iSCSI if DCBX negotiation is successful
    
    With current bnx2x firmware 6.2.9, iSCSI is not supported in DCB
    network, so we need to disable it.  Add cnic command to disconnect
    iSCSI connections and prevent future connections when DCBX negotiation
    succeeds.
    
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4c9483b2fb5d2548c3cc1fe03cdd4484ceeb5d1c
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Mar 12 16:22:43 2011 -0500

    ipv6: Convert to use flowi6 where applicable.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1d28f42c1bd4bb2363d88df74d0128b4da135b4a
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Mar 12 00:29:39 2011 -0500

    net: Put flowi_* prefix on AF independent members of struct flowi
    
    I intend to turn struct flowi into a union of AF specific flowi
    structs.  There will be a common structure that each variant includes
    first, much like struct sock_common.
    
    This is the first step to move in that direction.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 78fbfd8a653ca972afe479517a40661bfff6d8c3
Author: David S. Miller <davem@davemloft.net>
Date:   Sat Mar 12 00:00:52 2011 -0500

    ipv4: Create and use route lookup helpers.
    
    The idea here is this minimizes the number of places one has to edit
    in order to make changes to how flows are defined and used.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0197b087ed6384760656f1e4a620a3e92d8dc0b0
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Mar 2 13:00:50 2011 +0000

    cnic: Fix lost interrupt on bnx2x
    
    We service 2 queues (kcq1 and kcq2) in cnic_service_bnx2x_bh().  If
    the status block index has changed when servicing the kcq2, we must
    go back and check kcq1.  The latest status block index will be used
    to acknowledge the interrupt, and without looping back to check kcq1,
    we may miss events on kcq1.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 107c3f4d42adc9af393019b795dd2177fbe9e465
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Mar 2 13:00:49 2011 +0000

    cnic: Prevent status block race conditions with hardware
    
    The status block index is used to acknowledge interrupt events and must
    be read before checking for the interrupt events, so we need to add rmb()
    to guarantee that.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b23dd4fe42b455af5c6e20966b7d6959fa8352ea
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Mar 2 14:31:35 2011 -0800

    ipv4: Make output route lookup return rtable directly.
    
    Instead of on the stack.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 2ba451421b23636c45fabfa522858c5c124b3673
Author: Vladislav Zolotarov <vladz@broadcom.com>
Date:   Mon Jan 31 14:39:17 2011 +0000

    bnx2x, cnic: Consolidate iSCSI/FCoE shared mem logic in bnx2x
    
    Move all shared mem code to bnx2x to avoid code duplication.  bnx2x now
    performs:
    
    - Read the FCoE and iSCSI max connection information.
    - Read the iSCSI and FCoE MACs from NPAR configuration in shmem.
    - Block the CNIC for the current function if there is neither FCoE nor
      iSCSI valid configuration by returning NULL from bnx2x_cnic_probe().
    
    Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 13707f9e5e46342b7b16c58be91ad93a476c3ffd
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Wed Jan 26 19:28:23 2011 +0000

    drivers/net: remove some rcu sparse warnings
    
    Add missing __rcu annotations and helpers.
    minor : Fix some rcu_dereference() calls in macvtap
    
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5138826b52f8bc441770069b1b305e1d1426ae9e
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jan 25 22:14:50 2011 +0000

    cnic: Fix big endian bug
    
    The chip's page tables did not set up properly on big endian machines,
    causing EEH errors on PPC machines.
    
    Reported-by: Breno Leitao <leitao@linux.vnet.ibm.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 68d7c1aa2fee6acb11fcb826a207e4b81d8a1f57
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Jan 5 15:14:13 2011 +0000

    cnic: Fix the type field in SPQ messages
    
    The new firmware interface requires each Slow Path Queue (SPQ) message's
    type field to include the function number.  The existing code does not
    do this consistently.  We fix this by OR'ing in the function number
    into the type field centrally in cnic_submit_kwqe_16().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 42bb8d56953a06de50941d6d3df89dc3023bb92d
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jan 3 15:21:46 2011 +0000

    cnic: Do not call bnx2i when bnx2i is calling cnic_unregister_driver()
    
    We should call bnx2i to send the iSCSI netlink message earlier in
    cnic_unregister_device().  By the time cnic_unregister_driver() is
    called, bnx2i may have freed data structures used by the upcalls.
    
    Update version to 2.2.12.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 57045c996fb4e035f1d152b7e04315fc223352e9
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jan 3 15:21:45 2011 +0000

    cnic: Do not allow iSCSI and FCoE on bnx2x multi-function mode
    
    Because the hardware does not yet support these in this mode.
    
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit f7e4c9775ea648deed4a8193951e50d0c7706173
Author: Jesper Juhl <jj@chaosbits.net>
Date:   Fri Dec 31 11:18:48 2010 -0800

    Broadcom CNIC core network driver: fix mem leak on allocation failures in cnic_alloc_uio_rings()
    
    We are leaking memory in drivers/net/cnic.c::cnic_alloc_uio_rings() if
    either of the calls to dma_alloc_coherent() fail. This patch fixes it by
    freeing both the memory allocated with kzalloc() and memory allocated with
    previous calls to dma_alloc_coherent() when there's a failure.
    
    Thanks to  Joe Perches <joe@perches.com>  for suggesting a better
    implementation than my initial version.
    
    Signed-off-by: Jesper Juhl <jj@chaosbits.net>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e1928c86c4829703b800c81cc9edc939b5634e6f
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:43:04 2010 +0000

    cnic: Add FCoE support on 57712
    
    - Connection ID (cid) management
    - Slow-path command and response support
    - Update version to 2.2.11.
    
    Reviewed-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e21ba414eed8a233eadb79bb6b158ac7ceb35025
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:43:03 2010 +0000

    cnic: Add kcq2 support on 57712
    
    The kcq2 (2nd kernel work queue) is used by FCoE on 57712 devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 42ecbb8426aa229167d7f9d4b4e20f24bf42cb24
Author: Eddie Wai <waie@broadcom.com>
Date:   Thu Dec 23 07:43:02 2010 +0000

    cnic: Call cm_connect_complete() immediately on error
    
    If we get a path_resp error from userspace, call cm_connect_complete()
    immediately with error so that bnx2i can react to the error faster.
    
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit eaaa6e9c222d5c398488ed4216f0fd94e4b81759
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 08:38:30 2010 +0000

    cnic: Check device state before reading the kcq pointer in IRQ
    
    If the device is down, the kcq pointer may be NULL.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4aacb7afb6afd78efe26427e74fa56a5fc72fad3
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:43:01 2010 +0000

    cnic: Support NIC Partition mode
    
    Add a common function cnic_read_bnx2x_iscsi_mac() to read the iSCSI
    MAC address at any specified shared memory location.  In NIC Partition
    mode, we need to get the MAC address from the MF_CFG area of shared
    memory.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 5159fdc1e6cb4000f482faebeeba0be91611276d
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:42:59 2010 +0000

    cnic: Use proper client and connection IDs on iSCSI ring
    
    Use the IDs specified by the bnx2x driver when initializing the ring.
    We don't have to make code changes when these IDs change in the future.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 939b82e5bde56a98c72eccde2e3a88d32bffad4a
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:42:58 2010 +0000

    cnic: Improve ->iscsi_nl_msg_send()
    
    1. Change first parameter from cnic_dev to ulp_handle which is the hba
    pointer.  All other similar upcalls are using hba pointer.  The callee
    can then directly reference the hba without conversion.
    
    2. Change return value from void to int so that an error code can be
    passed back.  This allows the operation to be retried.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8adc9240f98a816f7e9b3d93b9446a790110e062
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:42:57 2010 +0000

    cnic: Prevent "scheduling while atomic" when calling ->cnic_init()
    
    cnic_dev_list is protected by rtnl_lock and cnic_dev_lock spin_lock during
    modifications.  When looping on cnic_dev_list and calling ->cnic_init(),
    we should just hold rtnl_lock since ->cnic_init() may sleep.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 9b09336072796378dac46df63bcd43291b24fd12
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 23 07:42:56 2010 +0000

    cnic: Fix iSCSI TCP port endian order.
    
    Pass the TCP port parameter for iSCSI connections to the firmware in
    proper endian order.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 779bb41d4bd111d5631d58d1bf2d00b5c4389c80
Author: Joe Perches <joe@perches.com>
Date:   Sun Nov 14 17:04:37 2010 +0000

    drivers/net/cnic.c: Remove unnecessary semicolons
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ee87a82a28cddbb9267a294172ecb3d3d3bdaa6c
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:51 2010 +0000

    cnic: Add support for 57712 device
    
    Add new interrupt ack functions and other hardware interface logic to
    support the new device.
    
    Update version to 2.2.6.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a3ceeeb8f11d74f26e3dfca40ded911a82402db5
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:50 2010 +0000

    cnic: Decouple uio close from cnic shutdown
    
    During cnic shutdown, the original driver code requires userspace to
    close the uio device within a few seconds.  This doesn't always happen
    as the userapp may be hung or otherwise take a long time to close.  The
    system may crash when this happens.
    
    We fix the problem by decoupling the uio structures from the cnic
    structures during cnic shutdown.  We do not unregister the uio device
    until the cnic driver is unloaded.  This eliminates the unreliable wait
    loop for uio to close.
    
    All uio structures are kept in a linked list.  If the device is shutdown
    and later brought back up again, the uio strcture will be found in the
    linked list and coupled back to the cnic structures.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit cd801536c236e287f1d3eeee428abf9ffd523ede
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:49 2010 +0000

    cnic: Add cnic_uio_dev struct
    
    and put all uio related structures and ring buffers in it.  This allows
    uio operations to be done independent of the cnic device structures.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c06c0462250a5dbc9e58d00caab4cd7e6675128c
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:48 2010 +0000

    cnic: Add cnic_free_uio()
    
    to free all UIO related structures.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit fdf24086f4752aee5dfb40143c736250df017820
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:47 2010 +0000

    cnic: Defer iscsi connection cleanup
    
    The bnx2x devices require a 2 second quiet time before sending the last
    RAMROD command to destroy a connection.  This sleep wait adds up to a
    long delay when iscsid is serially destroying maultiple connections.
    
    Create a workqueue to perform the final connection cleanup in the
    background to speed up the process.  This significantly speeds up the
    process as the wait time can be done in parallel for multiple connections.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a2c9e769dbb92336ddacba01d399ad0f509e7094
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:46 2010 +0000

    cnic: Add cnic_bnx2x_destroy_ramrod()
    
    Refactoring code for the next patch to defer connection clean up.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6e0dda0c467d6c66d64c146170ea35399ec34c15
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:45 2010 +0000

    cnic: Convert ctx_flags to bit fields
    
    so that we can additional bit definitions without requiring a spinlock.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6e0dc64384298b29ac17de7362b7d6d2ef588304
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 13 14:06:44 2010 +0000

    cnic: Add common cnic_request_irq()
    
    to reduce some duplicate code.  Also, use tasklet_kill() in
    cnic_free_irq() to wait for the cnic_irq_task to complete.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c2bff63fad94eeecf59e4ba8e4cb51688ccae1ec
Author: Dmitry Kravkov <dmitry@broadcom.com>
Date:   Wed Oct 6 03:33:18 2010 +0000

    bnx2x, cnic: Fix SPQ return credit
    
    Return proper L2 and L5 SPQ (slow path queue) credits.  Previously, all
    SPQ events were counted as L5 types.
    
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 523224a3b3cd407ce4e6731a087194e13a90db18
Author: Dmitry Kravkov <dmitry@broadcom.com>
Date:   Wed Oct 6 03:23:26 2010 +0000

    bnx2x, cnic, bnx2i: use new FW/HSI
    
    This is the new FW HSI blob and the relevant definitions without logic changes.
    It also included code adaptation for new HSI. New features are not enabled.
    
    New FW/HSI includes:
    - Support for 57712 HW
    - Future support for VF (not used)
    - Improvements in FW interrupts scheme
    - FW FCoE hooks (stubs for future usage)
    
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 541a78103f097cd5120e55aaba56d099a64f153c
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 6 03:17:22 2010 +0000

    cnic: Fine-tune ring init code.
    
    Initialize the rings only during cnic_uio_open() and shut them down
    during cnic_uio_close().  Check for the new bit CNIC_LCL_FL_RINGS_INITED
    before checking for ring interrupt.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1420398db4d5e236583d3ab392637df255bd5c6b
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 6 03:16:06 2010 +0000

    cnic: Use pfid for internal memory offsets.
    
    The pfid (physical function ID) is the same as PCI function on production
    devices.  The pfid for future devices will be different and will be used
    for internal memory offsets.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ceb7e1c7c5ab86ca686d523f99ca473a1f3a984d
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 6 03:14:54 2010 +0000

    cnic: Pass cp pointer to BNX2X_HW_CID.
    
    Preparation work for upcoming firmware interface changes.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit baeb2ffab4e67bb9174e6166e070a9a8ec94b0f6
Author: Joe Perches <joe@perches.com>
Date:   Wed Aug 11 07:02:48 2010 +0000

    drivers/net: Convert unbounded kzalloc calls to kcalloc
    
    These changes may be slightly safer in some instances.
    
    There are other kzalloc calls with a multiply, but those
    calls are typically "small fixed #" * sizeof(some pointer)"
    and those are not converted.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
    Acked-by: Luciano Coelho <luciano.coelho@nokia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 72b8a169dbfa74e7d1d08b97435e61e711d7be0e
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:42 2010 +0000

    cnic: Update version to 2.1.3.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b177a5d5d876965b42788f3a05197ef385c84dcf
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:41 2010 +0000

    cnic: Further unify kcq handling code.
    
    This eliminates some of the duplicate code for the various devices
    that require the same basic kcq handling.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 644b9d4f8b8d74f4d87f14dede5e331555d3e701
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:40 2010 +0000

    cnic: Restructure kcq processing.
    
    By doing more work in the common function cnic_get_kcqes(), and
    making full use of the kcq_info structure.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e6c2889478f04b30e5a71d753734644c579472fa
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:39 2010 +0000

    cnic: Unify kcq allocation for all devices.
    
    By creating a common data stucture kcq_info for all devices, the kcq
    (kernel completion queue) for all devices can be allocated by common
    code.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 66fee9ed03a4413ea054e437b65af6fd3583b4db
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:38 2010 +0000

    cnic: Unify IRQ code for all hardware types.
    
    By creating a common cnic_doirq().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 520efdf44f0140eef9018518fdae5edfc86f3b6c
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Jun 24 14:58:37 2010 +0000

    cnic: Fine-tune CID memory space calculation.
    
    The current code makes assumptions about the CID (context ID) memory
    space and starting CID that may not be always correct when firmware
    changes.  In particular, BNX2_ISCSI_START_CID may not always be fixed.
    We now calculate cp->max_cid_space and cp->iscsi_start_cid dynamically
    instead of using fixed constants.  The unused cp->max_iscsi_conn is also
    eliminated.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 8244132ea89cdd128003f5b9980fab50d8d36d72
Merge: 7b2ff18 38000a9
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Jun 23 18:26:27 2010 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    Conflicts:
    	net/ipv4/ip_output.c

commit 6b2a541db58dba5860ccbcfaf36caee064b8a9fd
Author: Dmitry Kravkov <dmitry@broadcom.com>
Date:   Wed Jun 23 11:57:09 2010 -0700

    cnic: Disable statistics initialization for eth clients that do not support statistics
    
    Disable statistics initialization for eth clients that do not support
     statistics. This prevents memory corruption on bnx2x hw.
    
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eilon Greenstein <eilong@broadcom.com>

commit 7b34a4644b4342896e0c1967b8f953213ea4a990
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jun 15 08:57:03 2010 +0000

    cnic: Fix cnic_cm_abort() error handling.
    
    Fix the code that handles the error case when cnic_cm_abort() cannot
    proceed normally.  We cannot just set the csk->state and we must
    go through cnic_ready_to_close() to handle all the conditions.  We
    also add error return code in cnic_cm_abort().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 943189f1d564e69201f7d71e77f5608a701e3e55
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jun 15 08:57:02 2010 +0000

    cnic: Refactor and fix cnic_ready_to_close().
    
    Combine RESET_RECEIVED and RESET_COMP logic and fix race condition
    between these 2 events and cnic_cm_close().  In particular, we need
    to (test_and_clear_bit(SK_F_OFFLD_COMPLETE, &csk->flags)) before we
    update csk->state.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a1e621bf6d03621de207cd416f6a21969dd0601c
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jun 15 08:57:01 2010 +0000

    cnic: Refactor code in cnic_cm_process_kcqe().
    
    Move chip-specific code to the respective chip's ->close_conn() functions
    for better code organization.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ed99daa5a0de4df9ed579ce36ff8b1373b6dbe47
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue Jun 15 08:57:00 2010 +0000

    cnic: Return error code in cnic_cm_close() if unsuccessful.
    
    So that bnx2i can handle the error condition immediately and not have to
    wait for timeout.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com.
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d8d1f30b95a635dbd610dcc5eb641aca8f4768cf
Author: Changli Gao <xiaosuo@gmail.com>
Date:   Thu Jun 10 23:31:35 2010 -0700

    net-next: remove useless union keyword
    
    remove useless union keyword in rtable, rt6_info and dn_route.
    
    Since there is only one member in a union, the union keyword isn't useful.
    
    Signed-off-by: Changli Gao <xiaosuo@gmail.com>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit b58ffb41fc09d1ffaca97e5ae801233575be2a7f
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu May 27 16:31:41 2010 -0700

    cnic: Fix context memory init. on 5709.
    
    We need to zero context memory on 5709 in the function cnic_init_context().
    Without this, iscsid restart on 5709 will not work because of stale data.
    TX context blocks should not be initialized by cnic_init_context() because
    of the special remapping on 5709.
    
    Update version to 2.1.2.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 48f753d2ba94a4081400fa8d26bdbfbbf12b10de
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue May 18 11:32:53 2010 +0000

    cnic: Return SPQ credit to bnx2x after ring setup and shutdown.
    
    Everytime the iSCSI ring finishes setup or shutdown, we need to return
    the SPQ (slow path queue) credit to the bnx2x driver.  Without this step,
    the SPQ will eventually be full causing iSCSI to fail.  This can happen
    after 3 or 4 MTU changes for example.
    
    Add code to wait for these slow path commands to complete in the RX ring
    and return the SPQ credit to bnx2x.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1f1332a3cb7ac73e3bcff6ea42ff965c90a29d12
Author: Michael Chan <mchan@broadcom.com>
Date:   Tue May 18 11:32:52 2010 +0000

    cnic: Convert cnic_local_flags to atomic ops.
    
    It is easier to expand the flags for other purposes because it does
    not require a spin_lock.  The next bug fix patch needs a flag in
    cnic_local_flags.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a4b770972b8f819e408d7cc3ae9637e15bff62f6
Author: Joe Perches <joe@perches.com>
Date:   Fri May 14 00:19:28 2010 -0700

    drivers/net: Remove unnecessary returns from void function()s
    
    This patch removes from drivers/net/ all the unnecessary
    return; statements that precede the last closing brace of
    void functions.
    
    It does not remove the returns that are immediately
    preceded by a label as gcc doesn't like that.
    
    It also does not remove null void functions with return.
    
    Done via:
    $ grep -rP --include=*.[ch] -l "return;\n}" net/ | \
      xargs perl -i -e 'local $/ ; while (<>) { s/\n[ \t\n]+return;\n}/\n}/g; print; }'
    
    with some cleanups by hand.
    
    Compile tested x86 allmodconfig only.
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 94824f3dbe0d3f62470603bbb18efb5510aaf07c
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Apr 7 20:53:54 2010 -0700

    cnic: Fix crash during bnx2x MTU change.
    
    cnic_service_bnx2x() irq handler can be called during chip reset from
    MTU change.  Need to check that the cnic's device state is up before
    handling the irq.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1d9cfc4e354cd619d92bb938657dec3c533e6929
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Feb 24 14:42:09 2010 +0000

    cnic: Update version to 2.1.1.
    
    And update copyright to 2010.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a4dde3abbf87a495154a876576e1ab34b17b5ef1
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Feb 24 14:42:08 2010 +0000

    cnic: Use union for the status blocks of different devices.
    
    We only need to assign the status block address once and it also saves
    space in the structure.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c76284af9ec8a010c502a70249cb74b3bb69ec6f
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Feb 24 14:42:07 2010 +0000

    cnic: Simplify route checking during iSCSI connection.
    
    With a separate IP address for iSCSI, connections should proceed
    whether or not we can get a route to the target from the network stack.
    It is possible that the network IP address may not reach the iSCSI target.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit d02a5e6c2fba8b114c44cf05085fca07180f37f1
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Feb 24 14:42:06 2010 +0000

    cnic: Fix panic in cnic_iscsi_nl_msg_recv() when device is down.
    
    Some data structures are freed when the device is down and it will
    crash if an ISCSI netlink message is received.  Add RCU protection
    to prevent this.  In the shutdown path, ulp_ops[CNIC_ULP_L4] is
    assigned NULL and rcu_synchronized before freeing the data
    structures.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 66883e90eaa0dd55d395c0f9a0c6da5d50809804
Author: Eddie Wai <waie@broadcom.com>
Date:   Wed Feb 24 14:42:05 2010 +0000

    cnic: Finetune iSCSI connection reset.
    
    For bnx2 devices, always send notification to bnx2i to let it initiate
    the cleanup when RST is received.
    
    For bnx2x devices, add unsolicited RST_COMP handling to start the cleanup.
    
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    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 a9736c086cc6221659e498f0855152c32dbc1396
Author: Eddie Wai <waie@broadcom.com>
Date:   Wed Feb 24 14:42:04 2010 +0000

    cnic: Finetune iSCSI connection set up.
    
    Initialize IP ID and handle some additional connection errors.
    
    Signed-off-by: Eddie Wai <waie@broadcom.com>
    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 ddf79b20eefd27797ce461411679a48e998701ca
Author: Joe Perches <joe@perches.com>
Date:   Wed Feb 17 15:01:54 2010 +0000

    drivers/net/cnic.c: Use (pr|netdev)_<level> macro helpers
    
    Add #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    Remove #define PFX
    Use pr_<level>
    Use netdev_<level>
    Remove periods from formats
    Coalesce long formats
    Use __func__
    
    Signed-off-by: Joe Perches <joe@perches.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 4e9c4fd3e7e022c7a5b8bb7cd06bf914b202cfea
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 10 15:40:58 2009 +0000

    cnic: Zero out status block and Event Queue indices.
    
    To prevent stale indices from causing spurious events when restarting the
    bnx2x devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 1bcdc32cf4d94442eba79599ce8438ea0b8f78b5
Author: Michael Chan <mchan@broadcom.com>
Date:   Thu Dec 10 15:40:57 2009 +0000

    cnic: Send delete command when shutting down iSCSI ring.
    
    This step is necessary on the bnx2x devices when restarting the iSCSI
    ring.  Without it, the firmware can assert and cause bnx2x to report
    errors.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 3248e1682035eef6774c280cd7be19984feb78bb
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Dec 2 15:15:39 2009 +0000

    cnic: Use dma_alloc_coherent().
    
    Replace pci_alloc_consistent() with dma_alloc_coherent() so that
    appropriate GFP flags can be used.
    
    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 15971c3ce3caf9a92b603a61b07e0be8c9b9d276
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Dec 2 15:15:38 2009 +0000

    cnic: Fix rq_page_table DMA address.
    
    The old code mistakenly zeroed out the upper 32-bit of the DMA address.
    
    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 dd2e4dbce32a2802088f6d0132046afec9bfb2ad
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Dec 2 15:15:37 2009 +0000

    cnic: Fix bogus iSCSI MAC address
    
    Fix code to read the proper iSCSI MAC address for bnx2x devices.
    
    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 8b065b671d3096bfe0dbc9a833cb592f84642436
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Dec 2 15:15:36 2009 +0000

    cnic: Fix bnx2x ring shutdown.
    
    Need to send a HALT command to the firmware to fully shutdown the bnx2x
    rings.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit c7596b79feb3d15bea64007254f77233bda811f4
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Dec 2 15:15:35 2009 +0000

    cnic: Fix ring I/O address for bnx2x devices.
    
    Old code was initializing the ring producers using an incorrect I/O
    address.
    
    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 164165dad7e607ec359e64b6fae72abbf3640ea6
Author: Joe Perches <joe@perches.com>
Date:   Thu Nov 19 09:30:10 2009 +0000

    drivers/net: tasklet_init - Remove unnecessary leading & from second arg
    
    Changed function pointer use from non-majority address-of style
    to majority short form without & via: (was: 8 with &, 36 without)
    
    grep -rPl "\btasklet_init\s*\([^,\)]+,\s*\&" drivers/net | while read file ; do \
    	perl -i -e 'local $/; while (<>) { s@(\btasklet_init\s*\([^,\)]+,\s*)\&@\1@g ; print ; }' $file ;\
    done
    
    Compile tested allyesconfig x86
    
    Signed-off-by: Joe Perches <joe@perches.com>
    
     drivers/net/cnic.c |    4 ++--
     drivers/net/jme.c  |   10 +++++-----
     drivers/net/skge.c |    2 +-
     3 files changed, 8 insertions(+), 8 deletions(-)
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0d37f36ff9bc41067c71635d14b6a5834853a779
Author: roel kluin <roel.kluin@gmail.com>
Date:   Mon Nov 2 06:53:44 2009 +0000

    cnic: ensure ulp_type is not negative
    
    `ulp_type' is signed, make sure it is not negative
    when we read the array element.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 0519d83d83ed485b5a1f9222ff69d7d6c9bb8a01
Merge: 38bfd8f b5dd884
Author: David S. Miller <davem@davemloft.net>
Date:   Thu Oct 29 21:28:59 2009 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

commit d0549382da9997834ce65e489d9dbdc4b4693a2b
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Oct 28 03:41:59 2009 -0700

    cnic: Fix L2CTX_STATUSB_NUM offset in context memory.
    
    The BNX2_L2CTX_STATUSB_NUM definition needs to be changed to match
    the recent firmware update:
    
    commit 078b0735881c7969aaf21469f3577831cddd9f8c
    bnx2: Update firmware to 5.0.0.j3.
    
    Without the fix, bnx2 can crash intermittently in bnx2_rx_int() when
    iSCSI is enabled.
    
    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 c05e85a06e376f6b6d59e71e5333d707e956d78b
Author: David S. Miller <davem@davemloft.net>
Date:   Mon Oct 12 23:18:35 2009 -0700

    cnic: Need to include net/ip6_checksum.h
    
    drivers/net/cnic.c: In function 'cnic_init_storm_conn_bufs':
    drivers/net/cnic.c:1757: error: implicit declaration of function 'csum_ipv6_magic'
    
    Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 71034ba845c9ff219373066f904286c0b7506922
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Oct 10 13:46:59 2009 +0000

    cnic: Add main functions to support bnx2x devices.
    
    Add iSCSI support for bnx2x devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: Shmulik Ravid - Rabinovitz <shmulikr@broadcom.com>
    Acked-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e251306556d30c9c678feca60204acaaa0784cbd
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Oct 10 13:46:58 2009 +0000

    cnic: Add bnx2x data structures.
    
    Add hardware and software structures for bnx2x devices.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: Eilon Greenstein <eilong@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 86b53606ebec06b16be81c30fabdf8decc2be6b2
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Oct 10 13:46:57 2009 +0000

    cnic: Refactor some code.
    
    Refactor ring init. code for subsequent 10G patches.  Also add rtnl_lock()
    in cnic_uio_open() to prevent race condition with netdev events.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6053bbf7bbdbb2c94547f830ad07636c17d7024e
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Oct 2 11:03:28 2009 -0700

    cnic: Fix NETDEV_UP event processing.
    
    This fixes the problem of not handling the NETDEV_UP event properly
    during hot-plug or modprobe of bnx2 after cnic.  The handling was
    skipped by mistakenly using "else if" to check for the event.
    
    Also update version to 2.0.1.
    
    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 6ef57a0ea77e7bf4123a06da895a0e26312b5737
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Sep 21 15:39:37 2009 +0000

    cnic: Shutdown iSCSI ring during uio_close.
    
    The iSCSI ring should be shutdown during uio_close instead of uio_open
    for proper operations.  This fixes the problem of the ring getting
    stuck intermittently.
    
    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 6cdee2f96a97f6da26bd3759c3f8823332fbb438
Merge: 0625491 2fbd3da
Author: David S. Miller <davem@davemloft.net>
Date:   Wed Sep 2 00:32:56 2009 -0700

    Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
    
    Conflicts:
    	drivers/net/yellowfin.c

commit 5e9b2dbfcbc9b180a0064d8a473a4652ee99c9ad
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Aug 26 09:49:23 2009 +0000

    cnic: Put uio init in separate function.
    
    This will allow the 10G iSCSI code to reuse the function.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit ec0248ea35f6e1fc7426f377a7df071d997bdedd
Author: Michael Chan <mchan@broadcom.com>
Date:   Wed Aug 26 09:49:22 2009 +0000

    cnic: Put rx/tx ring allocation in separate function.
    
    This will allow the 10G iSCSI code to reuse the function.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 7fc1ece40704b150477e548a7a98d285cc418790
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 14 15:49:47 2009 +0000

    cnic: Fix locking in init/exit calls.
    
    The slow path ulp_init and ulp_exit calls to the bnx2i driver
    are sleepable calls and therefore should not be protected using
    rcu_read_lock.  Fix it by using mutex and refcount during these
    calls.  cnic_unregister_driver() will now wait for the refcount
    to go to zero before completing the call.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 681dbd710779e8b8d5bae926f6b11f30df70638b
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 14 15:49:46 2009 +0000

    cnic: Fix locking in start/stop calls.
    
    The slow path ulp_start and ulp_stop calls to the bnx2i driver
    are sleepable calls and therefore should not be protected using
    rcu_read_lock.  Fix it by using mutex and setting a bit during
    these calls.  cnic_unregister_device() will now wait for the bit
    to clear before completing the call.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit a3059b12adae868c42629ecf058a94195ef1e958
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 14 15:49:44 2009 +0000

    cnic: Refine registration with bnx2.
    
    Register and unregister with bnx2 during NETDEV_UP and NETDEV_DOWN
    events.  This simplifies the sequence of events and allows locking
    fixes in the next patch.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Reviewed-by: Benjamin Li <benli@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 64c6460875957502541a4ba30835ac625a0bee79
Author: Michael Chan <mchan@broadcom.com>
Date:   Fri Aug 14 15:49:43 2009 +0000

    cnic: Fix symbol_put_addr() panic on ia64.
    
    When the cnic driver tries to grab a symbol from bnx2 when bnx2 is
    running init code, symbol_get() will succeed but symbol_put_addr()
    will hit BUG() a moment later.  module_text_address() fails because
    bnx2 is still in init code.
    
    This is fixed by using symbol_put() instead which does the exact
    opposite of symbol_get().
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit 6d7760a88c25057c2c2243e5dfe2d731064bd31d
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jul 27 11:25:58 2009 -0700

    cnic: Fix ISCSI_KEVENT_IF_DOWN message handling.
    
    When a net device goes down or when the bnx2i driver is unloaded,
    the code was not generating the ISCSI_KEVENT_IF_DOWN message
    properly and this could cause the userspace driver to crash.
    
    This is fixed by sending the message properly in the shutdown path.
    cnic_uio_stop() is also added to send the message when bnx2i is
    unregistering.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

commit e2ee3616bc334ab51e68aad6905761ca97f35559
Author: Michael Chan <mchan@broadcom.com>
Date:   Sat Jun 13 17:43:02 2009 -0700

    cnic: Fix __symbol_get() build error.
    
    Ingo molnar <mingo@elte.hu> reported the error
    
    drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’
    
    when CONFIG_MODULES is not defined.  Fix by using symbol_get() instead.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

commit 7cbdca23c8a4e6d007b62c9136ba0e5f86e069d0
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date:   Sat Jun 13 15:51:08 2009 -0500

    Revert "[SCSI] cnic: fix error: implicit declaration of function ‘__symbol_get’"
    
    This reverts commit bc3bf8fd330ce981ce632a1a4a283eee46838f32.
    
    All the commit did was add a second #include of <linux/module.h> which is
    the wrong fix.
    
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

commit bc3bf8fd330ce981ce632a1a4a283eee46838f32
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sat Jun 13 08:29:33 2009 +0200

    [SCSI] cnic: fix error: implicit declaration of function ‘__symbol_get’
    
     drivers/net/cnic.c: In function ‘init_bnx2_cnic’:
     drivers/net/cnic.c:2520: error: implicit declaration of function ‘__symbol_get’
     drivers/net/cnic.c:2520: warning: assignment makes pointer from integer without a cast
     make[1]: *** [drivers/net/cnic.o] Error 1
     make: *** [drivers/net/cnic.o] Error 2
    
    Caused by not including linux/module.h
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

commit faea56c9bb44f539da1ae0194184873fc2720b20
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Fri Jun 12 11:43:48 2009 -0700

    [SCSI] cnic: fix undefined reference to `ip6_route_output'
    
    Fix cnic build for case of CONFIG_INET=n.
    Fix cnic build for case of CONFIG_IPV6=m and CONFIG_CNIC=y.
    
    Fixes these build errors:
    
    cnic.c:(.text+0x236a1d): undefined reference to `ip_route_output_key'
    cnic.c:(.text+0x15a8e8): undefined reference to `ip6_route_output'
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>

commit a463696039f7097ce87c21db3cf5c16cdcb3850d
Author: Michael Chan <mchan@broadcom.com>
Date:   Mon Jun 8 18:14:43 2009 -0700

    [SCSI] cnic: Add new Broadcom CNIC driver.
    
    The CNIC driver controls BNX2 hardware rings and resources used by
    iSCSI.  Most hardware resources for iSCSI are separate from those
    used for ethernet networking.
    
    iSCSI uses a separate MAC address and IP address.  The CNIC driver
    creates a UIO interface to handle the non-offloaded packets such as
    ARP, etc in userspace.
    
    Signed-off-by: Michael Chan <mchan@broadcom.com>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
