Commit 63207425 authored by David S. Miller's avatar David S. Miller

Merge branch 'hns3-fixes'

Lipeng says:

====================
net: hns3: fix some bugs for HNS3 driver

This patchset fixes some bugs reported by Hisilicon test team.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 95fa7a05 c3b6f755
...@@ -3600,11 +3600,11 @@ static int hclge_add_mac_vlan_tbl(struct hclge_vport *vport, ...@@ -3600,11 +3600,11 @@ static int hclge_add_mac_vlan_tbl(struct hclge_vport *vport,
resp_code, resp_code,
HCLGE_MAC_VLAN_ADD); HCLGE_MAC_VLAN_ADD);
} else { } else {
mc_desc[0].flag &= cpu_to_le16(~HCLGE_CMD_FLAG_WR); hclge_cmd_reuse_desc(&mc_desc[0], false);
mc_desc[0].flag |= cpu_to_le16(HCLGE_CMD_FLAG_NEXT); mc_desc[0].flag |= cpu_to_le16(HCLGE_CMD_FLAG_NEXT);
mc_desc[1].flag &= cpu_to_le16(~HCLGE_CMD_FLAG_WR); hclge_cmd_reuse_desc(&mc_desc[1], false);
mc_desc[1].flag |= cpu_to_le16(HCLGE_CMD_FLAG_NEXT); mc_desc[1].flag |= cpu_to_le16(HCLGE_CMD_FLAG_NEXT);
mc_desc[2].flag &= cpu_to_le16(~HCLGE_CMD_FLAG_WR); hclge_cmd_reuse_desc(&mc_desc[2], false);
mc_desc[2].flag &= cpu_to_le16(~HCLGE_CMD_FLAG_NEXT); mc_desc[2].flag &= cpu_to_le16(~HCLGE_CMD_FLAG_NEXT);
memcpy(mc_desc[0].data, req, memcpy(mc_desc[0].data, req,
sizeof(struct hclge_mac_vlan_tbl_entry_cmd)); sizeof(struct hclge_mac_vlan_tbl_entry_cmd));
...@@ -4285,7 +4285,7 @@ static int hclge_init_client_instance(struct hnae3_client *client, ...@@ -4285,7 +4285,7 @@ static int hclge_init_client_instance(struct hnae3_client *client,
vport->roce.client = client; vport->roce.client = client;
} }
if (hdev->roce_client) { if (hdev->roce_client && hdev->nic_client) {
ret = hclge_init_roce_base_info(vport); ret = hclge_init_roce_base_info(vport);
if (ret) if (ret)
goto err; goto err;
...@@ -4311,13 +4311,19 @@ static void hclge_uninit_client_instance(struct hnae3_client *client, ...@@ -4311,13 +4311,19 @@ static void hclge_uninit_client_instance(struct hnae3_client *client,
for (i = 0; i < hdev->num_vmdq_vport + 1; i++) { for (i = 0; i < hdev->num_vmdq_vport + 1; i++) {
vport = &hdev->vport[i]; vport = &hdev->vport[i];
if (hdev->roce_client) if (hdev->roce_client) {
hdev->roce_client->ops->uninit_instance(&vport->roce, hdev->roce_client->ops->uninit_instance(&vport->roce,
0); 0);
hdev->roce_client = NULL;
vport->roce.client = NULL;
}
if (client->type == HNAE3_CLIENT_ROCE) if (client->type == HNAE3_CLIENT_ROCE)
return; return;
if (client->ops->uninit_instance) if (client->ops->uninit_instance) {
client->ops->uninit_instance(&vport->nic, 0); client->ops->uninit_instance(&vport->nic, 0);
hdev->nic_client = NULL;
vport->nic.client = NULL;
}
} }
} }
......
...@@ -716,7 +716,7 @@ static void hns3_set_txbd_baseinfo(u16 *bdtp_fe_sc_vld_ra_ri, int frag_end) ...@@ -716,7 +716,7 @@ static void hns3_set_txbd_baseinfo(u16 *bdtp_fe_sc_vld_ra_ri, int frag_end)
HNS3_TXD_BDTYPE_M, 0); HNS3_TXD_BDTYPE_M, 0);
hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_FE_B, !!frag_end); hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_FE_B, !!frag_end);
hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_VLD_B, 1); hnae_set_bit(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_VLD_B, 1);
hnae_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_SC_M, HNS3_TXD_SC_S, 1); hnae_set_field(*bdtp_fe_sc_vld_ra_ri, HNS3_TXD_SC_M, HNS3_TXD_SC_S, 0);
} }
static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv, static int hns3_fill_desc(struct hns3_enet_ring *ring, void *priv,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment