|
@@ -1,7 +1,7 @@
|
|
|
/*******************************************************************************
|
|
|
*
|
|
|
* Intel Ethernet Controller XL710 Family Linux Driver
|
|
|
- * Copyright(c) 2013 - 2015 Intel Corporation.
|
|
|
+ * Copyright(c) 2013 - 2016 Intel Corporation.
|
|
|
*
|
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
|
* under the terms and conditions of the GNU General Public License,
|
|
@@ -2435,6 +2435,7 @@ i40e_status i40e_aq_add_macvlan(struct i40e_hw *hw, u16 seid,
|
|
|
(struct i40e_aqc_macvlan *)&desc.params.raw;
|
|
|
i40e_status status;
|
|
|
u16 buf_size;
|
|
|
+ int i;
|
|
|
|
|
|
if (count == 0 || !mv_list || !hw)
|
|
|
return I40E_ERR_PARAM;
|
|
@@ -2448,12 +2449,17 @@ i40e_status i40e_aq_add_macvlan(struct i40e_hw *hw, u16 seid,
|
|
|
cmd->seid[1] = 0;
|
|
|
cmd->seid[2] = 0;
|
|
|
|
|
|
+ for (i = 0; i < count; i++)
|
|
|
+ if (is_multicast_ether_addr(mv_list[i].mac_addr))
|
|
|
+ mv_list[i].flags |=
|
|
|
+ cpu_to_le16(I40E_AQC_MACVLAN_ADD_USE_SHARED_MAC);
|
|
|
+
|
|
|
desc.flags |= cpu_to_le16((u16)(I40E_AQ_FLAG_BUF | I40E_AQ_FLAG_RD));
|
|
|
if (buf_size > I40E_AQ_LARGE_BUF)
|
|
|
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_LB);
|
|
|
|
|
|
status = i40e_asq_send_command(hw, &desc, mv_list, buf_size,
|
|
|
- cmd_details);
|
|
|
+ cmd_details);
|
|
|
|
|
|
return status;
|
|
|
}
|