Kernel
Threads by month
- ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- 6 participants
- 20978 discussions
[PATCH openEuler-1.0-LTS] sctp: handle the error returned from sctp_auth_asoc_init_active_key
by Wang Liang 27 Oct '25
by Wang Liang 27 Oct '25
27 Oct '25
From: Xin Long <lucien.xin(a)gmail.com>
stable inclusion
from stable-v4.19.262
commit b8fa99a3a11bdd77fef6b4a97f1021eb30b5ba40
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICY46T
CVE: CVE-2022-50243
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 022152aaebe116a25c39818a07e175a8cd3c1e11 ]
When it returns an error from sctp_auth_asoc_init_active_key(), the
active_key is actually not updated. The old sh_key will be freeed
while it's still used as active key in asoc. Then an use-after-free
will be triggered when sending patckets, as found by syzbot:
sctp_auth_shkey_hold+0x22/0xa0 net/sctp/auth.c:112
sctp_set_owner_w net/sctp/socket.c:132 [inline]
sctp_sendmsg_to_asoc+0xbd5/0x1a20 net/sctp/socket.c:1863
sctp_sendmsg+0x1053/0x1d50 net/sctp/socket.c:2025
inet_sendmsg+0x99/0xe0 net/ipv4/af_inet.c:819
sock_sendmsg_nosec net/socket.c:714 [inline]
sock_sendmsg+0xcf/0x120 net/socket.c:734
This patch is to fix it by not replacing the sh_key when it returns
errors from sctp_auth_asoc_init_active_key() in sctp_auth_set_key().
For sctp_auth_set_active_key(), old active_key_id will be set back
to asoc->active_key_id when the same thing happens.
Fixes: 58acd1009226 ("sctp: update active_key for asoc when old key is being replaced")
Reported-by: syzbot+a236dd8e9622ed8954a3(a)syzkaller.appspotmail.com
Signed-off-by: Xin Long <lucien.xin(a)gmail.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
net/sctp/auth.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index 9e0c98df20da..9cf61a18098a 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -886,12 +886,17 @@ int sctp_auth_set_key(struct sctp_endpoint *ep,
}
list_del_init(&shkey->key_list);
- sctp_auth_shkey_release(shkey);
list_add(&cur_key->key_list, sh_keys);
- if (asoc && asoc->active_key_id == auth_key->sca_keynumber)
- sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL);
+ if (asoc && asoc->active_key_id == auth_key->sca_keynumber &&
+ sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL)) {
+ list_del_init(&cur_key->key_list);
+ sctp_auth_shkey_release(cur_key);
+ list_add(&shkey->key_list, sh_keys);
+ return -ENOMEM;
+ }
+ sctp_auth_shkey_release(shkey);
return 0;
}
@@ -920,8 +925,13 @@ int sctp_auth_set_active_key(struct sctp_endpoint *ep,
return -EINVAL;
if (asoc) {
+ __u16 active_key_id = asoc->active_key_id;
+
asoc->active_key_id = key_id;
- sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL);
+ if (sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL)) {
+ asoc->active_key_id = active_key_id;
+ return -ENOMEM;
+ }
} else
ep->active_key_id = key_id;
--
2.34.1
2
1
[PATCH openEuler-1.0-LTS] igb: Do not free q_vector unless new one was allocated
by Wang Liang 27 Oct '25
by Wang Liang 27 Oct '25
27 Oct '25
From: Kees Cook <keescook(a)chromium.org>
stable inclusion
from stable-v4.19.270
commit 68e8adbcaf7a8743e473343b38b9dad66e2ac6f3
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICY474
CVE: CVE-2022-50252
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 0668716506ca66f90d395f36ccdaebc3e0e84801 ]
Avoid potential use-after-free condition under memory pressure. If the
kzalloc() fails, q_vector will be freed but left in the original
adapter->q_vector[v_idx] array position.
Cc: Jesse Brandeburg <jesse.brandeburg(a)intel.com>
Cc: Tony Nguyen <anthony.l.nguyen(a)intel.com>
Cc: "David S. Miller" <davem(a)davemloft.net>
Cc: Eric Dumazet <edumazet(a)google.com>
Cc: Jakub Kicinski <kuba(a)kernel.org>
Cc: Paolo Abeni <pabeni(a)redhat.com>
Cc: intel-wired-lan(a)lists.osuosl.org
Cc: netdev(a)vger.kernel.org
Signed-off-by: Kees Cook <keescook(a)chromium.org>
Reviewed-by: Michael J. Ruhl <michael.j.ruhl(a)intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller(a)intel.com>
Tested-by: Gurucharan <gurucharanx.g(a)intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen(a)intel.com>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
drivers/net/ethernet/intel/igb/igb_main.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index ef5d11723d56..7a94716deb60 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -1204,8 +1204,12 @@ static int igb_alloc_q_vector(struct igb_adapter *adapter,
if (!q_vector) {
q_vector = kzalloc(size, GFP_KERNEL);
} else if (size > ksize(q_vector)) {
- kfree_rcu(q_vector, rcu);
- q_vector = kzalloc(size, GFP_KERNEL);
+ struct igb_q_vector *new_q_vector;
+
+ new_q_vector = kzalloc(size, GFP_KERNEL);
+ if (new_q_vector)
+ kfree_rcu(q_vector, rcu);
+ q_vector = new_q_vector;
} else {
memset(q_vector, 0, size);
}
--
2.34.1
2
1
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