From fb03a123307311a4378d5926a6a09174ae1ab2ec Mon Sep 17 00:00:00 2001 From: Xue Date: Mon, 12 Aug 2019 14:33:40 +0800 Subject: [PATCH 2771/2944] openeuler: net: hinic: fix bug in set vlan commit 2db79a68773b369a2e04a6c2fb3bcb2db6fbda08 openEuler-1.0 driver inclusion category:bugfix bugzilla:4472 CVE:NA ----------------------------------------------------------------------- When the ip link set is configured with the vlan vlan for the first time, the default initial vlan id is 0. When the vlan is deleted, the new vlan id is 0. The non-zero judgment is made when the interface is invoked, resulting in the vlan id being 0. Returns an illegal value directly. This patch fix this bug. Reviewed-by: Guan Xiaodong Signed-off-by: Xue Reviewed-by: Yang Yingliang Signed-off-by: Yang Yingliang Signed-off-by: Xin Hao Reviewed-by: Baolin Wang --- drivers/net/ethernet/huawei/hinic/hinic_main.c | 2 -- drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/net/ethernet/huawei/hinic/hinic_main.c b/drivers/net/ethernet/huawei/hinic/hinic_main.c index a2238b9..a4c9b06 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_main.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_main.c @@ -460,8 +460,6 @@ int hinic_poll(struct napi_struct *napi, int budget) HINIC_MSIX_ENABLE); else if (!nic_dev->in_vm) enable_irq(irq_cfg->irq_id); - } else { - hinic_rx_poll(irq_cfg->rxq, HINIC_RX_BUFFER_WRITE); } return max(tx_pkts, rx_pkts); diff --git a/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c b/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c index d7796d9..8d89d30 100644 --- a/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c +++ b/drivers/net/ethernet/huawei/hinic/hinic_nic_cfg.c @@ -346,7 +346,7 @@ int hinic_update_mac_vlan(void *hwdev, u16 old_vlan, u16 new_vlan, int vf_id) u16 func_id, vlan_id; int err; - if (!hwdev || !old_vlan || !new_vlan) + if (!hwdev || old_vlan >= VLAN_N_VID || new_vlan >= VLAN_N_VID) return -EINVAL; vf_info = dev->nic_io->vf_infos + HW_VF_ID_TO_OS(vf_id); -- 1.8.3.1