Messages in this thread | | | Date | Mon, 18 Sep 2023 13:58:30 +0100 | Subject | Re: [PATCH] net: hinic: Fix warning-hinic_set_vlan_fliter() warn: variable dereferenced before check 'hwdev' | From | Vadim Fedorenko <> |
| |
On 18/09/2023 13:34, Cai Huoqing wrote: > Fix warning, 'hwdev' is checked too late
I cannot find any spot where hwdev will be NULL. Other functions in the driver assume that hwdev points to proper structure always. I believe the proper fix will be to remove redundant check.
> > Fixes: 2acf960e3be6 ("net: hinic: Add support for configuration of rx-vlan-filter by ethtool") > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/r/202309112354.pikZCmyk-lkp@intel.com/ > Signed-off-by: Cai Huoqing <cai.huoqing@linux.dev> > --- > drivers/net/ethernet/huawei/hinic/hinic_port.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/huawei/hinic/hinic_port.c b/drivers/net/ethernet/huawei/hinic/hinic_port.c > index 9406237c461e..bf920c709f82 100644 > --- a/drivers/net/ethernet/huawei/hinic/hinic_port.c > +++ b/drivers/net/ethernet/huawei/hinic/hinic_port.c > @@ -450,8 +450,8 @@ int hinic_set_rx_vlan_offload(struct hinic_dev *nic_dev, u8 en) > int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en) > { > struct hinic_hwdev *hwdev = nic_dev->hwdev; > - struct hinic_hwif *hwif = hwdev->hwif; > - struct pci_dev *pdev = hwif->pdev; > + struct hinic_hwif *hwif; > + struct pci_dev *pdev; > struct hinic_vlan_filter vlan_filter; > u16 out_size = sizeof(vlan_filter); > int err; > @@ -459,6 +459,9 @@ int hinic_set_vlan_fliter(struct hinic_dev *nic_dev, u32 en) > if (!hwdev) > return -EINVAL; > > + hwif = hwdev->hwif; > + pdev = hwif->pdev; > + > vlan_filter.func_idx = HINIC_HWIF_FUNC_IDX(hwif); > vlan_filter.enable = en; >
| |