Kernel
Threads by month
- ----- 2025 -----
- 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
- 58 participants
- 20946 discussions
Fix CVE-2023-53719 for openEuler-1.0-LTS
Bartosz Golaszewski (1):
drivers: provide devm_platform_ioremap_resource()
Ke Zhang (1):
serial: arc_uart: fix of_iomap leak in `arc_serial_probe`
drivers/base/platform.c | 18 ++++++++++++++++++
drivers/tty/serial/arc_uart.c | 7 ++++---
include/linux/platform_device.h | 3 +++
3 files changed, 25 insertions(+), 3 deletions(-)
--
2.25.1
2
3
[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