Merge branch 'net-hns3-add-two-fixes-for-net'
Guangbin Huang says: ==================== net: hns3: add two fixes for -net This series adds two fixes for the HNS3 ethernet driver. ==================== Link: https://lore.kernel.org/r/20220330134506.36635-1-huangguangbin2@huawei.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
Коммит
e74e024434
|
@ -845,6 +845,7 @@ struct hnae3_handle {
|
|||
struct dentry *hnae3_dbgfs;
|
||||
/* protects concurrent contention between debugfs commands */
|
||||
struct mutex dbgfs_lock;
|
||||
char **dbgfs_buf;
|
||||
|
||||
/* Network interface message level enabled bits */
|
||||
u32 msg_enable;
|
||||
|
|
|
@ -1227,7 +1227,7 @@ static ssize_t hns3_dbg_read(struct file *filp, char __user *buffer,
|
|||
return ret;
|
||||
|
||||
mutex_lock(&handle->dbgfs_lock);
|
||||
save_buf = &hns3_dbg_cmd[index].buf;
|
||||
save_buf = &handle->dbgfs_buf[index];
|
||||
|
||||
if (!test_bit(HNS3_NIC_STATE_INITED, &priv->state) ||
|
||||
test_bit(HNS3_NIC_STATE_RESETTING, &priv->state)) {
|
||||
|
@ -1332,6 +1332,13 @@ int hns3_dbg_init(struct hnae3_handle *handle)
|
|||
int ret;
|
||||
u32 i;
|
||||
|
||||
handle->dbgfs_buf = devm_kcalloc(&handle->pdev->dev,
|
||||
ARRAY_SIZE(hns3_dbg_cmd),
|
||||
sizeof(*handle->dbgfs_buf),
|
||||
GFP_KERNEL);
|
||||
if (!handle->dbgfs_buf)
|
||||
return -ENOMEM;
|
||||
|
||||
hns3_dbg_dentry[HNS3_DBG_DENTRY_COMMON].dentry =
|
||||
debugfs_create_dir(name, hns3_dbgfs_root);
|
||||
handle->hnae3_dbgfs = hns3_dbg_dentry[HNS3_DBG_DENTRY_COMMON].dentry;
|
||||
|
@ -1380,9 +1387,9 @@ void hns3_dbg_uninit(struct hnae3_handle *handle)
|
|||
u32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(hns3_dbg_cmd); i++)
|
||||
if (hns3_dbg_cmd[i].buf) {
|
||||
kvfree(hns3_dbg_cmd[i].buf);
|
||||
hns3_dbg_cmd[i].buf = NULL;
|
||||
if (handle->dbgfs_buf[i]) {
|
||||
kvfree(handle->dbgfs_buf[i]);
|
||||
handle->dbgfs_buf[i] = NULL;
|
||||
}
|
||||
|
||||
mutex_destroy(&handle->dbgfs_lock);
|
||||
|
|
|
@ -49,7 +49,6 @@ struct hns3_dbg_cmd_info {
|
|||
enum hnae3_dbg_cmd cmd;
|
||||
enum hns3_dbg_dentry_type dentry;
|
||||
u32 buf_len;
|
||||
char *buf;
|
||||
int (*init)(struct hnae3_handle *handle, unsigned int cmd);
|
||||
};
|
||||
|
||||
|
|
|
@ -10323,11 +10323,11 @@ int hclge_set_vlan_filter(struct hnae3_handle *handle, __be16 proto,
|
|||
}
|
||||
|
||||
if (!ret) {
|
||||
if (is_kill)
|
||||
hclge_rm_vport_vlan_table(vport, vlan_id, false);
|
||||
else
|
||||
if (!is_kill)
|
||||
hclge_add_vport_vlan_table(vport, vlan_id,
|
||||
writen_to_tbl);
|
||||
else if (is_kill && vlan_id != 0)
|
||||
hclge_rm_vport_vlan_table(vport, vlan_id, false);
|
||||
} else if (is_kill) {
|
||||
/* when remove hw vlan filter failed, record the vlan id,
|
||||
* and try to remove it from hw later, to be consistence
|
||||
|
|
Загрузка…
Ссылка в новой задаче