Kernel
Threads by month
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- 50 participants
- 22091 discussions
[openeuler:OLK-6.6 1/1] drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:883:6: error: no previous prototype for function 'sss_nic_port_module_cable_plug'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 6864d14bb90f03a1e5b7fbcc04fc2ba4d692bd3e [1/1] support 3SNIC 910/920/930 NIC
config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20251221/202512211239.WIsno7Ky-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512211239.WIsno7Ky-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512211239.WIsno7Ky-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:6:
In file included from include/linux/pci.h:1663:
In file included from include/linux/dmapool.h:14:
In file included from include/linux/scatterlist.h:8:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:883:6: error: no previous prototype for function 'sss_nic_port_module_cable_plug' [-Werror,-Wmissing-prototypes]
883 | void sss_nic_port_module_cable_plug(struct sss_nic_dev *nic_dev, void *event_data)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:883:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
883 | void sss_nic_port_module_cable_plug(struct sss_nic_dev *nic_dev, void *event_data)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:889:6: error: no previous prototype for function 'sss_nic_port_module_cable_unplug' [-Werror,-Wmissing-prototypes]
889 | void sss_nic_port_module_cable_unplug(struct sss_nic_dev *nic_dev, void *event_data)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:889:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
889 | void sss_nic_port_module_cable_unplug(struct sss_nic_dev *nic_dev, void *event_data)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:895:6: error: no previous prototype for function 'sss_nic_port_module_link_err' [-Werror,-Wmissing-prototypes]
895 | void sss_nic_port_module_link_err(struct sss_nic_dev *nic_dev, void *event_data)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:895:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
895 | void sss_nic_port_module_link_err(struct sss_nic_dev *nic_dev, void *event_data)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:1034:22: error: no previous prototype for function 'get_nic_uld_info' [-Werror,-Wmissing-prototypes]
1034 | struct sss_uld_info *get_nic_uld_info(void)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:1034:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1034 | struct sss_uld_info *get_nic_uld_info(void)
| ^
| static
9 errors generated.
--
In file included from drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:6:
In file included from include/net/xfrm.h:9:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/x86/include/asm/cacheflush.h:5:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:42:5: error: no previous prototype for function 'sss_nic_alloc_sq_resource' [-Werror,-Wmissing-prototypes]
42 | int sss_nic_alloc_sq_resource(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:42:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
42 | int sss_nic_alloc_sq_resource(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:87:6: error: no previous prototype for function 'sss_nic_free_sq_resource' [-Werror,-Wmissing-prototypes]
87 | void sss_nic_free_sq_resource(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:87:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
87 | void sss_nic_free_sq_resource(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:104:6: error: no previous prototype for function 'sss_nic_init_all_sq' [-Werror,-Wmissing-prototypes]
104 | void sss_nic_init_all_sq(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:104:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
104 | void sss_nic_init_all_sq(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:128:5: error: no previous prototype for function 'sss_nic_alloc_sq_desc_group' [-Werror,-Wmissing-prototypes]
128 | int sss_nic_alloc_sq_desc_group(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:128:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
128 | int sss_nic_alloc_sq_desc_group(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:153:6: error: no previous prototype for function 'sss_nic_free_sq_desc_group' [-Werror,-Wmissing-prototypes]
153 | void sss_nic_free_sq_desc_group(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:153:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
153 | void sss_nic_free_sq_desc_group(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:200:6: error: no previous prototype for function 'sss_nic_flush_all_sq' [-Werror,-Wmissing-prototypes]
200 | void sss_nic_flush_all_sq(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:200:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
200 | void sss_nic_flush_all_sq(struct sss_nic_dev *nic_dev)
| ^
| static
11 errors generated.
--
In file included from drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:8:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/x86/include/asm/cacheflush.h:5:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:80:5: error: no previous prototype for function 'sss_nic_alloc_rq_res_group' [-Werror,-Wmissing-prototypes]
80 | int sss_nic_alloc_rq_res_group(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:80:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
80 | int sss_nic_alloc_rq_res_group(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:136:6: error: no previous prototype for function 'sss_nic_free_rq_res_group' [-Werror,-Wmissing-prototypes]
136 | void sss_nic_free_rq_res_group(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:136:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
136 | void sss_nic_free_rq_res_group(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:208:5: error: no previous prototype for function 'sss_nic_init_rq_desc_group' [-Werror,-Wmissing-prototypes]
208 | int sss_nic_init_rq_desc_group(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:208:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
208 | int sss_nic_init_rq_desc_group(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:235:6: error: no previous prototype for function 'sss_nic_free_rq_desc_group' [-Werror,-Wmissing-prototypes]
235 | void sss_nic_free_rq_desc_group(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:235:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
235 | void sss_nic_free_rq_desc_group(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:241:5: error: no previous prototype for function 'sss_nic_alloc_rq_desc_group' [-Werror,-Wmissing-prototypes]
241 | int sss_nic_alloc_rq_desc_group(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:241:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
241 | int sss_nic_alloc_rq_desc_group(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:267:5: error: no previous prototype for function 'sss_nic_update_rx_rss' [-Werror,-Wmissing-prototypes]
267 | int sss_nic_update_rx_rss(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:267:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
267 | int sss_nic_update_rx_rss(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:282:6: error: no previous prototype for function 'sss_nic_reset_rx_rss' [-Werror,-Wmissing-prototypes]
282 | void sss_nic_reset_rx_rss(struct net_device *netdev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:282:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
282 | void sss_nic_reset_rx_rss(struct net_device *netdev)
| ^
| static
12 errors generated.
--
In file included from drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_reset.c:8:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/x86/include/asm/cacheflush.h:5:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_reset.c:179:6: error: no previous prototype for function 'sss_nic_rq_watchdog_handler' [-Werror,-Wmissing-prototypes]
179 | void sss_nic_rq_watchdog_handler(struct work_struct *work)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_reset.c:179:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
179 | void sss_nic_rq_watchdog_handler(struct work_struct *work)
| ^
| static
6 errors generated.
--
In file included from drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:7:
In file included from include/linux/etherdevice.h:20:
In file included from include/linux/if_ether.h:19:
In file included from include/linux/skbuff.h:17:
In file included from include/linux/bvec.h:10:
In file included from include/linux/highmem.h:8:
In file included from include/linux/cacheflush.h:5:
In file included from arch/x86/include/asm/cacheflush.h:5:
In file included from include/linux/mm.h:2204:
include/linux/vmstat.h:508:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
508 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
509 | item];
| ~~~~
include/linux/vmstat.h:515:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
515 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
516 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:522:36: error: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Werror,-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:527:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
527 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
528 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:536:43: error: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Werror,-Wenum-enum-conversion]
536 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
537 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:350:6: error: no previous prototype for function 'sss_nic_flush_tcam_list' [-Werror,-Wmissing-prototypes]
350 | void sss_nic_flush_tcam_list(struct sss_nic_tcam_info *tcam_info)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:350:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
350 | void sss_nic_flush_tcam_list(struct sss_nic_tcam_info *tcam_info)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:366:6: error: no previous prototype for function 'sss_nic_flush_tcam_node_list' [-Werror,-Wmissing-prototypes]
366 | void sss_nic_flush_tcam_node_list(struct sss_nic_tcam_info *tcam_info)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:366:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
366 | void sss_nic_flush_tcam_node_list(struct sss_nic_tcam_info *tcam_info)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:382:6: error: no previous prototype for function 'sss_nic_flush_rx_flow_rule' [-Werror,-Wmissing-prototypes]
382 | void sss_nic_flush_rx_flow_rule(struct sss_nic_rx_rule *rx_flow_rule)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:382:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
382 | void sss_nic_flush_rx_flow_rule(struct sss_nic_rx_rule *rx_flow_rule)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:397:6: error: no previous prototype for function 'sss_nic_flush_tcam' [-Werror,-Wmissing-prototypes]
397 | void sss_nic_flush_tcam(struct sss_nic_dev *nic_dev)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:397:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
397 | void sss_nic_flush_tcam(struct sss_nic_dev *nic_dev)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:797:5: error: no previous prototype for function 'sss_nic_ethtool_update_flow' [-Werror,-Wmissing-prototypes]
797 | int sss_nic_ethtool_update_flow(struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:797:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
797 | int sss_nic_ethtool_update_flow(struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:842:5: error: no previous prototype for function 'sss_nic_ethtool_delete_flow' [-Werror,-Wmissing-prototypes]
842 | int sss_nic_ethtool_delete_flow(struct sss_nic_dev *nic_dev, u32 location)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:842:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
842 | int sss_nic_ethtool_delete_flow(struct sss_nic_dev *nic_dev, u32 location)
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:864:5: error: no previous prototype for function 'sss_nic_ethtool_get_flow' [-Werror,-Wmissing-prototypes]
864 | int sss_nic_ethtool_get_flow(const struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:864:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
864 | int sss_nic_ethtool_get_flow(const struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:887:5: error: no previous prototype for function 'sss_nic_ethtool_get_all_flows' [-Werror,-Wmissing-prototypes]
887 | int sss_nic_ethtool_get_all_flows(const struct sss_nic_dev *nic_dev,
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:887:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
887 | int sss_nic_ethtool_get_all_flows(const struct sss_nic_dev *nic_dev,
| ^
| static
>> drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:905:6: error: no previous prototype for function 'sss_nic_validate_channel_setting_in_ntuple' [-Werror,-Wmissing-prototypes]
905 | bool sss_nic_validate_channel_setting_in_ntuple(const struct sss_nic_dev *nic_dev, u32 q_num)
| ^
drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:905:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
905 | bool sss_nic_validate_channel_setting_in_ntuple(const struct sss_nic_dev *nic_dev, u32 q_num)
| ^
| static
14 errors generated.
..
vim +/sss_nic_port_module_cable_plug +883 drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c
882
> 883 void sss_nic_port_module_cable_plug(struct sss_nic_dev *nic_dev, void *event_data)
884 {
885 nicif_info(nic_dev, link, nic_dev->netdev,
886 "Port module event: Cable plugged\n");
887 }
888
> 889 void sss_nic_port_module_cable_unplug(struct sss_nic_dev *nic_dev, void *event_data)
890 {
891 nicif_info(nic_dev, link, nic_dev->netdev,
892 "Port module event: Cable unplugged\n");
893 }
894
> 895 void sss_nic_port_module_link_err(struct sss_nic_dev *nic_dev, void *event_data)
896 {
897 struct sss_nic_port_module_event *port_event = event_data;
898 enum link_err_type err_type = port_event->err_type;
899
900 nicif_info(nic_dev, link, nic_dev->netdev,
901 "Fail to link, err_type: 0x%x\n", err_type);
902 }
903
904 static void sss_nic_port_module_event_handler(struct sss_nic_dev *nic_dev,
905 struct sss_event_info *event)
906 {
907 struct sss_nic_port_module_event *port_event = (void *)event->event_data;
908 enum port_module_event_type type = port_event->type;
909
910 sss_nic_port_module_event_handler_t handler[SSSNIC_PORT_MODULE_MAX_EVENT] = {
911 sss_nic_port_module_cable_plug,
912 sss_nic_port_module_cable_unplug,
913 sss_nic_port_module_link_err,
914 };
915
916 if (type >= SSSNIC_PORT_MODULE_MAX_EVENT) {
917 nicif_err(nic_dev, link, nic_dev->netdev,
918 "Unknown port module type %d\n", type);
919 return;
920 }
921
922 if (handler[type])
923 handler[type](nic_dev, event->event_data);
924 }
925
926 static void sss_nic_link_down(struct sss_nic_dev *nic_dev, struct sss_event_info *event)
927 {
928 struct net_device *netdev = nic_dev->netdev;
929
930 if (!SSS_CHANNEL_RES_VALID(nic_dev) ||
931 test_bit(SSSNIC_LP_TEST, &nic_dev->flags) ||
932 test_bit(SSSNIC_FORCE_LINK_UP, &nic_dev->flags))
933 return;
934
935 if (!netif_carrier_ok(netdev))
936 return;
937
938 netif_carrier_off(netdev);
939 nic_dev->link_status = false;
940 nicif_info(nic_dev, link, netdev, "Link is down\n");
941 }
942
943 static void sss_nic_link_up(struct sss_nic_dev *nic_dev, struct sss_event_info *event)
944 {
945 struct net_device *netdev = nic_dev->netdev;
946
947 if (!SSS_CHANNEL_RES_VALID(nic_dev) ||
948 test_bit(SSSNIC_LP_TEST, &nic_dev->flags) ||
949 test_bit(SSSNIC_FORCE_LINK_UP, &nic_dev->flags))
950 return;
951
952 if (netif_carrier_ok(netdev))
953 return;
954
955 netif_carrier_on(netdev);
956 nic_dev->link_status = true;
957
958 nicif_info(nic_dev, link, netdev, "Link is up\n");
959 }
960
961 static void sss_nic_comm_fail_envet_handler(struct sss_nic_dev *nic_dev,
962 struct sss_event_info *event)
963 {
964 struct sss_fault_event *fault = (void *)event->event_data;
965
966 if (fault->fault_level == SSS_FAULT_LEVEL_SERIOUS_FLR &&
967 fault->info.chip.func_id == sss_get_global_func_id(nic_dev->hwdev))
968 sss_nic_link_down(nic_dev, event);
969 }
970
971 static void sss_nic_event_handler(struct sss_nic_dev *nic_dev, struct sss_event_info *event)
972 {
973 sss_nic_event_handler_t handler[SSSNIC_EVENT_MAX] = {
974 sss_nic_link_down,
975 sss_nic_link_up,
976 sss_nic_port_module_event_handler,
977 NULL,
978 };
979
980 if (event->type >= SSSNIC_EVENT_MAX)
981 return;
982
983 if (handler[event->type])
984 handler[event->type](nic_dev, event);
985 }
986
987 static void sss_nic_comm_event_handler(struct sss_nic_dev *nic_dev,
988 struct sss_event_info *event)
989 {
990 sss_nic_event_handler_t handler[SSS_EVENT_MAX] = {
991 sss_nic_link_down,
992 sss_nic_link_down,
993 sss_nic_comm_fail_envet_handler,
994 sss_nic_sriov_state_change,
995 NULL,
996 sss_nic_link_down,
997 };
998
999 if (event->type >= SSS_EVENT_MAX)
1000 return;
1001
1002 if (handler[event->type])
1003 handler[event->type](nic_dev, event);
1004 }
1005
1006 static void sss_nic_event(struct sss_hal_dev *uld_dev, void *adapter,
1007 struct sss_event_info *event)
1008 {
1009 struct sss_nic_dev *nic_dev = adapter;
1010
1011 if (!nic_dev || !event || !sss_support_nic(uld_dev->hwdev))
1012 return;
1013
1014 if (event->service == SSS_EVENT_SRV_NIC) {
1015 sss_nic_event_handler(nic_dev, event);
1016 return;
1017 }
1018
1019 if (event->service == SSS_EVENT_SRV_COMM) {
1020 sss_nic_comm_event_handler(nic_dev, event);
1021 return;
1022 }
1023 }
1024
1025 struct sss_uld_info g_nic_uld_info = {
1026 .probe = sss_nic_probe,
1027 .remove = sss_nic_remove,
1028 .suspend = NULL,
1029 .resume = NULL,
1030 .event = sss_nic_event,
1031 .ioctl = sss_tool_ioctl,
1032 };
1033
> 1034 struct sss_uld_info *get_nic_uld_info(void)
1035 {
1036 return &g_nic_uld_info;
1037 }
1038
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3563/3563] drivers/scsi/linkdata/ps3stor/ps3_qos.c:3023:6: error: no previous prototype for function 'ps3_hba_qos_waitq_poll'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
Hi openeuler-ci-bot,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 663a9a1c191fd26f1d8cb44edb6e0e50dd0536b2 [3563/3563] !14287 [OLK-6.6] SCSI: Support Linkdata HBA/RAID Controllers
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20251221/202512211148.JPQqoPy8-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512211148.JPQqoPy8-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512211148.JPQqoPy8-lkp@intel.com/
All errors (new ones prefixed by >>):
drivers/scsi/linkdata/ps3stor/ps3_qos.c:211:1: error: no previous prototype for function 'ps3_qos_cmd_waitq_get' [-Werror,-Wmissing-prototypes]
211 | ps3_qos_cmd_waitq_get(struct ps3_qos_tg_context *qos_tg_ctx,
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:210:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
210 | struct qos_wait_queue *
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:335:15: error: no previous prototype for function 'ps3_qos_vd_cmdword_get' [-Werror,-Wmissing-prototypes]
335 | unsigned char ps3_qos_vd_cmdword_get(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:335:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
335 | unsigned char ps3_qos_vd_cmdword_get(struct ps3_cmd *cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:351:15: error: no previous prototype for function 'ps3_qos_exclusive_cmdword_get' [-Werror,-Wmissing-prototypes]
351 | unsigned char ps3_qos_exclusive_cmdword_get(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:351:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
351 | unsigned char ps3_qos_exclusive_cmdword_get(struct ps3_cmd *cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:363:15: error: no previous prototype for function 'ps3_qos_tg_decision' [-Werror,-Wmissing-prototypes]
363 | unsigned char ps3_qos_tg_decision(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:363:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
363 | unsigned char ps3_qos_tg_decision(struct ps3_cmd *cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:749:15: error: no previous prototype for function 'ps3_qos_all_pd_rc_get' [-Werror,-Wmissing-prototypes]
749 | unsigned char ps3_qos_all_pd_rc_get(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:749:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
749 | unsigned char ps3_qos_all_pd_rc_get(struct ps3_cmd *cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:876:6: error: no previous prototype for function 'ps3_pd_quota_waitq_clear_all' [-Werror,-Wmissing-prototypes]
876 | void ps3_pd_quota_waitq_clear_all(struct ps3_qos_pd_mgr *qos_pd_mgr,
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:876:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
876 | void ps3_pd_quota_waitq_clear_all(struct ps3_qos_pd_mgr *qos_pd_mgr,
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:892:6: error: no previous prototype for function 'ps3_pd_quota_waitq_clean' [-Werror,-Wmissing-prototypes]
892 | void ps3_pd_quota_waitq_clean(struct ps3_qos_pd_mgr *qos_pd_mgr,
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:892:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
892 | void ps3_pd_quota_waitq_clean(struct ps3_qos_pd_mgr *qos_pd_mgr,
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:1058:6: error: no previous prototype for function 'ps3_qos_pd_waitq_ratio_update' [-Werror,-Wmissing-prototypes]
1058 | void ps3_qos_pd_waitq_ratio_update(struct ps3_qos_pd_mgr *qos_pd_mgr)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:1058:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
1058 | void ps3_qos_pd_waitq_ratio_update(struct ps3_qos_pd_mgr *qos_pd_mgr)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2019:15: error: no previous prototype for function 'ps3_hba_qos_decision' [-Werror,-Wmissing-prototypes]
2019 | unsigned char ps3_hba_qos_decision(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2019:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2019 | unsigned char ps3_hba_qos_decision(struct ps3_cmd *cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2040:6: error: no previous prototype for function 'ps3_hba_qos_waitq_notify' [-Werror,-Wmissing-prototypes]
2040 | void ps3_hba_qos_waitq_notify(struct ps3_instance *instance)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2040:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2040 | void ps3_hba_qos_waitq_notify(struct ps3_instance *instance)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2100:6: error: no previous prototype for function 'ps3_cmd_waitq_abort' [-Werror,-Wmissing-prototypes]
2100 | bool ps3_cmd_waitq_abort(struct ps3_cmd *aborted_cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2100:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2100 | bool ps3_cmd_waitq_abort(struct ps3_cmd *aborted_cmd)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2463:6: error: no previous prototype for function 'ps3_hba_qos_waitq_clear_all' [-Werror,-Wmissing-prototypes]
2463 | void ps3_hba_qos_waitq_clear_all(struct ps3_instance *instance, int resp_status)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2463:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2463 | void ps3_hba_qos_waitq_clear_all(struct ps3_instance *instance, int resp_status)
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2827:6: error: no previous prototype for function 'ps3_hba_qos_vd_init' [-Werror,-Wmissing-prototypes]
2827 | void ps3_hba_qos_vd_init(struct ps3_instance *instance,
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2827:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2827 | void ps3_hba_qos_vd_init(struct ps3_instance *instance,
| ^
| static
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2936:6: error: no previous prototype for function 'ps3_hba_qos_vd_reset' [-Werror,-Wmissing-prototypes]
2936 | void ps3_hba_qos_vd_reset(struct ps3_instance *instance, unsigned short disk_id)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:2936:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
2936 | void ps3_hba_qos_vd_reset(struct ps3_instance *instance, unsigned short disk_id)
| ^
| static
>> drivers/scsi/linkdata/ps3stor/ps3_qos.c:3023:6: error: no previous prototype for function 'ps3_hba_qos_waitq_poll' [-Werror,-Wmissing-prototypes]
3023 | void ps3_hba_qos_waitq_poll(struct ps3_instance *instance)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3023:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3023 | void ps3_hba_qos_waitq_poll(struct ps3_instance *instance)
| ^
| static
>> drivers/scsi/linkdata/ps3stor/ps3_qos.c:3279:15: error: no previous prototype for function 'ps3_raid_qos_decision' [-Werror,-Wmissing-prototypes]
3279 | unsigned char ps3_raid_qos_decision(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3279:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3279 | unsigned char ps3_raid_qos_decision(struct ps3_cmd *cmd)
| ^
| static
>> drivers/scsi/linkdata/ps3stor/ps3_qos.c:3334:6: error: no previous prototype for function 'ps3_qos_mgrq_resend' [-Werror,-Wmissing-prototypes]
3334 | void ps3_qos_mgrq_resend(struct ps3_qos_softq_mgr *softq_mgr)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3334:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3334 | void ps3_qos_mgrq_resend(struct ps3_qos_softq_mgr *softq_mgr)
| ^
| static
>> drivers/scsi/linkdata/ps3stor/ps3_qos.c:3478:6: error: no previous prototype for function 'ps3_raid_qos_waitq_notify' [-Werror,-Wmissing-prototypes]
3478 | void ps3_raid_qos_waitq_notify(struct ps3_instance *instance)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3478:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3478 | void ps3_raid_qos_waitq_notify(struct ps3_instance *instance)
| ^
| static
>> drivers/scsi/linkdata/ps3stor/ps3_qos.c:3821:15: error: no previous prototype for function 'ps3_raid_qos_waitq_abort' [-Werror,-Wmissing-prototypes]
3821 | unsigned char ps3_raid_qos_waitq_abort(struct ps3_cmd *cmd)
| ^
drivers/scsi/linkdata/ps3stor/ps3_qos.c:3821:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
3821 | unsigned char ps3_raid_qos_waitq_abort(struct ps3_cmd *cmd)
| ^
| static
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
--
>> drivers/scsi/linkdata/ps3stor/ps3_scsih.c:1958:1: error: unused function 'ps3_scsih_dev_id_get' [-Werror,-Wunused-function]
1958 | ps3_scsih_dev_id_get(const struct scsi_cmnd *s_cmd)
| ^~~~~~~~~~~~~~~~~~~~
1 error generated.
--
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:21:27: error: unused variable 'PS3_INTERRUPT_CMD_DISABLE_ALL_MASK' [-Werror,-Wunused-const-variable]
21 | static const unsigned int PS3_INTERRUPT_CMD_DISABLE_ALL_MASK = 0x02;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:22:27: error: unused variable 'PS3_INTERRUPT_CMD_ENABLE_MSIX' [-Werror,-Wunused-const-variable]
22 | static const unsigned int PS3_INTERRUPT_CMD_ENABLE_MSIX = 0x01;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:23:27: error: unused variable 'PS3_INTERRUPT_MASK_DISABLE' [-Werror,-Wunused-const-variable]
23 | static const unsigned int PS3_INTERRUPT_MASK_DISABLE = 0x00000002;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:24:27: error: unused variable 'PS3_INTERRUPT_STATUS_EXIST_IRQ' [-Werror,-Wunused-const-variable]
24 | static const unsigned int PS3_INTERRUPT_STATUS_EXIST_IRQ = 0x00000001;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:25:27: error: unused variable 'PS3_INTERRUPT_CLEAR_IRQ' [-Werror,-Wunused-const-variable]
25 | static const unsigned int PS3_INTERRUPT_CLEAR_IRQ = 0x00000001;
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:27:27: error: unused variable 'PS3_SSD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
27 | static const unsigned int PS3_SSD_IOPS_MSIX_VECTORS = 8;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/ps3_irq.c:28:27: error: unused variable 'PS3_HDD_IOPS_MSIX_VECTORS' [-Werror,-Wunused-const-variable]
28 | static const unsigned int PS3_HDD_IOPS_MSIX_VECTORS = 8;
| ^~~~~~~~~~~~~~~~~~~~~~~~~
7 errors generated.
--
>> drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:41:19: error: unused function 'time_for_log' [-Werror,-Wunused-function]
41 | static inline int time_for_log(char *buff, int buf_len)
| ^~~~~~~~~~~~
>> drivers/scsi/linkdata/ps3stor/./linux/ps3_driver_log.c:65:19: error: unused function 'time_for_file_name' [-Werror,-Wunused-function]
65 | static inline int time_for_file_name(char *buff, int buf_len)
| ^~~~~~~~~~~~~~~~~~
2 errors generated.
vim +/ps3_hba_qos_waitq_poll +3023 drivers/scsi/linkdata/ps3stor/ps3_qos.c
97a2bb6ece556f liujie_answer 2024-12-24 2935
97a2bb6ece556f liujie_answer 2024-12-24 @2936 void ps3_hba_qos_vd_reset(struct ps3_instance *instance, unsigned short disk_id)
97a2bb6ece556f liujie_answer 2024-12-24 2937 {
97a2bb6ece556f liujie_answer 2024-12-24 2938 struct ps3_qos_vd_mgr *qos_vd_mgr = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 2939
97a2bb6ece556f liujie_answer 2024-12-24 2940 qos_vd_mgr = ps3_qos_vd_mgr_get_by_id(instance, disk_id);
97a2bb6ece556f liujie_answer 2024-12-24 2941 qos_vd_mgr->valid = PS3_FALSE;
97a2bb6ece556f liujie_answer 2024-12-24 2942 }
97a2bb6ece556f liujie_answer 2024-12-24 2943
97a2bb6ece556f liujie_answer 2024-12-24 2944 void ps3_qos_vd_reset(struct ps3_instance *instance, unsigned short disk_id)
97a2bb6ece556f liujie_answer 2024-12-24 2945 {
97a2bb6ece556f liujie_answer 2024-12-24 2946 if (!PS3_QOS_INITED(instance))
97a2bb6ece556f liujie_answer 2024-12-24 2947 return;
97a2bb6ece556f liujie_answer 2024-12-24 2948
97a2bb6ece556f liujie_answer 2024-12-24 2949 if (instance->qos_context.opts.qos_vd_reset)
97a2bb6ece556f liujie_answer 2024-12-24 2950 instance->qos_context.opts.qos_vd_reset(instance, disk_id);
97a2bb6ece556f liujie_answer 2024-12-24 2951 }
97a2bb6ece556f liujie_answer 2024-12-24 2952
97a2bb6ece556f liujie_answer 2024-12-24 2953 static void ps3_qos_pd_notify_timeout(struct ps3_instance *instance)
97a2bb6ece556f liujie_answer 2024-12-24 2954 {
97a2bb6ece556f liujie_answer 2024-12-24 2955 struct ps3_qos_pd_context *qos_pd_ctx = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 2956 unsigned short i = 0;
97a2bb6ece556f liujie_answer 2024-12-24 2957 struct ps3_qos_pd_mgr *qos_pd_mgr = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 2958 unsigned long timeout_jiffies = 0;
97a2bb6ece556f liujie_answer 2024-12-24 2959
97a2bb6ece556f liujie_answer 2024-12-24 2960 qos_pd_ctx = &instance->qos_context.pd_ctx;
97a2bb6ece556f liujie_answer 2024-12-24 2961 for (i = 1; i <= instance->qos_context.max_pd_count; i++) {
97a2bb6ece556f liujie_answer 2024-12-24 2962 qos_pd_mgr = ps3_qos_pd_mgr_get(instance, i);
97a2bb6ece556f liujie_answer 2024-12-24 2963 timeout_jiffies = qos_pd_mgr->last_sched_jiffies +
97a2bb6ece556f liujie_answer 2024-12-24 2964 PS3_QOS_WAITQ_TIMEOUT * HZ;
97a2bb6ece556f liujie_answer 2024-12-24 2965 if (time_after(jiffies, timeout_jiffies)) {
97a2bb6ece556f liujie_answer 2024-12-24 2966 if (ps3_qos_single_pd_notify(qos_pd_ctx, qos_pd_mgr)) {
97a2bb6ece556f liujie_answer 2024-12-24 2967 LOG_INFO(
97a2bb6ece556f liujie_answer 2024-12-24 2968 "awake qos pd quota waitq by poll. host_no:%u vid:%u pid:%u\n",
97a2bb6ece556f liujie_answer 2024-12-24 2969 PS3_HOST(instance), qos_pd_mgr->vd_id,
97a2bb6ece556f liujie_answer 2024-12-24 2970 qos_pd_mgr->disk_id);
97a2bb6ece556f liujie_answer 2024-12-24 2971 }
97a2bb6ece556f liujie_answer 2024-12-24 2972 }
97a2bb6ece556f liujie_answer 2024-12-24 2973 }
97a2bb6ece556f liujie_answer 2024-12-24 2974 }
97a2bb6ece556f liujie_answer 2024-12-24 2975
97a2bb6ece556f liujie_answer 2024-12-24 2976 static unsigned char ps3_qos_vd_notify_timeout(struct ps3_instance *instance)
97a2bb6ece556f liujie_answer 2024-12-24 2977 {
97a2bb6ece556f liujie_answer 2024-12-24 2978 struct ps3_qos_vd_context *qos_vd_ctx = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 2979 unsigned short i = 0;
97a2bb6ece556f liujie_answer 2024-12-24 2980 struct ps3_qos_vd_mgr *qos_vd_mgr = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 2981 unsigned long timeout_jiffies = 0;
97a2bb6ece556f liujie_answer 2024-12-24 2982 unsigned char notified = PS3_FALSE;
97a2bb6ece556f liujie_answer 2024-12-24 2983
97a2bb6ece556f liujie_answer 2024-12-24 2984 for (i = 1; i <= instance->qos_context.max_vd_count; i++) {
97a2bb6ece556f liujie_answer 2024-12-24 2985 qos_vd_ctx = &instance->qos_context.vd_ctx;
97a2bb6ece556f liujie_answer 2024-12-24 2986 qos_vd_mgr = &qos_vd_ctx->qos_vd_mgrs[i];
97a2bb6ece556f liujie_answer 2024-12-24 2987 timeout_jiffies = qos_vd_mgr->last_sched_jiffies +
97a2bb6ece556f liujie_answer 2024-12-24 2988 PS3_QOS_WAITQ_TIMEOUT * HZ;
97a2bb6ece556f liujie_answer 2024-12-24 2989 if (time_after(jiffies, timeout_jiffies)) {
97a2bb6ece556f liujie_answer 2024-12-24 2990 if (ps3_qos_single_vd_notify(qos_vd_ctx, qos_vd_mgr)) {
97a2bb6ece556f liujie_answer 2024-12-24 2991 notified = PS3_TRUE;
97a2bb6ece556f liujie_answer 2024-12-24 2992 LOG_INFO(
97a2bb6ece556f liujie_answer 2024-12-24 2993 "awake qos vd quota waitq by poll. host_no:%u vid:%u\n",
97a2bb6ece556f liujie_answer 2024-12-24 2994 PS3_HOST(instance), qos_vd_mgr->id);
97a2bb6ece556f liujie_answer 2024-12-24 2995 }
97a2bb6ece556f liujie_answer 2024-12-24 2996 }
97a2bb6ece556f liujie_answer 2024-12-24 2997 }
97a2bb6ece556f liujie_answer 2024-12-24 2998
97a2bb6ece556f liujie_answer 2024-12-24 2999 return notified;
97a2bb6ece556f liujie_answer 2024-12-24 3000 }
97a2bb6ece556f liujie_answer 2024-12-24 3001
97a2bb6ece556f liujie_answer 2024-12-24 3002 static unsigned char ps3_qos_tg_notify_timeout(struct ps3_instance *instance)
97a2bb6ece556f liujie_answer 2024-12-24 3003 {
97a2bb6ece556f liujie_answer 2024-12-24 3004 struct ps3_qos_tg_context *qos_tg_ctx = NULL;
97a2bb6ece556f liujie_answer 2024-12-24 3005 unsigned char notified = PS3_FALSE;
97a2bb6ece556f liujie_answer 2024-12-24 3006 unsigned long timeout_jiffies = 0;
97a2bb6ece556f liujie_answer 2024-12-24 3007
97a2bb6ece556f liujie_answer 2024-12-24 3008 qos_tg_ctx = &instance->qos_context.tg_ctx;
97a2bb6ece556f liujie_answer 2024-12-24 3009 timeout_jiffies =
97a2bb6ece556f liujie_answer 2024-12-24 3010 qos_tg_ctx->last_sched_jiffies + PS3_QOS_WAITQ_TIMEOUT * HZ;
97a2bb6ece556f liujie_answer 2024-12-24 3011 if (qos_tg_ctx->total_wait_cmd_cnt &&
97a2bb6ece556f liujie_answer 2024-12-24 3012 ps3_qos_tag_rsc_available(instance) &&
97a2bb6ece556f liujie_answer 2024-12-24 3013 time_after(jiffies, timeout_jiffies)) {
97a2bb6ece556f liujie_answer 2024-12-24 3014 queue_work(qos_tg_ctx->work_queue, &qos_tg_ctx->resend_work);
97a2bb6ece556f liujie_answer 2024-12-24 3015 notified = PS3_TRUE;
97a2bb6ece556f liujie_answer 2024-12-24 3016 LOG_INFO("awake qos cmd waitq by poll. host_no:%u\n",
97a2bb6ece556f liujie_answer 2024-12-24 3017 PS3_HOST(instance));
97a2bb6ece556f liujie_answer 2024-12-24 3018 }
97a2bb6ece556f liujie_answer 2024-12-24 3019
97a2bb6ece556f liujie_answer 2024-12-24 3020 return notified;
97a2bb6ece556f liujie_answer 2024-12-24 3021 }
97a2bb6ece556f liujie_answer 2024-12-24 3022
97a2bb6ece556f liujie_answer 2024-12-24 @3023 void ps3_hba_qos_waitq_poll(struct ps3_instance *instance)
97a2bb6ece556f liujie_answer 2024-12-24 3024 {
97a2bb6ece556f liujie_answer 2024-12-24 3025 if (!ps3_qos_tg_notify_timeout(instance)) {
97a2bb6ece556f liujie_answer 2024-12-24 3026 if (!ps3_qos_vd_notify_timeout(instance))
97a2bb6ece556f liujie_answer 2024-12-24 3027 ps3_qos_pd_notify_timeout(instance);
97a2bb6ece556f liujie_answer 2024-12-24 3028 }
97a2bb6ece556f liujie_answer 2024-12-24 3029 }
97a2bb6ece556f liujie_answer 2024-12-24 3030
:::::: The code at line 3023 was first introduced by commit
:::::: 97a2bb6ece556f3882263ee8df2b77f10c511311 SCSI: Linkdata: Supports Linkdata HBA/RAID Controllers
:::::: TO: liujie_answer <liujie5(a)linkdatatechnology.com>
:::::: CC: liujie_answer <liujie5(a)linkdatatechnology.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3557/3557] drivers/irqchip/irq-gic-phytium-2500.c:1216:78: sparse: sparse: dubious: !x | !y
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 792b82446538ed840a6e23b89673ce21564702bd [3557/3557] Fix gic support for Phytium S2500
config: arm64-randconfig-r132-20251218 (https://download.01.org/0day-ci/archive/20251221/202512210813.VozNt0tS-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210813.VozNt0tS-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210813.VozNt0tS-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/irqchip/irq-gic-phytium-2500.c:1216:78: sparse: sparse: dubious: !x | !y
>> drivers/irqchip/irq-gic-phytium-2500.c:302:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:327:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:454:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:479:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:266:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:767:24: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1155:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1156:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1157:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:1409:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500.c:266:24: sparse: sparse: dereference of noderef expression
--
>> drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:1479:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:1485:9: sparse: got struct raw_spinlock [noderef] __percpu *
>> drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct cpumask [usertype] **mask @@ got struct cpumask [usertype] *[noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: expected struct cpumask [usertype] **mask
drivers/irqchip/irq-gic-phytium-2500-its.c:2934:45: sparse: got struct cpumask [usertype] *[noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4281:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4286:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4421:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct raw_spinlock [usertype] *lock @@ got struct raw_spinlock [noderef] __percpu * @@
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: expected struct raw_spinlock [usertype] *lock
drivers/irqchip/irq-gic-phytium-2500-its.c:4439:9: sparse: got struct raw_spinlock [noderef] __percpu *
drivers/irqchip/irq-gic-phytium-2500-its.c: note: in included file (through include/linux/spinlock.h, include/linux/mmzone.h, include/linux/gfp.h, ...):
include/linux/spinlock_api_smp.h:111:9: sparse: sparse: context imbalance in 'vpe_to_cpuid_lock' - wrong count at exit
drivers/irqchip/irq-gic-phytium-2500-its.c:284:13: sparse: sparse: context imbalance in 'vpe_to_cpuid_unlock' - unexpected unlock
>> drivers/irqchip/irq-gic-phytium-2500-its.c:1481:18: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2337:23: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2337:23: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2751:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2751:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2772:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2806:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2806:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2810:38: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2828:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2828:49: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2829:25: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2839:30: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2882:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2909:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2938:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:2939:14: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3009:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3021:45: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3021:45: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3023:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3078:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3078:15: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3093:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3093:29: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3118:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3156:31: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3161:13: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3180:17: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3185:21: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3244:43: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3279:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3280:9: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3318:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3321:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3321:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3919:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3968:13: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3969:36: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3969:36: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3984:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:3998:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4030:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4140:26: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4220:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4235:35: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4282:18: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:4422:16: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5309:19: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5309:19: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5314:31: sparse: sparse: dereference of noderef expression
drivers/irqchip/irq-gic-phytium-2500-its.c:5334:14: sparse: sparse: dereference of noderef expression
vim +1216 drivers/irqchip/irq-gic-phytium-2500.c
ade50f9f855e6a Li Yuting 2024-01-17 1181
ade50f9f855e6a Li Yuting 2024-01-17 1182 static int __gic_update_rdist_properties(struct redist_region *region,
ade50f9f855e6a Li Yuting 2024-01-17 1183 void __iomem *ptr)
ade50f9f855e6a Li Yuting 2024-01-17 1184 {
ade50f9f855e6a Li Yuting 2024-01-17 1185 u64 typer = gic_read_typer(ptr + GICR_TYPER);
ade50f9f855e6a Li Yuting 2024-01-17 1186 u32 ctlr = readl_relaxed(ptr + GICR_CTLR);
ade50f9f855e6a Li Yuting 2024-01-17 1187
ade50f9f855e6a Li Yuting 2024-01-17 1188 /* Boot-time cleanup */
ade50f9f855e6a Li Yuting 2024-01-17 1189 if ((typer & GICR_TYPER_VLPIS) && (typer & GICR_TYPER_RVPEID)) {
ade50f9f855e6a Li Yuting 2024-01-17 1190 u64 val;
ade50f9f855e6a Li Yuting 2024-01-17 1191
ade50f9f855e6a Li Yuting 2024-01-17 1192 /* Deactivate any present vPE */
ade50f9f855e6a Li Yuting 2024-01-17 1193 val = gicr_read_vpendbaser(ptr + SZ_128K + GICR_VPENDBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1194 if (val & GICR_VPENDBASER_Valid)
ade50f9f855e6a Li Yuting 2024-01-17 1195 gicr_write_vpendbaser(GICR_VPENDBASER_PendingLast,
ade50f9f855e6a Li Yuting 2024-01-17 1196 ptr + SZ_128K + GICR_VPENDBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1197
ade50f9f855e6a Li Yuting 2024-01-17 1198 /* Mark the VPE table as invalid */
ade50f9f855e6a Li Yuting 2024-01-17 1199 val = gicr_read_vpropbaser(ptr + SZ_128K + GICR_VPROPBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1200 val &= ~GICR_VPROPBASER_4_1_VALID;
ade50f9f855e6a Li Yuting 2024-01-17 1201 gicr_write_vpropbaser(val, ptr + SZ_128K + GICR_VPROPBASER);
ade50f9f855e6a Li Yuting 2024-01-17 1202 }
ade50f9f855e6a Li Yuting 2024-01-17 1203
ade50f9f855e6a Li Yuting 2024-01-17 1204 gic_data.rdists.has_vlpis &= !!(typer & GICR_TYPER_VLPIS);
ade50f9f855e6a Li Yuting 2024-01-17 1205
ade50f9f855e6a Li Yuting 2024-01-17 1206 /*
ade50f9f855e6a Li Yuting 2024-01-17 1207 * TYPER.RVPEID implies some form of DirectLPI, no matter what the
ade50f9f855e6a Li Yuting 2024-01-17 1208 * doc says... :-/ And CTLR.IR implies another subset of DirectLPI
ade50f9f855e6a Li Yuting 2024-01-17 1209 * that the ITS driver can make use of for LPIs (and not VLPIs).
ade50f9f855e6a Li Yuting 2024-01-17 1210 *
ade50f9f855e6a Li Yuting 2024-01-17 1211 * These are 3 different ways to express the same thing, depending
ade50f9f855e6a Li Yuting 2024-01-17 1212 * on the revision of the architecture and its relaxations over
ade50f9f855e6a Li Yuting 2024-01-17 1213 * time. Just group them under the 'direct_lpi' banner.
ade50f9f855e6a Li Yuting 2024-01-17 1214 */
ade50f9f855e6a Li Yuting 2024-01-17 1215 gic_data.rdists.has_rvpeid &= !!(typer & GICR_TYPER_RVPEID);
ade50f9f855e6a Li Yuting 2024-01-17 @1216 gic_data.rdists.has_direct_lpi &= (!!(typer & GICR_TYPER_DirectLPIS) |
ade50f9f855e6a Li Yuting 2024-01-17 1217 !!(ctlr & GICR_CTLR_IR) |
ade50f9f855e6a Li Yuting 2024-01-17 1218 gic_data.rdists.has_rvpeid);
ade50f9f855e6a Li Yuting 2024-01-17 1219 gic_data.rdists.has_vpend_valid_dirty &= !!(typer & GICR_TYPER_DIRTY);
ade50f9f855e6a Li Yuting 2024-01-17 1220
ade50f9f855e6a Li Yuting 2024-01-17 1221 /* Detect non-sensical configurations */
ade50f9f855e6a Li Yuting 2024-01-17 1222 if (WARN_ON_ONCE(gic_data.rdists.has_rvpeid && !gic_data.rdists.has_vlpis)) {
ade50f9f855e6a Li Yuting 2024-01-17 1223 gic_data.rdists.has_direct_lpi = false;
ade50f9f855e6a Li Yuting 2024-01-17 1224 gic_data.rdists.has_vlpis = false;
ade50f9f855e6a Li Yuting 2024-01-17 1225 gic_data.rdists.has_rvpeid = false;
ade50f9f855e6a Li Yuting 2024-01-17 1226 }
ade50f9f855e6a Li Yuting 2024-01-17 1227
ade50f9f855e6a Li Yuting 2024-01-17 1228 gic_data.ppi_nr = min(GICR_TYPER_NR_PPIS(typer), gic_data.ppi_nr);
ade50f9f855e6a Li Yuting 2024-01-17 1229
ade50f9f855e6a Li Yuting 2024-01-17 1230 return 1;
ade50f9f855e6a Li Yuting 2024-01-17 1231 }
ade50f9f855e6a Li Yuting 2024-01-17 1232
:::::: The code at line 1216 was first introduced by commit
:::::: ade50f9f855e6afd85e65b6b036a1bb948d4dfff Add gic support for Phytium S2500
:::::: TO: Li Yuting <liyuting2071(a)phytium.com.cn>
:::::: CC: Li Yuting <liyuting2071(a)phytium.com.cn>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] arch/arm64/kvm/arm.c:569:5: warning: no previous prototype for 'kvm_arch_rec_init'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
Hi Hou,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: fa36fa3469d2461c1887e823371059401941ae8a [3544/3544] CCA: Fix cca kabi conflict
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20251221/202512210513.adq7k77G-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210513.adq7k77G-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210513.adq7k77G-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/arm.c:569:5: warning: no previous prototype for 'kvm_arch_rec_init' [-Wmissing-prototypes]
569 | int kvm_arch_rec_init(struct kvm_vcpu_arch *vcpu_arch)
| ^~~~~~~~~~~~~~~~~
In file included from arch/arm64/kvm/arm.c:52:
arch/arm64/kvm/hisilicon/hisi_virt.h:116:13: warning: 'hisi_ipiv_enable_per_vm' defined but not used [-Wunused-function]
116 | static void hisi_ipiv_enable_per_vm(struct kvm_vcpu *vcpu) {}
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hisilicon/hisi_virt.h:112:13: warning: 'hisi_ipiv_supported_per_vm' defined but not used [-Wunused-function]
112 | static bool hisi_ipiv_supported_per_vm(struct kvm_vcpu *vcpu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/kvm_arch_rec_init +569 arch/arm64/kvm/arm.c
568
> 569 int kvm_arch_rec_init(struct kvm_vcpu_arch *vcpu_arch)
570 {
571 struct realm_rec *rec;
572
573 rec = kzalloc(sizeof(struct realm_rec), GFP_KERNEL_ACCOUNT);
574 if (!rec)
575 return -ENOMEM;
576 rec->mpidr = INVALID_HWID;
577 vcpu_arch->rec = rec;
578 return 0;
579 }
580
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 1/1] kismet: WARNING: unmet direct dependencies detected for RESCTRL_FS when selected by ARM64_MPAM
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: c5a4bf91167c714de74c47f5cd6d888c66e9860d [1/1] arm64: mpam: Select ARCH_HAS_CPU_RESCTRL
config: arm64-kismet-CONFIG_RESCTRL_FS-CONFIG_ARM64_MPAM-0-0 (https://download.01.org/0day-ci/archive/20251220/202512202217.vP7L1WOs-lkp@…)
reproduce: (https://download.01.org/0day-ci/archive/20251220/202512202217.vP7L1WOs-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512202217.vP7L1WOs-lkp@intel.com/
kismet warnings: (new ones prefixed by >>)
>> kismet: WARNING: unmet direct dependencies detected for RESCTRL_FS when selected by ARM64_MPAM
WARNING: unmet direct dependencies detected for RESCTRL_FS
Depends on [n]: MISC_FILESYSTEMS [=n] && ARCH_HAS_CPU_RESCTRL [=y]
Selected by [y]:
- ARM64_MPAM [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3542/3542] drivers/i2c/busses/i2c-zhaoxin.c:176:5: warning: no previous prototype for function 'zxi2c_fifo_irq_xfer'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
Hi leoliu-oc,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 07a6747f952bd8a1ee87d6f5d74448c64fbb152e [3542/3542] i2c: zhaoxin: Add support for Zhaoxin I2C controller
config: x86_64-randconfig-012-20251215 (https://download.01.org/0day-ci/archive/20251221/202512211025.4cSwOTdS-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512211025.4cSwOTdS-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512211025.4cSwOTdS-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from drivers/i2c/busses/i2c-zhaoxin.c:12:
In file included from include/linux/i2c.h:19:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:20:
In file included from include/linux/mm.h:2235:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/i2c/busses/i2c-zhaoxin.c:176:5: warning: no previous prototype for function 'zxi2c_fifo_irq_xfer' [-Wmissing-prototypes]
176 | int zxi2c_fifo_irq_xfer(struct zxi2c *i2c, bool irq)
| ^
drivers/i2c/busses/i2c-zhaoxin.c:176:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
176 | int zxi2c_fifo_irq_xfer(struct zxi2c *i2c, bool irq)
| ^
| static
>> drivers/i2c/busses/i2c-zhaoxin.c:314:5: warning: no previous prototype for function 'zxi2c_xfer' [-Wmissing-prototypes]
314 | int zxi2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
| ^
drivers/i2c/busses/i2c-zhaoxin.c:314:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
314 | int zxi2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
| ^
| static
drivers/i2c/busses/i2c-zhaoxin.c:540:12: warning: unused function 'zxi2c_resume' [-Wunused-function]
540 | static int zxi2c_resume(struct device *dev)
| ^~~~~~~~~~~~
4 warnings generated.
vim +/zxi2c_fifo_irq_xfer +176 drivers/i2c/busses/i2c-zhaoxin.c
174
175 /* 'irq == true' means in interrupt context */
> 176 int zxi2c_fifo_irq_xfer(struct zxi2c *i2c, bool irq)
177 {
178 u16 i;
179 u8 tmp;
180 struct i2c_msg *msg = i2c->msg;
181 void __iomem *base = i2c->base;
182 bool read = !!(msg->flags & I2C_M_RD);
183
184 if (irq) {
185 /* get the received data */
186 if (read)
187 for (i = 0; i < i2c->xfer_len; i++)
188 msg->buf[i2c->xfered_len + i] = ioread8(base + ZXI2C_REG_HRDR);
189
190 i2c->xfered_len += i2c->xfer_len;
191 if (i2c->xfered_len == msg->len)
192 return 1;
193 }
194
195 /* reset fifo buffer */
196 tmp = ioread8(base + ZXI2C_REG_HCR);
197 iowrite8(tmp | ZXI2C_HCR_RST_FIFO, base + ZXI2C_REG_HCR);
198
199 /* set xfer len */
200 i2c->xfer_len = min_t(u16, msg->len - i2c->xfered_len, ZXI2C_FIFO_SIZE);
201 if (read) {
202 iowrite8(i2c->xfer_len - 1, base + ZXI2C_REG_HRLR);
203 } else {
204 iowrite8(i2c->xfer_len - 1, base + ZXI2C_REG_HTLR);
205 /* set write data */
206 for (i = 0; i < i2c->xfer_len; i++)
207 iowrite8(msg->buf[i2c->xfered_len + i], base + ZXI2C_REG_HTDR);
208 }
209
210 /* prepare to stop transmission */
211 if (i2c->hrv && msg->len == (i2c->xfered_len + i2c->xfer_len)) {
212 tmp = ioread8(base + ZXI2C_REG_CR);
213 tmp |= read ? ZXI2C_CR_RX_END : ZXI2C_CR_TX_END;
214 iowrite8(tmp, base + ZXI2C_REG_CR);
215 }
216
217 if (irq) {
218 /* continue transmission */
219 tmp = ioread8(base + ZXI2C_REG_CR);
220 iowrite8(tmp |= ZXI2C_CR_CPU_RDY, base + ZXI2C_REG_CR);
221 } else {
222 u16 tcr_val = i2c->tcr;
223
224 /* start transmission */
225 tcr_val |= read ? ZXI2C_TCR_READ : 0;
226 writew(tcr_val | msg->addr, base + ZXI2C_REG_TCR);
227 }
228
229 return 0;
230 }
231
232 static irqreturn_t zxi2c_isr(int irq, void *data)
233 {
234 struct zxi2c *i2c = data;
235 void __iomem *base = i2c->base;
236 u8 status;
237
238 /* save the status and write-clear it */
239 status = readw(base + ZXI2C_REG_ISR);
240 if (!status)
241 return IRQ_NONE;
242
243 writew(status, base + ZXI2C_REG_ISR);
244
245 i2c->ret = 0;
246 if (status & ZXI2C_ISR_NACK_ADDR)
247 i2c->ret = -EIO;
248
249 if (!i2c->ret) {
250 if (i2c->mode == ZXI2C_BYTE_MODE)
251 i2c->ret = zxi2c_irq_xfer(i2c);
252 else
253 i2c->ret = zxi2c_fifo_irq_xfer(i2c, true);
254 }
255
256 if (i2c->ret)
257 complete(&i2c->complete);
258
259 return IRQ_HANDLED;
260 }
261
262 static int zxi2c_write(struct zxi2c *i2c, struct i2c_msg *msg, int last)
263 {
264 u16 tcr_val = i2c->tcr;
265 void __iomem *base = i2c->base;
266
267 i2c->last = last;
268
269 writew(msg->buf[0] & 0xFF, base + ZXI2C_REG_CDR);
270
271 reinit_completion(&i2c->complete);
272
273 tcr_val |= msg->addr & 0x7f;
274
275 writew(tcr_val, base + ZXI2C_REG_TCR);
276
277 if (!wait_for_completion_timeout(&i2c->complete, ZXI2C_TIMEOUT))
278 return -ETIMEDOUT;
279
280 return i2c->ret;
281 }
282
283 static int zxi2c_read(struct zxi2c *i2c, struct i2c_msg *msg, bool first)
284 {
285 u16 val, tcr_val = i2c->tcr;
286 void __iomem *base = i2c->base;
287
288 val = readw(base + ZXI2C_REG_CR);
289 val &= ~(ZXI2C_CR_TX_END | ZXI2C_CR_RX_END);
290
291 if (msg->len == 1)
292 val |= ZXI2C_CR_RX_END;
293
294 writew(val, base + ZXI2C_REG_CR);
295
296 reinit_completion(&i2c->complete);
297
298 tcr_val |= ZXI2C_TCR_READ | (msg->addr & 0x7f);
299
300 writew(tcr_val, base + ZXI2C_REG_TCR);
301
302 if (!first) {
303 val = readw(base + ZXI2C_REG_CR);
304 val |= ZXI2C_CR_CPU_RDY;
305 writew(val, base + ZXI2C_REG_CR);
306 }
307
308 if (!wait_for_completion_timeout(&i2c->complete, ZXI2C_TIMEOUT))
309 return -ETIMEDOUT;
310
311 return i2c->ret;
312 }
313
> 314 int zxi2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
315 {
316 struct i2c_msg *msg;
317 int i;
318 int ret = 0;
319 struct zxi2c *i2c = i2c_get_adapdata(adap);
320
321 i2c->mode = ZXI2C_BYTE_MODE;
322 for (i = 0; ret >= 0 && i < num; i++) {
323 i2c->msg = msg = &msgs[i];
324 i2c->xfered_len = 0;
325 if (msg->len == 0)
326 return -EIO;
327
328 if (msg->flags & I2C_M_RD)
329 ret = zxi2c_read(i2c, msg, i == 0);
330 else
331 ret = zxi2c_write(i2c, msg, (i + 1) == num);
332 }
333
334 return (ret < 0) ? ret : i;
335 }
336
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-5.10 3418/3418] drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:48: warning: Excess function parameter 'file' description in 'SXE_MSG_LEVEL_DEFAULT'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
Hi liujie_answer,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-5.10
head: 1588d318a9e388d05b6cf5e2a63134c8beb6a355
commit: 3c27aa8f615da8e36e1dc802839c98702187757c [3418/3418] Linkdata:net:fix sxe compile errors 'sxe_resume' defined but not used
config: arm64-randconfig-001-20251217 (https://download.01.org/0day-ci/archive/20251221/202512210525.8hRRLO09-lkp@…)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210525.8hRRLO09-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210525.8hRRLO09-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:48: warning: Excess function parameter 'file' description in 'SXE_MSG_LEVEL_DEFAULT'
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:48: warning: Excess function parameter 'author' description in 'SXE_MSG_LEVEL_DEFAULT'
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c:48: warning: Excess function parameter 'date' description in 'SXE_MSG_LEVEL_DEFAULT'
vim +48 drivers/net/ethernet/linkdata/sxe/sxepf/sxe_main.c
8cee206b555824 liujie_answer 2025-04-01 47
8cee206b555824 liujie_answer 2025-04-01 @48 #define SXE_MSG_LEVEL_DEFAULT (NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_LINK)
8cee206b555824 liujie_answer 2025-04-01 49
:::::: The code at line 48 was first introduced by commit
:::::: 8cee206b5558245197158bd20895f95cc28d8468 Ethernet: Linkdata: Supports Linkdata ethernet Controllers
:::::: TO: liujie_answer <liujie5(a)linkdatatechnology.com>
:::::: CC: liujie_answer <liujie5(a)linkdatatechnology.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3544/3544] arch/arm64/kvm/cca_base.c:52:6: warning: no previous prototype for 'set_cca_cvm_type'
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
Hi Yang,
FYI, the error/warning still remains.
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 419da4d196ffa97d1430d017d1b36348fea395e5 [3544/3544] VirtCCA: Add CCA base operations.
config: arm64-defconfig (https://download.01.org/0day-ci/archive/20251221/202512210402.xNA4HhAd-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210402.xNA4HhAd-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210402.xNA4HhAd-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/cca_base.c:52:6: warning: no previous prototype for 'set_cca_cvm_type' [-Wmissing-prototypes]
52 | void set_cca_cvm_type(int type)
| ^~~~~~~~~~~~~~~~
vim +/set_cca_cvm_type +52 arch/arm64/kvm/cca_base.c
51
> 52 void set_cca_cvm_type(int type)
53 {
54 cca_cvm_type = type;
55 }
56 EXPORT_SYMBOL_GPL(set_cca_cvm_type);
57
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 1/1] kismet: WARNING: unmet direct dependencies detected for PFN_RANGE_ALLOC when selected by OBMM
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: b2b4a358c0963806835f9a6ff96c2e34d1543216 [1/1] obmm: Add Ownership Based Memory Management framework
config: arm64-kismet-CONFIG_PFN_RANGE_ALLOC-CONFIG_OBMM-0-0 (https://download.01.org/0day-ci/archive/20251220/202512202153.48eS6EBE-lkp@…)
reproduce: (https://download.01.org/0day-ci/archive/20251220/202512202153.48eS6EBE-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512202153.48eS6EBE-lkp@intel.com/
kismet warnings: (new ones prefixed by >>)
>> kismet: WARNING: unmet direct dependencies detected for PFN_RANGE_ALLOC when selected by OBMM
WARNING: unmet direct dependencies detected for PFN_RANGE_ALLOC
Depends on [n]: MEMORY_HOTPLUG [=n]
Selected by [y]:
- OBMM [=y] && UB [=y] && UB_UMMU_CORE [=y] && UB_UBUS [=y] && HISI_SOC_CACHE [=y]
WARNING: unmet direct dependencies detected for ARM_SPE_MEM_SAMPLING
Depends on [n]: ARM_SPE_PMU [=n]
Selected by [y]:
- MEM_SAMPLING [=y] && ARM64 [=y]
WARNING: unmet direct dependencies detected for ARCH_SUPPORTS_SCHED_SOFT_QUOTA
Depends on [n]: CGROUPS [=n]
Selected by [y]:
- ARM64 [=y]
WARNING: unmet direct dependencies detected for NUMA_REMOTE
Depends on [n]: NUMA [=y] && ARM64 [=y] && ARM64_4K_PAGES [=y] && SPARSEMEM_VMEMMAP [=y] && ZONE_EXTMEM [=n]
Selected by [y]:
- OBMM [=y] && UB [=y] && UB_UMMU_CORE [=y] && UB_UBUS [=y] && HISI_SOC_CACHE [=y]
WARNING: unmet direct dependencies detected for HALTPOLL_CPUIDLE
Depends on [n]: CPU_IDLE [=n] && ARCH_CPUIDLE_HALTPOLL [=y] && ARCH_HAS_OPTIMIZED_POLL [=y]
Selected by [y]:
- ARM64 [=y]
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0
[openeuler:OLK-6.6 3547/3547] drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1860:22: warning: assignment to 'int (*)(struct pci_dev *)' from 'int' makes pointer from integer without a cast
by kernel test robot 21 Dec '25
by kernel test robot 21 Dec '25
21 Dec '25
tree: https://gitee.com/openeuler/kernel.git OLK-6.6
head: 04473ee9ed912a16fff0d8846ad565bbf3d63c77
commit: 0bf0c942a09ba92e1d22e6960464b628dd4408fa [3547/3547] net/hinic3: Synchronize new NIC features and bug fixes
config: arm64-randconfig-003-20251216 (https://download.01.org/0day-ci/archive/20251221/202512210450.P2GW20wS-lkp@…)
compiler: aarch64-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251221/202512210450.P2GW20wS-lkp@…)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp(a)intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202512210450.P2GW20wS-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:108:6: warning: no previous prototype for 'hinic3_uld_lock_init' [-Wmissing-prototypes]
108 | void hinic3_uld_lock_init(void)
| ^~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:526:5: warning: no previous prototype for 'hinic3_pdev_is_virtfn' [-Wmissing-prototypes]
526 | u32 hinic3_pdev_is_virtfn(struct pci_dev *pdev)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:788:5: warning: no previous prototype for '__set_vroce_func_state' [-Wmissing-prototypes]
788 | int __set_vroce_func_state(struct hinic3_pcidev *pci_adapter)
| ^~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:831:6: warning: no previous prototype for 'slave_host_mgmt_vroce_work' [-Wmissing-prototypes]
831 | void slave_host_mgmt_vroce_work(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:841:7: warning: no previous prototype for 'hinic3_get_roce_uld_by_pdev' [-Wmissing-prototypes]
841 | void *hinic3_get_roce_uld_by_pdev(struct pci_dev *pdev)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1784:6: warning: no previous prototype for 'hinic3_set_func_state' [-Wmissing-prototypes]
1784 | void hinic3_set_func_state(struct hinic3_pcidev *pci_adapter)
| ^~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1810:6: warning: no previous prototype for 'slave_host_mgmt_work' [-Wmissing-prototypes]
1810 | void slave_host_mgmt_work(struct work_struct *work)
| ^~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c: In function 'slave_host_vfio_probe_delay_work':
>> drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1860:24: error: implicit declaration of function '__symbol_get'; did you mean 'symbol_get'? [-Werror=implicit-function-declaration]
1860 | dev_migration_probe = __symbol_get("migration_dev_migration_probe");
| ^~~~~~~~~~~~
| symbol_get
>> drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1860:22: warning: assignment to 'int (*)(struct pci_dev *)' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1860 | dev_migration_probe = __symbol_get("migration_dev_migration_probe");
| ^
>> drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1869:3: error: implicit declaration of function '__symbol_put'; did you mean 'symbol_put'? [-Werror=implicit-function-declaration]
1869 | __symbol_put("migration_dev_migration_probe");
| ^~~~~~~~~~~~
| symbol_put
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c: In function 'slave_host_migration_vf_add_delay_work':
drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1925:23: warning: assignment to 'int (*)(struct pci_dev *)' from 'int' makes pointer from integer without a cast [-Wint-conversion]
1925 | migration_dev_add_vf = __symbol_get("migration_dev_add_vf");
| ^
cc1: some warnings being treated as errors
--
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:621:6: warning: no previous prototype for 'print_port_info' [-Wmissing-prototypes]
621 | void print_port_info(struct hinic3_nic_io *nic_io,
| ^~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:803:6: warning: no previous prototype for 'hinic3_notify_vf_bond_status' [-Wmissing-prototypes]
803 | void hinic3_notify_vf_bond_status(struct hinic3_nic_io *nic_io,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:833:6: warning: no previous prototype for 'hinic3_notify_all_vfs_bond_changed' [-Wmissing-prototypes]
833 | void hinic3_notify_all_vfs_bond_changed(void *hwdev, u8 bond_status)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:1671:5: warning: no previous prototype for 'set_fecparam' [-Wmissing-prototypes]
1671 | int set_fecparam(void *hwdev, u8 fecparam)
| ^~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:1699:5: warning: no previous prototype for 'get_fecparam' [-Wmissing-prototypes]
1699 | int get_fecparam(void *hwdev, u8 *advertised_fec, u8 *supported_fec)
| ^~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c: In function 'get_port_temperature_power.isra':
>> drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:548:38: warning: ', rx power: ' directive output may be truncated writing 12 bytes into a region of size between 1 and 512 [-Wformat-truncation=]
548 | snprintf(str, CAP_INFO_MAX_LEN, "%s, rx power: %uuW, tx power: %uuW",
| ^~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:548:3: note: 'snprintf' output between 31 and 560 bytes into a destination of size 512
548 | snprintf(str, CAP_INFO_MAX_LEN, "%s, rx power: %uuW, tx power: %uuW",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
549 | cap_info, info->power[0x0], info->power[0x1]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:544:39: warning: ', rx power: ' directive output may be truncated writing 12 bytes into a region of size between 1 and 512 [-Wformat-truncation=]
544 | snprintf(str, CAP_INFO_MAX_LEN, "%s, rx power: %uuw %uuW %uuW %uuW",
| ^~~~~~~~~~~~
drivers/net/ethernet/huawei/hinic3/hinic3_mag_cfg.c:544:3: note: 'snprintf' output between 28 and 575 bytes into a destination of size 512
544 | snprintf(str, CAP_INFO_MAX_LEN, "%s, rx power: %uuw %uuW %uuW %uuW",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
545 | cap_info, info->power[0x0], info->power[0x1],
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
546 | info->power[0x2], info->power[0x3]);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PTP_1588_CLOCK
Depends on [n]: NET [=y] && POSIX_TIMERS [=n]
Selected by [y]:
- SXE [=y] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_LINKDATA [=y] && (X86 || ARM64 [=y]) && PCI [=y]
- SXE_VF [=y] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_LINKDATA [=y] && (X86 || ARM64 [=y]) && PCI [=y]
vim +1860 drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c
1847
1848 static void slave_host_vfio_probe_delay_work(struct work_struct *work)
1849 {
1850 struct delayed_work *delay = to_delayed_work(work);
1851 struct hinic3_pcidev *pci_adapter = container_of(delay, struct hinic3_pcidev,
1852 migration_probe_dwork);
1853 struct pci_dev *pdev = pci_adapter->pcidev;
1854 int (*dev_migration_probe)(struct pci_dev *pdev);
1855 int rc;
1856
1857 if (hinic3_func_type((struct hinic3_hwdev *)pci_adapter->hwdev) != TYPE_PF)
1858 return;
1859
> 1860 dev_migration_probe = __symbol_get("migration_dev_migration_probe");
1861 if (!(dev_migration_probe)) {
1862 sdk_err(&pdev->dev,
1863 "Failed to find: migration_dev_migration_probe");
1864 queue_delayed_work(pci_adapter->migration_probe_workq,
1865 &pci_adapter->migration_probe_dwork,
1866 WAIT_TIME * HZ);
1867 } else {
1868 rc = dev_migration_probe(pdev);
> 1869 __symbol_put("migration_dev_migration_probe");
1870 if (rc) {
1871 sdk_err(&pdev->dev,
1872 "Failed to __dev_migration_probe, rc:0x%x, pf migrated(%d).\n",
1873 rc, g_is_pf_migrated);
1874 } else {
1875 g_is_pf_migrated = true;
1876 sdk_info(&pdev->dev,
1877 "Succeeded in __dev_migration_probe, pf migrated(%d).\n",
1878 g_is_pf_migrated);
1879 }
1880 }
1881 }
1882
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
1
0