be2net: fix pmac_id for BE3 VFs
authorSathya Perla <sathya.perla@emulex.com>
Tue, 23 Jul 2013 09:55:01 +0000 (15:25 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 24 Jul 2013 22:41:52 +0000 (15:41 -0700)
For BE3 VFs, the permanent MAC is added by its PF. The VF can retrieve its
pmac_id only via the IFACE_CREATE cmd. This is not true for Lancer and SH-R
VFs which get the pmac_id by issuing a ADD_IFACE_MAC cmd. So, use this
hack only for BE3 VFs.

Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/emulex/benet/be_cmds.c

index 5d37601df03ffd0fb2812696fcf69672d01683fc..b384ae7c9da557a2628c37850bc5d120463ab30d 100644 (file)
@@ -1339,6 +1339,10 @@ int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags,
        if (!status) {
                struct be_cmd_resp_if_create *resp = embedded_payload(wrb);
                *if_handle = le32_to_cpu(resp->interface_id);
+
+               /* Hack to retrieve VF's pmac-id on BE3 */
+               if (BE3_chip(adapter) && !be_physfn(adapter))
+                       adapter->pmac_id[0] = le32_to_cpu(resp->pmac_id);
        }
 
 err: