]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
be2net: query FW to check if EVB is enabled
authorKalesh Purayil <kalesh.purayil@avagotech.com>
Fri, 10 Jul 2015 09:32:44 +0000 (05:32 -0400)
committerManjunath Govindashetty <manjunath.govindashetty@oracle.com>
Fri, 16 Oct 2015 00:07:54 +0000 (17:07 -0700)
The current code assumes that bridge functionality (EVB) in the adapter
is enabled only when SR-IOV is enabled. This is not always true.
This patch uses the GET_HSW_CONFIG FW cmd to query this from the FW.

Signed-off-by: Kalesh AP <kalesh.purayil@avagotech.com>
Signed-off-by: Sathya Perla <sathya.perla@avagotech.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_cmds.h
drivers/net/ethernet/emulex/benet/be_main.c

index 2716e6f30d9a0949633b40dc9864196c7465fa3a..f0a92b7e4e7d3d4063c91dc58a9ff758678df7c1 100644 (file)
@@ -1758,6 +1758,7 @@ struct be_cmd_req_set_mac_list {
 /*********************** HSW Config ***********************/
 #define PORT_FWD_TYPE_VEPA             0x3
 #define PORT_FWD_TYPE_VEB              0x2
+#define PORT_FWD_TYPE_PASSTHRU         0x1
 
 #define ENABLE_MAC_SPOOFCHK            0x2
 #define DISABLE_MAC_SPOOFCHK           0x3
index b6102d4438d20427c879665a91b424e3f0ef2760..de971a1c60c2663bbefeb5c890896c19996b0123 100644 (file)
@@ -5073,9 +5073,6 @@ static int be_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
        int status = 0;
        u8 hsw_mode;
 
-       if (!sriov_enabled(adapter))
-               return 0;
-
        /* BE and Lancer chips support VEB mode only */
        if (BEx_chip(adapter) || lancer_chip(adapter)) {
                hsw_mode = PORT_FWD_TYPE_VEB;
@@ -5085,6 +5082,9 @@ static int be_ndo_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
                                               NULL);
                if (status)
                        return 0;
+
+               if (hsw_mode == PORT_FWD_TYPE_PASSTHRU)
+                       return 0;
        }
 
        return ndo_dflt_bridge_getlink(skb, pid, seq, dev,