tree: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
master
head: e62b2fd5d3b4c5c958cf88b92f31960750d88dc5
commit: 21e043cd812492e0a02fbbd956fbe49e19daeb45 [709/723] net: hns3: fix set
port based VLAN for PF
reproduce:
# apt-get install sparse
git checkout 21e043cd812492e0a02fbbd956fbe49e19daeb45
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
sparse warnings: (new ones prefixed by >>)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:294:34: sparse: cast
from restricted __be32
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:295:34: sparse: cast
from restricted __be16
include/linux/slab.h:666:13: sparse: undefined identifier
'__builtin_mul_overflow'
include/linux/device.h:686:13: sparse: undefined identifier
'__builtin_mul_overflow'
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:1218:27: sparse:
expression using sizeof(void)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:1218:27: sparse:
expression using sizeof(void)
include/linux/device.h:686:13: sparse: not a function <noident>
include/linux/device.h:686:13: sparse: not a function <noident>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:1528:22: sparse:
expression using sizeof(void)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:1528:22: sparse:
expression using sizeof(void)
include/linux/device.h:686:13: sparse: not a function <noident>
include/linux/device.h:686:13: sparse: not a function <noident>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:2276:16: sparse:
incorrect type in assignment (different base types) @@ expected unsigned int
[unsigned] [usertype] <noident> @@ got ed int [unsigned] [usertype]
<noident> @@
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:2276:16: expected
unsigned int [unsigned] [usertype] <noident>
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:2276:16: got
restricted __le32 [usertype] sfp_speed
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:3221:22: sparse:
expression using sizeof(void)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:3221:22: sparse:
expression using sizeof(void)
>> drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6975:63: sparse:
>> incorrect type in argument 2 (different base types) @@ expected
>> restricted __be16 [usertype] proto @@ got unsignedrestricted __be16
>> [usertype] proto @@
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6975:63: expected
restricted __be16 [usertype] proto
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6975:63: got
unsigned short [unsigned] [usertype] vlan_proto
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6983:67: sparse:
incorrect type in argument 2 (different base types) @@ expected restricted
__be16 [usertype] proto @@ got unsignedrestricted __be16 [usertype] proto @@
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6983:67: expected
restricted __be16 [usertype] proto
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:6983:67: got
unsigned short [unsigned] [usertype] vlan_proto
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:7136:24: sparse:
expression using sizeof(void)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:8080:16: sparse:
expression using sizeof(void)
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c:8080:16: sparse:
expression using sizeof(void)
include/linux/slab.h:666:13: sparse: not a function <noident>
include/linux/slab.h:666:13: sparse: not a function <noident>
include/linux/slab.h:666:13: sparse: not a function <noident>
include/linux/slab.h:666:13: sparse: call with no type!
include/linux/device.h:686:13: sparse: call with no type!
vim +6975 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
6958
6959 int hclge_update_port_base_vlan_cfg(struct hclge_vport *vport, u16
state,
6960 struct hclge_vlan_info *vlan_info)
6961 {
6962 struct hnae3_handle *nic = &vport->nic;
6963 struct hclge_vlan_info *old_vlan_info;
6964 struct hclge_dev *hdev = vport->back;
6965 int ret;
6966
6967 old_vlan_info = &vport->port_base_vlan_cfg.vlan_info;
6968
6969 ret = hclge_vlan_offload_cfg(vport, state, vlan_info->vlan_tag);
6970 if (ret)
6971 return ret;
6972
6973 if (state == HNAE3_PORT_BASE_VLAN_MODIFY) {
6974 /* add new VLAN tag */
> 6975 ret = hclge_set_vlan_filter_hw(hdev,
> vlan_info->vlan_proto,
6976 vport->vport_id,
6977 vlan_info->vlan_tag,
6978 vlan_info->qos, false);
6979 if (ret)
6980 return ret;
6981
6982 /* remove old VLAN tag */
6983 ret = hclge_set_vlan_filter_hw(hdev,
old_vlan_info->vlan_proto,
6984 vport->vport_id,
6985 old_vlan_info->vlan_tag,
6986 old_vlan_info->qos,
true);
6987 if (ret)
6988 return ret;
6989
6990 goto update;
6991 }
6992
6993 ret = hclge_update_vlan_filter_entries(vport, state, vlan_info,
6994 old_vlan_info);
6995 if (ret)
6996 return ret;
6997
6998 /* update state only when disable/enable port based VLAN */
6999 vport->port_base_vlan_cfg.state = state;
7000 if (state == HNAE3_PORT_BASE_VLAN_DISABLE)
7001 nic->port_base_vlan_state =
HNAE3_PORT_BASE_VLAN_DISABLE;
7002 else
7003 nic->port_base_vlan_state = HNAE3_PORT_BASE_VLAN_ENABLE;
7004
7005 update:
7006 vport->port_base_vlan_cfg.vlan_info.vlan_tag =
vlan_info->vlan_tag;
7007 vport->port_base_vlan_cfg.vlan_info.qos = vlan_info->qos;
7008 vport->port_base_vlan_cfg.vlan_info.vlan_proto =
vlan_info->vlan_proto;
7009
7010 return 0;
7011 }
7012
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation