]> www.infradead.org Git - users/jedix/linux-maple.git/log
users/jedix/linux-maple.git
13 years agobnx2x: update driver version to 1.70.35-0
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:32 +0000 (04:34 +0000)]
bnx2x: update driver version to 1.70.35-0

(cherry picked from commit 5d70b88cd41ef0f2ac0caaab4fd492dd686feee6)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Remove on-stack napi struct variable
Ariel Elior [Sun, 13 Nov 2011 04:34:31 +0000 (04:34 +0000)]
bnx2x: Remove on-stack napi struct variable

(cherry picked from commit 72754080d14feef1ca0b3ae383ddfdc5d9a71b1a)
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: prevent race in statistics flow
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:30 +0000 (04:34 +0000)]
bnx2x: prevent race in statistics flow

The race may cause access of registers while MAC hw block is
in reset state. As a result syslog will show error messages.
We can prevent this by using state from local variable.

(cherry picked from commit 4a025f49d3f2f2f39b474af360c81a5587b41657)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: add fan failure event handling
Ariel Elior [Sun, 13 Nov 2011 04:34:29 +0000 (04:34 +0000)]
bnx2x: add fan failure event handling

Shut down the device in case of fan failure to prevent HW damage.

(cherry picked from commit 8304859adc213df9f69a86e06164683f76cd5d49)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: remove unused #define
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:28 +0000 (04:34 +0000)]
bnx2x: remove unused #define

(cherry picked from commit 46fa1309fe5b05249447df903ec256c3509eb985)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: simplify definition of RX_SGE_MASK_LEN and use it.
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:27 +0000 (04:34 +0000)]
bnx2x: simplify definition of RX_SGE_MASK_LEN and use it.

(cherry picked from commit b363782761eea7076619fe44063b915dae0b4cc7)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: propagate DCBX negotiation
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:25 +0000 (04:34 +0000)]
bnx2x: propagate DCBX negotiation

We need propagate the DCBX results from PMF to other functions
on the same port, in order to properly update netdev structure
and allow following new ETS and PFC configurations.

(cherry picked from commit 00253a8cf3119af6cb07c9de2c08a50d39fc7201)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix MF for 4-port devices
Dmitry Kravkov [Tue, 30 Aug 2011 00:08:42 +0000 (00:08 +0000)]
bnx2x: fix MF for 4-port devices

Number of VNs for 4-port devices is 2 instead of 4

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 3395a033a7c2f1a089fae7e89bf108764b59529c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: DCBX: use #define instead of magic
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:26 +0000 (04:34 +0000)]
bnx2x: DCBX: use #define instead of magic

(cherry picked from commit f9c058b633000e64fba05fc14ba94dd09a20e674)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: separate FCoE and iSCSI license initialization.
Joe Jin [Wed, 16 May 2012 12:09:39 +0000 (20:09 +0800)]
bnx2x: separate FCoE and iSCSI license initialization.

FCoE license info must be initialized at probe(), but
iSCSI at open().

(cherry picked from commit b306f5edf6615d3abeba16914872c24c9be29051)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: remove unused variable
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:23 +0000 (04:34 +0000)]
bnx2x: remove unused variable

(cherry picked from commit ad756594a8d88ffc048d14b8d5c02971e08856ce)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: use rx_queue index for skb_record_rx_queue()
Dmitry Kravkov [Sun, 13 Nov 2011 04:34:22 +0000 (04:34 +0000)]
bnx2x: use rx_queue index for skb_record_rx_queue()

(cherry picked from commit f233cafe1a9df8de75f446bc6f5dc715cc564325)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: allow FCoE and DCB for 578xx
Joe Jin [Wed, 16 May 2012 10:40:45 +0000 (18:40 +0800)]
bnx2x: allow FCoE and DCB for 578xx

(backported from commit 62ac0dc9ec0b90b83103ebb659e0696c344e4be4)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: update driver version to 1.70.30-0
Dmitry Kravkov [Thu, 27 Oct 2011 05:13:54 +0000 (05:13 +0000)]
bnx2x: update driver version to 1.70.30-0

(cherry picked from commit 6afc25c9a7197db24e1cbfa40140ee360d65141f)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: use FW 7.0.29.0
Dmitry Kravkov [Thu, 27 Oct 2011 05:13:53 +0000 (05:13 +0000)]
bnx2x: use FW 7.0.29.0

The FW includes the following fixes:
  1. (iSCSI) Arrival of un-solicited ASYNC message causes
     firmware to abort the connection with RST.
  2. (FCoE) There is a probability that truncated FCoE packet on
     RX path won't get detected which might lead to FW assert.
  3. (iSCSI) Arrival of target-initiated NOP-IN during intense
     ISCSI traffic might lead to FW assert.
  4. (iSCSI) Chip hangs when in case of retransmission not aligned
     to 4-bytes from the beginning of iSCSI PDU.
  5. (FCoE) Arrival of packets beyond task IO size can lead to crash.

(cherry picked from commit 5e5399d8741ca3667560c43365285f8c280b3181)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: add bnx2x FW 7.0.29
Joe Jin [Wed, 16 May 2012 10:29:07 +0000 (18:29 +0800)]
bnx2x: add bnx2x FW 7.0.29

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Enable changing speed when port type is PORT_DA
Yaniv Rosner [Thu, 27 Oct 2011 05:13:52 +0000 (05:13 +0000)]
bnx2x: Enable changing speed when port type is PORT_DA

(cherry picked from commit bfdb58232f9227149cac89c17454edaf25f43136)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix 54618se LED behavior
Yaniv Rosner [Thu, 27 Oct 2011 05:09:48 +0000 (05:09 +0000)]
bnx2x: Fix 54618se LED behavior

(cherry picked from commit 001cea77b98f912050b8ea8995253fdbe7333fb6)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix RX/TX problem caused by the MAC layer
Yaniv Rosner [Thu, 27 Oct 2011 05:09:47 +0000 (05:09 +0000)]
bnx2x: Fix RX/TX problem caused by the MAC layer

This patch fixes a problem in which the host stops receiving data after
restarting the interface. This issue is caused by combination of incorrect
data path tap closure, along with missing MAC reset.

(cherry picked from commit ce7c048928473220394bb126b08596e92e998a36)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Add link retry to 578xx-KR
Yaniv Rosner [Thu, 27 Oct 2011 05:09:46 +0000 (05:09 +0000)]
bnx2x: Add link retry to 578xx-KR

This fix solves a problem of no link on 578xx-KR by retrying to link up to
four timer using the periodic function.

(cherry picked from commit a9077bfd0b3fdcd1051cc3d09bf8c28f9d4d506a)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix LED blink rate for 578xx
Yaniv Rosner [Thu, 27 Oct 2011 05:09:45 +0000 (05:09 +0000)]
bnx2x: Fix LED blink rate for 578xx

Adjust blink rate on 578xx to fit its clock rate.

(cherry picked from commit 26ffaf36c8e0a0eefb6ff031d6166b5ee82eb3de)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix skb truesize underestimation
Eric Dumazet [Wed, 19 Oct 2011 23:00:23 +0000 (23:00 +0000)]
bnx2x: fix skb truesize underestimation

bnx2x allocates a full page per fragment.

We must account in skb->truesize, the size of the fragment, not the used
part of it.

(cherry picked from commit e1ac50f64691de9a095ac5d73cb8ac73d3d17dba)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: remove some dead code
Dan Carpenter [Wed, 5 Oct 2011 21:52:28 +0000 (17:52 -0400)]
bnx2x: remove some dead code

This code is after the break statement so it never gets used.  The
"vlan_mac_obj" variable does get initialized properly, so we can just
delete this.

(cherry picked from commit f0cd7bdc042310b6b104f133bbfd520a72b3c08a)
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix build error
Dmitry Kravkov [Mon, 29 Aug 2011 11:35:44 +0000 (11:35 +0000)]
bnx2x: Fix build error

On Mon, 2011-08-29 at 13:28 -0700, Randy Dunlap wrote:
> (on i386 or x86_64)
>
> drivers/net/bnx2x/bnx2x_main.c:10148: error: 'bnx2x_fcoe_get_wwn' undeclared here (not in a function)

This should sync #define structures between definition and declaration
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
Reported-by: Randy Dunlap <rdunlap@xenotime.net>
(cherry picked from commit 3857e3ee2209b7289c434103e366f765ec82a22d)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Add new PHY BCM54616
Yaniv Rosner [Tue, 23 Aug 2011 06:33:24 +0000 (06:33 +0000)]
bnx2x: Add new PHY BCM54616

The BCM54616 PHY is very similar to the 54618SE, only without EEE support, which will not be activated due to querying the actual PHY type.
This check is already done by reading a dedicated PHY register.

(cherry picked from commit 3756a89f3d039d8a6aa2556f8d57d4b2ec25d5dd)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: resurrect RX hashing
Joe Jin [Wed, 16 May 2012 10:10:13 +0000 (18:10 +0800)]
bnx2x: resurrect RX hashing

bnx2x used to be able to set rxhash, but this was lost in the conversion
to hw_features (commit 66371c441).
Restore it and enable it by default.

(backported from commit 6e68c912eee8f5ebc975cfb81d66d4a214b07d46)
Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
CC: Vladislav Zolotarov <vladz@broadcom.com>
CC: Eilon Greenstein <eilong@broadcom.com>
CC: Dmitry Kravkov <dmitry@broadcom.com>
CC: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: convert to SKB paged frag API.
Ian Campbell [Wed, 24 Aug 2011 22:28:13 +0000 (22:28 +0000)]
bnx2x: convert to SKB paged frag API.

(cherry picked from commit f55c95724789fccb412abef13c3f503e55148790)
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Eilon Greenstein <eilong@broadcom.com>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agonet: add APIs for manipulating skb page fragments.
Ian Campbell [Fri, 19 Aug 2011 06:25:00 +0000 (06:25 +0000)]
net: add APIs for manipulating skb page fragments.

The primary aim is to add skb_frag_(ref|unref) in order to remove the use of
bare get/put_page on SKB pages fragments and to isolate users from subsequent
changes to the skb_frag_t data structure.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "Michał Mirosław" <mirq-linux@rere.qmqm.pl>
Cc: netdev@vger.kernel.org
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 131ea6675c761f655d43b808dd0fe83d15d5cdd3)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Use pr_fmt and message logging cleanups
Joe Jin [Wed, 16 May 2012 08:01:07 +0000 (16:01 +0800)]
bnx2x: Use pr_fmt and message logging cleanups

Add pr_fmt(fmt) KBUILD_MODNAME ": " to prefix messages with "bnx2x: ".
Remove #define DP_LEVEL and use pr_notice.
Repeating KERN_<LEVEL> isn't necessary in multi-line printks.
printk macro neatening, use fmt and ##__VA_ARGS__.
Coalesce long formats.

(backported from commit f1deab502206ab7e4470334b7738383c76e4ddd9)
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Coalesce pr_cont uses and fix DP typos
Joe Perches [Sun, 14 Aug 2011 12:16:20 +0000 (12:16 +0000)]
bnx2x: Coalesce pr_cont uses and fix DP typos

Uses of pr_cont should be avoided where reasonably possible
because they can be interleaved by other threads and processes.

Coalesce pr_cont uses.

Fix typos, duplicated words and spacing in DP uses caused
by split multi-line formats.  Coalesce some of these
split formats.  Add missing terminating newlines to DP uses.

