From: Jian Shen <shenjia...@huawei.com>

It's necessary to check hook whether being defined before
calling, improve the reliability.

Signed-off-by: Jian Shen <shenjia...@huawei.com>
Signed-off-by: Peng Li <lipeng...@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c 
b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
index a7ae4f3..ac84816 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c
@@ -1133,14 +1133,16 @@ static int hns3_nic_set_features(struct net_device 
*netdev,
                }
        }
 
-       if (changed & NETIF_F_HW_VLAN_CTAG_FILTER) {
+       if ((changed & NETIF_F_HW_VLAN_CTAG_FILTER) &&
+           h->ae_algo->ops->enable_vlan_filter) {
                if (features & NETIF_F_HW_VLAN_CTAG_FILTER)
                        h->ae_algo->ops->enable_vlan_filter(h, true);
                else
                        h->ae_algo->ops->enable_vlan_filter(h, false);
        }
 
-       if (changed & NETIF_F_HW_VLAN_CTAG_RX) {
+       if ((changed & NETIF_F_HW_VLAN_CTAG_RX) &&
+           h->ae_algo->ops->enable_hw_strip_rxvtag) {
                if (features & NETIF_F_HW_VLAN_CTAG_RX)
                        ret = h->ae_algo->ops->enable_hw_strip_rxvtag(h, true);
                else
-- 
1.9.1

Reply via email to