提交 2384f8a5 编写于 作者: G gaoxun 提交者: Yang Yingliang

net: hns3: cae security review

driver inclusion
category: cleanup
bugzilla: NA
CVE: NA
----------------------------------------------------------
This patch is dedicated to solve some review issues:
1.bool type variables are initialized at declaration;
2.Pointer variables are properly initialized at declaration
3.Certain prevailing input paraemeters, 'priv' in specific, of pointer
type whose associated memory is not expected to be modified in
principle, is specified as a pointer to const data type;
4.Handle functions in cae_ext are renamed to present the code
in a straightforward while informative manner;
Signed-off-by: Ngaoxun <gaoxun3@huawei.com>
Reviewed-by: Ndengweiwei <dengweiwei@huawei.com>
Reviewed-by:chenjunxin <chenjunxin1@huawei.com>
Reviewed-by:youshengzui <youshengzui@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 d3c6427c
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/types.h> #include <linux/types.h>
#define HNAE3_MOD_VERSION "1.9.30.0" #define HNAE3_MOD_VERSION "1.9.32.0"
#define HNAE3_MIN_VECTOR_NUM 2 /* one for msi-x, another for IO */ #define HNAE3_MIN_VECTOR_NUM 2 /* one for msi-x, another for IO */
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
static int hns3_cae_chs_set(struct hclge_dev *hdev, u8 chs_type, u8 enable) static int hns3_cae_chs_set(struct hclge_dev *hdev, u8 chs_type, u8 enable)
{ {
struct hns3_cae_chs_cmd_param *recv; struct hns3_cae_chs_cmd_param *recv = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int ret; int ret;
...@@ -58,7 +58,7 @@ static int hns3_cae_chs_set(struct hclge_dev *hdev, u8 chs_type, u8 enable) ...@@ -58,7 +58,7 @@ static int hns3_cae_chs_set(struct hclge_dev *hdev, u8 chs_type, u8 enable)
static int hns3_cae_chs_get(struct hclge_dev *hdev, u8 chs_type, u8 *enable) static int hns3_cae_chs_get(struct hclge_dev *hdev, u8 chs_type, u8 *enable)
{ {
struct hns3_cae_chs_cmd_param *recv; struct hns3_cae_chs_cmd_param *recv = NULL;
struct hclge_desc desc; struct hclge_desc desc;
u8 inner_sctp_en; u8 inner_sctp_en;
u8 inner_tcp_en; u8 inner_tcp_en;
...@@ -109,17 +109,17 @@ static int hns3_cae_chs_get(struct hclge_dev *hdev, u8 chs_type, u8 *enable) ...@@ -109,17 +109,17 @@ static int hns3_cae_chs_get(struct hclge_dev *hdev, u8 chs_type, u8 *enable)
return ret; return ret;
} }
int hns3_cae_chs_cfg(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_chs_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
u32 in_size, void *buf_out, u32 out_size) u32 in_size, void *buf_out, u32 out_size)
{ {
struct hns3_cae_chs_param *in_info; struct hns3_cae_chs_param *in_info =
struct hclge_vport *vport; (struct hns3_cae_chs_param *)buf_in;
struct hclge_dev *hdev; struct hclge_vport *vport = NULL;
u8 *out_info; struct hclge_dev *hdev = NULL;
bool check; u8 *out_info = NULL;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_chs_param);
u8 is_set; u8 is_set;
check = !buf_in || in_size < sizeof(struct hns3_cae_chs_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -127,7 +127,6 @@ int hns3_cae_chs_cfg(struct hns3_nic_priv *net_priv, void *buf_in, ...@@ -127,7 +127,6 @@ int hns3_cae_chs_cfg(struct hns3_nic_priv *net_priv, void *buf_in,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
in_info = (struct hns3_cae_chs_param *)buf_in;
out_info = (u8 *)buf_out; out_info = (u8 *)buf_out;
is_set = in_info->is_set; is_set = in_info->is_set;
......
...@@ -43,6 +43,7 @@ struct hns3_cae_chs_param { ...@@ -43,6 +43,7 @@ struct hns3_cae_chs_param {
u8 is_enable; u8 is_enable;
}; };
int hns3_cae_chs_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_chs_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -166,8 +166,8 @@ void hns3_cae_cmd_setup_basic_desc(struct hclge_desc *desc, ...@@ -166,8 +166,8 @@ void hns3_cae_cmd_setup_basic_desc(struct hclge_desc *desc,
**/ **/
int hns3_cae_cmd_send(struct hclge_dev *hdev, struct hclge_desc *desc, int num) int hns3_cae_cmd_send(struct hclge_dev *hdev, struct hclge_desc *desc, int num)
{ {
struct hclge_desc *desc_to_use; struct hclge_desc *desc_to_use = NULL;
struct hclge_cmq_ring *csq; struct hclge_cmq_ring *csq = NULL;
bool complete = false; bool complete = false;
u32 timeout = 0; u32 timeout = 0;
int handle = 0; int handle = 0;
......
...@@ -18,13 +18,13 @@ ...@@ -18,13 +18,13 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_common.h" #include "hns3_cae_common.h"
static int hns3_cae_write_reg_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_write_reg_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct reg_param *in_buf = (struct reg_param *)buf_in; struct reg_param *in_buf = (struct reg_param *)buf_in;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int ret; int ret;
...@@ -52,7 +52,7 @@ static int hns3_cae_write_reg_cfg(struct hns3_nic_priv *net_priv, ...@@ -52,7 +52,7 @@ static int hns3_cae_write_reg_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
static int hns3_cae_read_reg_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_read_reg_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
...@@ -61,10 +61,9 @@ static int hns3_cae_read_reg_cfg(struct hns3_nic_priv *net_priv, ...@@ -61,10 +61,9 @@ static int hns3_cae_read_reg_cfg(struct hns3_nic_priv *net_priv,
struct reg_param *in_buf = (struct reg_param *)buf_in; struct reg_param *in_buf = (struct reg_param *)buf_in;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_out || out_size < sizeof(struct reg_param);
int ret; int ret;
check = !buf_out || out_size < sizeof(struct reg_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -92,14 +91,14 @@ static int hns3_cae_read_reg_cfg(struct hns3_nic_priv *net_priv, ...@@ -92,14 +91,14 @@ static int hns3_cae_read_reg_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_reg_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_reg_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
bool check = !buf_in || in_size < sizeof(struct reg_param);
struct reg_param *mode_param = (struct reg_param *)buf_in; struct reg_param *mode_param = (struct reg_param *)buf_in;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct reg_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -20,6 +20,6 @@ struct reg_ret_param { ...@@ -20,6 +20,6 @@ struct reg_ret_param {
u32 value[REG_RDATA_NUM]; u32 value[REG_RDATA_NUM];
}; };
int hns3_cae_reg_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size, int hns3_cae_reg_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
#endif #endif
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
struct hns3_cae_dcb_info dcb_all_info[MAX_DEV_LISTED]; struct hns3_cae_dcb_info dcb_all_info[MAX_DEV_LISTED];
static int check_and_set_curr_dev(struct hns3_nic_priv *net_priv) static int check_and_set_curr_dev(const struct hns3_nic_priv *net_priv)
{ {
int i; int i;
...@@ -36,22 +36,22 @@ static int check_and_set_curr_dev(struct hns3_nic_priv *net_priv) ...@@ -36,22 +36,22 @@ static int check_and_set_curr_dev(struct hns3_nic_priv *net_priv)
return i; return i;
} }
int hns3_cae_dcb_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_dcb_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_cae_dcb_cfg_param *out_info = NULL; struct hns3_cae_dcb_cfg_param *out_info =
struct hns3_cae_dcb_cfg_param *in_info = NULL; (struct hns3_cae_dcb_cfg_param *)buf_out;
struct hns3_cae_dcb_cfg_param *in_info =
(struct hns3_cae_dcb_cfg_param *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_dcb_cfg_param);
int curr_dev_idx; int curr_dev_idx;
bool check;
check = !buf_in || in_size < sizeof(struct hns3_cae_dcb_cfg_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
in_info = (struct hns3_cae_dcb_cfg_param *)buf_in;
out_info = (struct hns3_cae_dcb_cfg_param *)buf_out;
curr_dev_idx = check_and_set_curr_dev(net_priv); curr_dev_idx = check_and_set_curr_dev(net_priv);
if (curr_dev_idx < 0) { if (curr_dev_idx < 0) {
pr_err("Exceed MAX_DEV_LISTED: %d\n", MAX_DEV_LISTED); pr_err("Exceed MAX_DEV_LISTED: %d\n", MAX_DEV_LISTED);
...@@ -155,21 +155,22 @@ static int hns3_cae_cfg_pause_param(struct hclge_dev *hdev, ...@@ -155,21 +155,22 @@ static int hns3_cae_cfg_pause_param(struct hclge_dev *hdev,
return 0; return 0;
} }
int hns3_cae_dcb_pfc_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_dcb_pfc_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_cae_pfc_cfg_param *out_info = NULL; struct hns3_cae_pfc_cfg_param *out_info =
struct hns3_cae_pfc_cfg_param *in_info = NULL; (struct hns3_cae_pfc_cfg_param *)buf_out;
struct hns3_cae_pfc_cfg_param *in_info =
(struct hns3_cae_pfc_cfg_param *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_pfc_cfg_param);
struct hclge_vport *vport = NULL; struct hclge_vport *vport = NULL;
struct net_device *ndev = NULL; struct net_device *ndev = NULL;
struct hnae3_handle *h = NULL; struct hnae3_handle *h = NULL;
struct hclge_dev *hdev = NULL; struct hclge_dev *hdev = NULL;
int curr_dev_idx; int curr_dev_idx;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cae_pfc_cfg_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -184,8 +185,6 @@ int hns3_cae_dcb_pfc_cfg(struct hns3_nic_priv *net_priv, ...@@ -184,8 +185,6 @@ int hns3_cae_dcb_pfc_cfg(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(h); vport = hns3_cae_get_vport(h);
ndev = h->netdev; ndev = h->netdev;
hdev = vport->back; hdev = vport->back;
in_info = (struct hns3_cae_pfc_cfg_param *)buf_in;
out_info = (struct hns3_cae_pfc_cfg_param *)buf_out;
if (!in_info->is_read && if (!in_info->is_read &&
!dcb_all_info[curr_dev_idx].dcb_cfg_info.dcb_en) { !dcb_all_info[curr_dev_idx].dcb_cfg_info.dcb_en) {
...@@ -311,25 +310,28 @@ static void hns3_cae_enable_ets_cfg(struct hclge_dev *hdev, ...@@ -311,25 +310,28 @@ static void hns3_cae_enable_ets_cfg(struct hclge_dev *hdev,
} }
} }
int hns3_cae_dcb_ets_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_dcb_ets_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
#define BYTELEN 4 #define BYTELEN 4
struct hns3_cae_ets_cfg_param *out_info = NULL; struct hns3_cae_ets_cfg_param *out_info =
struct hns3_cae_ets_cfg_param *in_info = NULL; (struct hns3_cae_ets_cfg_param *)buf_out;
struct hns3_cae_ets_cfg_param *in_info =
(struct hns3_cae_ets_cfg_param *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_cae_ets_cfg_param) ||
!buf_out ||
out_size < sizeof(struct hns3_cae_ets_cfg_param);
struct hclge_vport *vport = NULL; struct hclge_vport *vport = NULL;
struct net_device *ndev = NULL; struct net_device *ndev = NULL;
struct hclge_dev *hdev = NULL; struct hclge_dev *hdev = NULL;
struct hnae3_handle *h = NULL; struct hnae3_handle *h = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int curr_dev_idx; int curr_dev_idx;
bool check;
int ret; int ret;
int i; int i;
check = !buf_in || in_size < sizeof(struct hns3_cae_ets_cfg_param) ||
!buf_out || out_size < sizeof(struct hns3_cae_ets_cfg_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -344,8 +346,6 @@ int hns3_cae_dcb_ets_cfg(struct hns3_nic_priv *net_priv, ...@@ -344,8 +346,6 @@ int hns3_cae_dcb_ets_cfg(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(h); vport = hns3_cae_get_vport(h);
ndev = h->netdev; ndev = h->netdev;
hdev = vport->back; hdev = vport->back;
in_info = (struct hns3_cae_ets_cfg_param *)buf_in;
out_info = (struct hns3_cae_ets_cfg_param *)buf_out;
if (!in_info->is_read && if (!in_info->is_read &&
!dcb_all_info[curr_dev_idx].dcb_cfg_info.dcb_en) { !dcb_all_info[curr_dev_idx].dcb_cfg_info.dcb_en) {
......
...@@ -51,18 +51,19 @@ struct hns3_cae_ets_cfg_param { ...@@ -51,18 +51,19 @@ struct hns3_cae_ets_cfg_param {
}; };
struct hns3_cae_dcb_info { struct hns3_cae_dcb_info {
struct hns3_nic_priv *net_priv; const struct hns3_nic_priv *net_priv;
struct hns3_cae_pfc_cfg_param pfc_cfg_info; struct hns3_cae_pfc_cfg_param pfc_cfg_info;
struct hns3_cae_dcb_cfg_param dcb_cfg_info; struct hns3_cae_dcb_cfg_param dcb_cfg_info;
struct hns3_cae_ets_cfg_param ets_cfg_info; struct hns3_cae_ets_cfg_param ets_cfg_info;
}; };
int hns3_cae_dcb_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_dcb_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
int hns3_cae_dcb_ets_cfg(struct hns3_nic_priv *net_priv, u32 out_size);
int hns3_cae_dcb_ets_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_dcb_pfc_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_dcb_pfc_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
#endif #endif
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_dcqcn.h" #include "hns3_cae_dcqcn.h"
static int hns3_dcqcn_rw(struct hns3_nic_priv *net_priv, static int hns3_dcqcn_rw(const struct hns3_nic_priv *net_priv,
u32 offset, u32 *data, u32 rw_type) u32 offset, u32 *data, u32 rw_type)
{ {
struct hnae3_handle *h = net_priv->ae_handle; struct hnae3_handle *h = net_priv->ae_handle;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int ret; int ret;
...@@ -55,7 +55,7 @@ static int hns3_dcqcn_rw(struct hns3_nic_priv *net_priv, ...@@ -55,7 +55,7 @@ static int hns3_dcqcn_rw(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv, int hns3_nic_dcqcn(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out, u32 out_size)
{ {
#define SCC_TEMP_CFG0 0x6000 #define SCC_TEMP_CFG0 0x6000
...@@ -64,16 +64,15 @@ int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv, ...@@ -64,16 +64,15 @@ int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv,
#define SCC_TEMP_CFG3 0x600c #define SCC_TEMP_CFG3 0x600c
struct hnae3_handle *h = net_priv->ae_handle; struct hnae3_handle *h = net_priv->ae_handle;
struct hclge_vport *vport = container_of(h, struct hclge_vport, nic); struct hclge_vport *vport = container_of(h, struct hclge_vport, nic);
bool check = !buf_in || in_size < sizeof(struct cfg_dcqcn_param);
struct cfg_dcqcn_param *parm_out = buf_out; struct cfg_dcqcn_param *parm_out = buf_out;
struct cfg_dcqcn_param *parm_in = buf_in; struct cfg_dcqcn_param *parm_in = buf_in;
struct cfg_dcqcn_param tempbuffer = {0}; struct cfg_dcqcn_param tempbuffer = {0};
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
u32 tempoutbuff; u32 tempoutbuff;
u32 offset; u32 offset;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct cfg_dcqcn_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -226,7 +225,7 @@ int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv, ...@@ -226,7 +225,7 @@ int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_dcqcn_get_msg_cnt(struct hns3_nic_priv *net_priv, int hns3_dcqcn_get_msg_cnt(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
...@@ -235,10 +234,10 @@ int hns3_dcqcn_get_msg_cnt(struct hns3_nic_priv *net_priv, ...@@ -235,10 +234,10 @@ int hns3_dcqcn_get_msg_cnt(struct hns3_nic_priv *net_priv,
struct dcqcn_statistic_param *statistic_parm_out = buf_out; struct dcqcn_statistic_param *statistic_parm_out = buf_out;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_out ||
out_size < sizeof(struct dcqcn_statistic_param);
int ret; int ret;
check = !buf_out || out_size < sizeof(struct dcqcn_statistic_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -51,9 +51,10 @@ struct dcqcn_statistic_param { ...@@ -51,9 +51,10 @@ struct dcqcn_statistic_param {
#define HIARM_DCQCN_READ_CFG_MODE 30 #define HIARM_DCQCN_READ_CFG_MODE 30
#define HIARM_DCQCN_WRITE_CFG_MODE 31 #define HIARM_DCQCN_WRITE_CFG_MODE 31
int hns3_nic_dcqcn(struct hns3_nic_priv *net_priv, int hns3_nic_dcqcn(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
int hns3_dcqcn_get_msg_cnt(struct hns3_nic_priv *net_priv, u32 out_size);
int hns3_dcqcn_get_msg_cnt(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
#endif #endif
...@@ -80,24 +80,24 @@ static int hns3_cae_get_chip_and_mac_id(struct hnae3_handle *handle, ...@@ -80,24 +80,24 @@ static int hns3_cae_get_chip_and_mac_id(struct hnae3_handle *handle,
return 0; return 0;
} }
int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv, int hns3_cae_get_dfx_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
#define HNS3_CAE_MAC_MODE_ADDR 0x10000000U #define HNS3_CAE_MAC_MODE_ADDR 0x10000000U
#define HNS3_CAE_MAC_MAP_ADDR 0x10000008U #define HNS3_CAE_MAC_MAP_ADDR 0x10000008U
struct hns3_cae_dfx_param *out_info = NULL; struct hns3_cae_dfx_param *out_info =
(struct hns3_cae_dfx_param *)buf_out;
struct hns3_cae_reg_param reg_info; struct hns3_cae_reg_param reg_info;
struct hnae3_handle *handle = NULL; struct hnae3_handle *handle = NULL;
struct hclge_vport *vport = NULL; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev = NULL; struct hclge_dev *hdev = NULL;
u32 chip_id; u32 chip_id;
u32 mac_id; u32 mac_id;
bool check; bool check = !buf_out || out_size < sizeof(struct hns3_cae_dfx_param);
int ret; int ret;
int i; int i;
check = !buf_out || out_size < sizeof(struct hns3_cae_dfx_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -106,7 +106,6 @@ int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv, ...@@ -106,7 +106,6 @@ int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv,
handle = net_priv->ae_handle; handle = net_priv->ae_handle;
vport = hns3_cae_get_vport(handle); vport = hns3_cae_get_vport(handle);
hdev = vport->back; hdev = vport->back;
out_info = (struct hns3_cae_dfx_param *)buf_out;
ret = hns3_cae_get_chip_and_mac_id(handle, &chip_id, &mac_id); ret = hns3_cae_get_chip_and_mac_id(handle, &chip_id, &mac_id);
if (ret) if (ret)
...@@ -139,18 +138,19 @@ int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv, ...@@ -139,18 +138,19 @@ int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv, int hns3_cae_read_dfx_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_cae_reg_param *out_info = NULL; struct hns3_cae_reg_param *out_info =
struct hns3_cae_reg_param *in_info = NULL; (struct hns3_cae_reg_param *)buf_out;
struct hns3_cae_reg_param *in_info =
(struct hns3_cae_reg_param *)buf_in;
struct hclge_vport *vport = NULL; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev = NULL; struct hclge_dev *hdev = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_cae_reg_param);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cae_reg_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -159,9 +159,6 @@ int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv, ...@@ -159,9 +159,6 @@ int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
in_info = (struct hns3_cae_reg_param *)buf_in;
out_info = (struct hns3_cae_reg_param *)buf_out;
if (in_info->is_read) { if (in_info->is_read) {
check = !buf_out || check = !buf_out ||
out_size < sizeof(struct hns3_cae_reg_param); out_size < sizeof(struct hns3_cae_reg_param);
...@@ -186,18 +183,18 @@ int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv, ...@@ -186,18 +183,18 @@ int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_event_injection(struct hns3_nic_priv *net_priv, int hns3_cae_event_injection(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_cae_event_param *in_info = NULL; struct hns3_cae_event_param *in_info =
(struct hns3_cae_event_param *)buf_in;
struct hns3_cae_reg_param reg_info; struct hns3_cae_reg_param reg_info;
struct hclge_vport *vport = NULL; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev = NULL; struct hclge_dev *hdev = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_cae_event_param);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cae_event_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -206,7 +203,6 @@ int hns3_cae_event_injection(struct hns3_nic_priv *net_priv, ...@@ -206,7 +203,6 @@ int hns3_cae_event_injection(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
in_info = (struct hns3_cae_event_param *)buf_in;
reg_info.addr = in_info->addr; reg_info.addr = in_info->addr;
reg_info.bit_width = 32; reg_info.bit_width = 32;
reg_info.is_read = false; reg_info.is_read = false;
......
...@@ -35,13 +35,13 @@ struct hns3_cae_event_param { ...@@ -35,13 +35,13 @@ struct hns3_cae_event_param {
#define HNS3_CAE_MAX_MAC_NUMBER 0x8 #define HNS3_CAE_MAX_MAC_NUMBER 0x8
int hns3_cae_get_dfx_info(struct hns3_nic_priv *net_priv, int hns3_cae_get_dfx_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_read_dfx_info(struct hns3_nic_priv *net_priv, int hns3_cae_read_dfx_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_event_injection(struct hns3_nic_priv *net_priv, int hns3_cae_event_injection(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -5,17 +5,17 @@ ...@@ -5,17 +5,17 @@
#include "hns3_cae_ext.h" #include "hns3_cae_ext.h"
#include "hns3_ext.h" #include "hns3_ext.h"
static int hns3_ext_test_disable_netclk(struct hns3_nic_priv *net_priv) static int hns3_disable_netclk(const struct hns3_nic_priv *net_priv)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
return nic_disable_clock(netdev); return nic_disable_clock(netdev);
} }
static int hns3_get_cpu_affinity(struct hns3_nic_priv *priv) static int hns3_get_cpu_affinity(const struct hns3_nic_priv *priv)
{ {
struct hns3_enet_tqp_vector *tqp_vector; struct hns3_enet_tqp_vector *tqp_vector = NULL;
struct hnae3_handle *h; struct hnae3_handle *h = NULL;
int i; int i;
if (!priv) { if (!priv) {
...@@ -42,9 +42,9 @@ static int hns3_get_cpu_affinity(struct hns3_nic_priv *priv) ...@@ -42,9 +42,9 @@ static int hns3_get_cpu_affinity(struct hns3_nic_priv *priv)
return 0; return 0;
} }
static int hns3_ext_test_affi(struct hns3_nic_priv *net_priv, void *in) static int hns3_affi(const struct hns3_nic_priv *net_priv, void *in)
{ {
struct hns3_cpumask_param *cpumask_param; struct hns3_cpumask_param *cpumask_param = NULL;
cpumask_var_t cpumask_new; cpumask_var_t cpumask_new;
int ret; int ret;
...@@ -77,7 +77,7 @@ static int hns3_ext_test_affi(struct hns3_nic_priv *net_priv, void *in) ...@@ -77,7 +77,7 @@ static int hns3_ext_test_affi(struct hns3_nic_priv *net_priv, void *in)
return ret; return ret;
} }
static int hns3_ext_test_get_chipid(struct hns3_nic_priv *net_priv, void *out) static int hns3_get_chipid(const struct hns3_nic_priv *net_priv, void *out)
{ {
u32 chip_id; u32 chip_id;
int ret; int ret;
...@@ -89,14 +89,14 @@ static int hns3_ext_test_get_chipid(struct hns3_nic_priv *net_priv, void *out) ...@@ -89,14 +89,14 @@ static int hns3_ext_test_get_chipid(struct hns3_nic_priv *net_priv, void *out)
return ret; return ret;
} }
static int hns3_ext_test_match_check(struct hns3_nic_priv *net_priv) static int hns3_match_check(const struct hns3_nic_priv *net_priv)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
return nic_netdev_match_check(netdev); return nic_netdev_match_check(netdev);
} }
static int hns3_ext_test_set_led(struct hns3_nic_priv *net_priv, void *in) static int hns3_set_led(const struct hns3_nic_priv *net_priv, void *in)
{ {
struct hns3_led_state_para *para = (struct hns3_led_state_para *)in; struct hns3_led_state_para *para = (struct hns3_led_state_para *)in;
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
...@@ -104,8 +104,8 @@ static int hns3_ext_test_set_led(struct hns3_nic_priv *net_priv, void *in) ...@@ -104,8 +104,8 @@ static int hns3_ext_test_set_led(struct hns3_nic_priv *net_priv, void *in)
return nic_set_led(netdev, para->type, para->status); return nic_set_led(netdev, para->type, para->status);
} }
static int hns3_ext_test_get_sfp_info(struct hns3_nic_priv *net_priv, void *in, static int hns3_get_sfp_info(const struct hns3_nic_priv *net_priv, void *in,
void *out) void *out)
{ {
struct hns3_priv_sfp_info_para *para_in = struct hns3_priv_sfp_info_para *para_in =
(struct hns3_priv_sfp_info_para *)in; (struct hns3_priv_sfp_info_para *)in;
...@@ -120,8 +120,8 @@ static int hns3_ext_test_get_sfp_info(struct hns3_nic_priv *net_priv, void *in, ...@@ -120,8 +120,8 @@ static int hns3_ext_test_get_sfp_info(struct hns3_nic_priv *net_priv, void *in,
return ret; return ret;
} }
static int hns3_ext_test_get_sfp_present(struct hns3_nic_priv *net_priv, static int hns3_get_sfp_present(const struct hns3_nic_priv *net_priv,
void *out) void *out)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
u32 present; u32 present;
...@@ -134,7 +134,7 @@ static int hns3_ext_test_get_sfp_present(struct hns3_nic_priv *net_priv, ...@@ -134,7 +134,7 @@ static int hns3_ext_test_get_sfp_present(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
static int hns3_ext_test_set_sfp_state(struct hns3_nic_priv *net_priv, void *in) static int hns3_set_sfp_state(const struct hns3_nic_priv *net_priv, void *in)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
bool en = *(bool *)in; bool en = *(bool *)in;
...@@ -142,14 +142,14 @@ static int hns3_ext_test_set_sfp_state(struct hns3_nic_priv *net_priv, void *in) ...@@ -142,14 +142,14 @@ static int hns3_ext_test_set_sfp_state(struct hns3_nic_priv *net_priv, void *in)
return nic_set_sfp_state(netdev, en); return nic_set_sfp_state(netdev, en);
} }
static int hns3_ext_test_clean_stats64(struct hns3_nic_priv *net_priv) static int hns3_clean_stats64(const struct hns3_nic_priv *net_priv)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
return nic_clean_stats64(netdev, NULL); return nic_clean_stats64(netdev, NULL);
} }
static int hns3_ext_test_get_chip_num(struct hns3_nic_priv *net_priv, void *out) static int hns3_get_chip_num(const struct hns3_nic_priv *net_priv, void *out)
{ {
u32 chip_num; u32 chip_num;
int ret; int ret;
...@@ -161,7 +161,7 @@ static int hns3_ext_test_get_chip_num(struct hns3_nic_priv *net_priv, void *out) ...@@ -161,7 +161,7 @@ static int hns3_ext_test_get_chip_num(struct hns3_nic_priv *net_priv, void *out)
return ret; return ret;
} }
static int hns3_ext_test_get_port_num(struct hns3_nic_priv *net_priv, void *out) static int hns3_get_port_num(const struct hns3_nic_priv *net_priv, void *out)
{ {
u32 port_num; u32 port_num;
int ret; int ret;
...@@ -173,15 +173,15 @@ static int hns3_ext_test_get_port_num(struct hns3_nic_priv *net_priv, void *out) ...@@ -173,15 +173,15 @@ static int hns3_ext_test_get_port_num(struct hns3_nic_priv *net_priv, void *out)
return ret; return ret;
} }
static int hns3_ext_test_disable_net_lane(struct hns3_nic_priv *net_priv) static int hns3_disable_net_lane(const struct hns3_nic_priv *net_priv)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
return nic_disable_net_lane(netdev); return nic_disable_net_lane(netdev);
} }
static int hns3_ext_test_get_lane_status(struct hns3_nic_priv *net_priv, static int hns3_get_lane_status(const struct hns3_nic_priv *net_priv,
void *out) void *out)
{ {
u32 lane_status; u32 lane_status;
int ret; int ret;
...@@ -193,7 +193,7 @@ static int hns3_ext_test_get_lane_status(struct hns3_nic_priv *net_priv, ...@@ -193,7 +193,7 @@ static int hns3_ext_test_get_lane_status(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
static int hns3_ext_test_set_mac_state(struct hns3_nic_priv *net_priv, void *in) static int hns3_set_mac_state(const struct hns3_nic_priv *net_priv, void *in)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
int enable = *(int *)in; int enable = *(int *)in;
...@@ -201,8 +201,8 @@ static int hns3_ext_test_set_mac_state(struct hns3_nic_priv *net_priv, void *in) ...@@ -201,8 +201,8 @@ static int hns3_ext_test_set_mac_state(struct hns3_nic_priv *net_priv, void *in)
return nic_set_mac_state(netdev, enable); return nic_set_mac_state(netdev, enable);
} }
static int hns3_ext_test_set_pfc_storm_para(struct hns3_nic_priv *net_priv, static int hns3_set_pfc_storm_para(const struct hns3_nic_priv *net_priv,
void *in) void *in)
{ {
struct hns3_pfc_storm_para *para = (struct hns3_pfc_storm_para *)in; struct hns3_pfc_storm_para *para = (struct hns3_pfc_storm_para *)in;
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
...@@ -212,13 +212,13 @@ static int hns3_ext_test_set_pfc_storm_para(struct hns3_nic_priv *net_priv, ...@@ -212,13 +212,13 @@ static int hns3_ext_test_set_pfc_storm_para(struct hns3_nic_priv *net_priv,
para->recovery_period_ms); para->recovery_period_ms);
} }
static int hns3_ext_test_get_pfc_storm_para(struct hns3_nic_priv *net_priv, static int hns3_get_pfc_storm_para(const struct hns3_nic_priv *net_priv,
void *in, void *out) void *in, void *out)
{ {
struct hns3_pfc_storm_para *para_in = (struct hns3_pfc_storm_para *)in; struct hns3_pfc_storm_para *para_in = (struct hns3_pfc_storm_para *)in;
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
struct hns3_pfc_storm_para *para_out = struct hns3_pfc_storm_para *para_out =
(struct hns3_pfc_storm_para *)out; (struct hns3_pfc_storm_para *)out;
u32 recovery_period_ms; u32 recovery_period_ms;
u32 period_ms; u32 period_ms;
u32 enable; u32 enable;
...@@ -240,9 +240,9 @@ static int hns3_ext_test_get_pfc_storm_para(struct hns3_nic_priv *net_priv, ...@@ -240,9 +240,9 @@ static int hns3_ext_test_get_pfc_storm_para(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
static int hns3_ext_test_get_phy_reg(struct hns3_nic_priv *net_priv, static int hns3_get_phy_reg(const struct hns3_nic_priv *net_priv,
void *in, void *out, void *in, void *out,
enum phy_type phy_type) enum phy_type phy_type)
{ {
struct hns3_phy_para *para_out = (struct hns3_phy_para *)out; struct hns3_phy_para *para_out = (struct hns3_phy_para *)out;
struct hns3_phy_para *para_in = (struct hns3_phy_para *)in; struct hns3_phy_para *para_in = (struct hns3_phy_para *)in;
...@@ -268,8 +268,8 @@ static int hns3_ext_test_get_phy_reg(struct hns3_nic_priv *net_priv, ...@@ -268,8 +268,8 @@ static int hns3_ext_test_get_phy_reg(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
static int hns3_ext_test_set_phy_reg(struct hns3_nic_priv *net_priv, static int hns3_set_phy_reg(const struct hns3_nic_priv *net_priv, void *in,
void *in, enum phy_type phy_type) enum phy_type phy_type)
{ {
struct hns3_phy_para *para = (struct hns3_phy_para *)in; struct hns3_phy_para *para = (struct hns3_phy_para *)in;
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
...@@ -284,7 +284,7 @@ static int hns3_ext_test_set_phy_reg(struct hns3_nic_priv *net_priv, ...@@ -284,7 +284,7 @@ static int hns3_ext_test_set_phy_reg(struct hns3_nic_priv *net_priv,
para->data); para->data);
} }
static int hns3_ext_test_get_macid(struct hns3_nic_priv *net_priv, void *out) static int hns3_get_macid(const struct hns3_nic_priv *net_priv, void *out)
{ {
u32 mac_id; u32 mac_id;
int ret; int ret;
...@@ -296,8 +296,8 @@ static int hns3_ext_test_get_macid(struct hns3_nic_priv *net_priv, void *out) ...@@ -296,8 +296,8 @@ static int hns3_ext_test_get_macid(struct hns3_nic_priv *net_priv, void *out)
return ret; return ret;
} }
static int hns3_ext_test_get_hilink_ref_los(struct hns3_nic_priv *net_priv, static int hns3_get_hilink_ref_los(const struct hns3_nic_priv *net_priv,
void *out) void *out)
{ {
u32 status; u32 status;
int ret; int ret;
...@@ -309,8 +309,7 @@ static int hns3_ext_test_get_hilink_ref_los(struct hns3_nic_priv *net_priv, ...@@ -309,8 +309,7 @@ static int hns3_ext_test_get_hilink_ref_los(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
static int hns3_ext_test_get_port_type(struct hns3_nic_priv *net_priv, static int hns3_get_port_type(const struct hns3_nic_priv *net_priv, void *out)
void *out)
{ {
u32 wire_type; u32 wire_type;
int ret; int ret;
...@@ -322,100 +321,97 @@ static int hns3_ext_test_get_port_type(struct hns3_nic_priv *net_priv, ...@@ -322,100 +321,97 @@ static int hns3_ext_test_get_port_type(struct hns3_nic_priv *net_priv,
return ret; return ret;
} }
int hns3_ext_interface_test(struct hns3_nic_priv *net_priv, int hns3_ext_interface_test(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct cmd_ext_driver_param *ext_param_out; struct cmd_ext_driver_param *ext_param_out =
struct cmd_ext_driver_param *ext_param_in; (struct cmd_ext_driver_param *)buf_out;
bool check; struct cmd_ext_driver_param *ext_param_in =
void *out; (struct cmd_ext_driver_param *)buf_in;
void *in; bool check = !buf_in || in_size < sizeof(struct cmd_ext_driver_param) ||
!buf_out || out_size < sizeof(struct cmd_ext_driver_param);
void *out = NULL;
void *in = NULL;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct cmd_ext_driver_param) ||
!buf_out || out_size < sizeof(struct cmd_ext_driver_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
ext_param_in = (struct cmd_ext_driver_param *)buf_in;
ext_param_out = (struct cmd_ext_driver_param *)buf_out;
in = ext_param_in->buf; in = ext_param_in->buf;
out = ext_param_out->buf; out = ext_param_out->buf;
switch (ext_param_in->op_code) { switch (ext_param_in->op_code) {
case EXT_AFFI_MASK: case EXT_AFFI_MASK:
ret = hns3_ext_test_affi(net_priv, in); ret = hns3_affi(net_priv, in);
break; break;
case EXT_DISABLE_NET_CLK: case EXT_DISABLE_NET_CLK:
ret = hns3_ext_test_disable_netclk(net_priv); ret = hns3_disable_netclk(net_priv);
break; break;
case EXT_GET_CHIP_ID: case EXT_GET_CHIP_ID:
ret = hns3_ext_test_get_chipid(net_priv, out); ret = hns3_get_chipid(net_priv, out);
break; break;
case EXT_NET_MATCH_CHECK: case EXT_NET_MATCH_CHECK:
ret = hns3_ext_test_match_check(net_priv); ret = hns3_match_check(net_priv);
break; break;
case EXT_SET_LED: case EXT_SET_LED:
ret = hns3_ext_test_set_led(net_priv, in); ret = hns3_set_led(net_priv, in);
break; break;
case EXT_GET_SFP_INFO: case EXT_GET_SFP_INFO:
ret = hns3_ext_test_get_sfp_info(net_priv, in, out); ret = hns3_get_sfp_info(net_priv, in, out);
break; break;
case EXT_GET_SFP_PRESENT: case EXT_GET_SFP_PRESENT:
ret = hns3_ext_test_get_sfp_present(net_priv, out); ret = hns3_get_sfp_present(net_priv, out);
break; break;
case EXT_SET_SFP_STATE: case EXT_SET_SFP_STATE:
ret = hns3_ext_test_set_sfp_state(net_priv, in); ret = hns3_set_sfp_state(net_priv, in);
break; break;
case EXT_CLEAN_STATS64: case EXT_CLEAN_STATS64:
ret = hns3_ext_test_clean_stats64(net_priv); ret = hns3_clean_stats64(net_priv);
break; break;
case EXT_GET_CHIP_NUM: case EXT_GET_CHIP_NUM:
ret = hns3_ext_test_get_chip_num(net_priv, out); ret = hns3_get_chip_num(net_priv, out);
break; break;
case EXT_GET_PORT_NUM: case EXT_GET_PORT_NUM:
ret = hns3_ext_test_get_port_num(net_priv, out); ret = hns3_get_port_num(net_priv, out);
break; break;
case EXT_DISABLE_NET_LANE: case EXT_DISABLE_NET_LANE:
ret = hns3_ext_test_disable_net_lane(net_priv); ret = hns3_disable_net_lane(net_priv);
break; break;
case EXT_GET_LANE_STATUS: case EXT_GET_LANE_STATUS:
ret = hns3_ext_test_get_lane_status(net_priv, out); ret = hns3_get_lane_status(net_priv, out);
break; break;
case EXT_SET_MAC_STATE: case EXT_SET_MAC_STATE:
ret = hns3_ext_test_set_mac_state(net_priv, in); ret = hns3_set_mac_state(net_priv, in);
break; break;
case EXT_SET_PFC_STORM_PARA: case EXT_SET_PFC_STORM_PARA:
ret = hns3_ext_test_set_pfc_storm_para(net_priv, in); ret = hns3_set_pfc_storm_para(net_priv, in);
break; break;
case EXT_GET_PFC_STORM_PARA: case EXT_GET_PFC_STORM_PARA:
ret = hns3_ext_test_get_pfc_storm_para(net_priv, in, out); ret = hns3_get_pfc_storm_para(net_priv, in, out);
break; break;
case EXT_GET_PHY_REG: case EXT_GET_PHY_REG:
ret = hns3_ext_test_get_phy_reg(net_priv, in, out, ret = hns3_get_phy_reg(net_priv, in, out, PHY_TYPE_1512);
PHY_TYPE_1512);
break; break;
case EXT_SET_PHY_REG: case EXT_SET_PHY_REG:
ret = hns3_ext_test_set_phy_reg(net_priv, in, PHY_TYPE_1512); ret = hns3_set_phy_reg(net_priv, in, PHY_TYPE_1512);
break; break;
case EXT_GET_MAC_ID: case EXT_GET_MAC_ID:
ret = hns3_ext_test_get_macid(net_priv, out); ret = hns3_get_macid(net_priv, out);
break; break;
case EXT_GET_HILINK_REF_LOS: case EXT_GET_HILINK_REF_LOS:
ret = hns3_ext_test_get_hilink_ref_los(net_priv, out); ret = hns3_get_hilink_ref_los(net_priv, out);
break; break;
case EXT_GET_8211_PHY_REG: case EXT_GET_8211_PHY_REG:
ret = hns3_ext_test_get_phy_reg(net_priv, in, out, ret = hns3_get_phy_reg(net_priv, in, out, PHY_TYPE_8211);
PHY_TYPE_8211);
break; break;
case EXT_SET_8211_PHY_REG: case EXT_SET_8211_PHY_REG:
ret = hns3_ext_test_set_phy_reg(net_priv, in, PHY_TYPE_8211); ret = hns3_set_phy_reg(net_priv, in, PHY_TYPE_8211);
break; break;
case EXT_GET_PORT_TYPE: case EXT_GET_PORT_TYPE:
ret = hns3_ext_test_get_port_type(net_priv, out); ret = hns3_get_port_type(net_priv, out);
break; break;
default: default:
ret = -EFAULT; ret = -EFAULT;
......
...@@ -61,7 +61,7 @@ struct cmd_ext_driver_param { ...@@ -61,7 +61,7 @@ struct cmd_ext_driver_param {
u8 buf[1024]; u8 buf[1024];
}; };
int hns3_ext_interface_test(struct hns3_nic_priv *net_priv, int hns3_ext_interface_test(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -22,10 +22,10 @@ static int hns3_cae_send_generic_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -22,10 +22,10 @@ static int hns3_cae_send_generic_cmd(struct hclge_dev *hdev, u8 *buf_in,
u32 in_size, u8 *buf_out, u32 out_size) u32 in_size, u8 *buf_out, u32 out_size)
{ {
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_get_fd_mode_cmd *mode_cfg; struct hclge_get_fd_mode_cmd *mode_cfg = NULL;
struct hclge_get_fd_mode_cmd *req; struct hclge_get_fd_mode_cmd *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = false;
int ret; int ret;
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_MODE_CTRL, hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_MODE_CTRL,
...@@ -63,14 +63,13 @@ static int hns3_cae_send_generic_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -63,14 +63,13 @@ static int hns3_cae_send_generic_cmd(struct hclge_dev *hdev, u8 *buf_in,
static int hns3_cae_send_allocate_cmd(struct hclge_dev *hdev, u8 *buf_in, static int hns3_cae_send_allocate_cmd(struct hclge_dev *hdev, u8 *buf_in,
u32 in_size, u8 *buf_out, u32 out_size) u32 in_size, u8 *buf_out, u32 out_size)
{ {
struct hclge_get_fd_allocation_cmd *allocation_cfg; struct hclge_get_fd_allocation_cmd *allocation_cfg = NULL;
struct hclge_get_fd_allocation_cmd *req; struct hclge_get_fd_allocation_cmd *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_out ||
out_size < sizeof(struct hclge_get_fd_allocation_cmd);
int ret; int ret;
check = !buf_out ||
out_size < sizeof(struct hclge_get_fd_allocation_cmd);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -102,10 +101,10 @@ static int hns3_cae_send_key_cfg_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -102,10 +101,10 @@ static int hns3_cae_send_key_cfg_cmd(struct hclge_dev *hdev, u8 *buf_in,
u32 in_size, u8 *buf_out, u32 out_size) u32 in_size, u8 *buf_out, u32 out_size)
{ {
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_set_fd_key_config_cmd *key_cfg_data; struct hclge_set_fd_key_config_cmd *key_cfg_data = NULL;
struct hclge_set_fd_key_config_cmd *req; struct hclge_set_fd_key_config_cmd *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = false;
int ret; int ret;
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_KEY_CONFIG, hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_KEY_CONFIG,
...@@ -157,13 +156,13 @@ static int hns3_cae_send_tcam_op_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -157,13 +156,13 @@ static int hns3_cae_send_tcam_op_cmd(struct hclge_dev *hdev, u8 *buf_in,
#define HNS3_CAE_FD_TCAM_BD_NUM 3 #define HNS3_CAE_FD_TCAM_BD_NUM 3
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_desc desc[HNS3_CAE_FD_TCAM_BD_NUM]; struct hclge_desc desc[HNS3_CAE_FD_TCAM_BD_NUM];
struct hclge_fd_tcam_config_1_cmd *req1; struct hclge_fd_tcam_config_1_cmd *req1 = NULL;
struct hclge_fd_tcam_config_2_cmd *req2; struct hclge_fd_tcam_config_2_cmd *req2 = NULL;
struct hclge_fd_tcam_config_3_cmd *req3; struct hclge_fd_tcam_config_3_cmd *req3 = NULL;
struct hclge_fd_tcam_data *tcam_data; struct hclge_fd_tcam_data *tcam_data = NULL;
struct hclge_desc *pdesc; struct hclge_desc *pdesc = NULL;
bool check; bool check = false;
u8 *buf; u8 *buf = NULL;
int ret; int ret;
int i; int i;
...@@ -228,10 +227,10 @@ static int hns3_cae_send_ad_op_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -228,10 +227,10 @@ static int hns3_cae_send_ad_op_cmd(struct hclge_dev *hdev, u8 *buf_in,
u32 in_size, u8 *buf_out, u32 out_size) u32 in_size, u8 *buf_out, u32 out_size)
{ {
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_fd_ad_config_cmd *ad_data; struct hclge_fd_ad_config_cmd *ad_data = NULL;
struct hclge_fd_ad_config_cmd *req; struct hclge_fd_ad_config_cmd *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = false;
int ret; int ret;
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_AD_OP, hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_AD_OP,
...@@ -271,10 +270,10 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -271,10 +270,10 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in,
u32 in_size, u8 *buf_out, u32 out_size) u32 in_size, u8 *buf_out, u32 out_size)
{ {
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_fd_cnt_op_cmd *cnt_data; struct hclge_fd_cnt_op_cmd *cnt_data = NULL;
struct hclge_fd_cnt_op_cmd *req; struct hclge_fd_cnt_op_cmd *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_out || out_size < sizeof(struct hclge_fd_cnt_op_cmd);
int ret; int ret;
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_CNT_OP, true); hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_FD_CNT_OP, true);
...@@ -282,7 +281,6 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -282,7 +281,6 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in,
req->stage = param->stage; req->stage = param->stage;
req->cnt_idx = param->idx; req->cnt_idx = param->idx;
check = !buf_out || out_size < sizeof(struct hclge_fd_cnt_op_cmd);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -300,17 +298,17 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in, ...@@ -300,17 +298,17 @@ static int hns3_cae_send_cnt_op_cmd(struct hclge_dev *hdev, u8 *buf_in,
return 0; return 0;
} }
int hns3_cae_fd_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_fd_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
bool check = !buf_in || in_size < sizeof(struct fd_param);
struct hnae3_handle *handle = net_priv->ae_handle; struct hnae3_handle *handle = net_priv->ae_handle;
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct fd_param *param = (struct fd_param *)buf_in; struct fd_param *param = (struct fd_param *)buf_in;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
int ret = -1; int ret = -1;
bool check;
check = !buf_in || in_size < sizeof(struct fd_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -31,7 +31,8 @@ struct hclge_fd_tcam_data { ...@@ -31,7 +31,8 @@ struct hclge_fd_tcam_data {
u8 tcam_data[52]; u8 tcam_data[52];
}; };
int hns3_cae_fd_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_fd_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -11,20 +11,19 @@ ...@@ -11,20 +11,19 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_gro.h" #include "hns3_cae_gro.h"
int hns3_gro_age_handle(struct hns3_nic_priv *net_priv, int hns3_gro_age_handle(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hnae3_handle *h = net_priv->ae_handle; struct hnae3_handle *h = net_priv->ae_handle;
struct hns3_cae_gro_age_config_cmd *req; struct hns3_cae_gro_age_config_cmd *req = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct gro_param *param; struct gro_param *param = NULL;
struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
struct hclge_dev *hdev; bool check = !buf_in || in_size < sizeof(struct gro_param);
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct gro_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -61,12 +60,13 @@ int hns3_gro_age_handle(struct hns3_nic_priv *net_priv, ...@@ -61,12 +60,13 @@ int hns3_gro_age_handle(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_gro_dump_bd_buff_size(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_gro_dump_bd_buff_size(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hnae3_handle *h; struct hnae3_handle *h = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
if (!buf_out || out_size < sizeof(u16)) { if (!buf_out || out_size < sizeof(u16)) {
pr_err("input param buf_out error in %s function\n", pr_err("input param buf_out error in %s function\n",
......
...@@ -16,9 +16,10 @@ struct gro_param { ...@@ -16,9 +16,10 @@ struct gro_param {
u32 age_cnt; u32 age_cnt;
}; };
int hns3_gro_age_handle(struct hns3_nic_priv *net_priv, int hns3_gro_age_handle(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_gro_dump_bd_buff_size(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_gro_dump_bd_buff_size(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -168,28 +168,26 @@ static int hns3_get_hilink_ffe(struct hclge_dev *hdev, ...@@ -168,28 +168,26 @@ static int hns3_get_hilink_ffe(struct hclge_dev *hdev,
return ret; return ret;
} }
int hns3_get_hilink_param(struct hns3_nic_priv *net_priv, int hns3_get_hilink_param(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev); struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev);
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct hns3_hilink_param *hns3_param_out = NULL; struct hns3_hilink_param *hns3_param_out =
struct hns3_hilink_param *hns3_param_in = NULL; (struct hns3_hilink_param *)buf_out;
struct hns3_hilink_param *hns3_param_in =
(struct hns3_hilink_param *)buf_in;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_hilink_param) ||
!buf_out || out_size < sizeof(struct hns3_hilink_param);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_hilink_param) ||
!buf_out || out_size < sizeof(struct hns3_hilink_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
hns3_param_in = (struct hns3_hilink_param *)buf_in;
hns3_param_out = (struct hns3_hilink_param *)buf_out;
memset(hns3_param_out->ctle_param, 0x0, memset(hns3_param_out->ctle_param, 0x0,
sizeof(hns3_param_out->ctle_param)); sizeof(hns3_param_out->ctle_param));
memset(hns3_param_out->dfe_param, 0x0, memset(hns3_param_out->dfe_param, 0x0,
......
...@@ -45,7 +45,7 @@ struct hns3_hilink_param { ...@@ -45,7 +45,7 @@ struct hns3_hilink_param {
struct hns3_ffe_data ffe_param[HILINK_LANE_MAX_NUM]; struct hns3_ffe_data ffe_param[HILINK_LANE_MAX_NUM];
}; };
int hns3_get_hilink_param(struct hns3_nic_priv *net_priv, int hns3_get_hilink_param(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -59,8 +59,9 @@ static const char hns3_driver_name[] = "hns3"; ...@@ -59,8 +59,9 @@ static const char hns3_driver_name[] = "hns3";
int g_hns3_cae_init_flag; int g_hns3_cae_init_flag;
int g_hns3_cae_ref_cnt; int g_hns3_cae_ref_cnt;
typedef int (*driv_module) (struct hns3_nic_priv *nic_dev, void *buf_in, typedef int (*driv_module) (const struct hns3_nic_priv *nic_dev,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
struct drv_module_handle { struct drv_module_handle {
enum driver_cmd_type driv_cmd_name; enum driver_cmd_type driv_cmd_name;
...@@ -77,7 +78,7 @@ static void free_buff_in(void *buf_in) ...@@ -77,7 +78,7 @@ static void free_buff_in(void *buf_in)
static int alloc_buff_in(struct msg_module *nt_msg, u32 in_size, void **buf_in) static int alloc_buff_in(struct msg_module *nt_msg, u32 in_size, void **buf_in)
{ {
void *msg_buf; void *msg_buf = NULL;
if (!in_size) if (!in_size)
return 0; return 0;
...@@ -469,7 +470,7 @@ static int if_hns3_cae_exist(void) ...@@ -469,7 +470,7 @@ static int if_hns3_cae_exist(void)
static int hns3_cae_k_init(void) static int hns3_cae_k_init(void)
{ {
int ret; int ret;
struct device *pdevice; struct device *pdevice = NULL;
if (g_hns3_cae_init_flag) { if (g_hns3_cae_init_flag) {
g_hns3_cae_ref_cnt++; g_hns3_cae_ref_cnt++;
......
...@@ -20,24 +20,24 @@ struct hns3_irq_lli_param { ...@@ -20,24 +20,24 @@ struct hns3_irq_lli_param {
u16 tqp_nums; u16 tqp_nums;
}; };
int hns3_irq_lli_cfg(struct hns3_nic_priv *net_priv, int hns3_irq_lli_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_irq_lli_param *in_info = NULL; struct hns3_irq_lli_param *in_info =
struct hns3_irq_lli_param *out_info = NULL; (struct hns3_irq_lli_param *)buf_in;
struct hns3_irq_lli_param *out_info =
(struct hns3_irq_lli_param *)buf_out;
struct hnae3_handle *handle = NULL; struct hnae3_handle *handle = NULL;
int is_get; int is_get;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_irq_lli_param);
check = !buf_in || in_size < sizeof(struct hns3_irq_lli_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
handle = net_priv->ae_handle; handle = net_priv->ae_handle;
in_info = (struct hns3_irq_lli_param *)buf_in;
out_info = (struct hns3_irq_lli_param *)buf_out;
is_get = in_info->is_get; is_get = in_info->is_get;
if (is_get) { if (is_get) {
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#ifndef __HNS3_CAE_IRQ_H__ #ifndef __HNS3_CAE_IRQ_H__
#define __HNS3_CAE_IRQ_H__ #define __HNS3_CAE_IRQ_H__
int hns3_irq_lli_cfg(struct hns3_nic_priv *net_priv, int hns3_irq_lli_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "hns3_enet.h" #include "hns3_enet.h"
#include "hns3_cae_lamp.h" #include "hns3_cae_lamp.h"
int hns3_lamp_cfg(struct hns3_nic_priv *net_priv, int hns3_lamp_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out, u32 out_size)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
......
...@@ -26,7 +26,7 @@ struct hns3_lamp_signal { ...@@ -26,7 +26,7 @@ struct hns3_lamp_signal {
u8 activity; u8 activity;
}; };
int hns3_lamp_cfg(struct hns3_nic_priv *net_priv, int hns3_lamp_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int nic_get_led_signal(struct net_device *ndev, int nic_get_led_signal(struct net_device *ndev,
......
...@@ -8,19 +8,19 @@ ...@@ -8,19 +8,19 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_led.h" #include "hns3_cae_led.h"
int hns3_led_cfg_ncl_info(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_led_cfg_ncl_info(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev); struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev);
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct led_statistic_param *parm_out = buf_out; struct led_statistic_param *parm_out = buf_out;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc desc = {0}; struct hclge_desc desc = {0};
bool check; bool check = !buf_out || out_size < sizeof(struct led_statistic_param);
int index; int index;
int ret; int ret;
check = !buf_out || out_size < sizeof(struct led_statistic_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -10,6 +10,7 @@ struct led_statistic_param { ...@@ -10,6 +10,7 @@ struct led_statistic_param {
u32 data[6]; u32 data[6];
}; };
int hns3_led_cfg_ncl_info(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_led_cfg_ncl_info(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -15,23 +15,27 @@ ...@@ -15,23 +15,27 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_lib.h" #include "hns3_cae_lib.h"
int hns3_cae_common_cmd_send(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_common_cmd_send(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
#define MAX_DESC_DATA_LEN 6 #define MAX_DESC_DATA_LEN 6
struct cmd_desc_param *param_in; struct cmd_desc_param *param_in = (struct cmd_desc_param *)buf_in;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_in || in_size < sizeof(struct cmd_desc_param);
int ret; int ret;
int i; int i;
check = !buf_in || in_size < sizeof(struct cmd_desc_param); if (check) {
pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT;
}
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
param_in = (struct cmd_desc_param *)buf_in;
hns3_cae_cmd_setup_basic_desc(&desc, param_in->fw_dw_opcode, hns3_cae_cmd_setup_basic_desc(&desc, param_in->fw_dw_opcode,
param_in->is_read); param_in->is_read);
for (i = 0; i < MAX_DESC_DATA_LEN; i++) for (i = 0; i < MAX_DESC_DATA_LEN; i++)
...@@ -59,18 +63,17 @@ int hns3_cae_common_cmd_send(struct hns3_nic_priv *net_priv, void *buf_in, ...@@ -59,18 +63,17 @@ int hns3_cae_common_cmd_send(struct hns3_nic_priv *net_priv, void *buf_in,
return 0; return 0;
} }
int hns3_m7_cmd_handle(struct hns3_nic_priv *nic_dev, void *buf_in, u32 in_size, int hns3_m7_cmd_handle(const struct hns3_nic_priv *nic_dev, void *buf_in,
void *buf_out, u32 out_size) u32 in_size, void *buf_out, u32 out_size)
{ {
struct hclge_vport *vport = hns3_cae_get_vport(nic_dev->ae_handle); struct hclge_vport *vport = hns3_cae_get_vport(nic_dev->ae_handle);
struct m7_cmd_para *cmd_para = (struct m7_cmd_para *)buf_in; struct m7_cmd_para *cmd_para = (struct m7_cmd_para *)buf_in;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc *desc = NULL; struct hclge_desc *desc = NULL;
u32 bd_size; u32 bd_size;
bool check; bool check = !buf_in || in_size < sizeof(struct m7_cmd_para);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct m7_cmd_para);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -134,9 +134,10 @@ struct m7_cmd_para { ...@@ -134,9 +134,10 @@ struct m7_cmd_para {
void *bd_data; void *bd_data;
}; };
int hns3_cae_common_cmd_send(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_common_cmd_send(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
int hns3_m7_cmd_handle(struct hns3_nic_priv *nic_dev, void *buf_in, u32 in_size, int hns3_m7_cmd_handle(const struct hns3_nic_priv *nic_dev, void *buf_in,
void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
#endif #endif
...@@ -14,31 +14,27 @@ ...@@ -14,31 +14,27 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_mac.h" #include "hns3_cae_mac.h"
int hns3_cae_mac_loop_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_mac_loop_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_cae_cfg_serdes_mode_cmd *req1 = NULL; struct hns3_cae_cfg_serdes_mode_cmd *req1 = NULL;
struct hns3_cae_cfg_mac_mode_cmd *req2 = NULL; struct hns3_cae_cfg_mac_mode_cmd *req2 = NULL;
struct hns3_cae_loop_param *out_info = NULL; struct hns3_cae_loop_param *out_info =
struct hns3_cae_loop_param *in_info = NULL; (struct hns3_cae_loop_param *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_loop_param *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_loop_param *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_loop_param);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
struct hclge_desc desc; struct hclge_desc desc;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cae_loop_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_loop_param *)buf_in;
out_info = (struct hns3_cae_loop_param *)buf_out;
req1 = (struct hns3_cae_cfg_serdes_mode_cmd *)&desc.data[0]; req1 = (struct hns3_cae_cfg_serdes_mode_cmd *)&desc.data[0];
req2 = (struct hns3_cae_cfg_mac_mode_cmd *)&desc.data[0]; req2 = (struct hns3_cae_cfg_mac_mode_cmd *)&desc.data[0];
......
...@@ -31,7 +31,7 @@ struct hns3_cae_cfg_serdes_mode_cmd { ...@@ -31,7 +31,7 @@ struct hns3_cae_cfg_serdes_mode_cmd {
u8 rsv[21]; u8 rsv[21];
}; };
int hns3_cae_mac_loop_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_mac_loop_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include "hns3_ext.h" #include "hns3_ext.h"
#include "hns3_cae_mactbl.h" #include "hns3_cae_mactbl.h"
int hns3_cae_opt_mactbl(struct hns3_nic_priv *net_priv, int hns3_cae_opt_mactbl(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
...@@ -30,11 +30,10 @@ int hns3_cae_opt_mactbl(struct hns3_nic_priv *net_priv, ...@@ -30,11 +30,10 @@ int hns3_cae_opt_mactbl(struct hns3_nic_priv *net_priv,
struct hns3_mac_tbl_para *in = (struct hns3_mac_tbl_para *)buf_in; struct hns3_mac_tbl_para *in = (struct hns3_mac_tbl_para *)buf_in;
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
struct hnae3_handle *h = NULL; struct hnae3_handle *h = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_mac_tbl_para) ||
!buf_out || out_size < sizeof(struct hns3_mac_tbl_para);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_mac_tbl_para) ||
!buf_out || out_size < sizeof(struct hns3_mac_tbl_para);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -23,7 +23,7 @@ struct hns3_mac_tbl_para { ...@@ -23,7 +23,7 @@ struct hns3_mac_tbl_para {
u8 result; u8 result;
}; };
int hns3_cae_opt_mactbl(struct hns3_nic_priv *net_priv, int hns3_cae_opt_mactbl(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -6,18 +6,18 @@ ...@@ -6,18 +6,18 @@
#include "hns3_cae_pfc_storm.h" #include "hns3_cae_pfc_storm.h"
#include "hns3_enet.h" #include "hns3_enet.h"
static int hns3_cae_set_pfc_storm_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_set_pfc_storm_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size) void *buf_in, u32 in_size)
{ {
struct cmd_pfc_storm_param *prelude_in; struct cmd_pfc_storm_param *prelude_in =
struct net_device *netdev; (struct cmd_pfc_storm_param *)buf_in;
struct hclge_vport *vport; struct net_device *netdev = NULL;
struct hnae3_handle *h; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hnae3_handle *h = NULL;
struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int ret; int ret;
prelude_in = (struct cmd_pfc_storm_param *)buf_in;
netdev = net_priv->netdev; netdev = net_priv->netdev;
h = hns3_get_handle(netdev); h = hns3_get_handle(netdev);
vport = hns3_cae_get_vport(h); vport = hns3_cae_get_vport(h);
...@@ -41,16 +41,18 @@ static int hns3_cae_set_pfc_storm_cfg(struct hns3_nic_priv *net_priv, ...@@ -41,16 +41,18 @@ static int hns3_cae_set_pfc_storm_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
static int hns3_cae_get_pfc_storm_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_get_pfc_storm_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, void *buf_in, u32 in_size,
u32 out_size) void *buf_out, u32 out_size)
{ {
struct cmd_pfc_storm_param *prelude_in; struct cmd_pfc_storm_param *prelude_in =
struct cmd_pfc_storm_param *info_dstn; (struct cmd_pfc_storm_param *)buf_in;
struct net_device *netdev; struct cmd_pfc_storm_param *info_dstn =
struct hclge_vport *vport; (struct cmd_pfc_storm_param *)buf_out;
struct hnae3_handle *h; struct net_device *netdev = NULL;
struct hclge_dev *hdev; struct hclge_vport *vport = NULL;
struct hnae3_handle *h = NULL;
struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int check; int check;
int ret; int ret;
...@@ -61,8 +63,6 @@ static int hns3_cae_get_pfc_storm_cfg(struct hns3_nic_priv *net_priv, ...@@ -61,8 +63,6 @@ static int hns3_cae_get_pfc_storm_cfg(struct hns3_nic_priv *net_priv,
return -EFAULT; return -EFAULT;
} }
prelude_in = (struct cmd_pfc_storm_param *)buf_in;
info_dstn = (struct cmd_pfc_storm_param *)buf_out;
netdev = net_priv->netdev; netdev = net_priv->netdev;
h = hns3_get_handle(netdev); h = hns3_get_handle(netdev);
vport = hns3_cae_get_vport(h); vport = hns3_cae_get_vport(h);
...@@ -89,10 +89,12 @@ static int hns3_cae_get_pfc_storm_cfg(struct hns3_nic_priv *net_priv, ...@@ -89,10 +89,12 @@ static int hns3_cae_get_pfc_storm_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_pfc_storm_cfg(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_pfc_storm_cfg(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct cmd_pfc_storm_param *para_in; struct cmd_pfc_storm_param *para_in =
(struct cmd_pfc_storm_param *)buf_in;
int check; int check;
int ret; int ret;
...@@ -102,7 +104,6 @@ int hns3_cae_pfc_storm_cfg(struct hns3_nic_priv *net_priv, void *buf_in, ...@@ -102,7 +104,6 @@ int hns3_cae_pfc_storm_cfg(struct hns3_nic_priv *net_priv, void *buf_in,
return -EFAULT; return -EFAULT;
} }
para_in = (struct cmd_pfc_storm_param *)buf_in;
if (para_in->op_code == SET_PFC_STORM_PARA) { if (para_in->op_code == SET_PFC_STORM_PARA) {
ret = hns3_cae_set_pfc_storm_cfg(net_priv, buf_in, in_size); ret = hns3_cae_set_pfc_storm_cfg(net_priv, buf_in, in_size);
} else if (para_in->op_code == GET_PFC_STORM_PARA) { } else if (para_in->op_code == GET_PFC_STORM_PARA) {
......
...@@ -24,5 +24,6 @@ struct cmd_pfc_storm_param { ...@@ -24,5 +24,6 @@ struct cmd_pfc_storm_param {
}; };
}; };
int hns3_cae_pfc_storm_cfg(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_pfc_storm_cfg(const struct hns3_nic_priv *net_priv,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
...@@ -182,7 +182,7 @@ struct kthread_info { ...@@ -182,7 +182,7 @@ struct kthread_info {
int tid; int tid;
struct task_struct *task; struct task_struct *task;
int stop; int stop;
struct hns3_nic_priv *net_priv; const struct hns3_nic_priv *net_priv;
struct hns3_cae_pkt_cfg_info *in_info; struct hns3_cae_pkt_cfg_info *in_info;
struct hns3_cae_pkt_result_info *out_info; struct hns3_cae_pkt_result_info *out_info;
}; };
...@@ -332,7 +332,7 @@ void __fill_the_pkt_head(struct net_device *netdev, u8 *payload, ...@@ -332,7 +332,7 @@ void __fill_the_pkt_head(struct net_device *netdev, u8 *payload,
struct hns3_cae_pkt_cfg_info *in_info) struct hns3_cae_pkt_cfg_info *in_info)
{ {
struct in_ifaddr *ifa_list = NULL; struct in_ifaddr *ifa_list = NULL;
u8 *pkt_payload; u8 *pkt_payload = NULL;
u32 vlan_tag; u32 vlan_tag;
size_t count; size_t count;
int i; int i;
...@@ -493,11 +493,11 @@ static int __hns3_cae_change_send_queue(int cur_queue, ...@@ -493,11 +493,11 @@ static int __hns3_cae_change_send_queue(int cur_queue,
return queue_id; return queue_id;
} }
int __hns3_cae_send_pkt(struct hns3_nic_priv *net_priv, int __hns3_cae_send_pkt(const struct hns3_nic_priv *net_priv,
struct hns3_cae_pkt_cfg_info *in_info, struct hns3_cae_pkt_cfg_info *in_info,
struct hns3_cae_pkt_result_info *out_info) struct hns3_cae_pkt_result_info *out_info)
{ {
struct hnae3_handle *handle; struct hnae3_handle *handle = NULL;
struct sk_buff *skb = NULL; struct sk_buff *skb = NULL;
u8 *payload = NULL; u8 *payload = NULL;
int pkt_len; int pkt_len;
...@@ -626,7 +626,7 @@ int __hns3_cae_new_task(void *arg) ...@@ -626,7 +626,7 @@ int __hns3_cae_new_task(void *arg)
} }
int hns3_cae_create_new_thread(int tid, int hns3_cae_create_new_thread(int tid,
struct hns3_nic_priv *net_priv, const struct hns3_nic_priv *net_priv,
struct hns3_cae_pkt_cfg_info *in_info, struct hns3_cae_pkt_cfg_info *in_info,
struct hns3_cae_pkt_result_info *out_info) struct hns3_cae_pkt_result_info *out_info)
{ {
...@@ -700,18 +700,18 @@ void hns3_cae_stop_new_thread(int tid) ...@@ -700,18 +700,18 @@ void hns3_cae_stop_new_thread(int tid)
mutex_unlock(&pkt_mutex[tid]); mutex_unlock(&pkt_mutex[tid]);
} }
int hns3_cae_send_pkt(struct hns3_nic_priv *net_priv, int hns3_cae_send_pkt(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_cae_pkt_result_info *out_info; struct hns3_cae_pkt_result_info *out_info =
struct hns3_cae_pkt_cfg_info *in_info; (struct hns3_cae_pkt_result_info *)buf_out;
struct hns3_cae_pkt_cfg_info *in_info =
(struct hns3_cae_pkt_cfg_info *)buf_in;
struct hnae3_handle *handle = NULL; struct hnae3_handle *handle = NULL;
int queue_id; int queue_id;
int tid; int tid;
in_info = (struct hns3_cae_pkt_cfg_info *)buf_in;
out_info = (struct hns3_cae_pkt_result_info *)buf_out;
if (!in_info || in_size < sizeof(struct hns3_cae_pkt_cfg_info) || if (!in_info || in_size < sizeof(struct hns3_cae_pkt_cfg_info) ||
!out_info || out_size < sizeof(struct hns3_cae_pkt_result_info)) { !out_info || out_size < sizeof(struct hns3_cae_pkt_result_info)) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
......
...@@ -59,7 +59,7 @@ struct hns3_cae_pkt_result_info { ...@@ -59,7 +59,7 @@ struct hns3_cae_pkt_result_info {
int num; int num;
}; };
int hns3_cae_send_pkt(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_cae_send_pkt(const struct hns3_nic_priv *net_priv, void *buf_in,
u32 in_size, void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
void hns3_cae_pkt_init(void); void hns3_cae_pkt_init(void);
void hns3_cae_pkt_destroy(void); void hns3_cae_pkt_destroy(void);
......
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
void fill_port_info(struct hclge_port_info *get_port_info_out, void fill_port_info(struct hclge_port_info *get_port_info_out,
struct hclge_desc *port_desc, u32 bd_num) struct hclge_desc *port_desc, u32 bd_num)
{ {
u8 *dest_data; u8 *dest_data = NULL;
u8 *tmp_buff; u8 *tmp_buff = NULL;
u32 i; u32 i;
dest_data = (u8 *)get_port_info_out; dest_data = (u8 *)get_port_info_out;
...@@ -55,16 +55,18 @@ void fill_port_info(struct hclge_port_info *get_port_info_out, ...@@ -55,16 +55,18 @@ void fill_port_info(struct hclge_port_info *get_port_info_out,
} }
} }
int hns3_get_port_info(struct hns3_nic_priv *net_priv, int hns3_get_port_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev); struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev);
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct hclge_port_info *get_port_info_out; struct hclge_port_info *get_port_info_out =
(struct hclge_port_info *)buf_out;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc *port_desc; struct hclge_desc *port_desc = NULL;
struct hclge_desc desc = {0}; struct hclge_desc desc = {0};
__le32 *desc_data; __le32 *desc_data = NULL;
u32 bd_num; u32 bd_num;
int ret; int ret;
u32 i; u32 i;
...@@ -72,8 +74,6 @@ int hns3_get_port_info(struct hns3_nic_priv *net_priv, ...@@ -72,8 +74,6 @@ int hns3_get_port_info(struct hns3_nic_priv *net_priv,
if (!buf_out || out_size < sizeof(struct hclge_port_info)) if (!buf_out || out_size < sizeof(struct hclge_port_info))
return -ENODEV; return -ENODEV;
get_port_info_out = (struct hclge_port_info *)buf_out;
get_port_info_out->gpio_insert = 0; get_port_info_out->gpio_insert = 0;
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_QUERY_PORTINFO_BD_NUM, hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_QUERY_PORTINFO_BD_NUM,
......
...@@ -87,7 +87,7 @@ struct hclge_lsport_info { ...@@ -87,7 +87,7 @@ struct hclge_lsport_info {
u32 portinfo[6]; u32 portinfo[6];
}; };
int hns3_get_port_info(struct hns3_nic_priv *net_priv, int hns3_get_port_info(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -4,20 +4,19 @@ ...@@ -4,20 +4,19 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_promisc.h" #include "hns3_cae_promisc.h"
int hns3_read_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_read_promisc_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_promisc_cfg_cmd *req; struct hclge_promisc_cfg_cmd *req = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
u8 *out_buf; u8 *out_buf = NULL;
bool check; bool check = !buf_out || out_size < sizeof(u8);
u8 enable; u8 enable;
int ret; int ret;
check = !buf_out || out_size < sizeof(u8);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -42,19 +41,18 @@ int hns3_read_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, ...@@ -42,19 +41,18 @@ int hns3_read_promisc_mode_cfg(struct hns3_nic_priv *nic_dev,
return 0; return 0;
} }
int hns3_set_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_set_promisc_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct promisc_mode_param *mode_param; bool check = !buf_in || in_size < sizeof(struct promisc_mode_param);
struct hclge_promisc_cfg_cmd *req; struct promisc_mode_param *mode_param = NULL;
struct hclge_vport *vport; struct hclge_promisc_cfg_cmd *req = NULL;
struct hclge_dev *hdev; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct promisc_mode_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -103,15 +101,14 @@ int hns3_set_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, ...@@ -103,15 +101,14 @@ int hns3_set_promisc_mode_cfg(struct hns3_nic_priv *nic_dev,
return ret; return ret;
} }
int hns3_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_promisc_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct promisc_mode_param *mode_param; bool check = !buf_in || in_size < sizeof(struct promisc_mode_param);
bool check; struct promisc_mode_param *mode_param = NULL;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct promisc_mode_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -26,7 +26,7 @@ struct promisc_mode_param { ...@@ -26,7 +26,7 @@ struct promisc_mode_param {
u8 type; u8 type;
}; };
int hns3_promisc_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_promisc_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
#endif #endif
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
#include "hns3_cae_qinfo.h" #include "hns3_cae_qinfo.h"
int hns3_get_q_rx_fbd(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_rx_fbd(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
int tqps_num; int tqps_num;
...@@ -16,9 +16,9 @@ int hns3_get_q_rx_fbd(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -16,9 +16,9 @@ int hns3_get_q_rx_fbd(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_rx_ebd(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_rx_ebd(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
int tqps_num; int tqps_num;
...@@ -29,9 +29,9 @@ int hns3_get_q_rx_ebd(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -29,9 +29,9 @@ int hns3_get_q_rx_ebd(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_tx_fbd(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_tx_fbd(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
ring = &net_priv->ring[ring_id]; ring = &net_priv->ring[ring_id];
...@@ -40,9 +40,9 @@ int hns3_get_q_tx_fbd(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -40,9 +40,9 @@ int hns3_get_q_tx_fbd(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_tx_ebd(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_tx_ebd(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
ring = &net_priv->ring[ring_id]; ring = &net_priv->ring[ring_id];
...@@ -51,9 +51,9 @@ int hns3_get_q_tx_ebd(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -51,9 +51,9 @@ int hns3_get_q_tx_ebd(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_rx_tail(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_rx_tail(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
int tqps_num; int tqps_num;
...@@ -64,9 +64,9 @@ int hns3_get_q_rx_tail(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -64,9 +64,9 @@ int hns3_get_q_rx_tail(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_rx_head(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_rx_head(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
int tqps_num; int tqps_num;
...@@ -77,9 +77,9 @@ int hns3_get_q_rx_head(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -77,9 +77,9 @@ int hns3_get_q_rx_head(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_tx_tail(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_tx_tail(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
ring = &net_priv->ring[ring_id]; ring = &net_priv->ring[ring_id];
...@@ -88,9 +88,9 @@ int hns3_get_q_tx_tail(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -88,9 +88,9 @@ int hns3_get_q_tx_tail(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_get_q_tx_head(struct hns3_nic_priv *net_priv, int ring_id) int hns3_get_q_tx_head(const struct hns3_nic_priv *net_priv, int ring_id)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
ring = &net_priv->ring[ring_id]; ring = &net_priv->ring[ring_id];
...@@ -99,11 +99,13 @@ int hns3_get_q_tx_head(struct hns3_nic_priv *net_priv, int ring_id) ...@@ -99,11 +99,13 @@ int hns3_get_q_tx_head(struct hns3_nic_priv *net_priv, int ring_id)
return num; return num;
} }
int hns3_cae_qinfo_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qinfo_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct qinfo_param *out_info; struct qinfo_param *out_info = (struct qinfo_param *)buf_out;
bool check = !buf_in || in_size < sizeof(int) || !buf_out ||
out_size < sizeof(struct qinfo_param);
int tqps_num; int tqps_num;
int ring_id; int ring_id;
int rx_head; int rx_head;
...@@ -114,17 +116,13 @@ int hns3_cae_qinfo_cfg(struct hns3_nic_priv *net_priv, ...@@ -114,17 +116,13 @@ int hns3_cae_qinfo_cfg(struct hns3_nic_priv *net_priv,
int tx_tail; int tx_tail;
int tx_ebd; int tx_ebd;
int tx_fbd; int tx_fbd;
bool check;
check = !buf_in || in_size < sizeof(int) ||
!buf_out || out_size < sizeof(struct qinfo_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
tqps_num = net_priv->ae_handle->kinfo.num_tqps; tqps_num = net_priv->ae_handle->kinfo.num_tqps;
out_info = (struct qinfo_param *)buf_out;
ring_id = *((int *)buf_in); ring_id = *((int *)buf_in);
if (ring_id >= tqps_num || ring_id < 0) { if (ring_id >= tqps_num || ring_id < 0) {
......
...@@ -25,15 +25,15 @@ struct qinfo_param { ...@@ -25,15 +25,15 @@ struct qinfo_param {
int rx_fbd; int rx_fbd;
}; };
int hns3_get_q_rx_fbd(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_rx_fbd(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_rx_ebd(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_rx_ebd(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_tx_fbd(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_tx_fbd(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_tx_ebd(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_tx_ebd(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_rx_tail(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_rx_tail(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_rx_head(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_rx_head(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_tx_tail(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_tx_tail(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_get_q_tx_head(struct hns3_nic_priv *net_priv, int ring_id); int hns3_get_q_tx_head(const struct hns3_nic_priv *net_priv, int ring_id);
int hns3_cae_qinfo_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qinfo_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -7,10 +7,10 @@ ...@@ -7,10 +7,10 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_qos.h" #include "hns3_cae_qos.h"
struct hclge_dev *get_val_hdev(struct hns3_nic_priv *net_priv) struct hclge_dev *get_val_hdev(const struct hns3_nic_priv *net_priv)
{ {
struct hnae3_handle *handle; struct hnae3_handle *handle = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
handle = net_priv->ae_handle; handle = net_priv->ae_handle;
vport = hns3_cae_get_vport(handle); vport = hns3_cae_get_vport(handle);
...@@ -20,7 +20,7 @@ struct hclge_dev *get_val_hdev(struct hns3_nic_priv *net_priv) ...@@ -20,7 +20,7 @@ struct hclge_dev *get_val_hdev(struct hns3_nic_priv *net_priv)
int hns3_cmd_rx_priv_wl_config(struct hclge_dev *hdev, u16 tc, int hns3_cmd_rx_priv_wl_config(struct hclge_dev *hdev, u16 tc,
u32 high, u32 low, u32 en) u32 high, u32 low, u32 en)
{ {
struct hclge_rx_priv_wl_buf *req; struct hclge_rx_priv_wl_buf *req = NULL;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_desc desc[2]; struct hclge_desc desc[2];
int idx; int idx;
...@@ -61,15 +61,16 @@ int hns3_cmd_rx_priv_wl_config(struct hclge_dev *hdev, u16 tc, ...@@ -61,15 +61,16 @@ int hns3_cmd_rx_priv_wl_config(struct hclge_dev *hdev, u16 tc,
return 0; return 0;
} }
int hns3_cae_rx_priv_buff_wl_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rx_priv_buff_wl_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_dev *hdev = get_val_hdev(net_priv); struct hclge_dev *hdev = get_val_hdev(net_priv);
struct hns3_rx_priv_buff_wl_param *in_info; struct hns3_rx_priv_buff_wl_param *in_info =
bool check; (struct hns3_rx_priv_buff_wl_param *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
check = !buf_in || in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -80,7 +81,7 @@ int hns3_cae_rx_priv_buff_wl_cfg(struct hns3_nic_priv *net_priv, ...@@ -80,7 +81,7 @@ int hns3_cae_rx_priv_buff_wl_cfg(struct hns3_nic_priv *net_priv,
"This device is not support this cmd!\n"); "This device is not support this cmd!\n");
return -EPERM; return -EPERM;
} }
in_info = (struct hns3_rx_priv_buff_wl_param *)buf_in;
pr_err("wl is_set param, tc_no = 0x%x, hight = 0x%x, low = 0x%x\n", pr_err("wl is_set param, tc_no = 0x%x, hight = 0x%x, low = 0x%x\n",
in_info->tc_no, in_info->high_wl, in_info->low_wl); in_info->tc_no, in_info->high_wl, in_info->low_wl);
...@@ -92,7 +93,7 @@ int hns3_cmd_common_thrd_config(struct hclge_dev *hdev, u16 tc, ...@@ -92,7 +93,7 @@ int hns3_cmd_common_thrd_config(struct hclge_dev *hdev, u16 tc,
u32 high, u32 low, u32 en) u32 high, u32 low, u32 en)
{ {
#define HNS3_CAE_THRD_ALLOC_BD_NUM 2 #define HNS3_CAE_THRD_ALLOC_BD_NUM 2
struct hclge_rx_com_thrd *req; struct hclge_rx_com_thrd *req = NULL;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_desc desc[2]; struct hclge_desc desc[2];
int idx; int idx;
...@@ -134,15 +135,16 @@ int hns3_cmd_common_thrd_config(struct hclge_dev *hdev, u16 tc, ...@@ -134,15 +135,16 @@ int hns3_cmd_common_thrd_config(struct hclge_dev *hdev, u16 tc,
return 0; return 0;
} }
int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_common_thrd_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_dev *hdev = get_val_hdev(net_priv); struct hclge_dev *hdev = get_val_hdev(net_priv);
struct hns3_rx_priv_buff_wl_param *in_info; struct hns3_rx_priv_buff_wl_param *in_info =
bool check; (struct hns3_rx_priv_buff_wl_param *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
check = !buf_in || in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -153,7 +155,7 @@ int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv, ...@@ -153,7 +155,7 @@ int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv,
"This device is not support this cmd!\n"); "This device is not support this cmd!\n");
return -EPERM; return -EPERM;
} }
in_info = (struct hns3_rx_priv_buff_wl_param *)buf_in;
pr_info("common thrd is_set param, tc_no = 0x%x, hight = 0x%x, low = 0x%x\n", pr_info("common thrd is_set param, tc_no = 0x%x, hight = 0x%x, low = 0x%x\n",
in_info->tc_no, in_info->high_wl, in_info->low_wl); in_info->tc_no, in_info->high_wl, in_info->low_wl);
...@@ -165,7 +167,7 @@ int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv, ...@@ -165,7 +167,7 @@ int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv,
int hns3_cmd_common_wl_config(struct hclge_dev *hdev, u32 high, u32 low, u32 en) int hns3_cmd_common_wl_config(struct hclge_dev *hdev, u32 high, u32 low, u32 en)
{ {
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_rx_com_wl *req; struct hclge_rx_com_wl *req = NULL;
struct hclge_desc desc; struct hclge_desc desc;
req = (struct hclge_rx_com_wl *)desc.data; req = (struct hclge_rx_com_wl *)desc.data;
...@@ -184,20 +186,22 @@ int hns3_cmd_common_wl_config(struct hclge_dev *hdev, u32 high, u32 low, u32 en) ...@@ -184,20 +186,22 @@ int hns3_cmd_common_wl_config(struct hclge_dev *hdev, u32 high, u32 low, u32 en)
return 0; return 0;
} }
int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_common_wl_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_rx_priv_buff_wl_param *out_info; struct hns3_rx_priv_buff_wl_param *out_info =
struct hns3_rx_priv_buff_wl_param *in_info; (struct hns3_rx_priv_buff_wl_param *)buf_out;
struct hns3_rx_priv_buff_wl_param *in_info =
(struct hns3_rx_priv_buff_wl_param *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_rx_com_wl *req; struct hclge_rx_com_wl *req = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_desc desc; struct hclge_desc desc;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
bool check;
check = !buf_in || in_size < sizeof(struct hns3_rx_priv_buff_wl_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -205,8 +209,6 @@ int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv, ...@@ -205,8 +209,6 @@ int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
out_info = (struct hns3_rx_priv_buff_wl_param *)buf_out;
in_info = (struct hns3_rx_priv_buff_wl_param *)buf_in;
if (in_info->is_read == IS_WRITE) { if (in_info->is_read == IS_WRITE) {
status = hns3_cmd_common_wl_config(hdev, in_info->high_wl, status = hns3_cmd_common_wl_config(hdev, in_info->high_wl,
...@@ -237,22 +239,23 @@ int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv, ...@@ -237,22 +239,23 @@ int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv,
return status; return status;
} }
int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rx_buff_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_rx_priv_buff_cmd *recv; struct hclge_rx_priv_buff_cmd *recv = NULL;
struct hns3_rx_buff_param *out_info; struct hns3_rx_buff_param *out_info =
struct hns3_rx_buff_param *in_info; (struct hns3_rx_buff_param *)buf_out;
struct hns3_rx_buff_param *in_info =
(struct hns3_rx_buff_param *)buf_in;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_rx_buff_param) ||
!buf_out || out_size < sizeof(struct hns3_rx_buff_param);
int i; int i;
check = !buf_in || in_size < sizeof(struct hns3_rx_buff_param) ||
!buf_out || out_size < sizeof(struct hns3_rx_buff_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -260,8 +263,6 @@ int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv, ...@@ -260,8 +263,6 @@ int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
out_info = (struct hns3_rx_buff_param *)buf_out;
in_info = (struct hns3_rx_buff_param *)buf_in;
if (in_info->is_read == IS_READ) { if (in_info->is_read == IS_READ) {
hns3_cae_cmd_setup_basic_desc(&desc, hns3_cae_cmd_setup_basic_desc(&desc,
...@@ -283,22 +284,23 @@ int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv, ...@@ -283,22 +284,23 @@ int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_tx_buff_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_tx_buff_alloc_cmd *recv; struct hclge_tx_buff_alloc_cmd *recv = NULL;
struct hns3_tx_buff_param *out_info; struct hns3_tx_buff_param *out_info =
struct hns3_tx_buff_param *in_info; (struct hns3_tx_buff_param *)buf_out;
struct hns3_tx_buff_param *in_info =
(struct hns3_tx_buff_param *)buf_in;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_desc desc; struct hclge_desc desc;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct hns3_tx_buff_param) ||
!buf_out || out_size < sizeof(struct hns3_tx_buff_param);
int i; int i;
check = !buf_in || in_size < sizeof(struct hns3_tx_buff_param) ||
!buf_out || out_size < sizeof(struct hns3_tx_buff_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -306,8 +308,6 @@ int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv, ...@@ -306,8 +308,6 @@ int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv,
vport = hns3_cae_get_vport(net_priv->ae_handle); vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back; hdev = vport->back;
out_info = (struct hns3_tx_buff_param *)buf_out;
in_info = (struct hns3_tx_buff_param *)buf_in;
if (in_info->is_read == IS_READ) { if (in_info->is_read == IS_READ) {
hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_TX_BUFF_ALLOC, hns3_cae_cmd_setup_basic_desc(&desc, HCLGE_OPC_TX_BUFF_ALLOC,
...@@ -326,29 +326,28 @@ int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv, ...@@ -326,29 +326,28 @@ int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_show_comm_thres(struct hns3_nic_priv *net_priv, int hns3_cae_show_comm_thres(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
#define HNS3_CAE_THRD_ALLOC_BD_NUM 2 #define HNS3_CAE_THRD_ALLOC_BD_NUM 2
struct hclge_dev *hdev = get_val_hdev(net_priv); struct hclge_dev *hdev = get_val_hdev(net_priv);
struct hns3_total_priv_wl_param *out_info; struct hns3_total_priv_wl_param *out_info =
struct hclge_rx_com_thrd *req; (struct hns3_total_priv_wl_param *)buf_out;
struct hclge_rx_com_thrd *req = NULL;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_desc desc[2]; struct hclge_desc desc[2];
bool check; bool check = !buf_out ||
out_size < sizeof(struct hns3_total_priv_wl_param);
int idx; int idx;
int i; int i;
int j; int j;
check = !buf_out || out_size < sizeof(struct hns3_total_priv_wl_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
out_info = (struct hns3_total_priv_wl_param *)buf_out;
for (i = 0; i < HNS3_CAE_THRD_ALLOC_BD_NUM; i++) { for (i = 0; i < HNS3_CAE_THRD_ALLOC_BD_NUM; i++) {
hns3_cae_cmd_setup_basic_desc(&desc[i], hns3_cae_cmd_setup_basic_desc(&desc[i],
HCLGE_OPC_RX_COM_THRD_ALLOC, HCLGE_OPC_RX_COM_THRD_ALLOC,
...@@ -378,29 +377,28 @@ int hns3_cae_show_comm_thres(struct hns3_nic_priv *net_priv, ...@@ -378,29 +377,28 @@ int hns3_cae_show_comm_thres(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_show_rx_priv_wl(struct hns3_nic_priv *net_priv, int hns3_cae_show_rx_priv_wl(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
#define HNS3_CAE_WL_ALLOC_BD_NUM 2 #define HNS3_CAE_WL_ALLOC_BD_NUM 2
struct hclge_dev *hdev = get_val_hdev(net_priv); struct hclge_dev *hdev = get_val_hdev(net_priv);
struct hns3_total_priv_wl_param *out_info; struct hns3_total_priv_wl_param *out_info =
struct hclge_rx_priv_wl_buf *req; (struct hns3_total_priv_wl_param *)buf_out;
struct hclge_rx_priv_wl_buf *req = NULL;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_desc desc[2]; struct hclge_desc desc[2];
bool check; bool check = !buf_out ||
out_size < sizeof(struct hns3_total_priv_wl_param);
int idx; int idx;
int i; int i;
int j; int j;
check = !buf_out || out_size < sizeof(struct hns3_total_priv_wl_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
out_info = (struct hns3_total_priv_wl_param *)buf_out;
for (i = 0; i < HNS3_CAE_WL_ALLOC_BD_NUM; i++) { for (i = 0; i < HNS3_CAE_WL_ALLOC_BD_NUM; i++) {
hns3_cae_cmd_setup_basic_desc(&desc[i], hns3_cae_cmd_setup_basic_desc(&desc[i],
HCLGE_OPC_RX_PRIV_WL_ALLOC, HCLGE_OPC_RX_PRIV_WL_ALLOC,
...@@ -430,19 +428,19 @@ int hns3_cae_show_rx_priv_wl(struct hns3_nic_priv *net_priv, ...@@ -430,19 +428,19 @@ int hns3_cae_show_rx_priv_wl(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_qcn_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qcn_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
#define HCLGE_OPC_QCN_CFG 0x1A01 #define HCLGE_OPC_QCN_CFG 0x1A01
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int qcn_bypass; int qcn_bypass;
u32 qcn_cfg; u32 qcn_cfg;
bool check; bool check = !buf_in || in_size < sizeof(int);
int ret; int ret;
check = !buf_in || in_size < sizeof(int);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -43,28 +43,29 @@ enum opt_type { ...@@ -43,28 +43,29 @@ enum opt_type {
#define HNS3_QOS_QCN_BYPASS_MASK 0x20000 #define HNS3_QOS_QCN_BYPASS_MASK 0x20000
#define HNS3_QCN_SHAP_BYPASS_OFF 17 #define HNS3_QCN_SHAP_BYPASS_OFF 17
int hns3_cae_rx_priv_buff_wl_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rx_priv_buff_wl_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_common_thrd_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_common_thrd_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_common_wl_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_common_wl_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_tx_buff_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_tx_buff_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_rx_buff_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rx_buff_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_show_rx_priv_wl(struct hns3_nic_priv *net_priv, int hns3_cae_show_rx_priv_wl(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_show_comm_thres(struct hns3_nic_priv *net_priv, int hns3_cae_show_comm_thres(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_qcn_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qcn_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -3,10 +3,10 @@ ...@@ -3,10 +3,10 @@
#include "hns3_cae_qres.h" #include "hns3_cae_qres.h"
int hns3_get_qres_rx_value(struct hns3_nic_priv *net_priv, int ring_id, int hns3_get_qres_rx_value(const struct hns3_nic_priv *net_priv, int ring_id,
enum param_type type) enum param_type type)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int tqps_num; int tqps_num;
int num; int num;
...@@ -51,10 +51,10 @@ int hns3_get_qres_rx_value(struct hns3_nic_priv *net_priv, int ring_id, ...@@ -51,10 +51,10 @@ int hns3_get_qres_rx_value(struct hns3_nic_priv *net_priv, int ring_id,
return num; return num;
} }
int hns3_get_qres_tx_value(struct hns3_nic_priv *net_priv, int ring_id, int hns3_get_qres_tx_value(const struct hns3_nic_priv *net_priv, int ring_id,
enum param_type type) enum param_type type)
{ {
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
int num; int num;
ring = &net_priv->ring[ring_id]; ring = &net_priv->ring[ring_id];
...@@ -97,7 +97,7 @@ int hns3_get_qres_tx_value(struct hns3_nic_priv *net_priv, int ring_id, ...@@ -97,7 +97,7 @@ int hns3_get_qres_tx_value(struct hns3_nic_priv *net_priv, int ring_id,
return num; return num;
} }
void fill_queue_info(struct hns3_nic_priv *net_priv, void fill_queue_info(const struct hns3_nic_priv *net_priv,
struct qres_param *out_info, int ring_id) struct qres_param *out_info, int ring_id)
{ {
/* rx info */ /* rx info */
...@@ -133,27 +133,26 @@ void fill_queue_info(struct hns3_nic_priv *net_priv, ...@@ -133,27 +133,26 @@ void fill_queue_info(struct hns3_nic_priv *net_priv,
TX_SOFTWARE_TAIL_TYPE); TX_SOFTWARE_TAIL_TYPE);
} }
int hns3_cae_qres_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qres_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct qres_bufin_param *qres_in_param; struct qres_bufin_param *qres_in_param =
struct hns3_enet_ring *ring; (struct qres_bufin_param *)buf_in;
struct qres_param *out_info; struct qres_param *out_info = (struct qres_param *)buf_out;
struct hns3_enet_ring *ring = NULL;
bool check = !buf_in || in_size < sizeof(struct qres_bufin_param) ||
!buf_out || out_size < sizeof(struct qres_param);
int bd_index; int bd_index;
int tqps_num; int tqps_num;
int ring_id; int ring_id;
bool check;
check = !buf_in || in_size < sizeof(struct qres_bufin_param) ||
!buf_out || out_size < sizeof(struct qres_param);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
tqps_num = net_priv->ae_handle->kinfo.num_tqps; tqps_num = net_priv->ae_handle->kinfo.num_tqps;
out_info = (struct qres_param *)buf_out;
qres_in_param = (struct qres_bufin_param *)buf_in;
ring_id = qres_in_param->queue_id; ring_id = qres_in_param->queue_id;
bd_index = qres_in_param->BD_id; bd_index = qres_in_param->BD_id;
......
...@@ -64,7 +64,7 @@ enum qres_queue_type { ...@@ -64,7 +64,7 @@ enum qres_queue_type {
TYPE_TX, TYPE_TX,
}; };
int hns3_cae_qres_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qres_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -12,18 +12,18 @@ ...@@ -12,18 +12,18 @@
#include "hclge_main.h" #include "hclge_main.h"
#include "hns3_cae_reset.h" #include "hns3_cae_reset.h"
int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv, int hns3_cae_nic_reset(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
#define MIN_DOG_INTVAL 12 #define MIN_DOG_INTVAL 12
struct hnae3_handle *h = net_priv->ae_handle; struct hnae3_handle *h = net_priv->ae_handle;
struct reset_param *reset_info; struct reset_param *reset_info = (struct reset_param *)buf_in;
enum hnae3_reset_type rst_type; enum hnae3_reset_type rst_type;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct reset_param);
check = !buf_in || in_size < sizeof(struct reset_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -31,7 +31,6 @@ int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv, ...@@ -31,7 +31,6 @@ int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv,
vport = container_of(h, struct hclge_vport, nic); vport = container_of(h, struct hclge_vport, nic);
hdev = vport->back; hdev = vport->back;
reset_info = (struct reset_param *)buf_in;
rst_type = HNAE3_NONE_RESET; rst_type = HNAE3_NONE_RESET;
if (test_bit(HCLGE_STATE_REMOVING, &hdev->state)) { if (test_bit(HCLGE_STATE_REMOVING, &hdev->state)) {
...@@ -61,24 +60,21 @@ int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv, ...@@ -61,24 +60,21 @@ int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_nic_timeout_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_nic_timeout_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct tx_timeout_param *out_info =
(struct tx_timeout_param *)buf_out;
struct tx_timeout_param *in_info = (struct tx_timeout_param *)buf_in;
bool check = !buf_in || in_size < sizeof(struct tx_timeout_param);
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
struct tx_timeout_param *in_info;
struct tx_timeout_param *out_info;
bool check;
check = !buf_in || in_size < sizeof(struct tx_timeout_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
in_info = (struct tx_timeout_param *)buf_in;
out_info = (struct tx_timeout_param *)buf_out;
if (in_info->wr_flag) { if (in_info->wr_flag) {
netdev->watchdog_timeo = (in_info->tx_timeout_size) * HZ; netdev->watchdog_timeo = (in_info->tx_timeout_size) * HZ;
} else { } else {
......
...@@ -13,9 +13,10 @@ struct tx_timeout_param { ...@@ -13,9 +13,10 @@ struct tx_timeout_param {
u16 tx_timeout_size; u16 tx_timeout_size;
}; };
int hns3_cae_nic_reset(struct hns3_nic_priv *net_priv, int hns3_cae_nic_reset(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
int hns3_cae_nic_timeout_cfg(struct hns3_nic_priv *net_priv, u32 out_size);
int hns3_cae_nic_timeout_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
static int hclge_set_rss_algo_key(struct hclge_dev *hdev, static int hclge_set_rss_algo_key(struct hclge_dev *hdev,
const u8 hfunc, const u8 *key) const u8 hfunc, const u8 *key)
{ {
struct hclge_rss_config_cmd *req; struct hclge_rss_config_cmd *req = NULL;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_desc desc; struct hclge_desc desc;
int key_offset; int key_offset;
...@@ -54,31 +54,26 @@ static int hclge_set_rss_algo_key(struct hclge_dev *hdev, ...@@ -54,31 +54,26 @@ static int hclge_set_rss_algo_key(struct hclge_dev *hdev,
return 0; return 0;
} }
static int hns3_cae_set_rss_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_set_rss_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_rss_config_cmd *in_info; struct hclge_rss_config_cmd *in_info =
(struct hclge_rss_config_cmd *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hclge_rss_config_cmd);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
u8 *key = vport->rss_hash_key;
enum hclge_cmd_status status; enum hclge_cmd_status status;
struct hclge_vport *vport;
struct hclge_dev *hdev;
u8 hash_config; u8 hash_config;
bool check;
u8 *key;
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
key = vport->rss_hash_key;
check = !buf_in || in_size < sizeof(struct hclge_rss_config_cmd);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
in_info = (struct hclge_rss_config_cmd *)buf_in;
hash_config = hash_config =
((u8)(vport->rss_algo) & (HASH_ALG_MASK)) | in_info->hash_config; ((u8)(vport->rss_algo) & (HASH_ALG_MASK)) | in_info->hash_config;
status = hclge_set_rss_algo_key(hdev, hash_config, key); status = hclge_set_rss_algo_key(hdev, hash_config, key);
if (status) { if (status) {
dev_err(&hdev->pdev->dev, dev_err(&hdev->pdev->dev,
...@@ -90,27 +85,23 @@ static int hns3_cae_set_rss_cfg(struct hns3_nic_priv *net_priv, ...@@ -90,27 +85,23 @@ static int hns3_cae_set_rss_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
static int hns3_cae_get_rss_cfg(struct hns3_nic_priv *net_priv, static int hns3_cae_get_rss_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hclge_rss_config_cmd *req; struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
bool check = !buf_out || out_size < sizeof(u8);
struct hclge_rss_config_cmd *req = NULL;
struct hclge_dev *hdev = vport->back;
enum hclge_cmd_status status; enum hclge_cmd_status status;
u8 *out_buf = (u8 *)buf_out; u8 *out_buf = (u8 *)buf_out;
struct hclge_vport *vport;
struct hclge_dev *hdev;
struct hclge_desc desc; struct hclge_desc desc;
bool check;
check = !buf_out || out_size < sizeof(u8);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
hns3_cae_cmd_setup_basic_desc(&desc, hns3_cae_cmd_setup_basic_desc(&desc,
HCLGE_OPC_RSS_GENERIC_CONFIG, true); HCLGE_OPC_RSS_GENERIC_CONFIG, true);
status = hns3_cae_cmd_send(hdev, &desc, 1); status = hns3_cae_cmd_send(hdev, &desc, 1);
...@@ -125,14 +116,14 @@ static int hns3_cae_get_rss_cfg(struct hns3_nic_priv *net_priv, ...@@ -125,14 +116,14 @@ static int hns3_cae_get_rss_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_rss_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rss_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct rss_config *mode_param; bool check = !buf_in || in_size < sizeof(struct rss_config);
bool check; struct rss_config *mode_param = NULL;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct rss_config);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
......
...@@ -13,7 +13,7 @@ struct rss_config { ...@@ -13,7 +13,7 @@ struct rss_config {
u8 is_read; u8 is_read;
}; };
int hns3_cae_rss_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_rss_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -102,16 +102,16 @@ static int hns3_get_stat_val(struct ring_stats *r_stats, char *val_name, ...@@ -102,16 +102,16 @@ static int hns3_get_stat_val(struct ring_stats *r_stats, char *val_name,
return HCLGE_STATUS_SUCCESS; return HCLGE_STATUS_SUCCESS;
} }
static int hns3_read_stat_mode_cfg(struct hns3_nic_priv *nic_dev, static int hns3_read_stat_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct stat_sw_mode_param *stat_sw_param; struct stat_sw_mode_param *stat_sw_param = NULL;
struct hnae3_knic_private_info *kinfo; struct hnae3_knic_private_info *kinfo = NULL;
u64 *ret_data = (u64 *)buf_out; u64 *ret_data = (u64 *)buf_out;
struct hnae3_handle *handle; struct hnae3_handle *handle = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
u64 *val = NULL; u64 *val = NULL;
u32 ring_idx; u32 ring_idx;
int ret; int ret;
...@@ -151,15 +151,15 @@ static int hns3_read_stat_mode_cfg(struct hns3_nic_priv *nic_dev, ...@@ -151,15 +151,15 @@ static int hns3_read_stat_mode_cfg(struct hns3_nic_priv *nic_dev,
return HCLGE_STATUS_SUCCESS; return HCLGE_STATUS_SUCCESS;
} }
static int hns3_set_stat_mode_cfg(struct hns3_nic_priv *nic_dev, static int hns3_set_stat_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct stat_sw_mode_param *stat_sw_param; struct stat_sw_mode_param *stat_sw_param = NULL;
struct hnae3_knic_private_info *kinfo; struct hnae3_knic_private_info *kinfo = NULL;
struct hnae3_handle *handle; struct hnae3_handle *handle = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
u64 *val = NULL; u64 *val = NULL;
u32 ring_idx; u32 ring_idx;
int ret; int ret;
...@@ -194,14 +194,14 @@ static int hns3_set_stat_mode_cfg(struct hns3_nic_priv *nic_dev, ...@@ -194,14 +194,14 @@ static int hns3_set_stat_mode_cfg(struct hns3_nic_priv *nic_dev,
return HCLGE_STATUS_SUCCESS; return HCLGE_STATUS_SUCCESS;
} }
int hns3_stat_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_stat_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct stat_sw_mode_param *mode_param; struct stat_sw_mode_param *mode_param = NULL;
bool check; bool check = !buf_in || in_size < sizeof(struct stat_sw_mode_param);
int ret; int ret;
check = !buf_in || in_size < sizeof(struct stat_sw_mode_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
...@@ -218,17 +218,17 @@ int hns3_stat_mode_cfg(struct hns3_nic_priv *nic_dev, ...@@ -218,17 +218,17 @@ int hns3_stat_mode_cfg(struct hns3_nic_priv *nic_dev,
return ret; return ret;
} }
int hns3_cae_clean_stats(struct hns3_nic_priv *net_priv, int hns3_cae_clean_stats(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct net_device *netdev = net_priv->netdev; struct net_device *netdev = net_priv->netdev;
struct hnae3_knic_private_info *kinfo; struct hnae3_knic_private_info *kinfo = NULL;
struct hnae3_handle *handle; struct hnae3_handle *handle = NULL;
struct hns3_enet_ring *ring; struct hns3_enet_ring *ring = NULL;
struct hclge_vport *vport; struct hclge_vport *vport = NULL;
struct hclge_dev *hdev; struct hclge_dev *hdev = NULL;
struct hclge_tqp *tqp; struct hclge_tqp *tqp = NULL;
int i; int i;
handle = net_priv->ae_handle; handle = net_priv->ae_handle;
......
...@@ -43,10 +43,10 @@ struct ring_stats_name { ...@@ -43,10 +43,10 @@ struct ring_stats_name {
u32 stats_namd_id; u32 stats_namd_id;
}; };
int hns3_stat_mode_cfg(struct hns3_nic_priv *nic_dev, int hns3_stat_mode_cfg(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_clean_stats(struct hns3_nic_priv *net_priv, int hns3_cae_clean_stats(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
#endif #endif
...@@ -455,27 +455,25 @@ static int hns3_cae_tm_operate_nic_regs(struct hclge_dev *hdev, ...@@ -455,27 +455,25 @@ static int hns3_cae_tm_operate_nic_regs(struct hclge_dev *hdev,
return 0; return 0;
} }
int hns3_cae_queue_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_queue_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
struct hns3_cae_queue_cfg_info *out_info = NULL; struct hns3_cae_queue_cfg_info *out_info =
struct hns3_cae_queue_cfg_info *in_info = NULL; (struct hns3_cae_queue_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_queue_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_queue_cfg_info *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_cae_queue_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
int is_read; int is_read;
bool check;
check = !buf_in || in_size < sizeof(struct hns3_cae_queue_cfg_info);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_queue_cfg_info *)buf_in;
out_info = (struct hns3_cae_queue_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
if (is_read) { if (is_read) {
...@@ -547,32 +545,30 @@ static int hns3_cae_qs_set_new_map(int tc, u32 map, ...@@ -547,32 +545,30 @@ static int hns3_cae_qs_set_new_map(int tc, u32 map,
return 0; return 0;
} }
int hns3_cae_qs_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qs_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_cae_qs_cfg_info *out_info = NULL; struct hns3_cae_qs_cfg_info *out_info =
struct hns3_cae_qs_cfg_info *in_info = NULL; (struct hns3_cae_qs_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_qs_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_qs_cfg_info *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_qs_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
int is_read; int is_read;
int offset; int offset;
u32 bp_map; u32 bp_map;
bool check;
u16 qs_id; u16 qs_id;
int gp_id; int gp_id;
int ret; int ret;
int tc; int tc;
check = !buf_in || in_size < sizeof(struct hns3_cae_qs_cfg_info);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_qs_cfg_info *)buf_in;
out_info = (struct hns3_cae_qs_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
qs_id = in_info->qs_id; qs_id = in_info->qs_id;
gp_id = qs_id / 32; gp_id = qs_id / 32;
...@@ -694,29 +690,27 @@ static int hns3_cae_pri_pg_set_map(struct hclge_dev *hdev, ...@@ -694,29 +690,27 @@ static int hns3_cae_pri_pg_set_map(struct hclge_dev *hdev,
return 0; return 0;
} }
int hns3_cae_pri_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_pri_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_cae_pri_cfg_info *out_info = NULL; struct hns3_cae_pri_cfg_info *out_info =
struct hns3_cae_pri_cfg_info *in_info = NULL; (struct hns3_cae_pri_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_pri_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_pri_cfg_info *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_pri_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
int is_read; int is_read;
u16 pri_id; u16 pri_id;
int cur_pg; int cur_pg;
bool check;
u8 bitmap; u8 bitmap;
check = !buf_in || in_size < sizeof(struct hns3_cae_pri_cfg_info);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_pri_cfg_info *)buf_in;
out_info = (struct hns3_cae_pri_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
pri_id = in_info->pri_id; pri_id = in_info->pri_id;
...@@ -824,27 +818,24 @@ int hns3_cae_pri_cfg(struct hns3_nic_priv *net_priv, ...@@ -824,27 +818,24 @@ int hns3_cae_pri_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_pg_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size, int hns3_cae_pg_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
void *buf_out, u32 out_size) u32 in_size, void *buf_out, u32 out_size)
{ {
struct hns3_cae_pg_cfg_info *out_info = NULL; struct hns3_cae_pg_cfg_info *out_info =
struct hns3_cae_pg_cfg_info *in_info = NULL; (struct hns3_cae_pg_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_pg_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_pg_cfg_info *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_pg_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
int is_read; int is_read;
bool check;
u16 pg_id; u16 pg_id;
check = !buf_in || in_size < sizeof(struct hns3_cae_pg_cfg_info);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_pg_cfg_info *)buf_in;
out_info = (struct hns3_cae_pg_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
pg_id = in_info->pg_id; pg_id = in_info->pg_id;
...@@ -925,27 +916,25 @@ int hns3_cae_pg_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size, ...@@ -925,27 +916,25 @@ int hns3_cae_pg_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size,
return 0; return 0;
} }
int hns3_cae_port_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_port_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
struct hns3_cae_port_cfg_info *out_info = NULL; struct hns3_cae_port_cfg_info *out_info =
struct hns3_cae_port_cfg_info *in_info = NULL; (struct hns3_cae_port_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_port_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_port_cfg_info *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_port_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
u16 port_id; u16 port_id;
int is_read; int is_read;
bool check;
check = !buf_in || in_size < sizeof(struct hns3_cae_port_cfg_info);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_port_cfg_info *)buf_in;
out_info = (struct hns3_cae_port_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
port_id = in_info->port_id; port_id = in_info->port_id;
...@@ -975,33 +964,33 @@ int hns3_cae_port_cfg(struct hns3_nic_priv *net_priv, ...@@ -975,33 +964,33 @@ int hns3_cae_port_cfg(struct hns3_nic_priv *net_priv,
return 0; return 0;
} }
int hns3_cae_ets_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_ets_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size) void *buf_in, u32 in_size, void *buf_out,
u32 out_size)
{ {
#define HNS3_TM_ETS_PORT_SHAPING 0x10820850 #define HNS3_TM_ETS_PORT_SHAPING 0x10820850
struct hns3_cae_ets_cfg_info *out_info = NULL; struct hns3_cae_ets_cfg_info *out_info =
struct hns3_cae_ets_cfg_info *in_info = NULL; (struct hns3_cae_ets_cfg_info *)buf_out;
struct hclge_vport *vport = NULL; struct hns3_cae_ets_cfg_info *in_info =
struct hclge_dev *hdev = NULL; (struct hns3_cae_ets_cfg_info *)buf_in;
bool check = !buf_in ||
in_size < sizeof(struct hns3_cae_ets_cfg_info) ||
!buf_out ||
out_size < sizeof(struct hns3_cae_ets_cfg_info);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
u8 weight[MAX_TC_NUM]; u8 weight[MAX_TC_NUM];
int is_read; int is_read;
bool check;
u16 tc_id; u16 tc_id;
u8 mac_id; u8 mac_id;
u64 value; u64 value;
u64 addr; u64 addr;
check = !buf_in || in_size < sizeof(struct hns3_cae_ets_cfg_info) ||
!buf_out || out_size < sizeof(struct hns3_cae_ets_cfg_info);
if (check) { if (check) {
pr_err("input parameter error in %s function\n", __func__); pr_err("input parameter error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_ets_cfg_info *)buf_in;
out_info = (struct hns3_cae_ets_cfg_info *)buf_out;
is_read = in_info->is_read; is_read = in_info->is_read;
tc_id = in_info->tc_id; tc_id = in_info->tc_id;
mac_id = in_info->mac_id; mac_id = in_info->mac_id;
......
...@@ -96,19 +96,21 @@ struct hns3_cae_ets_cfg_info { ...@@ -96,19 +96,21 @@ struct hns3_cae_ets_cfg_info {
u8 flag; u8 flag;
}; };
int hns3_cae_queue_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_queue_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_qs_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_qs_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
int hns3_cae_pri_cfg(struct hns3_nic_priv *net_priv, u32 out_size);
void *buf_in, u32 in_size, void *buf_out, u32 out_size); int hns3_cae_pri_cfg(const struct hns3_nic_priv *net_priv,
int hns3_cae_pg_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size, void *buf_in, u32 in_size, void *buf_out,
void *buf_out, u32 out_size); u32 out_size);
int hns3_cae_port_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_pg_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
u32 in_size, void *buf_out, u32 out_size);
int hns3_cae_port_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
int hns3_cae_ets_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_ets_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
void *buf_in, u32 in_size, void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
#endif #endif
...@@ -18,7 +18,7 @@ static int hns3_cae_get_commit_id(struct hnae3_handle *handle, u8 *commit_id, ...@@ -18,7 +18,7 @@ static int hns3_cae_get_commit_id(struct hnae3_handle *handle, u8 *commit_id,
{ {
#define COMMIT_ID_LEN 8 #define COMMIT_ID_LEN 8
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct hns3_cae_commit_id_param *resp; struct hns3_cae_commit_id_param *resp = NULL;
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_desc desc; struct hclge_desc desc;
int ret, i; int ret, i;
...@@ -40,28 +40,26 @@ static int hns3_cae_get_commit_id(struct hnae3_handle *handle, u8 *commit_id, ...@@ -40,28 +40,26 @@ static int hns3_cae_get_commit_id(struct hnae3_handle *handle, u8 *commit_id,
return 0; return 0;
} }
int hns3_cae_get_fw_ver(struct hns3_nic_priv *nic_dev, void *buf_in, int hns3_cae_get_fw_ver(const struct hns3_nic_priv *nic_dev, void *buf_in,
u32 in_size, void *buf_out, u32 out_size) u32 in_size, void *buf_out, u32 out_size)
{ {
struct hns3_cae_firmware_ver_param *out_buf; struct hns3_cae_firmware_ver_param *out_buf =
struct hnae3_handle *handle; (struct hns3_cae_firmware_ver_param *)buf_out;
struct hclge_vport *vport; bool check = !buf_out ||
struct hclge_dev *hdev; out_size < sizeof(struct hns3_cae_firmware_ver_param);
bool check;
struct hnae3_handle *handle = nic_dev->ae_handle;
struct hclge_vport *vport =
container_of(handle, struct hclge_vport, nic);
struct hclge_dev *hdev = vport->back;
u32 fw_ver; u32 fw_ver;
check = !buf_out ||
out_size < sizeof(struct hns3_cae_firmware_ver_param);
if (check) { if (check) {
pr_err("input param buf_out error in %s function\n", __func__); pr_err("input param buf_out error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
handle = nic_dev->ae_handle;
vport = container_of(handle, struct hclge_vport, nic);
hdev = vport->back;
out_buf = (struct hns3_cae_firmware_ver_param *)buf_out;
if (hns3_cae_get_commit_id(handle, out_buf->commit_id, if (hns3_cae_get_commit_id(handle, out_buf->commit_id,
&out_buf->ncl_version)) &out_buf->ncl_version))
return -EFAULT; return -EFAULT;
...@@ -75,9 +73,9 @@ int hns3_cae_get_fw_ver(struct hns3_nic_priv *nic_dev, void *buf_in, ...@@ -75,9 +73,9 @@ int hns3_cae_get_fw_ver(struct hns3_nic_priv *nic_dev, void *buf_in,
return 0; return 0;
} }
int hns3_cae_get_driver_ver(struct hns3_nic_priv *nic_dev, int hns3_cae_get_driver_ver(const struct hns3_nic_priv *nic_dev,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
if (!buf_out || out_size < strlen(HNS3_CAE_MOD_VERSION)) if (!buf_out || out_size < strlen(HNS3_CAE_MOD_VERSION))
return -ENOMEM; return -ENOMEM;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#ifndef __HNS3_CAE_VERSION_H__ #ifndef __HNS3_CAE_VERSION_H__
#define __HNS3_CAE_VERSION_H__ #define __HNS3_CAE_VERSION_H__
#define HNS3_CAE_MOD_VERSION "1.9.30.0" #define HNS3_CAE_MOD_VERSION "1.9.32.0"
#define CMT_ID_LEN 8 #define CMT_ID_LEN 8
#define RESV_LEN 3 #define RESV_LEN 3
...@@ -24,9 +24,10 @@ struct hns3_cae_firmware_ver_param { ...@@ -24,9 +24,10 @@ struct hns3_cae_firmware_ver_param {
u32 ncl_version; u32 ncl_version;
}; };
int hns3_cae_get_fw_ver(struct hns3_nic_priv *nic_dev, void *buf_in, int hns3_cae_get_fw_ver(const struct hns3_nic_priv *nic_dev, void *buf_in,
u32 in_size, void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
int hns3_cae_get_driver_ver(struct hns3_nic_priv *nic_dev, void *buf_in, int hns3_cae_get_driver_ver(const struct hns3_nic_priv *nic_dev,
u32 in_size, void *buf_out, u32 out_size); void *buf_in, u32 in_size, void *buf_out,
u32 out_size);
#endif #endif
...@@ -14,31 +14,27 @@ ...@@ -14,31 +14,27 @@
#include "hns3_cae_cmd.h" #include "hns3_cae_cmd.h"
#include "hns3_cae_vlan.h" #include "hns3_cae_vlan.h"
int hns3_cae_upmapping_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_upmapping_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size) void *buf_out, u32 out_size)
{ {
#define HCLGE_OPC_VLANUP_MAPPING_VF_TX_CFG 0x0F10 #define HCLGE_OPC_VLANUP_MAPPING_VF_TX_CFG 0x0F10
#define HCLGE_OPC_VLANUP_MAPPING_PORT_TX_CFG 0x0F11 #define HCLGE_OPC_VLANUP_MAPPING_PORT_TX_CFG 0x0F11
struct hns3_cae_vlanup_param *out_info; struct hns3_cae_vlanup_param *out_info =
struct hns3_cae_vlanup_param *in_info; (struct hns3_cae_vlanup_param *)buf_out;
struct hclge_vport *vport; struct hns3_cae_vlanup_param *in_info =
struct hclge_dev *hdev; (struct hns3_cae_vlanup_param *)buf_in;
bool check = !buf_in || in_size < sizeof(struct hns3_cae_vlanup_param);
struct hclge_vport *vport = hns3_cae_get_vport(net_priv->ae_handle);
struct hclge_dev *hdev = vport->back;
struct hclge_desc desc; struct hclge_desc desc;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cae_vlanup_param);
if (check) { if (check) {
pr_err("input param buf_in error in %s function\n", __func__); pr_err("input param buf_in error in %s function\n", __func__);
return -EFAULT; return -EFAULT;
} }
vport = hns3_cae_get_vport(net_priv->ae_handle);
hdev = vport->back;
in_info = (struct hns3_cae_vlanup_param *)buf_in;
out_info = (struct hns3_cae_vlanup_param *)buf_out;
if (in_info->is_read) { if (in_info->is_read) {
check = !buf_out || check = !buf_out ||
out_size < sizeof(struct hns3_cae_vlanup_param); out_size < sizeof(struct hns3_cae_vlanup_param);
......
...@@ -34,7 +34,7 @@ struct hns3_cae_vlanup_param { ...@@ -34,7 +34,7 @@ struct hns3_cae_vlanup_param {
u8 module; u8 module;
}; };
int hns3_cae_upmapping_cfg(struct hns3_nic_priv *net_priv, int hns3_cae_upmapping_cfg(const struct hns3_nic_priv *net_priv,
void *buf_in, u32 in_size, void *buf_in, u32 in_size,
void *buf_out, u32 out_size); void *buf_out, u32 out_size);
......
...@@ -18,7 +18,7 @@ static int hns3_get_sfp_present(struct hnae3_handle *handle, u32 *present) ...@@ -18,7 +18,7 @@ static int hns3_get_sfp_present(struct hnae3_handle *handle, u32 *present)
{ {
struct hclge_vport *vport = hns3_cae_get_vport(handle); struct hclge_vport *vport = hns3_cae_get_vport(handle);
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_sfp_present_cmd *resp; struct hclge_sfp_present_cmd *resp = NULL;
struct hclge_desc desc; struct hclge_desc desc;
int ret; int ret;
...@@ -42,7 +42,7 @@ static int _hns3_get_sfpinfo(struct hnae3_handle *handle, u8 *buff, ...@@ -42,7 +42,7 @@ static int _hns3_get_sfpinfo(struct hnae3_handle *handle, u8 *buff,
struct hclge_dev *hdev = vport->back; struct hclge_dev *hdev = vport->back;
struct hclge_sfp_info *resp = NULL; struct hclge_sfp_info *resp = NULL;
u32 data_length; u32 data_length;
u8 *temp_data; u8 *temp_data = NULL;
u32 temp_len; u32 temp_len;
int ret; int ret;
u32 i; u32 i;
...@@ -98,7 +98,7 @@ static int hns3_get_sfpinfo(struct hnae3_handle *handle, u8 *buff, u16 offset, ...@@ -98,7 +98,7 @@ static int hns3_get_sfpinfo(struct hnae3_handle *handle, u8 *buff, u16 offset,
u16 size, u16 *outlen) u16 size, u16 *outlen)
{ {
u16 tmp_size; u16 tmp_size;
u8 *tmp_buff; u8 *tmp_buff = NULL;
u16 tmp_outlen; u16 tmp_outlen;
int ret; int ret;
...@@ -144,26 +144,20 @@ int hns3_set_sfp_state(struct hnae3_handle *handle, bool en) ...@@ -144,26 +144,20 @@ int hns3_set_sfp_state(struct hnae3_handle *handle, bool en)
return ret; return ret;
} }
int hns3_xsfp_cfg(struct hns3_nic_priv *net_priv, void *buf_in, u32 in_size, int hns3_xsfp_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
void *buf_out, u32 out_size) u32 in_size, void *buf_out, u32 out_size)
{ {
struct hns3_xsfp_info *xsfp_info_out; struct hns3_xsfp_info *xsfp_info_out = (struct hns3_xsfp_info *)buf_out;
struct hnae3_handle *handle; bool check = !buf_in || in_size < sizeof(struct hns3_cfg_xsfp) ||
struct hns3_cfg_xsfp *param; !buf_out || out_size < sizeof(struct hns3_xsfp_info);
struct hnae3_handle *handle = hns3_get_handle(net_priv->netdev);
struct hns3_cfg_xsfp *param = (struct hns3_cfg_xsfp *)buf_in;
u32 sfp_present = 0; u32 sfp_present = 0;
bool check;
int ret; int ret;
check = !buf_in || in_size < sizeof(struct hns3_cfg_xsfp) ||
!buf_out || out_size < sizeof(struct hns3_xsfp_info);
if (check) if (check)
return -ENODEV; return -ENODEV;
handle = hns3_get_handle(net_priv->netdev);
param = (struct hns3_cfg_xsfp *)buf_in;
xsfp_info_out = (struct hns3_xsfp_info *)buf_out;
ret = hns3_get_sfp_present(handle, &sfp_present); ret = hns3_get_sfp_present(handle, &sfp_present);
if (ret) { if (ret) {
pr_err("nic_get_sfp_present error.\n"); pr_err("nic_get_sfp_present error.\n");
......
...@@ -45,7 +45,7 @@ struct hns3_xsfp_info { ...@@ -45,7 +45,7 @@ struct hns3_xsfp_info {
u8 sfp_info[STD_XSFP_INFO_MAX_SIZE]; u8 sfp_info[STD_XSFP_INFO_MAX_SIZE];
}; };
int hns3_xsfp_cfg(struct hns3_nic_priv *net_priv, void *buf_in, int hns3_xsfp_cfg(const struct hns3_nic_priv *net_priv, void *buf_in,
u32 in_size, void *buf_out, u32 out_size); u32 in_size, void *buf_out, u32 out_size);
#endif #endif
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include "hnae3.h" #include "hnae3.h"
#define HNS3_MOD_VERSION "1.9.30.0" #define HNS3_MOD_VERSION "1.9.32.0"
extern char hns3_driver_version[]; extern char hns3_driver_version[];
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include "hclge_cmd.h" #include "hclge_cmd.h"
#include "hnae3.h" #include "hnae3.h"
#define HCLGE_MOD_VERSION "1.9.30.0" #define HCLGE_MOD_VERSION "1.9.32.0"
#define HCLGE_DRIVER_NAME "hclge" #define HCLGE_DRIVER_NAME "hclge"
#define HCLGE_MAX_PF_NUM 8 #define HCLGE_MAX_PF_NUM 8
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include "hclgevf_cmd.h" #include "hclgevf_cmd.h"
#include "hnae3.h" #include "hnae3.h"
#define HCLGEVF_MOD_VERSION "1.9.30.0" #define HCLGEVF_MOD_VERSION "1.9.32.0"
#define HCLGEVF_DRIVER_NAME "hclgevf" #define HCLGEVF_DRIVER_NAME "hclgevf"
#define HCLGEVF_MAX_VLAN_ID 4095 #define HCLGEVF_MAX_VLAN_ID 4095
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册