(cherry picked from commit 94f05b0f60de32e6efa19310bd142f1519e2abdb)
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Remove local defines for %pM and mac address
Joe Perches [Sun, 14 Aug 2011 12:16:19 +0000 (12:16 +0000)]
bnx2x: Remove local defines for %pM and mac address

Use %pM and mac address directly instead.

(cherry picked from commit 0f9dad10a040fa72c588db46a94c9e96545cc509)
Signed-off-by: Joe Perches <joe@perches.com>
Acked-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Clear MDIO access warning during first driver load
Yaniv Rosner [Tue, 2 Aug 2011 23:00:12 +0000 (23:00 +0000)]
bnx2x: Clear MDIO access warning during first driver load

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 28f4881cbf9ce285edfc245a8990af36d21c062f)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix BCM578xx MAC test
Yaniv Rosner [Tue, 2 Aug 2011 23:00:06 +0000 (23:00 +0000)]
bnx2x: Fix BCM578xx MAC test

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit afad009ad76ece72a3c9629bbc08f14459b9bba7)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix BCM54618se invalid link indication
Yaniv Rosner [Tue, 2 Aug 2011 23:00:00 +0000 (23:00 +0000)]
bnx2x: Fix BCM54618se invalid link indication

After resetting BCM54618se, link partner would still see link since the PHY wasn't put into low-power state.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit d2059a061164120a1e44a0ca46fe08044d6d7c2d)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix BCM84833 link
Yaniv Rosner [Tue, 2 Aug 2011 22:59:53 +0000 (22:59 +0000)]
bnx2x: Fix BCM84833 link

BCM84833 fail to link due to incorrect auto-negotiation setting.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit fd38f73eb936f9d9f28e4f7ff598cc0780e09424)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix link issue with DAC over 578xx
Yaniv Rosner [Tue, 2 Aug 2011 22:59:47 +0000 (22:59 +0000)]
bnx2x: Fix link issue with DAC over 578xx

Fix no-link issue on BCM578xx when direct attached cable is connected since Warpcore microcode restart was missing to re-read the new mode.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 19af03a3c8cb1e07e31c070dfde9fac2e5e7796c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix LED behavior
Yaniv Rosner [Tue, 2 Aug 2011 22:59:40 +0000 (22:59 +0000)]
bnx2x: Fix LED behavior

This fix resolve two problems seen regarding LED:
1. LED doesn't flash during port identification.
2. Traffic LED sometimes do not blink.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 793bd450370bf85cd63cccaff5e2f1a62908a52f)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix BCM578xx-B0 MDIO access
Yaniv Rosner [Tue, 2 Aug 2011 22:59:32 +0000 (22:59 +0000)]
bnx2x: Fix BCM578xx-B0 MDIO access

Fix MDIO access to Warpcore on new chip version of 578xx.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 157fa283a7cb5bc6a55dd4e0daf6eeef66adf354)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix remote fault handling
Yaniv Rosner [Tue, 2 Aug 2011 22:59:25 +0000 (22:59 +0000)]
bnx2x: Fix remote fault handling

Fix couple of issues of remote fault detection and handling:
Link may go down due to remote fault indications during link establishment.
Possible link down after primary function migration.
Remote fault was not detected on 578xx.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit de6f3377d2da3b384ca3d716ffb8687ad175788a)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix chip hanging due to TX pipe stall.
Yaniv Rosner [Tue, 2 Aug 2011 22:59:18 +0000 (22:59 +0000)]
bnx2x: Fix chip hanging due to TX pipe stall.

Fix a problem in which the 578xx chip hangs after running traffic, and then pulling the network cable.
This occurs since TX pipe is stalled due to missing XON indication towards the NIG.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit b507766205f85d6d69892287e346a7c264a216b4)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix missing pause on for 578xx
Yaniv Rosner [Tue, 2 Aug 2011 22:59:10 +0000 (22:59 +0000)]
bnx2x: Fix missing pause on for 578xx

When link speed is 1G and below, pause weren't sent due to missing pause setting in the UMAC.

Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 9d5b36be64b42058e7fd12b71266bbf2bb7600fc)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Prevent restarting Tx during bnx2x_nic_unload
Vladislav Zolotarov [Tue, 2 Aug 2011 08:35:43 +0000 (01:35 -0700)]
bnx2x: Prevent restarting Tx during bnx2x_nic_unload

Tx queues were stopped before  bp->state was changed to a value different
from BNX2X_STATE_OPEN, which allowed the bnx2x_tx_int() called from the
NAPI context to re-enable it. This then allowed the netdev->ndo_start_xmit()
to be called in the middle of the function reset and rings freeing.

This patch changes bp->state to a value different
from BNX2X_STATE_OPEN BEFORE disabling the Tx queues in order to restore the
broken protection against the above race in the bnx2x_tx_int().

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 87b7ba3d24a25cf18aece447de27d7804fa9668c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: use pci_pcie_cap()
Vladislav Zolotarov [Sun, 24 Jul 2011 03:58:38 +0000 (03:58 +0000)]
bnx2x: use pci_pcie_cap()

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit b6c2f86e6305be612f1196459f22343523f7049f)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix bnx2x_stop_on_error flow in bnx2x_sp_rtnl_task
Vladislav Zolotarov [Sun, 24 Jul 2011 03:57:46 +0000 (03:57 +0000)]
bnx2x: fix bnx2x_stop_on_error flow in bnx2x_sp_rtnl_task

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit b1fb8740a279a96d8b6ceedfce334b887908b91d)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: enable internal target-read for 57712 and up only
Shmulik Ravid [Sun, 24 Jul 2011 03:57:04 +0000 (03:57 +0000)]
bnx2x: enable internal target-read for 57712 and up only

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 2189400b3c29a03360cbe2e3af3299eb5e2b950c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: count statistic ramrods on EQ to prevent MC assert
Vladislav Zolotarov [Sun, 24 Jul 2011 03:54:17 +0000 (03:54 +0000)]
bnx2x: count statistic ramrods on EQ to prevent MC assert

This patch includes:
 - Counting statistics ramrods as EQ ramrods the way they should be. This
   accounting is meant to prevent MC asserts in case of software bugs.
 - Fixes in debug facilities which were added while working on one of such
   bugs.

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit d6cae2385f00522b3da8a5f964bf8dfa32a0d138)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix loopback for non 10G link
Yaniv Rosner [Sun, 24 Jul 2011 03:53:21 +0000 (03:53 +0000)]
bnx2x: fix loopback for non 10G link

Also fixes minor formatting in that function.

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 1cb0c788e03da59f14699530aa031a07a89f0056)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: dcb - send all unmapped priorities to same COS as L2
Dmitry Kravkov [Sun, 24 Jul 2011 04:09:43 +0000 (04:09 +0000)]
bnx2x: dcb - send all unmapped priorities to same COS as L2

As a result of DCBX negotiation some priorities maybe untouched and still
unmapped to any COS; instead of sending them to COS0 we assign them
to the same COS as L2 traffic - to avoid collisions with storage class of
service.

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 09b775e7ec08ae92b8d976b7e34ba7f83b904c97)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Broken self-test in SF mode on 578xx
Vladislav Zolotarov [Thu, 21 Jul 2011 07:58:54 +0000 (07:58 +0000)]
bnx2x: Broken self-test in SF mode on 578xx

This patch fixes both the failure in the self-test on 578xx
and a hole in a parity recovery flow that this failure
has discovered:
 - internal 'pending' state in a VLAN_MAC object wasn't been cleared
when the object state change was called with DRV_ONLY flag, which in
particular happens when a parity error happens during the self-test.
 - bp->sp_state wasn't cleared in the similar circumstances as described
above.

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 7961689586d30a34c10b18ac95ba1cd72cefe725)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Parity errors recovery for 578xx
Vladislav Zolotarov [Thu, 21 Jul 2011 07:58:36 +0000 (07:58 +0000)]
bnx2x: Parity errors recovery for 578xx

Fix the parity errors recovery flow for 578xx:
    - Add a separate column for the 578xx in the parity mask
      registers DB.
    - Fix the bnx2x_process_kill_chip_reset() to handle the blocks
      newly introduced in the 578xx.

Cover ATC and PGLUE_B blocks for 57712 and 578xx.

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 8736c82650500222c031dd7f59f0126e59808e36)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Read FIP mac from SHMEM in single function mode
Vladislav Zolotarov [Thu, 21 Jul 2011 07:57:52 +0000 (07:57 +0000)]
bnx2x: Read FIP mac from SHMEM in single function mode

Read FIP MAC address from SHMEM's "port" section
similar to what we do in a MF mode when we read it from
a "func" section of SHMEM.

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c03bd39c564f4b5d7683514e9249986e1404940d)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fixed ethtool -d for 578xx
Vladislav Zolotarov [Thu, 21 Jul 2011 07:57:23 +0000 (07:57 +0000)]
bnx2x: Fixed ethtool -d for 578xx

Registers dump code erroneously treated 578xx as 57712.
This patch fixes the above and also removes unused data
structures.

Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 0fea29c129bdae7aca217551acb1108e00cc5ff1)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: disable FCoE for 578xx devices since not yet supported
Dmitry Kravkov [Tue, 19 Jul 2011 01:46:11 +0000 (01:46 +0000)]
bnx2x: disable FCoE for 578xx devices since not yet supported

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 928ad22a3b033a994081dbf49f3c046195dd2349)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix memory barriers
Vladislav Zolotarov [Tue, 19 Jul 2011 01:45:02 +0000 (01:45 +0000)]
bnx2x: fix memory barriers

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 53e51e2f480aaa000b0a7d2704ce2b4b646a73c7)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: use BNX2X_Q_FLG_TPA_IPV6 for TPA queue configuration
Vladislav Zolotarov [Tue, 19 Jul 2011 01:44:11 +0000 (01:44 +0000)]
bnx2x: use BNX2X_Q_FLG_TPA_IPV6 for TPA queue configuration

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f5219d8eb8b32eb32522063d2163f95e1cf7bb5c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: disable loacal BH when scheduling FCOE napi
Vladislav Zolotarov [Tue, 19 Jul 2011 01:43:25 +0000 (01:43 +0000)]
bnx2x: disable loacal BH when scheduling FCOE napi

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 019dbb4c0106f11b5c6543bffaedf10067e28398)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: fix MB index for 4-port devices
Dmitry Kravkov [Tue, 19 Jul 2011 01:42:40 +0000 (01:42 +0000)]
bnx2x: fix MB index for 4-port devices

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit d1c228d9b9b915a14cf362ebd817c10166be01e6)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: DCB rework
Dmitry Kravkov [Tue, 19 Jul 2011 01:42:04 +0000 (01:42 +0000)]
bnx2x: DCB rework

create DCB related states in function state-machine
allow handling of DCB errors from FW
allow disablement of DCB in FW, when peer disappears or error
clean up unused functions/variables as pointed by
David Binderman <dcb314@hotmail.com>

Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 6debea870a66be4aac2e28be0e3952dad6c7fcdb)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: remove unnecessary dma_sync
Vladislav Zolotarov [Tue, 19 Jul 2011 01:40:27 +0000 (01:40 +0000)]
bnx2x: remove unnecessary dma_sync

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f13ac41f5165c0ac0441f9d42f7d6f6f9ee7c075)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: stop tx before CNIC_STOP
Vladislav Zolotarov [Tue, 19 Jul 2011 01:39:41 +0000 (01:39 +0000)]
bnx2x: stop tx before CNIC_STOP

It may take some time to cnic to respond, this prevents tx_timeout
when it happens.

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 9505ee376739c26cf1d7d4e551d2f63b9d7e5729)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: add missing command in error handling flow
Dmitry Kravkov [Tue, 19 Jul 2011 01:38:53 +0000 (01:38 +0000)]
bnx2x: add missing command in error handling flow

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c636322b24eb69b7c1ccdc070164de51cee3f37c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: use correct dma_sync function
Vladislav Zolotarov [Tue, 19 Jul 2011 01:37:42 +0000 (01:37 +0000)]
bnx2x: use correct dma_sync function

Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 9924cafc403ca74614c0a8b1ad198406ae02c68b)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix compilation when CNIC is not selected in config
Dmitry Kravkov [Sat, 16 Jul 2011 20:35:51 +0000 (13:35 -0700)]
bnx2x: Fix compilation when CNIC is not selected in config

Reported-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit faa2831445cdc95774584045fe10f749fa62244e)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Multiple concurrent l2 traffic classes
Ariel Elior [Thu, 14 Jul 2011 08:31:57 +0000 (08:31 +0000)]
bnx2x: Multiple concurrent l2 traffic classes

Overview:
 Support mapping of priorities to traffic classes and
 traffic classes to transmission queues ranges in the net device.
 The queue ranges are (count, offset) pairs relating to the txq
 array.
 This can be done via DCBX negotiation or by kernel.
 As a result Enhanced Transmission Selection (ETS) and Priority Flow
 Control (PFC) are supported between L2 network traffic classes.

 Mapping:
 This patch uses the netdev_set_num_tc, netdev_set_prio_tc_map and
 netdev_set_tc_queue functions to map priorities to traffic classes
 and traffic classes to transmission queue ranges.
 This mapping is performed by bnx2x_setup_tc function which is
 connected to the ndo_setup_tc.
 This function is always called at nic load where by default it
 maps all priorities to tc 0, and it may also be called by the
 kernel or by the bnx2x upon DCBX negotiation to modify the mapping.

 rtnl lock:
 When the ndo_setup_tc is called at nic load or by kernel the rtnl
 lock is already taken. However, when DCBX negotiation takes place
 the lock is not taken. The work is therefore scheduled to be
 handled by the sp_rtnl task.

 Fastpath:
 The fastpath structure of the bnx2x which was previously used
 to hold the information of one tx queue and one rx queue was
 redesigned to represent multiple tx queues, one for each traffic
 class.
 The transmission queue supplied in the skb by the kernel can no
 longer be interpreted as a straightforward index into the fastpath
 structure array, but it must rather be decoded to the appropriate
 fastpath index and the tc within that fastpath.

 Slowpath:
 The bnx2x's queue object was redesigned to accommodate multiple
 transmission queues. The queue object's state machine was enhanced
 to allow opening multiple transmission-only connections on top of
 the regular tx-rx connection.

 Firmware:
 This feature relies on the tx-only queue feature introduced in the
 bnx2x 7.0.23 firmware and the FW likewise must have the bnx2x multi
 cos support.

Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 6383c0b35b48bfbd0fc8c6fe126a6603c5a9a4b3)

Conflicts:

drivers/net/bnx2x/bnx2x_main.c

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Renaming the "reset_task" to "sp_rtnl_task"
Ariel Elior [Thu, 14 Jul 2011 08:31:19 +0000 (08:31 +0000)]
bnx2x: Renaming the "reset_task" to "sp_rtnl_task"

Renaming the "reset_task" to a more general purpose name,
 "sp_rtnl_task", as it is already used for another purpose
 other than reset which is parity recovery, and since I
 plan to add a third operation for this task, updating the
 priority to traffic class and traffic class to transmission
 queues mappings after dcbx negotiation takes place.
Signed-off-by: Ariel Elior <ariele@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 7be08a7222c345798b0697a89ea3dd2c7c83f47c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Add dcbnl notification
Shmulik Ravid [Thu, 7 Jul 2011 12:11:30 +0000 (05:11 -0700)]
bnx2x: Add dcbnl notification

This patch adds a dcbnl notification to the bnx2x. The notification is
sent to user mode clients following a change in the dcb negotiated
parameters as resolved by the embedded DCBX stack.

Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 3c878d4746ca12cc8022f9e02f055f175b847dbc)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcbnl: Add CEE notification
Shmulik Ravid [Tue, 5 Jul 2011 06:16:25 +0000 (06:16 +0000)]
dcbnl: Add CEE notification

This patch add an unsolicited notification of the DCBX negotiated
parameters for the CEE flavor of the DCBX protocol. The notification
message is identical to the aggregated CEE get operation and holds all
the pertinent local and peer information. The notification routine is
exported so it can be invoked by drivers supporting an embedded DCBX
stack.

Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 5b7f7626743e0912958981343b47ac0ab2206b1c)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcbnl: Aggregated CEE GET operation
Shmulik Ravid [Tue, 5 Jul 2011 06:16:22 +0000 (06:16 +0000)]
dcbnl: Aggregated CEE GET operation

The following couple of patches add dcbnl an unsolicited notification of
the the DCB configuration for the CEE flavor of the DCBX protocol. This
is useful when the user-mode DCB client is not responsible for
conducting and resolving the DCBX negotiation (either because the DCBX
stack is embedded in the HW or the negotiation is handled by another
agent in the host), but still needs to get the negotiated parameters.
This functionality already exists for the IEEE flavor of the DCBX
protocol and these patches add it to the older CEE flavor.

The first patch extends the CEE attribute GET operation to include not
only the peer information, but also all the pertinent local
configuration (negotiated parameters). The second patch adds and export
a CEE specific notification routine.

Signed-off-by: Shmulik Ravid <shmulikr@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 37cf4d1a9b0903b874a638d0f8649873ddde8a12)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: use nlmsg_free() instead of kfree()
Dan Carpenter [Thu, 23 Jun 2011 10:14:42 +0000 (03:14 -0700)]
dcb: use nlmsg_free() instead of kfree()

These sk_buff structs were allocated with nlmsg_new() so they should
be freed with nlmsg_free().

Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 4d054f2f1445aceedab3f9642692d55d2caa7ec6)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: Add missing error check in dcb_ieee_set()
John Fastabend [Tue, 21 Jun 2011 07:35:04 +0000 (07:35 +0000)]
dcb: Add missing error check in dcb_ieee_set()

Missing error checking before nla_parse_nested().

Reported-by: Mark Rustad <mark.d.rustad@intel.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 4003b65871c101eb5ce8f37a325feac54aa5c681)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: fix return type on dcb_setapp()
John Fastabend [Tue, 21 Jun 2011 07:34:58 +0000 (07:34 +0000)]
dcb: fix return type on dcb_setapp()

Incorrect return type on dcb_setapp() this routine
returns negative error codes. All call sites of
dcb_setapp() assign the return value to an int already
so no need to update drivers.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit ab6baf980b095c70a56c5eb2f58166aef8a0edc8)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: Add dcb_ieee_getapp_mask() for drivers to query APP settings
John Fastabend [Tue, 21 Jun 2011 07:34:53 +0000 (07:34 +0000)]
dcb: Add dcb_ieee_getapp_mask() for drivers to query APP settings

With multiple APP entries per selector and protocol drivers
or stacks may want to pick a specific value or stripe traffic
across many priorities. Also if an APP entry in use is
deleted the stack/driver may want to choose from the existing
APP entries.

To facilitate this and avoid having duplicate code to walk
the APP ring provide a routine dcb_ieee_getapp_mask() to
return a u8 bitmask of all priorities set for the specified
selector and protocol. This routine and bitmask is a helper
for DCB kernel users.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit a364c8cf80251849bab207be8c9e66253c8ca8f8)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: Add ieee_dcb_delapp() and dcb op to delete app entry
Joe Jin [Wed, 16 May 2012 08:27:49 +0000 (16:27 +0800)]
dcb: Add ieee_dcb_delapp() and dcb op to delete app entry

Now that we allow multiple IEEE App entries we need a way
to remove specific entries. To do this add the ieee_dcb_delapp()
routine.

Additionaly drivers may need to remove the APP entry from
their firmware tables. Add dcb ops routine to handle this.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit f9ae7e4b515c4d56baf6e0e84ebee2e03ae57a25)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: Add ieee_dcb_setapp() to be used for IEEE 802.1Qaz APP data
John Fastabend [Tue, 21 Jun 2011 07:34:42 +0000 (07:34 +0000)]
dcb: Add ieee_dcb_setapp() to be used for IEEE 802.1Qaz APP data

This adds a setapp routine for IEEE802.1Qaz encoded APP data types.
The IEEE 802.1Qaz spec encodes the priority bits differently and
allows for multiple APP data entries of the same selector and
protocol. Trying to force these to use the same set routines was
becoming tedious. Furthermore, userspace could probably enforce
the correct semantics, but expecting drivers to do this seems
error prone in the firmware case.

For these reasons add ieee_dcb_setapp() that understands the
IEEE 802.1Qaz encoded form.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit b6db2174c59ef1e72f7bd63e0f105b1a2d7f18d3)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agonet: dcbnl, add multicast group for DCB
John Fastabend [Tue, 21 Jun 2011 07:34:37 +0000 (07:34 +0000)]
net: dcbnl, add multicast group for DCB

Now that dcbnl is being used in many cases by more
than a single agent it is beneficial to be notified
when some entity either driver or user space has
changed the DCB attributes.

Today applications either end up polling the interface
or relying on a user space database to maintain the DCB
state and post events. Polling is a poor solution for
obvious reasons. And relying on a user space database
has its own downside. Namely it has created strange
boot dependencies requiring the database be populated
before any applications dependent on DCB attributes
starts or the application goes into a polling loop.
Populating the database requires negotiating link
setting with the peer and can take anywhere from less
than a second up to a few seconds depending on the switch
implementation.

Perhaps more importantly if another application or an
embedded agent sets a DCB link attribute the database
has no way of knowing other than polling the kernel.
This prevents applications from responding quickly to
changes in link events which at least in the FCoE case
and probably any other protocols expecting a lossless
link may result in IO errors.

By adding a multicast group for DCB we have clean way
to disseminate kernel DCB link attributes up to user
space. Avoiding the need for user space to maintain
a coherant database and disperse events that potentially
do not reflect the current link state.

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 314b4778ed579f29b6d46ba90dbf31314c13805f)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agodcb: Add DCBX capabilities bitmask to the get_ieee response
John Fastabend [Tue, 21 Jun 2011 07:34:31 +0000 (07:34 +0000)]
dcb: Add DCBX capabilities bitmask to the get_ieee response

Adding the capabilities bitmask to the get_ieee response allows
user space to determine the current DCBX mode. Either CEE or IEEE
this is useful with devices that support switching between modes
where knowing the current state is relevant.

Derived from work by Mark Rustad

Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit c7797baf9f3900996ca800ab6298f95957bb4606)

Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix warning message during 57712/8727 initialization
Yaniv Rosner [Tue, 5 Jul 2011 01:07:16 +0000 (01:07 +0000)]
bnx2x: Fix warning message during 57712/8727 initialization

Clear warning message "MDC/MDIO access timeout" during first driver load by setting MDIO clock.
This warning has no significant meaning, since it occurs prior to the first PHY initialization.

(cherry picked from commit 7d09926d1decb658d4e24f70216b6b0b74168026)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Add autogrEEEn support
Yaniv Rosner [Tue, 5 Jul 2011 01:07:05 +0000 (01:07 +0000)]
bnx2x: Add autogrEEEn support

Add autogrEEEn support on BCM84833 and 54618se, which allows to reduce power consumption.

(cherry picked from commit a89a1d4a738668ccb2270ac218cddd30f0bef2a0)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix BCM84833 initialization
Yaniv Rosner [Tue, 5 Jul 2011 01:06:59 +0000 (01:06 +0000)]
bnx2x: Fix BCM84833 initialization

(cherry picked from commit 0520e63acb387a265c2a6abbf51c44c67149cf37)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Fix false link indication at link partner when DAC is used
Yaniv Rosner [Tue, 5 Jul 2011 01:06:53 +0000 (01:06 +0000)]
bnx2x: Fix false link indication at link partner when DAC is used

When driver is unloaded, disable PMD in addition to TX laser, provided that the management firmware will be able to enable it back.

(cherry picked from commit 85242eea68f5039458afad0e4030828496bb4034)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Reset PHY due to fan failure for 578xx
Yaniv Rosner [Tue, 5 Jul 2011 01:06:48 +0000 (01:06 +0000)]
bnx2x: Reset PHY due to fan failure for 578xx

Add hardware PHY reset action for BCM578xx when fan failure occur.
The new bnx2x_warpcore_hw_reset warps bnx2x_warpcore_power_module to fit the .hw_reset function template of the phy structure.

(cherry picked from commit 985848f80ffc61a29d9a72fec46ddce3c9643636)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Add CL37 BAM for Warpcore
Yaniv Rosner [Tue, 5 Jul 2011 01:06:41 +0000 (01:06 +0000)]
bnx2x: Add CL37 BAM for Warpcore

Add CL37 BAM support according to configuration.

(cherry picked from commit a34bc969a19b3a2364c03c101abb3b4d467089c0)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: Change BCM54616S to BCM54618SE
Yaniv Rosner [Tue, 5 Jul 2011 01:06:34 +0000 (01:06 +0000)]
bnx2x: Change BCM54616S to BCM54618SE

Change 1G copper PHY BCM54616S to BCM54618SE since we only have HW with latter one of the two.

(cherry picked from commit 52c4d6c4b543574930667bfc2a4aed8af0713519)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: PFC fixes
Yaniv Rosner [Tue, 5 Jul 2011 01:06:27 +0000 (01:06 +0000)]
bnx2x: PFC fixes

Set the source MAC address for PFC packets and update its status during PMF migration.

(cherry picked from commit b8d6d0824d064ad447e6aacbce90f3a340d93d65)
Signed-off-by: Yaniv Rosner <yanivr@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2x: remove unnecessary read of PCI_CAP_ID_EXP
Jon Mason [Mon, 27 Jun 2011 07:45:12 +0000 (07:45 +0000)]
bnx2x: remove unnecessary read of PCI_CAP_ID_EXP

The PCIE capability offset is saved during PCI bus walking.  It will
remove an unnecessary search in the PCI configuration space if this
value is referenced instead of reacquiring it.  Also, pci_is_pcie is a
better way of determining if the device is PCIE or not (as it uses the
same saved PCIE capability offset).

(cherry picked from commit 77c98e6a7a3ab76340b315d31fe1edded17cba15)
Signed-off-by: Jon Mason <jdmason@kudzu.us>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic: Update VLAN ID during ISCSI_UEVENT_PATH_UPDATE
Eddie Wai [Wed, 8 Feb 2012 17:33:57 +0000 (17:33 +0000)]
cnic: Update VLAN ID during ISCSI_UEVENT_PATH_UPDATE

This will support the new VLAN attribute in the iSCSI iface file.

(cherry picked from commit 4cbbb04dc115423682349aa7466c8aeead825140)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic: set error flag when iSCSI connection fails
Jeffrey Huang [Wed, 8 Feb 2012 17:33:56 +0000 (17:33 +0000)]
cnic: set error flag when iSCSI connection fails

to speed up error recovery due to SPQ failures.  The error flag will
expedite the recovery process by skipping the timeouts.

(cherry picked from commit 0cb1f4b96092b9d91d4e50d5c77b424745cd1102)
Signed-off-by: Jeffrey Huang <huangjw@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic: Add FCoE parity error recovery
Michael Chan [Sun, 5 Feb 2012 15:24:40 +0000 (15:24 +0000)]
cnic: Add FCoE parity error recovery

When bnx2x returns error on FCoE SPQ messages, generate an error
completion to bnx2fc immediately to speed up error recovery.  This
will eliminate length timeouts and spped up the reset of the device.

(cherry picked from commit 3238a9be4d7ad95c741bcfe6c147406eeef62d95)
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic: Improve error recovery on bnx2x devices
Michael Chan [Wed, 4 Jan 2012 12:12:28 +0000 (12:12 +0000)]
cnic: Improve error recovery on bnx2x devices

When a bnx2x device encounters parity errors, it will not respond to all
SPQ messages.  As a result, the shutdown sequence before reset can take
a long time as the ulp drivers (bnx2i/bnx2fc) have to wait for timeout
of all such messages.

To improve this scenario, when bnx2x returns error on the SPQ, we'll send
an immediate response to the ulp drivers to avoid such lengthy timeouts.

Adjust the return code of relevant functions to return error only if
the message cannot be sent on the SPQ so that we'll generate an error
completion to the ulp drivers.

(cherry picked from commit 23021c21055f88a428b6deb6f803fa0d659e023f)
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic: Add timeout for ramrod replies.
Michael Chan [Fri, 26 Aug 2011 09:45:40 +0000 (09:45 +0000)]
cnic: Add timeout for ramrod replies.

If the bnx2x device has encountered parity errors, the chip will not DMA
any replies.  Using wait_event_timeout() will allow us to make forward
progress and let bnx2x reset the chip.

(cherry picked from commit dcc7e3a6a2a2464cf96dee329f7c58fe8c230d97)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agocnic, bnx2fc: Increase maximum FCoE sessions.
Michael Chan [Fri, 26 Aug 2011 09:45:39 +0000 (09:45 +0000)]
cnic, bnx2fc: Increase maximum FCoE sessions.

Increase it to NVRAM configured limit or 1024 whichever is less.

(cherry picked from commit dc219a2e4812eecdc5438d2a0e2434b03d3efbf2)
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Bhanu Prakash Gollapudi <bprakash@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2: Update driver to use new mips firmware.
Joe Jin [Wed, 16 May 2012 05:48:22 +0000 (13:48 +0800)]
bnx2: Update driver to use new mips firmware.

bnx2-mips-06-6.2.3 and bnx2-mips-09-6.2.1.b

New firmware fixes iSCSI problems with some LeftHand targets that don't
set TTT=0xffffffff for Data-In according to spec.  Firmware generates
exception warnings for this condition and becomes very slow.  This is
fixed by suppressing these warnings when using default error mask.

(cherry picked from commit c2c20ef43d00b1439631e603f8dcee9a803cd8b3)
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2: Add missing memory barrier in bnx2_start_xmit()
Joe Jin [Wed, 16 May 2012 06:00:24 +0000 (14:00 +0800)]
bnx2: Add missing memory barrier in bnx2_start_xmit()

Sync DMA descriptor before hitting the TX mailbox for weak memory model
CPUs.

There has been discussions several years ago about this.  Some believe
that writel() should guarantee ordering.  Others want explicit barriers
if necessary.  Today writel() does not have the ordering guarantee and
many other drivers use explicit barriers.

(backported from commit 94bf91baf3a16ec274de3cd913be3033c029f853)
Signed-off-by: Vlad Zolotarov <vlad@scalemp.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2: Add support for ethtool --show-channels|--set-channels
Michael Chan [Sun, 5 Feb 2012 15:24:38 +0000 (15:24 +0000)]
bnx2: Add support for ethtool --show-channels|--set-channels

Allow the user to override the default number of RSS/TSS rings.

(cherry picked from commit b033281f618fa40ee1b24a60cd8043b4979bfee4)
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2: fix skb truesize underestimation
Eric Dumazet [Thu, 13 Oct 2011 07:50:19 +0000 (07:50 +0000)]
bnx2: fix skb truesize underestimation

bnx2 allocates a full page per fragment. We must account PAGE_SIZE
increments on skb->truesize, not the actual frag length.

(cherry picked from commit a1f4e8bcbccf50cf1894c263af4d677d4f566533)
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agobnx2: don't request firmware when there's no userspace.
françois romieu [Fri, 30 Sep 2011 00:36:52 +0000 (00:36 +0000)]
bnx2: don't request firmware when there's no userspace.

The firmware is cached during the first successful call to open() and
released once the network device is unregistered. The driver uses the
cached firmware between open() and unregister_netdev().

It's similar to 953a12cc2889d1be92e80a2d0bab5ffef4942300 but the
firmware is mandatory.

(cherry picked from commit 7880b72e94fd3cf3283de6752175191583bce9f0)
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agotg3: Avoid panic from reserved statblk field access
Matt Carlson [Tue, 24 Apr 2012 13:37:01 +0000 (13:37 +0000)]
tg3: Avoid panic from reserved statblk field access

When RSS is enabled, interrupt vector 0 does not receive any rx traffic.
The rx producer index fields for vector 0's status block should be
considered reserved in this case.  This patch changes the code to
respect these reserved fields, which avoids a kernel panic when these
fields take on non-zero values.

(cherry picked from commit f891ea1)
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agotg3: Use mii_advertise_flowctrl
Matt Carlson [Wed, 14 Dec 2011 11:10:00 +0000 (11:10 +0000)]
tg3: Use mii_advertise_flowctrl

This patch replaces tg3's internal tg3_advert_flowctrl_1000T function
with mii_advertise_flowctrl provided by the kernel headers.

(cherry picked from commit f88788f0da6326cbcaa837e12c8c074027891f07)
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agotg3: Fix advertisement handling
Joe Jin [Wed, 16 May 2012 03:19:28 +0000 (11:19 +0800)]
tg3: Fix advertisement handling

Commit 28011cf19b (net: Add ethtool to mii advertisment conversion
helpers) added a helper function ethtool_adv_to_mii_100bt() and
tg3_copper_is_advertising_all(), tg3_phy_autoneg_cfg() were
modified to use this.
Before that commit, ethtool to mii advertisement conversion was
done wrt speed, but now pause operation is also taken account.
So, in tg3_copper_is_advertising_all(), below condition becomes
true and this makes link up fails.

if ((adv_reg & ADVERTISE_ALL) != all_mask)
return 0;

To fix this add ADVERTISE_ALL bit and operation to cap speed,
and change default advertisement not including ADVERTISED_Pause.

(backported from commit 202ff1c26c768efeead20b388556eda265dc8352)
Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
13 years agotg3: Add 57766 ASIC rev support
Matt Carlson [Wed, 14 Dec 2011 11:09:59 +0000 (11:09 +0000)]
tg3: Add 57766 ASIC rev support

This patch adds support for the 57766 ASIC revision.

(cherry picked from commit 55086ad95d740577def0b4e6ecc2c0ae9b0d6dec)
Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
Reviewed-by: Michael Chan <mchan@broadcom.com>
Reviewed-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Joe Jin <joe.jin@oracle.com>