aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/benet/be_cmds.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/benet/be_cmds.c')
-rw-r--r--drivers/net/benet/be_cmds.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c
index d0ef4ac987cd..e79bf8b9af3b 100644
--- a/drivers/net/benet/be_cmds.c
+++ b/drivers/net/benet/be_cmds.c
@@ -843,7 +843,8 @@ int be_cmd_q_destroy(struct be_adapter *adapter, struct be_queue_info *q,
843 * Uses mbox 843 * Uses mbox
844 */ 844 */
845int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags, 845int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags,
846 u8 *mac, bool pmac_invalid, u32 *if_handle, u32 *pmac_id) 846 u8 *mac, bool pmac_invalid, u32 *if_handle, u32 *pmac_id,
847 u32 domain)
847{ 848{
848 struct be_mcc_wrb *wrb; 849 struct be_mcc_wrb *wrb;
849 struct be_cmd_req_if_create *req; 850 struct be_cmd_req_if_create *req;
@@ -860,6 +861,7 @@ int be_cmd_if_create(struct be_adapter *adapter, u32 cap_flags, u32 en_flags,
860 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON, 861 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_COMMON,
861 OPCODE_COMMON_NTWK_INTERFACE_CREATE, sizeof(*req)); 862 OPCODE_COMMON_NTWK_INTERFACE_CREATE, sizeof(*req));
862 863
864 req->hdr.domain = domain;
863 req->capability_flags = cpu_to_le32(cap_flags); 865 req->capability_flags = cpu_to_le32(cap_flags);
864 req->enable_flags = cpu_to_le32(en_flags); 866 req->enable_flags = cpu_to_le32(en_flags);
865 req->pmac_invalid = pmac_invalid; 867 req->pmac_invalid = pmac_invalid;
@@ -1111,6 +1113,10 @@ int be_cmd_promiscuous_config(struct be_adapter *adapter, u8 port_num, bool en)
1111 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_ETH, 1113 be_cmd_hdr_prepare(&req->hdr, CMD_SUBSYSTEM_ETH,
1112 OPCODE_ETH_PROMISCUOUS, sizeof(*req)); 1114 OPCODE_ETH_PROMISCUOUS, sizeof(*req));
1113 1115
1116 /* In FW versions X.102.149/X.101.487 and later,
1117 * the port setting associated only with the
1118 * issuing pci function will take effect
1119 */
1114 if (port_num) 1120 if (port_num)
1115 req->port1_promiscuous = en; 1121 req->port1_promiscuous = en;
1116 else 1122 else
@@ -1157,13 +1163,13 @@ int be_cmd_multicast_set(struct be_adapter *adapter, u32 if_id,
1157 req->interface_id = if_id; 1163 req->interface_id = if_id;
1158 if (netdev) { 1164 if (netdev) {
1159 int i; 1165 int i;
1160 struct dev_mc_list *mc; 1166 struct netdev_hw_addr *ha;
1161 1167
1162 req->num_mac = cpu_to_le16(netdev_mc_count(netdev)); 1168 req->num_mac = cpu_to_le16(netdev_mc_count(netdev));
1163 1169
1164 i = 0; 1170 i = 0;
1165 netdev_for_each_mc_addr(mc, netdev) 1171 netdev_for_each_mc_addr(ha, netdev)
1166 memcpy(req->mac[i].byte, mc->dmi_addr, ETH_ALEN); 1172 memcpy(req->mac[i].byte, ha->addr, ETH_ALEN);
1167 } else { 1173 } else {
1168 req->promiscuous = 1; 1174 req->promiscuous = 1;
1169 } 1175 }