Skip to content

Commit b32e521

Browse files
committed
Merge branch 'net-hns3-add-some-fixes-for-net'
Guangbin Huang says: ==================== net: hns3: add some fixes for -net This series adds some fixes for the HNS3 ethernet driver. ==================== Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
2 parents 0435a4d + 82229c4 commit b32e521

File tree

3 files changed

+13
-3
lines changed

3 files changed

+13
-3
lines changed

drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1081,7 +1081,8 @@ static void hns3_dump_page_pool_info(struct hns3_enet_ring *ring,
10811081
u32 j = 0;
10821082

10831083
sprintf(result[j++], "%u", index);
1084-
sprintf(result[j++], "%u", ring->page_pool->pages_state_hold_cnt);
1084+
sprintf(result[j++], "%u",
1085+
READ_ONCE(ring->page_pool->pages_state_hold_cnt));
10851086
sprintf(result[j++], "%u",
10861087
atomic_read(&ring->page_pool->pages_state_release_cnt));
10871088
sprintf(result[j++], "%u", ring->page_pool->p.pool_size);
@@ -1106,6 +1107,11 @@ hns3_dbg_page_pool_info(struct hnae3_handle *h, char *buf, int len)
11061107
return -EFAULT;
11071108
}
11081109

1110+
if (!priv->ring[h->kinfo.num_tqps].page_pool) {
1111+
dev_err(&h->pdev->dev, "page pool is not initialized\n");
1112+
return -EFAULT;
1113+
}
1114+
11091115
for (i = 0; i < ARRAY_SIZE(page_pool_info_items); i++)
11101116
result[i] = &data_str[i][0];
11111117

drivers/net/ethernet/hisilicon/hns3/hns3_ethtool.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
987987
struct hnae3_ae_dev *ae_dev = pci_get_drvdata(h->pdev);
988988
const struct hnae3_ae_ops *ops = h->ae_algo->ops;
989989
const struct hns3_reset_type_map *rst_type_map;
990+
enum ethtool_reset_flags rst_flags;
990991
u32 i, size;
991992

992993
if (ops->ae_dev_resetting && ops->ae_dev_resetting(h))
@@ -1006,6 +1007,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
10061007
for (i = 0; i < size; i++) {
10071008
if (rst_type_map[i].rst_flags == *flags) {
10081009
rst_type = rst_type_map[i].rst_type;
1010+
rst_flags = rst_type_map[i].rst_flags;
10091011
break;
10101012
}
10111013
}
@@ -1021,6 +1023,8 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
10211023

10221024
ops->reset_event(h->pdev, h);
10231025

1026+
*flags &= ~rst_flags;
1027+
10241028
return 0;
10251029
}
10261030

drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -703,9 +703,9 @@ static int hclgevf_set_rss_tc_mode(struct hclgevf_dev *hdev, u16 rss_size)
703703
roundup_size = ilog2(roundup_size);
704704

705705
for (i = 0; i < HCLGEVF_MAX_TC_NUM; i++) {
706-
tc_valid[i] = !!(hdev->hw_tc_map & BIT(i));
706+
tc_valid[i] = 1;
707707
tc_size[i] = roundup_size;
708-
tc_offset[i] = rss_size * i;
708+
tc_offset[i] = (hdev->hw_tc_map & BIT(i)) ? rss_size * i : 0;
709709
}
710710

711711
hclgevf_cmd_setup_basic_desc(&desc, HCLGEVF_OPC_RSS_TC_MODE, false);

0 commit comments

Comments
 (0)