Kernel
  Threads by month 
                
            - ----- 2025 -----
- 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
- 20965 discussions
 
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3042/3042] drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:743: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
                        
                        
by kernel test robot 27 Oct '25
                    by kernel test robot 27 Oct '25
27 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   9094437bec1ace7378abfe84597e722209d03f85
commit: 468b0cd7b1e1c131b3ee7d2ea8b96521d3faad8b [3042/3042] net:nebula-matrix:Add S1000 SNIC driver support
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20251027/202510271326.G0BQX79z-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/20251027/202510271326.G0BQX79z-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/202510271326.G0BQX79z-lkp@intel.com/
All warnings (new ones prefixed by >>):
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.c:7:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_product_base.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_include.h:12:
   In file included from include/linux/pci.h:1669:
   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:2247:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   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_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.c:797:18: warning: variable 'pdev' set but not used [-Wunused-but-set-variable]
     797 |         struct pci_dev *pdev;
         |                         ^
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.c:4550:14: warning: attribute declaration must precede definition [-Wignored-attributes]
    4550 | static union __maybe_unused epro_aft_u aft_def[NBL_FWD_TYPE_MAX] = {
         |              ^
   include/linux/compiler_attributes.h:356:56: note: expanded from macro '__maybe_unused'
     356 | #define __maybe_unused                  __attribute__((__unused__))
         |                                                        ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/base/nbl_ppe_epro.h:590:7: note: previous definition is here
     590 | union epro_aft_u {
         |       ^
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.c:7:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_hw_leonis/nbl_phy_leonis.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_product_base.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_include.h:10:
   In file included from include/linux/mod_devicetable.h:14:
   In file included from include/linux/uuid.h:11:
   In file included from include/linux/string.h:294:
   include/linux/fortify-string.h:606:4: warning: call to '__read_overflow2_field' declared with 'warning' attribute: detected read beyond size of field (2nd parameter); maybe use struct_group()? [-Wattribute-warning]
     606 |                         __read_overflow2_field(q_size_field, size);
         |                         ^
   8 warnings generated.
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:7:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_resource.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_product_base.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_include.h:12:
   In file included from include/linux/pci.h:1669:
   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:2247:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   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_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:156:2: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]
     156 |         default:
         |         ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:156:2: note: insert 'break;' to avoid fall-through
     156 |         default:
         |         ^
         |         break; 
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_adminq.c:1823:6: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
    1823 |         int ret = 0;
         |             ^
   7 warnings generated.
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:7:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ethtool.h:10:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h:10:
   In file included from include/linux/mm.h:2247:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   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_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:1378:26: warning: variable 'vector' set but not used [-Wunused-but-set-variable]
    1378 |         struct nbl_serv_vector *vector;
         |                                 ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:3025:28: warning: variable 'ring_mgt' set but not used [-Wunused-but-set-variable]
    3025 |         struct nbl_serv_ring_mgt *ring_mgt;
         |                                   ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:4002:22: warning: variable 'adapter' set but not used [-Wunused-but-set-variable]
    4002 |         struct nbl_adapter *adapter;
         |                             ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:4552:36: warning: variable 'net_resource_mgt' set but not used [-Wunused-but-set-variable]
    4552 |         struct nbl_serv_net_resource_mgt *net_resource_mgt;
         |                                           ^
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:5726:15: warning: variable 'name' set but not used [-Wunused-but-set-variable]
    5726 |         u8 *strtab, *name, *product_code = NULL;
         |                      ^
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.c:5730:6: warning: variable 'p4_size' set but not used [-Wunused-but-set-variable]
    5730 |         u32 p4_size = 0;
         |             ^
   11 warnings generated.
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ipsec.c:7:
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ipsec.h:13:
   In file included from include/linux/if_vlan.h:10:
   In file included from include/linux/netdevice.h:38:
   In file included from include/net/net_namespace.h:43:
   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:2247:
   include/linux/vmstat.h:508:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     508 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     509 |                            item];
         |                            ~~~~
   include/linux/vmstat.h:515:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     515 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     516 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   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_"
         |                               ~~~~~~~~~~~ ^ ~~~
   include/linux/vmstat.h:527:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     527 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     528 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
   include/linux/vmstat.h:536:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
     536 |         return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~ ^
     537 |                            NR_VM_NUMA_EVENT_ITEMS +
         |                            ~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ipsec.c:70:29: warning: result of comparison of constant 256 with expression of type 'u8' (aka 'unsigned char') is always true [-Wtautological-constant-out-of-range-compare]
      70 |             x->props.replay_window != NBL_IPSEC_WINDOW_256) {
         |             ~~~~~~~~~~~~~~~~~~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~
   6 warnings generated.
--
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_tc.c:1265: warning: Cannot understand  * @brief: handle action parse by type
    on line 1265 - I thought it was a doc line
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_tc.c:1290: warning: Cannot understand  * @brief: handle action parse
    on line 1290 - I thought it was a doc line
--
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c:743: warning: This comment starts with '/**', but isn't a kernel-doc comment. Refer Documentation/doc-guide/kernel-doc.rst
    * check dma conflict when multi devices in one iommu group, That is, when ACS not support.
vim +743 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev_user.c
   741	
   742	/**
 > 743	 * check dma conflict when multi devices in one iommu group, That is, when ACS not support.
   744	 * return -1 means multi devices conflict.
   745	 * return 1 means mapping exist and not conflict.
   746	 * return 0 means mapping not existed.
   747	 */
   748	static int nbl_userdev_check_dma_conflict(struct nbl_dev_user *user,
   749						  unsigned long vaddr, dma_addr_t iova, size_t size)
   750	{
   751		struct nbl_dev_user_iommu_group *group = user->group;
   752		struct nbl_userdev_dma *dma;
   753		struct rb_node *n;
   754		struct page *h_page;
   755		size_t unmapped = 0;
   756		unsigned long vfn, pfn, vaddr_new;
   757		dma_addr_t iova_new;
   758		int ret;
   759	
   760		dma = nbl_userdev_find_dma(group, vaddr, 1);
   761		if (dma && dma->vaddr != vaddr)
   762			return -1;
   763	
   764		dma = nbl_userdev_find_dma(group, vaddr + size - 1, 0);
   765		if (dma && dma->vaddr + dma->size != vaddr + size)
   766			return -1;
   767	
   768		if (!nbl_userdev_find_dma(group, vaddr, size))
   769			return 0;
   770		n = nbl_userdev_find_dma_first_node(group, vaddr, size);
   771		vaddr_new = vaddr;
   772		iova_new = iova;
   773		while (n) {
   774			dma = rb_entry(n, struct nbl_userdev_dma, node);
   775			if (dma->iova >= iova + size)
   776				break;
   777	
   778			if (dma->vaddr >= vaddr + size)
   779				break;
   780	
   781			if (dma->vaddr != vaddr_new || dma->iova != iova_new)
   782				break;
   783	
   784			vfn = vaddr_new >> PAGE_SHIFT;
   785			ret = vfio_pin_pages(NBL_USERDEV_TO_VFIO_DEV(user),
   786					     vaddr_new, 1, IOMMU_READ | IOMMU_WRITE, &h_page);
   787			if (ret <= 0)
   788				break;
   789			pfn = page_to_pfn(h_page);
   790			vfio_unpin_pages(NBL_USERDEV_TO_VFIO_DEV(user), vaddr_new, 1);
   791			if (pfn != dma->pfn)
   792				break;
   793	
   794			n = rb_next(n);
   795			unmapped += dma->size;
   796			vaddr_new += dma->size;
   797			iova_new += dma->size;
   798		}
   799	
   800		if (unmapped != size)
   801			return -1;
   802	
   803		return 1;
   804	}
   805	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3045/3045] arch/x86/kvm/vmx/vmx.h:757:26: error: 'struct kvm_vcpu_arch' has no member named 'hyperv_enabled'
                        
                        
by kernel test robot 27 Oct '25
                    by kernel test robot 27 Oct '25
27 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   9094437bec1ace7378abfe84597e722209d03f85
commit: 2a3cfce9a18a4b772f01830cbc95fe00125431d8 [3045/3045] KVM: x86: Make Hyper-V emulation optional
config: x86_64-buildonly-randconfig-002-20251027 (https://download.01.org/0day-ci/archive/20251027/202510271331.Y6ayA7xV-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251027/202510271331.Y6ayA7xV-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/202510271331.Y6ayA7xV-lkp@intel.com/
All errors (new ones prefixed by >>):
   In file included from arch/x86/kvm/kvm-asm-offsets.c:10:
   arch/x86/kvm/vmx/vmx.h: In function 'guest_cpuid_has_evmcs':
>> arch/x86/kvm/vmx/vmx.h:757:26: error: 'struct kvm_vcpu_arch' has no member named 'hyperv_enabled'
     757 |         return vcpu->arch.hyperv_enabled &&
         |                          ^
--
   In file included from arch/x86/kvm/vmx/nested.h:8,
                    from arch/x86/kvm/vmx/nested.c:14:
   arch/x86/kvm/vmx/vmx.h: In function 'guest_cpuid_has_evmcs':
>> arch/x86/kvm/vmx/vmx.h:757:26: error: 'struct kvm_vcpu_arch' has no member named 'hyperv_enabled'
     757 |         return vcpu->arch.hyperv_enabled &&
         |                          ^
   In file included from include/asm-generic/bug.h:5,
                    from arch/x86/include/asm/bug.h:99,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/percpu.h:5,
                    from arch/x86/kvm/vmx/nested.c:5:
   arch/x86/kvm/vmx/nested.c: In function 'nested_vmx_transition_tlb_flush':
>> arch/x86/kvm/vmx/nested.c:1178:13: error: implicit declaration of function 'to_hv_vcpu' [-Wimplicit-function-declaration]
    1178 |         if (to_hv_vcpu(vcpu) && enable_ept)
         |             ^~~~~~~~~~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/vmx/nested.c:1178:9: note: in expansion of macro 'if'
    1178 |         if (to_hv_vcpu(vcpu) && enable_ept)
         |         ^~
--
   In file included from arch/x86/kvm/vmx/nested.h:8,
                    from arch/x86/kvm/vmx/vmx.c:60:
   arch/x86/kvm/vmx/vmx.h: In function 'guest_cpuid_has_evmcs':
>> arch/x86/kvm/vmx/vmx.h:757:26: error: 'struct kvm_vcpu_arch' has no member named 'hyperv_enabled'
     757 |         return vcpu->arch.hyperv_enabled &&
         |                          ^
   arch/x86/kvm/vmx/vmx.c: In function 'hv_enable_l2_tlb_flush':
>> arch/x86/kvm/vmx/vmx.c:540:26: error: implicit declaration of function 'to_kvm_hv'; did you mean 'to_kvm_vmx'? [-Wimplicit-function-declaration]
     540 |                         &to_kvm_hv(vcpu->kvm)->hv_pa_pg;
         |                          ^~~~~~~~~
         |                          to_kvm_vmx
   arch/x86/kvm/vmx/vmx.c:540:46: error: invalid type argument of '->' (have 'int')
     540 |                         &to_kvm_hv(vcpu->kvm)->hv_pa_pg;
         |                                              ^~
--
   arch/x86/kvm/x86.c: In function 'kvm_arch_free_vm':
>> arch/x86/kvm/x86.c:12528:15: error: implicit declaration of function 'to_kvm_hv' [-Wimplicit-function-declaration]
   12528 |         kfree(to_kvm_hv(kvm)->hv_pa_pg);
         |               ^~~~~~~~~
>> arch/x86/kvm/x86.c:12528:29: error: invalid type argument of '->' (have 'int')
   12528 |         kfree(to_kvm_hv(kvm)->hv_pa_pg);
         |                             ^~
--
   In file included from include/asm-generic/bug.h:5,
                    from arch/x86/include/asm/bug.h:99,
                    from include/linux/bug.h:5,
                    from include/linux/mmdebug.h:5,
                    from include/linux/percpu.h:5,
                    from include/linux/context_tracking_state.h:5,
                    from include/linux/hardirq.h:5,
                    from include/linux/kvm_host.h:7,
                    from arch/x86/kvm/lapic.c:20:
   arch/x86/kvm/lapic.c: In function 'apic_set_eoi':
>> arch/x86/kvm/lapic.c:1479:13: error: implicit declaration of function 'to_hv_vcpu' [-Wimplicit-function-declaration]
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |             ^~~~~~~~~~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
>> arch/x86/kvm/lapic.c:1480:30: error: implicit declaration of function 'to_hv_synic' [-Wimplicit-function-declaration]
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                              ^~~~~~~~~~~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value'
      68 |         (cond) ?                                        \
         |          ^~~~
   include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value'
      68 |         (cond) ?                                        \
         |          ^~~~
   include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value'
      68 |         (cond) ?                                        \
         |          ^~~~
   include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value'
      68 |         (cond) ?                                        \
         |          ^~~~
   include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
>> arch/x86/kvm/lapic.c:1480:53: error: invalid type argument of '->' (have 'int')
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |                                                     ^~
   include/linux/compiler.h:68:10: note: in definition of macro '__trace_if_value'
      68 |         (cond) ?                                        \
         |          ^~~~
   include/linux/compiler.h:55:28: note: in expansion of macro '__trace_if_var'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~
   arch/x86/kvm/lapic.c:1479:9: note: in expansion of macro 'if'
    1479 |         if (to_hv_vcpu(apic->vcpu) &&
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:1480:13: note: in expansion of macro 'test_bit'
    1480 |             test_bit(vector, to_hv_synic(apic->vcpu)->vec_bitmap))
         |             ^~~~~~~~
   arch/x86/kvm/lapic.c: In function 'kvm_get_apic_interrupt':
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:2954:33: note: in expansion of macro 'test_bit'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                 ^~~~~~~~
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:2954:33: note: in expansion of macro 'test_bit'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                 ^~~~~~~~
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:2954:33: note: in expansion of macro 'test_bit'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                 ^~~~~~~~
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:2954:33: note: in expansion of macro 'test_bit'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                 ^~~~~~~~
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:52: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |         ^~
   include/linux/bitops.h:61:41: note: in expansion of macro 'bitop'
      61 | #define test_bit(nr, addr)              bitop(_test_bit, nr, addr)
         |                                         ^~~~~
   arch/x86/kvm/lapic.c:2954:33: note: in expansion of macro 'test_bit'
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                 ^~~~~~~~
   arch/x86/kvm/lapic.c:2954:67: error: invalid type argument of '->' (have 'int')
    2954 |         if (to_hv_vcpu(vcpu) && test_bit(vector, to_hv_synic(vcpu)->auto_eoi_bitmap)) {
         |                                                                   ^~
   include/linux/compiler.h:57:61: note: in definition of macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                             ^~~~
   arch/x86/kvm/lapic.c:2954:9: note: in expansion of macro 'if'
..
vim +757 arch/x86/kvm/vmx/vmx.h
d588bb9be1da6a Chao Gao            2022-04-19  750  
85ab071af83952 Sean Christopherson 2022-08-30  751  static inline bool guest_cpuid_has_evmcs(struct kvm_vcpu *vcpu)
85ab071af83952 Sean Christopherson 2022-08-30  752  {
85ab071af83952 Sean Christopherson 2022-08-30  753  	/*
85ab071af83952 Sean Christopherson 2022-08-30  754  	 * eVMCS is exposed to the guest if Hyper-V is enabled in CPUID and
85ab071af83952 Sean Christopherson 2022-08-30  755  	 * eVMCS has been explicitly enabled by userspace.
85ab071af83952 Sean Christopherson 2022-08-30  756  	 */
85ab071af83952 Sean Christopherson 2022-08-30 @757  	return vcpu->arch.hyperv_enabled &&
85ab071af83952 Sean Christopherson 2022-08-30  758  	       to_vmx(vcpu)->nested.enlightened_vmcs_enabled;
85ab071af83952 Sean Christopherson 2022-08-30  759  }
85ab071af83952 Sean Christopherson 2022-08-30  760  
:::::: The code at line 757 was first introduced by commit
:::::: 85ab071af83952a44473e3d02304c17053ade2f4 KVM: nVMX: Treat eVMCS as enabled for guest iff Hyper-V is also enabled
:::::: TO: Sean Christopherson <seanjc(a)google.com>
:::::: CC: Paolo Bonzini <pbonzini(a)redhat.com>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3045/3045] drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h:285:24: error: array type has incomplete element type 'struct dcb_app'
                        
                        
by kernel test robot 27 Oct '25
                    by kernel test robot 27 Oct '25
27 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   9094437bec1ace7378abfe84597e722209d03f85
commit: 468b0cd7b1e1c131b3ee7d2ea8b96521d3faad8b [3045/3045] net:nebula-matrix:Add S1000 SNIC driver support
config: x86_64-buildonly-randconfig-006-20251027 (https://download.01.org/0day-ci/archive/20251027/202510271304.QdT93JQS-lkp@…)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251027/202510271304.QdT93JQS-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/202510271304.QdT93JQS-lkp@intel.com/
All error/warnings (new ones prefixed by >>):
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_hwmon.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_hwmon.c:7:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h:12,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ipsec.h:14,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_ipsec.c:7:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h:285:24: error: array type has incomplete element type 'struct dcb_app'
     285 |         struct dcb_app app[NBL_DSCP_MAX];
         |                        ^~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h:287:25: error: field 'ets' has incomplete type
     287 |         struct ieee_ets ets;
         |                         ^~~
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_resource.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c:7:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c: In function 'nbl_res_txrx_xmit_xdp_ring':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c:1310:30: warning: variable 'eth' set but not used [-Wunused-but-set-variable]
    1310 |         const struct ethhdr *eth;
         |                              ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c: In function 'nbl_res_txrx_restore_abnormal_ring':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_txrx.c:3499:32: warning: variable 'vector' set but not used [-Wunused-but-set-variable]
    3499 |         struct nbl_res_vector *vector =  NULL;
         |                                ^~~~~~
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_resource.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_fc.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_fc.c:7:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_fc.c: In function 'nbl_fc_del_stats':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_hw/nbl_fc.c:303:27: warning: variable 'counter_list' set but not used [-Wunused-but-set-variable]
     303 |         struct list_head *counter_list;
         |                           ^~~~~~~~~~~~
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:7:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_get_pause_stats_resp':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:2842:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
    2842 |         int err = NBL_CHAN_RESP_OK;
         |             ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_get_eth_ctrl_stats_resp':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:2957:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
    2957 |         int err = NBL_CHAN_RESP_OK;
         |             ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_get_eth_mac_stats_resp':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:3013:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
    3013 |         int err = NBL_CHAN_RESP_OK;
         |             ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_get_rmon_stats_resp':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:3069:13: warning: variable 'err' set but not used [-Wunused-but-set-variable]
    3069 |         int err = NBL_CHAN_RESP_OK;
         |             ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_destroy_msix_map_resp':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:3554:45: warning: variable 'param' set but not used [-Wunused-but-set-variable]
    3554 |         struct nbl_chan_param_cfg_msix_map *param;
         |                                             ^~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_set_intr_suppress_level_resp':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:7888:33: warning: variable 'chan_ops' set but not used [-Wunused-but-set-variable]
    7888 |         struct nbl_channel_ops *chan_ops;
         |                                 ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c: In function 'nbl_disp_chan_del_nd_upcall_flow_resp':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dispatch.c:8102:33: warning: variable 'common' set but not used [-Wunused-but-set-variable]
    8102 |         struct nbl_common_info *common;
         |                                 ^~~~~~
--
   In file included from drivers/net/ethernet/nebula-matrix/nbl/nbl_core.h:15,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.h:10,
                    from drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:10:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:348:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     348 |         int (*ieee_setets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:349:62: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
     349 |         int (*ieee_getets)(struct net_device *netdev, struct ieee_ets *ets);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:350:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     350 |         int (*ieee_setpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:351:62: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
     351 |         int (*ieee_getpfc)(struct net_device *netdev, struct ieee_pfc *pfc);
         |                                                              ^~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:352:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     352 |         int (*ieee_setapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_include/nbl_def_service.h:353:62: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
     353 |         int (*ieee_delapp)(struct net_device *netdev, struct dcb_app *app);
         |                                                              ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_prepare_reset_task':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:896:13: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
     896 |         int ret;
         |             ^~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3084:66: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
    3084 | static int nbl_dev_ieee_setets(struct net_device *netdev, struct ieee_ets *ets)
         |                                                                  ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_setets':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3090:46: error: passing argument 2 of 'serv_ops->ieee_setets' from incompatible pointer type [-Wincompatible-pointer-types]
    3090 |         return serv_ops->ieee_setets(netdev, ets);
         |                                              ^~~
         |                                              |
         |                                              struct ieee_ets *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3090:46: note: expected 'struct ieee_ets *' but argument is of type 'struct ieee_ets *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3093:66: warning: 'struct ieee_ets' declared inside parameter list will not be visible outside of this definition or declaration
    3093 | static int nbl_dev_ieee_getets(struct net_device *netdev, struct ieee_ets *ets)
         |                                                                  ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_getets':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3099:46: error: passing argument 2 of 'serv_ops->ieee_getets' from incompatible pointer type [-Wincompatible-pointer-types]
    3099 |         return serv_ops->ieee_getets(netdev, ets);
         |                                              ^~~
         |                                              |
         |                                              struct ieee_ets *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3099:46: note: expected 'struct ieee_ets *' but argument is of type 'struct ieee_ets *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3102:66: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
    3102 | static int nbl_dev_ieee_setpfc(struct net_device *netdev, struct ieee_pfc *pfc)
         |                                                                  ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_setpfc':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3108:46: error: passing argument 2 of 'serv_ops->ieee_setpfc' from incompatible pointer type [-Wincompatible-pointer-types]
    3108 |         return serv_ops->ieee_setpfc(netdev, pfc);
         |                                              ^~~
         |                                              |
         |                                              struct ieee_pfc *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3108:46: note: expected 'struct ieee_pfc *' but argument is of type 'struct ieee_pfc *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3111:66: warning: 'struct ieee_pfc' declared inside parameter list will not be visible outside of this definition or declaration
    3111 | static int nbl_dev_ieee_getpfc(struct net_device *netdev, struct ieee_pfc *pfc)
         |                                                                  ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_getpfc':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3117:46: error: passing argument 2 of 'serv_ops->ieee_getpfc' from incompatible pointer type [-Wincompatible-pointer-types]
    3117 |         return serv_ops->ieee_getpfc(netdev, pfc);
         |                                              ^~~
         |                                              |
         |                                              struct ieee_pfc *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3117:46: note: expected 'struct ieee_pfc *' but argument is of type 'struct ieee_pfc *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3120:66: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
    3120 | static int nbl_dev_ieee_setapp(struct net_device *netdev, struct dcb_app *app)
         |                                                                  ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_setapp':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3126:46: error: passing argument 2 of 'serv_ops->ieee_setapp' from incompatible pointer type [-Wincompatible-pointer-types]
    3126 |         return serv_ops->ieee_setapp(netdev, app);
         |                                              ^~~
         |                                              |
         |                                              struct dcb_app *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3126:46: note: expected 'struct dcb_app *' but argument is of type 'struct dcb_app *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3129:66: warning: 'struct dcb_app' declared inside parameter list will not be visible outside of this definition or declaration
    3129 | static int nbl_dev_ieee_delapp(struct net_device *netdev, struct dcb_app *app)
         |                                                                  ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_ieee_delapp':
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3135:46: error: passing argument 2 of 'serv_ops->ieee_delapp' from incompatible pointer type [-Wincompatible-pointer-types]
    3135 |         return serv_ops->ieee_delapp(netdev, app);
         |                                              ^~~
         |                                              |
         |                                              struct dcb_app *
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3135:46: note: expected 'struct dcb_app *' but argument is of type 'struct dcb_app *'
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3219:21: error: variable 'dcbnl_ops_leonis_pf' has initializer but incomplete type
    3219 | static const struct dcbnl_rtnl_ops dcbnl_ops_leonis_pf = {
         |                     ^~~~~~~~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3220:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_setets'
    3220 |         .ieee_setets = nbl_dev_ieee_setets,
         |          ^~~~~~~~~~~
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3220:24: warning: excess elements in struct initializer
    3220 |         .ieee_setets = nbl_dev_ieee_setets,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3220:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3221:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_getets'
    3221 |         .ieee_getets = nbl_dev_ieee_getets,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3221:24: warning: excess elements in struct initializer
    3221 |         .ieee_getets = nbl_dev_ieee_getets,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3221:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3222:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_setpfc'
    3222 |         .ieee_setpfc = nbl_dev_ieee_setpfc,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3222:24: warning: excess elements in struct initializer
    3222 |         .ieee_setpfc = nbl_dev_ieee_setpfc,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3222:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3223:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_getpfc'
    3223 |         .ieee_getpfc = nbl_dev_ieee_getpfc,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3223:24: warning: excess elements in struct initializer
    3223 |         .ieee_getpfc = nbl_dev_ieee_getpfc,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3223:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
>> drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3224:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_setapp'
    3224 |         .ieee_setapp = nbl_dev_ieee_setapp,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3224:24: warning: excess elements in struct initializer
    3224 |         .ieee_setapp = nbl_dev_ieee_setapp,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3224:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3225:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'ieee_delapp'
    3225 |         .ieee_delapp = nbl_dev_ieee_delapp,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3225:24: warning: excess elements in struct initializer
    3225 |         .ieee_delapp = nbl_dev_ieee_delapp,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3225:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3226:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getdcbx'
    3226 |         .getdcbx = nbl_dev_getdcbx,
         |          ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3226:20: warning: excess elements in struct initializer
    3226 |         .getdcbx = nbl_dev_getdcbx,
         |                    ^~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3226:20: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3227:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'setdcbx'
    3227 |         .setdcbx = nbl_dev_setdcbx,
         |          ^~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3227:20: warning: excess elements in struct initializer
    3227 |         .setdcbx = nbl_dev_setdcbx,
         |                    ^~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3227:20: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3228:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getnumtcs'
    3228 |         .getnumtcs = nbl_dev_getnumtcs,
         |          ^~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3228:22: warning: excess elements in struct initializer
    3228 |         .getnumtcs = nbl_dev_getnumtcs,
         |                      ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3228:22: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3229:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'setpfccfg'
    3229 |         .setpfccfg = nbl_dev_setpfccfg,
         |          ^~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3229:22: warning: excess elements in struct initializer
    3229 |         .setpfccfg = nbl_dev_setpfccfg,
         |                      ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3229:22: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3230:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getpfccfg'
    3230 |         .getpfccfg = nbl_dev_getpfccfg,
         |          ^~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3230:22: warning: excess elements in struct initializer
    3230 |         .getpfccfg = nbl_dev_getpfccfg,
         |                      ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3230:22: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3231:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getstate'
    3231 |         .getstate = nbl_dev_getstate,
         |          ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3231:21: warning: excess elements in struct initializer
    3231 |         .getstate = nbl_dev_getstate,
         |                     ^~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3231:21: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3232:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'setstate'
    3232 |         .setstate = nbl_dev_setstate,
         |          ^~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3232:21: warning: excess elements in struct initializer
    3232 |         .setstate = nbl_dev_setstate,
         |                     ^~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3232:21: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3233:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getpfcstate'
    3233 |         .getpfcstate = nbl_dev_getpfcstate,
         |          ^~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3233:24: warning: excess elements in struct initializer
    3233 |         .getpfcstate = nbl_dev_getpfcstate,
         |                        ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3233:24: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3234:10: error: 'const struct dcbnl_rtnl_ops' has no member named 'getcap'
    3234 |         .getcap = nbl_dev_getcap,
         |          ^~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3234:19: warning: excess elements in struct initializer
    3234 |         .getcap = nbl_dev_getcap,
         |                   ^~~~~~~~~~~~~~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3234:19: note: (near initialization for 'dcbnl_ops_leonis_pf')
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_setup_dcbnl_ops_leonis':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3243:23: error: 'struct net_device' has no member named 'dcbnl_ops'
    3243 |                 netdev->dcbnl_ops = &dcbnl_ops_leonis_pf;
         |                       ^~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: In function 'nbl_dev_remove_dcbnl_ops':
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3249:15: error: 'struct net_device' has no member named 'dcbnl_ops'
    3249 |         netdev->dcbnl_ops = NULL;
         |               ^~
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c: At top level:
   drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_dev.c:3219:36: error: storage size of 'dcbnl_ops_leonis_pf' isn't known
    3219 | static const struct dcbnl_rtnl_ops dcbnl_ops_leonis_pf = {
         |                                    ^~~~~~~~~~~~~~~~~~~
..
vim +285 drivers/net/ethernet/nebula-matrix/nbl/nbl_core/nbl_service.h
   272	
   273	#define NBL_DCB_NO_HW_CHG	1
   274	#define NBL_DCB_HW_CHG		2
   275	struct nbl_serv_qos_info {
   276		u8 dcbx_mode;
   277		u8 dcbx_state;
   278		u8 trust_mode;		/* Trust Mode value 0:802.1p 1: dscp */
   279		u8 pfc[NBL_MAX_PFC_PRIORITIES];
   280		u8 dscp2prio_map[NBL_DSCP_MAX]; /* DSCP -> Priority map */
   281		int rdma_bw;
   282		u32 rdma_rate;
   283		u32 net_rate;
   284		DECLARE_BITMAP(dscp_mapped, NBL_DSCP_MAX);
 > 285		struct dcb_app app[NBL_DSCP_MAX];
   286		int buffer_sizes[NBL_MAX_PFC_PRIORITIES][2];
 > 287		struct ieee_ets ets;
   288	};
   289	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Patch#1 KVM: arm64: Allow userspace to get the writable masks for feature ID registers
Patch#2 KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS
Patch#3 KVM: arm64: Use guest ID register values for the sake of emulation
Patch#4 KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version
Patch#5 KVM: arm64: Reject attempts to set invalid debug arch version
Patch#6 KVM: arm64: Bump up the default KVM sanitised debug version to v8p8
Patch#7 KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1
Patch#8 KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1
Patch#9 KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1
Patch#10 KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1
Patch#11 KVM: arm64: Document vCPU feature selection UAPIs
Reference: https://lore.kernel.org/all/20231003230408.3405722-1-oliver.upton@linux.dev/
selftest相关未合入
Patch#12 KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable from userspace
Reference: https://lore.kernel.org/all/20240816132819.34316-1-shameerali.kolothum.thod…
单patch合入
Patch#13 KVM: arm64: Disable MPAM visibility by default and ignore VMM writes
Reference: https://lore.kernel.org/all/20241030160317.2528209-7-joey.gouly@arm.com/
单patch合入
Patch#14 KVM: arm64: Rename is_id_reg() to imply VM scope
Patch#15 KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs()
Patch#16 KVM: arm64: Only reset vCPU-scoped feature ID regs once
Reference: https://lore.kernel.org/all/20240502233529.1958459-1-oliver.upton@linux.dev/
后面patch基于此series, 只合入影响后面patch的部分
Patch#17 KVM: arm64: Use read-only helper for reading VM ID registers
Patch#18 KVM: arm64: Add helper for writing ID regs
Patch#19 KVM: arm64: Treat CTR_EL0 as a VM feature ID register
Patch#20 KVM: arm64: show writable masks for feature registers
Patch#21 KVM: arm64: rename functions for invariant sys regs
Reference: https://lore.kernel.org/all/20240619174036.483943-1-oliver.upton@linux.dev/
nv及debug相关未合入
Patch#22 KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from userspace
Reference: https://lore.kernel.org/all/20241022073943.35764-1-shameerali.kolothum.thod…
单patch合入
Patch#23 KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX
Reference: https://lore.kernel.org/all/E1s2AxF-00AWLv-03@rmk-PC.armlinux.org.uk/
单patch合入
Patch#24 KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace
Reference: https://lore.kernel.org/linux-arm-kernel/20250911114621.3724469-1-yangjinqi…
selftest相关未合入
Patch#25 KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden
Reference: https://lore.kernel.org/all/20241203190236.505759-1-maz@kernel.org/
单patch合入
Patch#26 KVM: arm64: Sanitise ID_AA64MMFR3_EL1
Reference: https://lore.kernel.org/all/20240822151113.1479789-11-joey.gouly@arm.com/
后面patch基于此series的此patch, 只合入此patch
Patch#27 KVM: arm64: Expose S1PIE to guests
Reference: https://lore.kernel.org/all/20241005-kvm-arm64-fix-s1pie-v1-1-5901f02de749@…
单patch合入
Patch#28 KVM: arm64: Make AA64PFR1_EL1.NMI writeable
此patch未合入主线, 因为vNMI未合入主线, 仅openeuler需要。
Patch#29 KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change
此patch用于KABI屏蔽, 由Patch#19引入, 在struct kvm_arch添加了ctr_el0。
James Morse (1):
  KVM: arm64: Disable MPAM visibility by default and ignore VMM writes
Jing Zhang (5):
  KVM: arm64: Allow userspace to get the writable masks for feature ID
    registers
  KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS
  KVM: arm64: Use guest ID register values for the sake of emulation
  KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1
  KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1
Jinqian Yang (2):
  KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace
  KVM: arm64: Make AA64PFR1_EL1.NMI writeable
Joey Gouly (1):
  KVM: arm64: Sanitise ID_AA64MMFR3_EL1
Marc Zyngier (1):
  KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden
Mark Brown (1):
  KVM: arm64: Expose S1PIE to guests
Oliver Upton (11):
  KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version
  KVM: arm64: Reject attempts to set invalid debug arch version
  KVM: arm64: Bump up the default KVM sanitised debug version to v8p8
  KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1
  KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1
  KVM: arm64: Document vCPU feature selection UAPIs
  KVM: arm64: Rename is_id_reg() to imply VM scope
  KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs()
  KVM: arm64: Only reset vCPU-scoped feature ID regs once
  KVM: arm64: Use read-only helper for reading VM ID registers
  KVM: arm64: Add helper for writing ID regs
Russell King (1):
  KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX
Sebastian Ott (3):
  KVM: arm64: Treat CTR_EL0 as a VM feature ID register
  KVM: arm64: show writable masks for feature registers
  KVM: arm64: rename functions for invariant sys regs
Shameer Kolothum (2):
  KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable
    from userspace
  KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from
    userspace
yangjinqian (1):
  KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change
 Documentation/virt/kvm/api.rst               |  52 +++
 Documentation/virt/kvm/arm/index.rst         |   1 +
 Documentation/virt/kvm/arm/vcpu-features.rst |  48 +++
 arch/arm64/include/asm/kvm_emulate.h         |   3 +-
 arch/arm64/include/asm/kvm_host.h            |  23 ++
 arch/arm64/include/uapi/asm/kvm.h            |  32 ++
 arch/arm64/kvm/arm.c                         |  15 +-
 arch/arm64/kvm/pmu-emul.c                    |   2 +-
 arch/arm64/kvm/sys_regs.c                    | 359 +++++++++++++++----
 include/uapi/linux/kvm.h                     |   2 +
 10 files changed, 451 insertions(+), 86 deletions(-)
 create mode 100644 Documentation/virt/kvm/arm/vcpu-features.rst
-- 
2.33.0
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            30
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Patch#1 KVM: arm64: Allow userspace to get the writable masks for feature ID registers
Patch#2 KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS
Patch#3 KVM: arm64: Use guest ID register values for the sake of emulation
Patch#4 KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version
Patch#5 KVM: arm64: Reject attempts to set invalid debug arch version
Patch#6 KVM: arm64: Bump up the default KVM sanitised debug version to v8p8
Patch#7 KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1
Patch#8 KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1
Patch#9 KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1
Patch#10 KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1
Patch#11 KVM: arm64: Document vCPU feature selection UAPIs
Reference: https://lore.kernel.org/all/20231003230408.3405722-1-oliver.upton@linux.dev/
selftest相关未合入
Patch#12 KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable from userspace
Reference: https://lore.kernel.org/all/20240816132819.34316-1-shameerali.kolothum.thod…
单patch合入
Patch#13 KVM: arm64: Disable MPAM visibility by default and ignore VMM writes
Reference: https://lore.kernel.org/all/20241030160317.2528209-7-joey.gouly@arm.com/
单patch合入
Patch#14 KVM: arm64: Rename is_id_reg() to imply VM scope
Patch#15 KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs()
Patch#16 KVM: arm64: Only reset vCPU-scoped feature ID regs once
Reference: https://lore.kernel.org/all/20240502233529.1958459-1-oliver.upton@linux.dev/
后面patch基于此series, 只合入影响后面patch的部分
Patch#17 KVM: arm64: Use read-only helper for reading VM ID registers
Patch#18 KVM: arm64: Add helper for writing ID regs
Patch#19 KVM: arm64: Treat CTR_EL0 as a VM feature ID register
Patch#20 KVM: arm64: show writable masks for feature registers
Patch#21 KVM: arm64: rename functions for invariant sys regs
Reference: https://lore.kernel.org/all/20240619174036.483943-1-oliver.upton@linux.dev/
nv及debug相关未合入
Patch#22 KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from userspace
Reference: https://lore.kernel.org/all/20241022073943.35764-1-shameerali.kolothum.thod…
单patch合入
Patch#23 KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX
Reference: https://lore.kernel.org/all/E1s2AxF-00AWLv-03@rmk-PC.armlinux.org.uk/
单patch合入
Patch#24 KVM: arm64: Make HCX writable from userspace
Reference: https://lore.kernel.org/linux-arm-kernel/20250911114621.3724469-1-yangjinqi…
selftest相关未合入
Patch#25 KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden
Reference: https://lore.kernel.org/all/20241203190236.505759-1-maz@kernel.org/
单patch合入
Patch#26 KVM: arm64: Sanitise ID_AA64MMFR3_EL1
Reference: https://lore.kernel.org/all/20240822151113.1479789-11-joey.gouly@arm.com/
后面patch基于此series的此patch, 只合入此patch
Patch#27 KVM: arm64: Expose S1PIE to guests
Reference: https://lore.kernel.org/all/20241005-kvm-arm64-fix-s1pie-v1-1-5901f02de749@…
Patch#28 KVM: arm64: Make AA64PFR1_EL1.NMI writeable
此patch未合入主线, 因为vNMI未合入主线, 仅openeuler需要。
Patch#29 KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change
此patch用于KABI屏蔽, 由Patch#19引入, 在struct kvm_arch添加了ctr_el0。
James Morse (1):
  KVM: arm64: Disable MPAM visibility by default and ignore VMM writes
Jing Zhang (5):
  KVM: arm64: Allow userspace to get the writable masks for feature ID
    registers
  KVM: arm64: Document KVM_ARM_GET_REG_WRITABLE_MASKS
  KVM: arm64: Use guest ID register values for the sake of emulation
  KVM: arm64: Allow userspace to change ID_AA64MMFR{0-2}_EL1
  KVM: arm64: Allow userspace to change ID_AA64PFR0_EL1
Jinqian Yang (2):
  KVM: arm64: Make ID_AA64MMFR1_EL1.{HCX, TWED} writable from userspace
  KVM: arm64: Make AA64PFR1_EL1.NMI writeable
Joey Gouly (1):
  KVM: arm64: Sanitise ID_AA64MMFR3_EL1
Marc Zyngier (1):
  KVM: arm64: Do not allow ID_AA64MMFR0_EL1.ASIDbits to be overridden
Mark Brown (1):
  KVM: arm64: Expose S1PIE to guests
Oliver Upton (11):
  KVM: arm64: Advertise selected DebugVer in DBGDIDR.Version
  KVM: arm64: Reject attempts to set invalid debug arch version
  KVM: arm64: Bump up the default KVM sanitised debug version to v8p8
  KVM: arm64: Allow userspace to change ID_AA64ISAR{0-2}_EL1
  KVM: arm64: Allow userspace to change ID_AA64ZFR0_EL1
  KVM: arm64: Document vCPU feature selection UAPIs
  KVM: arm64: Rename is_id_reg() to imply VM scope
  KVM: arm64: Reset VM feature ID regs from kvm_reset_sys_regs()
  KVM: arm64: Only reset vCPU-scoped feature ID regs once
  KVM: arm64: Use read-only helper for reading VM ID registers
  KVM: arm64: Add helper for writing ID regs
Russell King (1):
  KVM: arm64: Remove duplicated AA64MMFR1_EL1 XNX
Sebastian Ott (3):
  KVM: arm64: Treat CTR_EL0 as a VM feature ID register
  KVM: arm64: show writable masks for feature registers
  KVM: arm64: rename functions for invariant sys regs
Shameer Kolothum (2):
  KVM: arm64: Make the exposed feature bits in AA64DFR0_EL1 writable
    from userspace
  KVM: arm64: Make the L1Ip feature bits in CTR_EL0 writable from
    userspace
yangjinqian (1):
  KVM: arm64: use KABI_EXTEND to revert struct kvm kabi change
 Documentation/virt/kvm/api.rst               |  52 +++
 Documentation/virt/kvm/arm/index.rst         |   1 +
 Documentation/virt/kvm/arm/vcpu-features.rst |  48 +++
 arch/arm64/include/asm/kvm_emulate.h         |   3 +-
 arch/arm64/include/asm/kvm_host.h            |  23 ++
 arch/arm64/include/uapi/asm/kvm.h            |  32 ++
 arch/arm64/kvm/arm.c                         |  15 +-
 arch/arm64/kvm/pmu-emul.c                    |   2 +-
 arch/arm64/kvm/sys_regs.c                    | 359 +++++++++++++++----
 include/uapi/linux/kvm.h                     |   2 +
 10 files changed, 451 insertions(+), 86 deletions(-)
 create mode 100644 Documentation/virt/kvm/arm/vcpu-features.rst
-- 
2.33.0
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            30
                            
                          
                          
                            
    
                          
                        
                    
                    
                        From: Leo Yan <leo.yan(a)arm.com>
stable inclusion
from stable-v6.6.112
commit 379cae2cb982f571cda9493ac573ab71125fd299
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/ID3KG8
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit a29fea30dd93da16652930162b177941abd8c75e ]
Cast nr_pages to unsigned long to avoid overflow when handling large
AUX buffer sizes (>= 2 GiB).
Fixes: d5d9696b0380 ("drivers/perf: Add support for ARMv8.2 Statistical Profiling Extension")
Signed-off-by: Leo Yan <leo.yan(a)arm.com>
Signed-off-by: Will Deacon <will(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Pu Lehui <pulehui(a)huawei.com>
---
 drivers/perf/arm_spe_pmu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/perf/arm_spe_pmu.c b/drivers/perf/arm_spe_pmu.c
index a59d70ea44c9..db9dddbddba3 100644
--- a/drivers/perf/arm_spe_pmu.c
+++ b/drivers/perf/arm_spe_pmu.c
@@ -107,7 +107,8 @@ struct arm_spe_pmu {
 #define to_spe_pmu(p) (container_of(p, struct arm_spe_pmu, pmu))
 
 /* Convert a free-running index from perf into an SPE buffer offset */
-#define PERF_IDX2OFF(idx, buf)	((idx) % ((buf)->nr_pages << PAGE_SHIFT))
+#define PERF_IDX2OFF(idx, buf) \
+	((idx) % ((unsigned long)(buf)->nr_pages << PAGE_SHIFT))
 
 /* Keep track of our dynamic hotplug state */
 static enum cpuhp_state arm_spe_pmu_online;
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                     
                        
                    27 Oct '25
                    
                        hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/ID29QH
--------------------------------
The MBWU monitor performs long-term cumulative statistics on bandwidth
for a specified PARTID. However, the number of L2 physical monitors is
very limited.
To support the expanded quantities of PARTIDs and PMGs, the MBWU monitors
need to multiplex. Therefore, when a monitor tracks a new PARTID or PMG,
which means a change in monitor configuration is detected, the accumulated
correction should set to zero.
Fixes: 21ac9fc8f275 ("arm_mpam: Track bandwidth counter state for overflow and power management")
Signed-off-by: Zeng Heng <zengheng4(a)huawei.com>
---
 drivers/platform/mpam/mpam_devices.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/platform/mpam/mpam_devices.c b/drivers/platform/mpam/mpam_devices.c
index 2fa3bd2083c3..fdc13094bac5 100644
--- a/drivers/platform/mpam/mpam_devices.c
+++ b/drivers/platform/mpam/mpam_devices.c
@@ -1015,7 +1015,7 @@ static void __ris_msmon_read(void *arg)
 	bool reset_on_next_read = false;
 	struct mpam_msc_ris *ris = m->ris;
 	struct mpam_msc *msc = m->ris->msc;
-	struct msmon_mbwu_state *mbwu_state;
+	struct msmon_mbwu_state *mbwu_state = NULL;
 	u32 mon_sel, ctl_val, flt_val, cur_ctl, cur_flt;
 
 	lockdep_assert_held(&msc->lock);
@@ -1047,8 +1047,14 @@ static void __ris_msmon_read(void *arg)
 	config_mismatch = cur_flt != flt_val ||
 			  cur_ctl != (ctl_val | MSMON_CFG_x_CTL_EN);
 
-	if (config_mismatch || reset_on_next_read)
+	if (config_mismatch || reset_on_next_read) {
 		write_msmon_ctl_flt_vals(m, ctl_val, flt_val);
+		if (mbwu_state) {
+			mbwu_state->prev_val = 0;
+			mbwu_state->correction = 0;
+			mbwu_overflow = false;
+		}
+	}
 
 	/*
 	 * Selects the monitor instance associated to the specified PARTID
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3040/3040] drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable'
                        
                        
by kernel test robot 26 Oct '25
                    by kernel test robot 26 Oct '25
26 Oct '25
                    
                        Hi openeuler-ci-bot,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   4c00b18c122c4cdb2747e44b469af328b8cecb28
commit: 0ba0ebb029b99864fa5963024535f48299373354 [3040/3040] !15589 [OLK-6.6] Ethernet: Supports Linkdata ethernet Controllers
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251026/202510261701.xgIonhiR-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251026/202510261701.xgIonhiR-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/202510261701.xgIonhiR-lkp@intel.com/
All errors (new ones prefixed by >>):
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:6: error: no previous prototype for function 'sxe_hw_uc_addr_pool_del' [-Werror,-Wmissing-prototypes]
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:5: error: no previous prototype for function 'sxe_hw_uc_addr_pool_enable' [-Werror,-Wmissing-prototypes]
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:5: error: no previous prototype for function 'sxe_hw_nic_reset' [-Werror,-Wmissing-prototypes]
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:6: error: no previous prototype for function 'sxe_hw_pf_rst_done_set' [-Werror,-Wmissing-prototypes]
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:5: error: no previous prototype for function 'sxe_hw_pending_irq_read_clear' [-Werror,-Wmissing-prototypes]
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:6: error: no previous prototype for function 'sxe_hw_pending_irq_write_clear' [-Werror,-Wmissing-prototypes]
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for function 'sxe_hw_irq_cause_get' [-Werror,-Wmissing-prototypes]
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:6: error: no previous prototype for function 'sxe_hw_ring_irq_auto_disable' [-Werror,-Wmissing-prototypes]
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for function 'sxe_hw_irq_general_reg_set' [-Werror,-Wmissing-prototypes]
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for function 'sxe_hw_irq_general_reg_get' [-Werror,-Wmissing-prototypes]
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for function 'sxe_hw_event_irq_map' [-Werror,-Wmissing-prototypes]
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:6: error: no previous prototype for function 'sxe_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:6: error: no previous prototype for function 'sxe_hw_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: error: no previous prototype for function 'sxe_hw_event_irq_auto_clear_set' [-Werror,-Wmissing-prototypes]
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:6: error: no previous prototype for function 'sxe_hw_specific_irq_disable' [-Werror,-Wmissing-prototypes]
     843 | void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:843:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     843 | void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:6: error: no previous prototype for function 'sxe_hw_specific_irq_enable' [-Werror,-Wmissing-prototypes]
     848 | void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:848:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     848 | void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:6: error: no previous prototype for function 'sxe_hw_all_irq_disable' [-Werror,-Wmissing-prototypes]
     876 | void sxe_hw_all_irq_disable(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:876:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     876 | void sxe_hw_all_irq_disable(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:994:5: error: no previous prototype for function 'sxe_hw_link_speed_get' [-Werror,-Wmissing-prototypes]
     994 | u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:994:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     994 | u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
         | ^
         | static 
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.
--
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:6: error: no previous prototype for function 'sxevf_msg_write' [-Werror,-Wmissing-prototypes]
     187 | void sxevf_msg_write(struct sxevf_hw *hw, u8 index, u32 msg)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     187 | void sxevf_msg_write(struct sxevf_hw *hw, u8 index, u32 msg)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:5: error: no previous prototype for function 'sxevf_msg_read' [-Werror,-Wmissing-prototypes]
     196 | u32 sxevf_msg_read(struct sxevf_hw *hw, u8 index)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:196:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     196 | u32 sxevf_msg_read(struct sxevf_hw *hw, u8 index)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:5: error: no previous prototype for function 'sxevf_mailbox_read' [-Werror,-Wmissing-prototypes]
     206 | u32 sxevf_mailbox_read(struct sxevf_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:206:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     206 | u32 sxevf_mailbox_read(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:6: error: no previous prototype for function 'sxevf_mailbox_write' [-Werror,-Wmissing-prototypes]
     211 | void sxevf_mailbox_write(struct sxevf_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     211 | void sxevf_mailbox_write(struct sxevf_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:6: error: no previous prototype for function 'sxevf_pf_req_irq_trigger' [-Werror,-Wmissing-prototypes]
     216 | void sxevf_pf_req_irq_trigger(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:216:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     216 | void sxevf_pf_req_irq_trigger(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:6: error: no previous prototype for function 'sxevf_pf_ack_irq_trigger' [-Werror,-Wmissing-prototypes]
     221 | void sxevf_pf_ack_irq_trigger(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:221:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     221 | void sxevf_pf_ack_irq_trigger(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:6: error: no previous prototype for function 'sxevf_event_irq_map' [-Werror,-Wmissing-prototypes]
     226 | void sxevf_event_irq_map(struct sxevf_hw *hw, u16 vector)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:226:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     226 | void sxevf_event_irq_map(struct sxevf_hw *hw, u16 vector)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:240:6: error: no previous prototype for function 'sxevf_specific_irq_enable' [-Werror,-Wmissing-prototypes]
     240 | void sxevf_specific_irq_enable(struct sxevf_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:240:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     240 | void sxevf_specific_irq_enable(struct sxevf_hw *hw, u32 value)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:6: error: no previous prototype for function 'sxevf_irq_enable' [-Werror,-Wmissing-prototypes]
     245 | void sxevf_irq_enable(struct sxevf_hw *hw, u32 mask)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:245:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     245 | void sxevf_irq_enable(struct sxevf_hw *hw, u32 mask)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:6: error: no previous prototype for function 'sxevf_irq_disable' [-Werror,-Wmissing-prototypes]
     251 | void sxevf_irq_disable(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:251:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     251 | void sxevf_irq_disable(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:6: error: no previous prototype for function 'sxevf_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
     259 | void sxevf_hw_ring_irq_map(struct sxevf_hw *hw, bool is_tx, u16 hw_ring_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:259:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     259 | void sxevf_hw_ring_irq_map(struct sxevf_hw *hw, bool is_tx, u16 hw_ring_idx,
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:276:6: error: no previous prototype for function 'sxevf_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
     276 | void sxevf_ring_irq_interval_set(struct sxevf_hw *hw, u16 irq_idx, u32 interval)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:276:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     276 | void sxevf_ring_irq_interval_set(struct sxevf_hw *hw, u16 irq_idx, u32 interval)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:6: error: no previous prototype for function 'sxevf_hw_reset' [-Werror,-Wmissing-prototypes]
     313 | void sxevf_hw_reset(struct sxevf_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:313:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     313 | void sxevf_hw_reset(struct sxevf_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:5: error: no previous prototype for function 'sxevf_link_state_get' [-Werror,-Wmissing-prototypes]
     324 | u32 sxevf_link_state_get(struct sxevf_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:324:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     324 | u32 sxevf_link_state_get(struct sxevf_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:539:6: error: no previous prototype for function 'sxevf_tx_ring_switch' [-Werror,-Wmissing-prototypes]
     539 | void sxevf_tx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:539:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     539 | void sxevf_tx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:6: error: no previous prototype for function 'sxevf_rx_ring_switch' [-Werror,-Wmissing-prototypes]
     594 | void sxevf_rx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:594:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     594 | void sxevf_rx_ring_switch(struct sxevf_hw *hw, u8 reg_idx, bool is_on)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:6: error: no previous prototype for function 'sxevf_rx_ring_desc_configure' [-Werror,-Wmissing-prototypes]
     626 | void sxevf_rx_ring_desc_configure(struct sxevf_hw *hw, u32 desc_mem_len,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:626:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     626 | void sxevf_rx_ring_desc_configure(struct sxevf_hw *hw, u32 desc_mem_len,
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:640:6: error: no previous prototype for function 'sxevf_rx_rcv_ctl_configure' [-Werror,-Wmissing-prototypes]
     640 | void sxevf_rx_rcv_ctl_configure(struct sxevf_hw *hw, u8 reg_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxevf/sxevf/sxevf_hw.c:640:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     640 | void sxevf_rx_rcv_ctl_configure(struct sxevf_hw *hw, u8 reg_idx,
         | ^
         | static 
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.
vim +/sxe_hw_specific_irq_disable +843 drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c
dd013ad487534c liujie_answer 2025-04-15   842  
dd013ad487534c liujie_answer 2025-04-15  @843  void sxe_hw_specific_irq_disable(struct sxe_hw *hw, u32 value)
dd013ad487534c liujie_answer 2025-04-15   844  {
dd013ad487534c liujie_answer 2025-04-15   845  	SXE_REG_WRITE(hw, SXE_EIMC, value);
dd013ad487534c liujie_answer 2025-04-15   846  }
dd013ad487534c liujie_answer 2025-04-15   847  
dd013ad487534c liujie_answer 2025-04-15  @848  void sxe_hw_specific_irq_enable(struct sxe_hw *hw, u32 value)
dd013ad487534c liujie_answer 2025-04-15   849  {
dd013ad487534c liujie_answer 2025-04-15   850  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   851  }
dd013ad487534c liujie_answer 2025-04-15   852  
dd013ad487534c liujie_answer 2025-04-15   853  static u32 sxe_hw_spp_state_get(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   854  {
dd013ad487534c liujie_answer 2025-04-15   855  	return SXE_REG_READ(hw, SXE_SPP_STATE);
dd013ad487534c liujie_answer 2025-04-15   856  }
dd013ad487534c liujie_answer 2025-04-15   857  
dd013ad487534c liujie_answer 2025-04-15   858  static void sxe_hw_rx_los_disable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   859  {
dd013ad487534c liujie_answer 2025-04-15   860  	u32 value;
dd013ad487534c liujie_answer 2025-04-15   861  
dd013ad487534c liujie_answer 2025-04-15   862  	value = SXE_REG_READ(hw, SXE_EIMS);
dd013ad487534c liujie_answer 2025-04-15   863  	value &= ~SXE_EIMS_GPI_SPP1;
dd013ad487534c liujie_answer 2025-04-15   864  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   865  }
dd013ad487534c liujie_answer 2025-04-15   866  
dd013ad487534c liujie_answer 2025-04-15   867  static void sxe_hw_rx_los_enable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   868  {
dd013ad487534c liujie_answer 2025-04-15   869  	u32 value;
dd013ad487534c liujie_answer 2025-04-15   870  
dd013ad487534c liujie_answer 2025-04-15   871  	value = SXE_REG_READ(hw, SXE_EIMS);
dd013ad487534c liujie_answer 2025-04-15   872  	value |= SXE_EIMS_GPI_SPP1;
dd013ad487534c liujie_answer 2025-04-15   873  	SXE_REG_WRITE(hw, SXE_EIMS, value);
dd013ad487534c liujie_answer 2025-04-15   874  }
dd013ad487534c liujie_answer 2025-04-15   875  
dd013ad487534c liujie_answer 2025-04-15  @876  void sxe_hw_all_irq_disable(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   877  {
dd013ad487534c liujie_answer 2025-04-15   878  	SXE_REG_WRITE(hw, SXE_EIMC, 0xFFFF0000);
dd013ad487534c liujie_answer 2025-04-15   879  
dd013ad487534c liujie_answer 2025-04-15   880  	SXE_REG_WRITE(hw, SXE_EIMC_EX(0), ~0);
dd013ad487534c liujie_answer 2025-04-15   881  	SXE_REG_WRITE(hw, SXE_EIMC_EX(1), ~0);
dd013ad487534c liujie_answer 2025-04-15   882  
dd013ad487534c liujie_answer 2025-04-15   883  	SXE_WRITE_FLUSH(hw);
dd013ad487534c liujie_answer 2025-04-15   884  }
dd013ad487534c liujie_answer 2025-04-15   885  
dd013ad487534c liujie_answer 2025-04-15   886  static void sxe_hw_spp_configure(struct sxe_hw *hw, u32 hw_spp_proc_delay_us)
dd013ad487534c liujie_answer 2025-04-15   887  {
dd013ad487534c liujie_answer 2025-04-15   888  	u32 reg = SXE_REG_READ(hw, SXE_SPP_PROC);
dd013ad487534c liujie_answer 2025-04-15   889  
dd013ad487534c liujie_answer 2025-04-15   890  	reg &= ~SXE_SPP_PROC_DELAY_US_MASK;
dd013ad487534c liujie_answer 2025-04-15   891  	reg |= hw_spp_proc_delay_us;
dd013ad487534c liujie_answer 2025-04-15   892  	reg &= SXE_SPP_PROC_SPP2_TRIGGER_MASK;
dd013ad487534c liujie_answer 2025-04-15   893  	reg |= SXE_SPP_PROC_SPP2_TRIGGER;
dd013ad487534c liujie_answer 2025-04-15   894  
dd013ad487534c liujie_answer 2025-04-15   895  	SXE_REG_WRITE(hw, SXE_SPP_PROC, reg);
dd013ad487534c liujie_answer 2025-04-15   896  }
dd013ad487534c liujie_answer 2025-04-15   897  
dd013ad487534c liujie_answer 2025-04-15   898  static s32 sxe_hw_irq_test(struct sxe_hw *hw, u32 *icr, bool shared)
dd013ad487534c liujie_answer 2025-04-15   899  {
dd013ad487534c liujie_answer 2025-04-15   900  	s32 ret = 0;
dd013ad487534c liujie_answer 2025-04-15   901  	u32 i, mask;
dd013ad487534c liujie_answer 2025-04-15   902  	struct sxe_adapter *adapter = hw->adapter;
dd013ad487534c liujie_answer 2025-04-15   903  
dd013ad487534c liujie_answer 2025-04-15   904  	sxe_hw_specific_irq_disable(hw, 0xFFFFFFFF);
dd013ad487534c liujie_answer 2025-04-15   905  	sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   906  	usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   907  
dd013ad487534c liujie_answer 2025-04-15   908  	for (i = 0; i < 10; i++) {
dd013ad487534c liujie_answer 2025-04-15   909  		mask = BIT(i);
dd013ad487534c liujie_answer 2025-04-15   910  		if (!shared) {
dd013ad487534c liujie_answer 2025-04-15   911  			LOG_INFO_BDF("test irq: irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   912  			*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   913  			SXE_REG_WRITE(hw, SXE_EIMC, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   914  			SXE_REG_WRITE(hw, SXE_EICS, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   915  			sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   916  			usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   917  
dd013ad487534c liujie_answer 2025-04-15   918  			if (*icr & mask) {
dd013ad487534c liujie_answer 2025-04-15   919  				LOG_ERROR_BDF("test irq: failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   920  				ret = -SXE_DIAG_DISABLE_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   921  				break;
dd013ad487534c liujie_answer 2025-04-15   922  			}
dd013ad487534c liujie_answer 2025-04-15   923  			LOG_INFO_BDF("test irq: irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   924  		}
dd013ad487534c liujie_answer 2025-04-15   925  
dd013ad487534c liujie_answer 2025-04-15   926  		LOG_INFO_BDF("test irq: mask irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   927  		*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   928  		SXE_REG_WRITE(hw, SXE_EIMS, mask);
dd013ad487534c liujie_answer 2025-04-15   929  		SXE_REG_WRITE(hw, SXE_EICS, mask);
dd013ad487534c liujie_answer 2025-04-15   930  		sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   931  		usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   932  
dd013ad487534c liujie_answer 2025-04-15   933  		if (!(*icr & mask)) {
dd013ad487534c liujie_answer 2025-04-15   934  			LOG_ERROR_BDF("test irq: mask failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   935  			ret = -SXE_DIAG_ENABLE_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   936  			break;
dd013ad487534c liujie_answer 2025-04-15   937  		}
dd013ad487534c liujie_answer 2025-04-15   938  		LOG_INFO_BDF("test irq: mask irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   939  
dd013ad487534c liujie_answer 2025-04-15   940  		sxe_hw_specific_irq_disable(hw, mask);
dd013ad487534c liujie_answer 2025-04-15   941  		sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   942  		usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   943  
dd013ad487534c liujie_answer 2025-04-15   944  		if (!shared) {
dd013ad487534c liujie_answer 2025-04-15   945  			LOG_INFO_BDF("test irq: other irq test start\n");
dd013ad487534c liujie_answer 2025-04-15   946  			*icr = 0;
dd013ad487534c liujie_answer 2025-04-15   947  			SXE_REG_WRITE(hw, SXE_EIMC, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   948  			SXE_REG_WRITE(hw, SXE_EICS, ~mask & 0x00007FFF);
dd013ad487534c liujie_answer 2025-04-15   949  			sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   950  			usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   951  
dd013ad487534c liujie_answer 2025-04-15   952  			if (*icr) {
dd013ad487534c liujie_answer 2025-04-15   953  				LOG_ERROR_BDF("test irq: other irq failed, eicr = %x\n", *icr);
dd013ad487534c liujie_answer 2025-04-15   954  				ret = -SXE_DIAG_DISABLE_OTHER_IRQ_TEST_ERR;
dd013ad487534c liujie_answer 2025-04-15   955  				break;
dd013ad487534c liujie_answer 2025-04-15   956  			}
dd013ad487534c liujie_answer 2025-04-15   957  			LOG_INFO_BDF("test irq: other irq test end\n");
dd013ad487534c liujie_answer 2025-04-15   958  		}
dd013ad487534c liujie_answer 2025-04-15   959  	}
dd013ad487534c liujie_answer 2025-04-15   960  
dd013ad487534c liujie_answer 2025-04-15   961  	sxe_hw_specific_irq_disable(hw, 0xFFFFFFFF);
dd013ad487534c liujie_answer 2025-04-15   962  	sxe_hw_regs_flush(hw);
dd013ad487534c liujie_answer 2025-04-15   963  	usleep_range(10000, 20000);
dd013ad487534c liujie_answer 2025-04-15   964  
dd013ad487534c liujie_answer 2025-04-15   965  	return ret;
dd013ad487534c liujie_answer 2025-04-15   966  }
dd013ad487534c liujie_answer 2025-04-15   967  
dd013ad487534c liujie_answer 2025-04-15   968  static const struct sxe_irq_operations sxe_irq_ops = {
dd013ad487534c liujie_answer 2025-04-15   969  	.event_irq_auto_clear_set = sxe_hw_event_irq_auto_clear_set,
dd013ad487534c liujie_answer 2025-04-15   970  	.ring_irq_interval_set = sxe_hw_ring_irq_interval_set,
dd013ad487534c liujie_answer 2025-04-15   971  	.event_irq_interval_set = sxe_hw_event_irq_interval_set,
dd013ad487534c liujie_answer 2025-04-15   972  	.set_eitrsel = sxe_hw_set_eitrsel,
dd013ad487534c liujie_answer 2025-04-15   973  	.ring_irq_map = sxe_hw_ring_irq_map,
dd013ad487534c liujie_answer 2025-04-15   974  	.event_irq_map = sxe_hw_event_irq_map,
dd013ad487534c liujie_answer 2025-04-15   975  	.irq_general_reg_set = sxe_hw_irq_general_reg_set,
dd013ad487534c liujie_answer 2025-04-15   976  	.irq_general_reg_get = sxe_hw_irq_general_reg_get,
dd013ad487534c liujie_answer 2025-04-15   977  	.ring_irq_auto_disable = sxe_hw_ring_irq_auto_disable,
dd013ad487534c liujie_answer 2025-04-15   978  	.pending_irq_read_clear = sxe_hw_pending_irq_read_clear,
dd013ad487534c liujie_answer 2025-04-15   979  	.pending_irq_write_clear = sxe_hw_pending_irq_write_clear,
dd013ad487534c liujie_answer 2025-04-15   980  	.ring_irq_enable = sxe_hw_ring_irq_enable,
dd013ad487534c liujie_answer 2025-04-15   981  	.irq_cause_get = sxe_hw_irq_cause_get,
dd013ad487534c liujie_answer 2025-04-15   982  	.event_irq_trigger = sxe_hw_event_irq_trigger,
dd013ad487534c liujie_answer 2025-04-15   983  	.ring_irq_trigger = sxe_hw_ring_irq_trigger,
dd013ad487534c liujie_answer 2025-04-15   984  	.specific_irq_disable = sxe_hw_specific_irq_disable,
dd013ad487534c liujie_answer 2025-04-15   985  	.specific_irq_enable = sxe_hw_specific_irq_enable,
dd013ad487534c liujie_answer 2025-04-15   986  	.spp_state_get = sxe_hw_spp_state_get,
dd013ad487534c liujie_answer 2025-04-15   987  	.rx_los_disable = sxe_hw_rx_los_disable,
dd013ad487534c liujie_answer 2025-04-15   988  	.rx_los_enable = sxe_hw_rx_los_enable,
dd013ad487534c liujie_answer 2025-04-15   989  	.all_irq_disable = sxe_hw_all_irq_disable,
dd013ad487534c liujie_answer 2025-04-15   990  	.spp_configure = sxe_hw_spp_configure,
dd013ad487534c liujie_answer 2025-04-15   991  	.irq_test = sxe_hw_irq_test,
dd013ad487534c liujie_answer 2025-04-15   992  };
dd013ad487534c liujie_answer 2025-04-15   993  
dd013ad487534c liujie_answer 2025-04-15  @994  u32 sxe_hw_link_speed_get(struct sxe_hw *hw)
dd013ad487534c liujie_answer 2025-04-15   995  {
dd013ad487534c liujie_answer 2025-04-15   996  	u32 speed, value;
dd013ad487534c liujie_answer 2025-04-15   997  	struct sxe_adapter *adapter = hw->adapter;
dd013ad487534c liujie_answer 2025-04-15   998  
dd013ad487534c liujie_answer 2025-04-15   999  	value = SXE_REG_READ(hw, SXE_COMCTRL);
dd013ad487534c liujie_answer 2025-04-15  1000  
dd013ad487534c liujie_answer 2025-04-15  1001  	if ((value & SXE_COMCTRL_SPEED_10G) == SXE_COMCTRL_SPEED_10G)
dd013ad487534c liujie_answer 2025-04-15  1002  		speed = SXE_LINK_SPEED_10GB_FULL;
dd013ad487534c liujie_answer 2025-04-15  1003  	else if ((value & SXE_COMCTRL_SPEED_1G) == SXE_COMCTRL_SPEED_1G)
dd013ad487534c liujie_answer 2025-04-15  1004  		speed = SXE_LINK_SPEED_1GB_FULL;
dd013ad487534c liujie_answer 2025-04-15  1005  	else
dd013ad487534c liujie_answer 2025-04-15  1006  		speed = SXE_LINK_SPEED_UNKNOWN;
dd013ad487534c liujie_answer 2025-04-15  1007  
dd013ad487534c liujie_answer 2025-04-15  1008  	LOG_DEBUG_BDF("hw link speed=%x, (0x80=10G, 0x20=1G)\n, reg=%x",
dd013ad487534c liujie_answer 2025-04-15  1009  		      speed, value);
dd013ad487534c liujie_answer 2025-04-15  1010  
dd013ad487534c liujie_answer 2025-04-15  1011  	return speed;
dd013ad487534c liujie_answer 2025-04-15  1012  }
dd013ad487534c liujie_answer 2025-04-15  1013  
:::::: The code at line 843 was first introduced by commit
:::::: dd013ad487534c1838afc2f55efdb5daec15aace 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:openEuler-1.0-LTS 1732/1732] drivers/spi/spi-phytium-plat.c:192:36: warning: unused variable 'phytium_spi_acpi_match'
                        
                        
by kernel test robot 26 Oct '25
                    by kernel test robot 26 Oct '25
26 Oct '25
                    
                        Hi Malloy,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   ee55f6a88c1f70120d9cec8244c5cd10f0c4dce9
commit: e8483fcd43fc1dbb8d21bb7eacce804cbab6a7c6 [1732/1732] spi: add phytium spi support
config: x86_64-buildonly-randconfig-001-20250718 (https://download.01.org/0day-ci/archive/20251026/202510261440.yYSdGMBZ-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/20251026/202510261440.yYSdGMBZ-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/202510261440.yYSdGMBZ-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/spi/spi-phytium-plat.c:192:36: warning: unused variable 'phytium_spi_acpi_match' [-Wunused-const-variable]
     192 | static const struct acpi_device_id phytium_spi_acpi_match[] = {
         |                                    ^~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
vim +/phytium_spi_acpi_match +192 drivers/spi/spi-phytium-plat.c
   191	
 > 192	static const struct acpi_device_id phytium_spi_acpi_match[] = {
   193		{"PHYT000E", 0},
   194		{}
   195	};
   196	MODULE_DEVICE_TABLE(acpi, phytium_spi_acpi_match);
   197	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3040/3040] drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:432:6: error: no previous prototype for function 'sxe_debugfs_entries_init'
                        
                        
by kernel test robot 26 Oct '25
                    by kernel test robot 26 Oct '25
26 Oct '25
                    
                        Hi liujie_answer,
FYI, the error/warning still remains.
tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   4c00b18c122c4cdb2747e44b469af328b8cecb28
commit: dd013ad487534c1838afc2f55efdb5daec15aace [3040/3040] Ethernet: Linkdata: Supports Linkdata ethernet Controllers
config: arm64-allmodconfig (https://download.01.org/0day-ci/archive/20251026/202510261137.D9utYnjD-lkp@…)
compiler: clang version 19.1.7 (https://github.com/llvm/llvm-project cd708029e0b2869e80abe31ddb175f7c35361f90)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251026/202510261137.D9utYnjD-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/202510261137.D9utYnjD-lkp@intel.com/
All errors (new ones prefixed by >>):
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:14:
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe.h:15:
   In file included from include/linux/pci.h:1670:
   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:2253:
   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: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/linkdata/sxe/sxepf/sxe_debugfs.c:432:6: error: no previous prototype for function 'sxe_debugfs_entries_init' [-Werror,-Wmissing-prototypes]
     432 | void sxe_debugfs_entries_init(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:432:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     432 | void sxe_debugfs_entries_init(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:459:6: error: no previous prototype for function 'sxe_debugfs_entries_exit' [-Werror,-Wmissing-prototypes]
     459 | void sxe_debugfs_entries_exit(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:459:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     459 | void sxe_debugfs_entries_exit(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:465:6: error: no previous prototype for function 'sxe_debugfs_init' [-Werror,-Wmissing-prototypes]
     465 | void sxe_debugfs_init(void)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:465:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     465 | void sxe_debugfs_init(void)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:470:6: error: no previous prototype for function 'sxe_debugfs_exit' [-Werror,-Wmissing-prototypes]
     470 | void sxe_debugfs_exit(void)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c:470:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     470 | void sxe_debugfs_exit(void)
         | ^
         | static 
   8 errors generated.
--
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:11:
   In file included from include/linux/highmem.h:8:
   In file included from include/linux/cacheflush.h:5:
   In file included from arch/arm64/include/asm/cacheflush.h:11:
   In file included from include/linux/kgdb.h:19:
   In file included from include/linux/kprobes.h:28:
   In file included from include/linux/ftrace.h:13:
   In file included from include/linux/kallsyms.h:13:
   In file included from include/linux/mm.h:2253:
   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: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/linkdata/sxe/sxepf/sxe_ethtool.c:2022:5: error: no previous prototype for function 'sxe_reg_test' [-Werror,-Wmissing-prototypes]
    2022 | int sxe_reg_test(struct sxe_adapter *adapter)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2022:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2022 | int sxe_reg_test(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2644:5: error: no previous prototype for function 'sxe_phys_id_set' [-Werror,-Wmissing-prototypes]
    2644 | int sxe_phys_id_set(struct net_device *netdev, enum ethtool_phys_id_state state)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_ethtool.c:2644:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2644 | int sxe_phys_id_set(struct net_device *netdev, enum ethtool_phys_id_state state)
         | ^
         | static 
   6 errors generated.
--
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:15:
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe_pci.h:14:
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe.h:15:
   In file included from include/linux/pci.h:1670:
   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:2253:
   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: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/linkdata/sxe/sxepf/sxe_hw.c:230:6: error: no previous prototype for function 'sxe_hw_no_snoop_disable' [-Werror,-Wmissing-prototypes]
     230 | void sxe_hw_no_snoop_disable(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:230:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     230 | void sxe_hw_no_snoop_disable(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:6: error: no previous prototype for function 'sxe_hw_uc_addr_pool_del' [-Werror,-Wmissing-prototypes]
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:262:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     262 | void sxe_hw_uc_addr_pool_del(struct sxe_hw *hw, u32 rar_idx, u32 pool_idx)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:5: error: no previous prototype for function 'sxe_hw_uc_addr_pool_enable' [-Werror,-Wmissing-prototypes]
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:283:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     283 | s32 sxe_hw_uc_addr_pool_enable(struct sxe_hw *hw, u8 rar_idx, u8 pool_idx)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:5: error: no previous prototype for function 'sxe_hw_nic_reset' [-Werror,-Wmissing-prototypes]
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:337:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     337 | s32 sxe_hw_nic_reset(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:6: error: no previous prototype for function 'sxe_hw_pf_rst_done_set' [-Werror,-Wmissing-prototypes]
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:367:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     367 | void sxe_hw_pf_rst_done_set(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:5: error: no previous prototype for function 'sxe_hw_pending_irq_read_clear' [-Werror,-Wmissing-prototypes]
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:735:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     735 | u32 sxe_hw_pending_irq_read_clear(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:6: error: no previous prototype for function 'sxe_hw_pending_irq_write_clear' [-Werror,-Wmissing-prototypes]
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:740:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     740 | void sxe_hw_pending_irq_write_clear(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:5: error: no previous prototype for function 'sxe_hw_irq_cause_get' [-Werror,-Wmissing-prototypes]
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:745:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     745 | u32 sxe_hw_irq_cause_get(struct sxe_hw *hw)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:6: error: no previous prototype for function 'sxe_hw_ring_irq_auto_disable' [-Werror,-Wmissing-prototypes]
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:765:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     765 | void sxe_hw_ring_irq_auto_disable(struct sxe_hw *hw, bool is_msix)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:6: error: no previous prototype for function 'sxe_hw_irq_general_reg_set' [-Werror,-Wmissing-prototypes]
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:775:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     775 | void sxe_hw_irq_general_reg_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:5: error: no previous prototype for function 'sxe_hw_irq_general_reg_get' [-Werror,-Wmissing-prototypes]
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:780:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     780 | u32 sxe_hw_irq_general_reg_get(struct sxe_hw *hw)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:6: error: no previous prototype for function 'sxe_hw_event_irq_map' [-Werror,-Wmissing-prototypes]
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:790:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     790 | void sxe_hw_event_irq_map(struct sxe_hw *hw, u8 offset, u16 irq_idx)
         | ^
         | static 
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:6: error: no previous prototype for function 'sxe_hw_ring_irq_map' [-Werror,-Wmissing-prototypes]
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:806:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     806 | void sxe_hw_ring_irq_map(struct sxe_hw *hw, bool is_tx, u16 reg_idx,
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:6: error: no previous prototype for function 'sxe_hw_ring_irq_interval_set' [-Werror,-Wmissing-prototypes]
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:823:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     823 | void sxe_hw_ring_irq_interval_set(struct sxe_hw *hw, u16 irq_idx, u32 interval)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:6: error: no previous prototype for function 'sxe_hw_event_irq_auto_clear_set' [-Werror,-Wmissing-prototypes]
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_hw.c:838:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     838 | void sxe_hw_event_irq_auto_clear_set(struct sxe_hw *hw, u32 value)
         | ^
         | static 
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.
--
   In file included from drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:15:
   In file included from include/linux/ethtool.h:18:
   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/arm64/include/asm/cacheflush.h:11:
   In file included from include/linux/kgdb.h:19:
   In file included from include/linux/kprobes.h:28:
   In file included from include/linux/ftrace.h:13:
   In file included from include/linux/kallsyms.h:13:
   In file included from include/linux/mm.h:2253:
   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: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/linkdata/sxe/sxepf/sxe_irq.c:136:5: error: no previous prototype for function 'sxe_msi_irq_init' [-Werror,-Wmissing-prototypes]
     136 | int sxe_msi_irq_init(struct sxe_adapter *adapter)
         |     ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:136:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     136 | int sxe_msi_irq_init(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:182:6: error: no previous prototype for function 'sxe_disable_dcb' [-Werror,-Wmissing-prototypes]
     182 | void sxe_disable_dcb(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:182:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     182 | void sxe_disable_dcb(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:212:6: error: no previous prototype for function 'sxe_disable_rss' [-Werror,-Wmissing-prototypes]
     212 | void sxe_disable_rss(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:212:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     212 | void sxe_disable_rss(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:729:6: error: no previous prototype for function 'sxe_lsc_irq_handler' [-Werror,-Wmissing-prototypes]
     729 | void sxe_lsc_irq_handler(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:729:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     729 | void sxe_lsc_irq_handler(struct sxe_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:745:6: error: no previous prototype for function 'sxe_mailbox_irq_handler' [-Werror,-Wmissing-prototypes]
     745 | void sxe_mailbox_irq_handler(struct sxe_adapter *adapter)
         |      ^
   drivers/net/ethernet/linkdata/sxe/sxepf/sxe_irq.c:745:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     745 | void sxe_mailbox_irq_handler(struct sxe_adapter *adapter)
         | ^
         | static 
   9 errors generated.
..
vim +/sxe_debugfs_entries_init +432 drivers/net/ethernet/linkdata/sxe/sxepf/sxe_debugfs.c
   431	
 > 432	void sxe_debugfs_entries_init(struct sxe_adapter *adapter)
   433	{
   434		struct dentry *dir;
   435		const char *name = pci_name(adapter->pdev);
   436	
   437		adapter->debugfs_entries = debugfs_create_dir(name, sxe_debugfs_root);
   438		dir = debugfs_create_file("reg_ops", 0600, adapter->debugfs_entries,
   439					  adapter, &sxe_debugfs_reg_ops_fops);
   440		if (!dir || dir == ERR_PTR(-ENODEV))
   441			LOG_INFO_BDF("debugfs:reg_ops file create failed\n");
   442	
   443		dir = debugfs_create_file("netdev_ops", 0600, adapter->debugfs_entries,
   444					  adapter, &sxe_debugfs_netdev_ops_fops);
   445		if (!dir || dir == ERR_PTR(-ENODEV))
   446			LOG_INFO_BDF("debugfs:netdev_ops file create failed\n");
   447	
   448		dir = debugfs_create_file("hw_stats", 0400, adapter->debugfs_entries,
   449					  adapter, &sxe_debugfs_hw_stats_fops);
   450		if (!dir || dir == ERR_PTR(-ENODEV))
   451			LOG_INFO_BDF("debugfs:hw_stats file create failed\n");
   452	
   453		dir = debugfs_create_file("sfp_info", 0400, adapter->debugfs_entries,
   454					  adapter, &sxe_debugfs_sfp_info_fops);
   455		if (!dir || dir == ERR_PTR(-ENODEV))
   456			LOG_INFO_BDF("debugfs:sfp_info file create failed\n");
   457	}
   458	
 > 459	void sxe_debugfs_entries_exit(struct sxe_adapter *adapter)
   460	{
   461		debugfs_remove_recursive(adapter->debugfs_entries);
   462		adapter->debugfs_entries = NULL;
   463	}
   464	
 > 465	void sxe_debugfs_init(void)
   466	{
   467		sxe_debugfs_root = debugfs_create_dir(SXE_DRV_NAME, NULL);
   468	}
   469	
 > 470	void sxe_debugfs_exit(void)
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    