sfc: MC_CMD_SET_MAC can only be called by the link control Function
authorShradha Shah <sshah@solarflare.com>
Wed, 20 May 2015 10:08:56 +0000 (11:08 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 May 2015 22:43:52 +0000 (18:43 -0400)
MC_CMD_SET_MAC is privileged and can only by called by the link
control function.

This patch adds efx_ef10_mac_reconfigure_vf which avoids the call
to MC_CMD_SET_MAC by the Virtual function

Signed-off-by: Shradha Shah <sshah@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/ef10.c

index 882117a43c3a05d7686f13dc783bcb48f8626973..70cbad39ee660cd8e6b26a5014429dce63ea2c38 100644 (file)
@@ -3480,6 +3480,13 @@ static int efx_ef10_mac_reconfigure(struct efx_nic *efx)
        return efx_mcdi_set_mac(efx);
 }
 
+static int efx_ef10_mac_reconfigure_vf(struct efx_nic *efx)
+{
+       efx_ef10_filter_sync_rx_mode(efx);
+
+       return 0;
+}
+
 static int efx_ef10_start_bist(struct efx_nic *efx, u32 bist_type)
 {
        MCDI_DECLARE_BUF(inbuf, MC_CMD_START_BIST_IN_LEN);
@@ -3833,7 +3840,7 @@ const struct efx_nic_type efx_hunt_a0_vf_nic_type = {
        .stop_stats = efx_port_dummy_op_void,
        .set_id_led = efx_mcdi_set_id_led,
        .push_irq_moderation = efx_ef10_push_irq_moderation,
-       .reconfigure_mac = efx_ef10_mac_reconfigure,
+       .reconfigure_mac = efx_ef10_mac_reconfigure_vf,
        .check_mac_fault = efx_mcdi_mac_check_fault,
        .reconfigure_port = efx_mcdi_port_reconfigure,
        .get_wol = efx_ef10_get_wol_vf,