未验证 提交 2a47a6f0 编写于 作者: O openeuler-ci-bot 提交者: Gitee

!1326 [OLK-5.10] net: hns3: backport the clean up refine the tcam key convert...

!1326 [OLK-5.10] net: hns3: backport the clean up refine the tcam key convert handle and clear hns3 unused parameter alarm

Merge Pull Request from: @svishen 
 
Backport some clean up from mainline for hns3

issue:
https://gitee.com/openeuler/kernel/issues/I7IEJR 
 
Link:https://gitee.com/openeuler/kernel/pulls/1326 

Signed-off-by: Jialin Zhang <zhangjialin11@huawei.com> 
...@@ -667,8 +667,7 @@ struct hnae3_ae_ops { ...@@ -667,8 +667,7 @@ struct hnae3_ae_ops {
int (*rm_mc_addr)(struct hnae3_handle *handle, int (*rm_mc_addr)(struct hnae3_handle *handle,
const unsigned char *addr); const unsigned char *addr);
void (*set_tso_stats)(struct hnae3_handle *handle, int enable); void (*set_tso_stats)(struct hnae3_handle *handle, int enable);
void (*update_stats)(struct hnae3_handle *handle, void (*update_stats)(struct hnae3_handle *handle);
struct net_device_stats *net_stats);
void (*get_stats)(struct hnae3_handle *handle, u64 *data); void (*get_stats)(struct hnae3_handle *handle, u64 *data);
void (*get_mac_stats)(struct hnae3_handle *handle, void (*get_mac_stats)(struct hnae3_handle *handle,
struct hns3_mac_stats *mac_stats); struct hns3_mac_stats *mac_stats);
......
...@@ -305,8 +305,7 @@ int hclge_comm_set_rss_indir_table(struct hnae3_ae_dev *ae_dev, ...@@ -305,8 +305,7 @@ int hclge_comm_set_rss_indir_table(struct hnae3_ae_dev *ae_dev,
return 0; return 0;
} }
int hclge_comm_set_rss_input_tuple(struct hnae3_handle *nic, int hclge_comm_set_rss_input_tuple(struct hclge_comm_hw *hw,
struct hclge_comm_hw *hw, bool is_pf,
struct hclge_comm_rss_cfg *rss_cfg) struct hclge_comm_rss_cfg *rss_cfg)
{ {
struct hclge_comm_rss_input_tuple_cmd *req; struct hclge_comm_rss_input_tuple_cmd *req;
......
...@@ -112,8 +112,7 @@ int hclge_comm_init_rss_tuple_cmd(struct hclge_comm_rss_cfg *rss_cfg, ...@@ -112,8 +112,7 @@ int hclge_comm_init_rss_tuple_cmd(struct hclge_comm_rss_cfg *rss_cfg,
struct hnae3_ae_dev *ae_dev, struct hnae3_ae_dev *ae_dev,
struct hclge_comm_rss_input_tuple_cmd *req); struct hclge_comm_rss_input_tuple_cmd *req);
u64 hclge_comm_convert_rss_tuple(u8 tuple_sets); u64 hclge_comm_convert_rss_tuple(u8 tuple_sets);
int hclge_comm_set_rss_input_tuple(struct hnae3_handle *nic, int hclge_comm_set_rss_input_tuple(struct hclge_comm_hw *hw,
struct hclge_comm_hw *hw, bool is_pf,
struct hclge_comm_rss_cfg *rss_cfg); struct hclge_comm_rss_cfg *rss_cfg);
int hclge_comm_set_rss_indir_table(struct hnae3_ae_dev *ae_dev, int hclge_comm_set_rss_indir_table(struct hnae3_ae_dev *ae_dev,
struct hclge_comm_hw *hw, const u16 *indir); struct hclge_comm_hw *hw, const u16 *indir);
......
...@@ -965,8 +965,7 @@ static const struct hns3_dbg_item tx_bd_info_items[] = { ...@@ -965,8 +965,7 @@ static const struct hns3_dbg_item tx_bd_info_items[] = {
{ "MSS_HW_CSUM", 0 }, { "MSS_HW_CSUM", 0 },
}; };
static void hns3_dump_tx_bd_info(struct hns3_nic_priv *priv, static void hns3_dump_tx_bd_info(struct hns3_desc *desc, char **result, int idx)
struct hns3_desc *desc, char **result, int idx)
{ {
unsigned int j = 0; unsigned int j = 0;
...@@ -1015,7 +1014,7 @@ static int hns3_dbg_tx_bd_info(struct hns3_dbg_data *d, char *buf, int len) ...@@ -1015,7 +1014,7 @@ static int hns3_dbg_tx_bd_info(struct hns3_dbg_data *d, char *buf, int len)
for (i = 0; i < ring->desc_num; i++) { for (i = 0; i < ring->desc_num; i++) {
desc = &ring->desc[i]; desc = &ring->desc[i];
hns3_dump_tx_bd_info(priv, desc, result, i); hns3_dump_tx_bd_info(desc, result, i);
hns3_dbg_fill_content(content, sizeof(content), hns3_dbg_fill_content(content, sizeof(content),
tx_bd_info_items, (const char **)result, tx_bd_info_items, (const char **)result,
ARRAY_SIZE(tx_bd_info_items)); ARRAY_SIZE(tx_bd_info_items));
......
...@@ -2775,7 +2775,7 @@ static void hns3_nic_get_stats64(struct net_device *netdev, ...@@ -2775,7 +2775,7 @@ static void hns3_nic_get_stats64(struct net_device *netdev,
if (test_bit(HNS3_NIC_STATE_DOWN, &priv->state)) if (test_bit(HNS3_NIC_STATE_DOWN, &priv->state))
return; return;
handle->ae_algo->ops->update_stats(handle, &netdev->stats); handle->ae_algo->ops->update_stats(handle);
memset(&ring_total_stats, 0, sizeof(ring_total_stats)); memset(&ring_total_stats, 0, sizeof(ring_total_stats));
for (idx = 0; idx < queue_num; idx++) { for (idx = 0; idx < queue_num; idx++) {
......
...@@ -228,7 +228,7 @@ static u32 hns3_lb_check_rx_ring(struct hns3_nic_priv *priv, u32 budget) ...@@ -228,7 +228,7 @@ static u32 hns3_lb_check_rx_ring(struct hns3_nic_priv *priv, u32 budget)
} }
static void hns3_lb_clear_tx_ring(struct hns3_nic_priv *priv, u32 start_ringid, static void hns3_lb_clear_tx_ring(struct hns3_nic_priv *priv, u32 start_ringid,
u32 end_ringid, u32 budget) u32 end_ringid)
{ {
u32 i; u32 i;
...@@ -295,8 +295,7 @@ static int hns3_lp_run_test(struct net_device *ndev, enum hnae3_loop mode) ...@@ -295,8 +295,7 @@ static int hns3_lp_run_test(struct net_device *ndev, enum hnae3_loop mode)
out: out:
hns3_lb_clear_tx_ring(priv, HNS3_NIC_LB_TEST_RING_ID, hns3_lb_clear_tx_ring(priv, HNS3_NIC_LB_TEST_RING_ID,
HNS3_NIC_LB_TEST_RING_ID, HNS3_NIC_LB_TEST_RING_ID);
HNS3_NIC_LB_TEST_PKT_NUM);
kfree_skb(skb); kfree_skb(skb);
return ret_val; return ret_val;
...@@ -646,7 +645,7 @@ static void hns3_get_stats(struct net_device *netdev, ...@@ -646,7 +645,7 @@ static void hns3_get_stats(struct net_device *netdev,
return; return;
} }
h->ae_algo->ops->update_stats(h, &netdev->stats); h->ae_algo->ops->update_stats(h);
/* get per-queue stats */ /* get per-queue stats */
p = hns3_get_stats_tqps(h, p); p = hns3_get_stats_tqps(h, p);
......
...@@ -695,8 +695,7 @@ static void hclge_update_stats_for_all(struct hclge_dev *hdev) ...@@ -695,8 +695,7 @@ static void hclge_update_stats_for_all(struct hclge_dev *hdev)
"Update MAC stats fail, status = %d.\n", status); "Update MAC stats fail, status = %d.\n", status);
} }
static void hclge_update_stats(struct hnae3_handle *handle, static void hclge_update_stats(struct hnae3_handle *handle)
struct net_device_stats *net_stats)
{ {
struct hclge_vport *vport = hclge_get_vport(handle); struct hclge_vport *vport = hclge_get_vport(handle);
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
...@@ -830,7 +829,7 @@ static void hclge_get_mac_stat(struct hnae3_handle *handle, ...@@ -830,7 +829,7 @@ static void hclge_get_mac_stat(struct hnae3_handle *handle,
struct hclge_vport *vport = hclge_get_vport(handle); struct hclge_vport *vport = hclge_get_vport(handle);
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
hclge_update_stats(handle, NULL); hclge_update_stats(handle);
mac_stats->tx_pause_cnt = hdev->mac_stats.mac_tx_mac_pause_num; mac_stats->tx_pause_cnt = hdev->mac_stats.mac_tx_mac_pause_num;
mac_stats->rx_pause_cnt = hdev->mac_stats.mac_rx_mac_pause_num; mac_stats->rx_pause_cnt = hdev->mac_stats.mac_rx_mac_pause_num;
...@@ -5099,9 +5098,7 @@ int hclge_rss_init_hw(struct hclge_dev *hdev) ...@@ -5099,9 +5098,7 @@ int hclge_rss_init_hw(struct hclge_dev *hdev)
if (ret) if (ret)
return ret; return ret;
ret = hclge_comm_set_rss_input_tuple(&hdev->vport[0].nic, ret = hclge_comm_set_rss_input_tuple(&hdev->hw.hw, &hdev->rss_cfg);
&hdev->hw.hw, true,
&hdev->rss_cfg);
if (ret) if (ret)
return ret; return ret;
...@@ -6501,8 +6498,7 @@ static int hclge_fd_check_spec(struct hclge_dev *hdev, ...@@ -6501,8 +6498,7 @@ static int hclge_fd_check_spec(struct hclge_dev *hdev,
return hclge_fd_check_ext_tuple(hdev, fs, unused_tuple); return hclge_fd_check_ext_tuple(hdev, fs, unused_tuple);
} }
static void hclge_fd_get_tcpip4_tuple(struct hclge_dev *hdev, static void hclge_fd_get_tcpip4_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule, u8 ip_proto) struct hclge_fd_rule *rule, u8 ip_proto)
{ {
rule->tuples.src_ip[IPV4_INDEX] = rule->tuples.src_ip[IPV4_INDEX] =
...@@ -6531,8 +6527,7 @@ static void hclge_fd_get_tcpip4_tuple(struct hclge_dev *hdev, ...@@ -6531,8 +6527,7 @@ static void hclge_fd_get_tcpip4_tuple(struct hclge_dev *hdev,
rule->tuples_mask.ip_proto = 0xFF; rule->tuples_mask.ip_proto = 0xFF;
} }
static void hclge_fd_get_ip4_tuple(struct hclge_dev *hdev, static void hclge_fd_get_ip4_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule) struct hclge_fd_rule *rule)
{ {
rule->tuples.src_ip[IPV4_INDEX] = rule->tuples.src_ip[IPV4_INDEX] =
...@@ -6586,8 +6581,7 @@ static void hclge_fd_get_vxlan4_tuple(struct ethtool_rx_flow_spec *fs, ...@@ -6586,8 +6581,7 @@ static void hclge_fd_get_vxlan4_tuple(struct ethtool_rx_flow_spec *fs,
rule->tuples_mask.dst_ip[IPV4_INDEX] = be32_to_cpu(m->ip4dst); rule->tuples_mask.dst_ip[IPV4_INDEX] = be32_to_cpu(m->ip4dst);
} }
static void hclge_fd_get_tcpip6_tuple(struct hclge_dev *hdev, static void hclge_fd_get_tcpip6_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule, u8 ip_proto) struct hclge_fd_rule *rule, u8 ip_proto)
{ {
be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.tcp_ip6_spec.ip6src, be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.tcp_ip6_spec.ip6src,
...@@ -6616,8 +6610,7 @@ static void hclge_fd_get_tcpip6_tuple(struct hclge_dev *hdev, ...@@ -6616,8 +6610,7 @@ static void hclge_fd_get_tcpip6_tuple(struct hclge_dev *hdev,
rule->tuples_mask.ip_proto = 0xFF; rule->tuples_mask.ip_proto = 0xFF;
} }
static void hclge_fd_get_ip6_tuple(struct hclge_dev *hdev, static void hclge_fd_get_ip6_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule) struct hclge_fd_rule *rule)
{ {
be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.usr_ip6_spec.ip6src, be32_to_cpu_array(rule->tuples.src_ip, fs->h_u.usr_ip6_spec.ip6src,
...@@ -6671,8 +6664,7 @@ static void hclge_fd_get_vxlan6_tuple(struct ethtool_rx_flow_spec *fs, ...@@ -6671,8 +6664,7 @@ static void hclge_fd_get_vxlan6_tuple(struct ethtool_rx_flow_spec *fs,
be32_to_cpu_array(rule->tuples_mask.dst_ip, m->ip6dst, IPV6_SIZE); be32_to_cpu_array(rule->tuples_mask.dst_ip, m->ip6dst, IPV6_SIZE);
} }
static void hclge_fd_get_ether_tuple(struct hclge_dev *hdev, static void hclge_fd_get_ether_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule) struct hclge_fd_rule *rule)
{ {
ether_addr_copy(rule->tuples.src_mac, fs->h_u.ether_spec.h_source); ether_addr_copy(rule->tuples.src_mac, fs->h_u.ether_spec.h_source);
...@@ -6708,8 +6700,7 @@ static void hclge_fd_get_user_def_tuple(struct hclge_fd_user_def_info *info, ...@@ -6708,8 +6700,7 @@ static void hclge_fd_get_user_def_tuple(struct hclge_fd_user_def_info *info,
rule->ep.user_def = *info; rule->ep.user_def = *info;
} }
static int hclge_fd_get_tuple(struct hclge_dev *hdev, static int hclge_fd_get_tuple(struct ethtool_rx_flow_spec *fs,
struct ethtool_rx_flow_spec *fs,
struct hclge_fd_rule *rule, struct hclge_fd_rule *rule,
struct hclge_fd_user_def_info *info) struct hclge_fd_user_def_info *info)
{ {
...@@ -6717,37 +6708,37 @@ static int hclge_fd_get_tuple(struct hclge_dev *hdev, ...@@ -6717,37 +6708,37 @@ static int hclge_fd_get_tuple(struct hclge_dev *hdev,
switch (flow_type) { switch (flow_type) {
case SCTP_V4_FLOW: case SCTP_V4_FLOW:
hclge_fd_get_tcpip4_tuple(hdev, fs, rule, IPPROTO_SCTP); hclge_fd_get_tcpip4_tuple(fs, rule, IPPROTO_SCTP);
break; break;
case TCP_V4_FLOW: case TCP_V4_FLOW:
hclge_fd_get_tcpip4_tuple(hdev, fs, rule, IPPROTO_TCP); hclge_fd_get_tcpip4_tuple(fs, rule, IPPROTO_TCP);
break; break;
case UDP_V4_FLOW: case UDP_V4_FLOW:
hclge_fd_get_tcpip4_tuple(hdev, fs, rule, IPPROTO_UDP); hclge_fd_get_tcpip4_tuple(fs, rule, IPPROTO_UDP);
break; break;
case IP_USER_FLOW: case IP_USER_FLOW:
hclge_fd_get_ip4_tuple(hdev, fs, rule); hclge_fd_get_ip4_tuple(fs, rule);
break; break;
case VXLAN_V4_FLOW: case VXLAN_V4_FLOW:
hclge_fd_get_vxlan4_tuple(fs, rule); hclge_fd_get_vxlan4_tuple(fs, rule);
break; break;
case SCTP_V6_FLOW: case SCTP_V6_FLOW:
hclge_fd_get_tcpip6_tuple(hdev, fs, rule, IPPROTO_SCTP); hclge_fd_get_tcpip6_tuple(fs, rule, IPPROTO_SCTP);
break; break;
case TCP_V6_FLOW: case TCP_V6_FLOW:
hclge_fd_get_tcpip6_tuple(hdev, fs, rule, IPPROTO_TCP); hclge_fd_get_tcpip6_tuple(fs, rule, IPPROTO_TCP);
break; break;
case UDP_V6_FLOW: case UDP_V6_FLOW:
hclge_fd_get_tcpip6_tuple(hdev, fs, rule, IPPROTO_UDP); hclge_fd_get_tcpip6_tuple(fs, rule, IPPROTO_UDP);
break; break;
case IPV6_USER_FLOW: case IPV6_USER_FLOW:
hclge_fd_get_ip6_tuple(hdev, fs, rule); hclge_fd_get_ip6_tuple(fs, rule);
break; break;
case VXLAN_V6_FLOW: case VXLAN_V6_FLOW:
hclge_fd_get_vxlan6_tuple(fs, rule); hclge_fd_get_vxlan6_tuple(fs, rule);
break; break;
case ETHER_FLOW: case ETHER_FLOW:
hclge_fd_get_ether_tuple(hdev, fs, rule); hclge_fd_get_ether_tuple(fs, rule);
break; break;
default: default:
return -EOPNOTSUPP; return -EOPNOTSUPP;
...@@ -6908,7 +6899,7 @@ static int hclge_add_fd_entry(struct hnae3_handle *handle, ...@@ -6908,7 +6899,7 @@ static int hclge_add_fd_entry(struct hnae3_handle *handle,
if (!rule) if (!rule)
return -ENOMEM; return -ENOMEM;
ret = hclge_fd_get_tuple(hdev, fs, rule, &info); ret = hclge_fd_get_tuple(fs, rule, &info);
if (ret) { if (ret) {
kfree(rule); kfree(rule);
return ret; return ret;
......
...@@ -822,15 +822,10 @@ struct hclge_vf_vlan_cfg { ...@@ -822,15 +822,10 @@ struct hclge_vf_vlan_cfg {
* Then for input key(k) and mask(v), we can calculate the value by * Then for input key(k) and mask(v), we can calculate the value by
* the formulae: * the formulae:
* x = (~k) & v * x = (~k) & v
* y = (k ^ ~v) & k * y = k & v
*/ */
#define calc_x(x, k, v) (x = ~(k) & (v)) #define calc_x(x, k, v) ((x) = ~(k) & (v))
#define calc_y(y, k, v) \ #define calc_y(y, k, v) ((y) = (k) & (v))
do { \
const typeof(k) _k_ = (k); \
const typeof(v) _v_ = (v); \
(y) = (_k_ ^ ~_v_) & (_k_); \
} while (0)
#define HCLGE_MAC_STATS_FIELD_OFF(f) (offsetof(struct hclge_mac_stats, f)) #define HCLGE_MAC_STATS_FIELD_OFF(f) (offsetof(struct hclge_mac_stats, f))
#define HCLGE_STATS_READ(p, offset) (*(u64 *)((u8 *)(p) + (offset))) #define HCLGE_STATS_READ(p, offset) (*(u64 *)((u8 *)(p) + (offset)))
......
...@@ -121,8 +121,7 @@ static struct hclgevf_dev *hclgevf_ae_get_hdev(struct hnae3_handle *handle) ...@@ -121,8 +121,7 @@ static struct hclgevf_dev *hclgevf_ae_get_hdev(struct hnae3_handle *handle)
return container_of(handle, struct hclgevf_dev, nic); return container_of(handle, struct hclgevf_dev, nic);
} }
static void hclgevf_update_stats(struct hnae3_handle *handle, static void hclgevf_update_stats(struct hnae3_handle *handle)
struct net_device_stats *net_stats)
{ {
struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle); struct hclgevf_dev *hdev = hclgevf_ae_get_hdev(handle);
int status; int status;
...@@ -1713,8 +1712,7 @@ static void hclgevf_reset(struct hclgevf_dev *hdev) ...@@ -1713,8 +1712,7 @@ static void hclgevf_reset(struct hclgevf_dev *hdev)
hclgevf_reset_err_handle(hdev); hclgevf_reset_err_handle(hdev);
} }
static enum hnae3_reset_type hclgevf_get_reset_level(struct hclgevf_dev *hdev, static enum hnae3_reset_type hclgevf_get_reset_level(unsigned long *addr)
unsigned long *addr)
{ {
enum hnae3_reset_type rst_level = HNAE3_NONE_RESET; enum hnae3_reset_type rst_level = HNAE3_NONE_RESET;
...@@ -1753,8 +1751,7 @@ static void hclgevf_reset_event(struct pci_dev *pdev, ...@@ -1753,8 +1751,7 @@ static void hclgevf_reset_event(struct pci_dev *pdev,
if (hdev->default_reset_request) if (hdev->default_reset_request)
hdev->reset_level = hdev->reset_level =
hclgevf_get_reset_level(hdev, hclgevf_get_reset_level(&hdev->default_reset_request);
&hdev->default_reset_request);
else else
hdev->reset_level = HNAE3_VF_FUNC_RESET; hdev->reset_level = HNAE3_VF_FUNC_RESET;
...@@ -1896,7 +1893,7 @@ static void hclgevf_reset_service_task(struct hclgevf_dev *hdev) ...@@ -1896,7 +1893,7 @@ static void hclgevf_reset_service_task(struct hclgevf_dev *hdev)
hdev->last_reset_time = jiffies; hdev->last_reset_time = jiffies;
hdev->reset_type = hdev->reset_type =
hclgevf_get_reset_level(hdev, &hdev->reset_pending); hclgevf_get_reset_level(&hdev->reset_pending);
if (hdev->reset_type != HNAE3_NONE_RESET) if (hdev->reset_type != HNAE3_NONE_RESET)
hclgevf_reset(hdev); hclgevf_reset(hdev);
} else if (test_and_clear_bit(HCLGEVF_RESET_REQUESTED, } else if (test_and_clear_bit(HCLGEVF_RESET_REQUESTED,
...@@ -2230,8 +2227,7 @@ static int hclgevf_rss_init_hw(struct hclgevf_dev *hdev) ...@@ -2230,8 +2227,7 @@ static int hclgevf_rss_init_hw(struct hclgevf_dev *hdev)
if (ret) if (ret)
return ret; return ret;
ret = hclge_comm_set_rss_input_tuple(&hdev->nic, &hdev->hw.hw, ret = hclge_comm_set_rss_input_tuple(&hdev->hw.hw, rss_cfg);
false, rss_cfg);
if (ret) if (ret)
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册