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
 
- 25 participants
 - 21050 discussions
 
                        
                            
                                
                            
                            [PATCH openEuler-1.0-LTS] wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds()
                        
                        
by Wang Liang 27 Oct '25
                    by Wang Liang 27 Oct '25
27 Oct '25
                    
                        From: Jisoo Jang <jisoo.jang(a)yonsei.ac.kr>
stable inclusion
from stable-v4.19.276
commit d481fd6064bf215d7c5068e15aa390c3b16c9cd0
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICY47E
CVE: CVE-2022-50258
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 0a06cadcc2a0044e4a117cc0e61436fc3a0dad69 ]
This patch fixes a stack-out-of-bounds read in brcmfmac that occurs
when 'buf' that is not null-terminated is passed as an argument of
strsep() in brcmf_c_preinit_dcmds(). This buffer is filled with a firmware
version string by memcpy() in brcmf_fil_iovar_data_get().
The patch ensures buf is null-terminated.
Found by a modified version of syzkaller.
[   47.569679][ T1897] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43236b for chip BCM43236/3
[   47.582839][ T1897] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   47.601565][ T1897] ==================================================================
[   47.602574][ T1897] BUG: KASAN: stack-out-of-bounds in strsep+0x1b2/0x1f0
[   47.603447][ T1897] Read of size 1 at addr ffffc90001f6f000 by task kworker/0:2/1897
[   47.604336][ T1897]
[   47.604621][ T1897] CPU: 0 PID: 1897 Comm: kworker/0:2 Tainted: G           O      5.14.0+ #131
[   47.605617][ T1897] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
[   47.606907][ T1897] Workqueue: usb_hub_wq hub_event
[   47.607453][ T1897] Call Trace:
[   47.607801][ T1897]  dump_stack_lvl+0x8e/0xd1
[   47.608295][ T1897]  print_address_description.constprop.0.cold+0xf/0x334
[   47.609009][ T1897]  ? strsep+0x1b2/0x1f0
[   47.609434][ T1897]  ? strsep+0x1b2/0x1f0
[   47.609863][ T1897]  kasan_report.cold+0x83/0xdf
[   47.610366][ T1897]  ? strsep+0x1b2/0x1f0
[   47.610882][ T1897]  strsep+0x1b2/0x1f0
[   47.611300][ T1897]  ? brcmf_fil_iovar_data_get+0x3a/0xf0
[   47.611883][ T1897]  brcmf_c_preinit_dcmds+0x995/0xc40
[   47.612434][ T1897]  ? brcmf_c_set_joinpref_default+0x100/0x100
[   47.613078][ T1897]  ? rcu_read_lock_sched_held+0xa1/0xd0
[   47.613662][ T1897]  ? rcu_read_lock_bh_held+0xb0/0xb0
[   47.614208][ T1897]  ? lock_acquire+0x19d/0x4e0
[   47.614704][ T1897]  ? find_held_lock+0x2d/0x110
[   47.615236][ T1897]  ? brcmf_usb_deq+0x1a7/0x260
[   47.615741][ T1897]  ? brcmf_usb_rx_fill_all+0x5a/0xf0
[   47.616288][ T1897]  brcmf_attach+0x246/0xd40
[   47.616758][ T1897]  ? wiphy_new_nm+0x1703/0x1dd0
[   47.617280][ T1897]  ? kmemdup+0x43/0x50
[   47.617720][ T1897]  brcmf_usb_probe+0x12de/0x1690
[   47.618244][ T1897]  ? brcmf_usbdev_qinit.constprop.0+0x470/0x470
[   47.618901][ T1897]  usb_probe_interface+0x2aa/0x760
[   47.619429][ T1897]  ? usb_probe_device+0x250/0x250
[   47.619950][ T1897]  really_probe+0x205/0xb70
[   47.620435][ T1897]  ? driver_allows_async_probing+0x130/0x130
[   47.621048][ T1897]  __driver_probe_device+0x311/0x4b0
[   47.621595][ T1897]  ? driver_allows_async_probing+0x130/0x130
[   47.622209][ T1897]  driver_probe_device+0x4e/0x150
[   47.622739][ T1897]  __device_attach_driver+0x1cc/0x2a0
[   47.623287][ T1897]  bus_for_each_drv+0x156/0x1d0
[   47.623796][ T1897]  ? bus_rescan_devices+0x30/0x30
[   47.624309][ T1897]  ? lockdep_hardirqs_on_prepare+0x273/0x3e0
[   47.624907][ T1897]  ? trace_hardirqs_on+0x46/0x160
[   47.625437][ T1897]  __device_attach+0x23f/0x3a0
[   47.625924][ T1897]  ? device_bind_driver+0xd0/0xd0
[   47.626433][ T1897]  ? kobject_uevent_env+0x287/0x14b0
[   47.627057][ T1897]  bus_probe_device+0x1da/0x290
[   47.627557][ T1897]  device_add+0xb7b/0x1eb0
[   47.628027][ T1897]  ? wait_for_completion+0x290/0x290
[   47.628593][ T1897]  ? __fw_devlink_link_to_suppliers+0x5a0/0x5a0
[   47.629249][ T1897]  usb_set_configuration+0xf59/0x16f0
[   47.629829][ T1897]  usb_generic_driver_probe+0x82/0xa0
[   47.630385][ T1897]  usb_probe_device+0xbb/0x250
[   47.630927][ T1897]  ? usb_suspend+0x590/0x590
[   47.631397][ T1897]  really_probe+0x205/0xb70
[   47.631855][ T1897]  ? driver_allows_async_probing+0x130/0x130
[   47.632469][ T1897]  __driver_probe_device+0x311/0x4b0
[   47.633002][ T1897]  ? usb_generic_driver_match+0x75/0x90
[   47.633573][ T1897]  ? driver_allows_async_probing+0x130/0x130
[   47.634170][ T1897]  driver_probe_device+0x4e/0x150
[   47.634703][ T1897]  __device_attach_driver+0x1cc/0x2a0
[   47.635248][ T1897]  bus_for_each_drv+0x156/0x1d0
[   47.635748][ T1897]  ? bus_rescan_devices+0x30/0x30
[   47.636271][ T1897]  ? lockdep_hardirqs_on_prepare+0x273/0x3e0
[   47.636881][ T1897]  ? trace_hardirqs_on+0x46/0x160
[   47.637396][ T1897]  __device_attach+0x23f/0x3a0
[   47.637904][ T1897]  ? device_bind_driver+0xd0/0xd0
[   47.638426][ T1897]  ? kobject_uevent_env+0x287/0x14b0
[   47.638985][ T1897]  bus_probe_device+0x1da/0x290
[   47.639512][ T1897]  device_add+0xb7b/0x1eb0
[   47.639977][ T1897]  ? __fw_devlink_link_to_suppliers+0x5a0/0x5a0
[   47.640612][ T1897]  ? kfree+0x14a/0x6b0
[   47.641055][ T1897]  ? __usb_get_extra_descriptor+0x116/0x160
[   47.641679][ T1897]  usb_new_device.cold+0x49c/0x1029
[   47.642245][ T1897]  ? hub_disconnect+0x450/0x450
[   47.642756][ T1897]  ? rwlock_bug.part.0+0x90/0x90
[   47.643273][ T1897]  ? _raw_spin_unlock_irq+0x24/0x30
[   47.643822][ T1897]  ? lockdep_hardirqs_on_prepare+0x273/0x3e0
[   47.644445][ T1897]  hub_event+0x1c98/0x3950
[   47.644939][ T1897]  ? hub_port_debounce+0x2e0/0x2e0
[   47.645467][ T1897]  ? check_irq_usage+0x861/0xf20
[   47.645975][ T1897]  ? drain_workqueue+0x280/0x360
[   47.646506][ T1897]  ? lock_release+0x640/0x640
[   47.646994][ T1897]  ? rcu_read_lock_sched_held+0xa1/0xd0
[   47.647572][ T1897]  ? rcu_read_lock_bh_held+0xb0/0xb0
[   47.648111][ T1897]  ? lockdep_hardirqs_on_prepare+0x273/0x3e0
[   47.648735][ T1897]  process_one_work+0x92b/0x1460
[   47.649262][ T1897]  ? pwq_dec_nr_in_flight+0x330/0x330
[   47.649816][ T1897]  ? rwlock_bug.part.0+0x90/0x90
[   47.650336][ T1897]  worker_thread+0x95/0xe00
[   47.650830][ T1897]  ? __kthread_parkme+0x115/0x1e0
[   47.651361][ T1897]  ? process_one_work+0x1460/0x1460
[   47.651904][ T1897]  kthread+0x3a1/0x480
[   47.652329][ T1897]  ? set_kthread_struct+0x120/0x120
[   47.652878][ T1897]  ret_from_fork+0x1f/0x30
[   47.653370][ T1897]
[   47.653608][ T1897]
[   47.653848][ T1897] addr ffffc90001f6f000 is located in stack of task kworker/0:2/1897 at offset 512 in frame:
[   47.654891][ T1897]  brcmf_c_preinit_dcmds+0x0/0xc40
[   47.655442][ T1897]
[   47.655690][ T1897] this frame has 4 objects:
[   47.656151][ T1897]  [48, 56) 'ptr'
[   47.656159][ T1897]  [80, 148) 'revinfo'
[   47.656534][ T1897]  [192, 210) 'eventmask'
[   47.656953][ T1897]  [256, 512) 'buf'
[   47.657410][ T1897]
[   47.658035][ T1897] Memory state around the buggy address:
[   47.658743][ T1897]  ffffc90001f6ef00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   47.659577][ T1897]  ffffc90001f6ef80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   47.660394][ T1897] >ffffc90001f6f000: f3 f3 f3 f3 f3 f3 f3 f3 00 00 00 00 00 00 00 00
[   47.661199][ T1897]                    ^
[   47.661625][ T1897]  ffffc90001f6f080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[   47.662455][ T1897]  ffffc90001f6f100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
[   47.663318][ T1897] ==================================================================
[   47.664147][ T1897] Disabling lock debugging due to kernel taint
Reported-by: Dokyung Song <dokyungs(a)yonsei.ac.kr>
Reported-by: Jisoo Jang <jisoo.jang(a)yonsei.ac.kr>
Reported-by: Minsuk Kang <linuxlovemin(a)yonsei.ac.kr>
Signed-off-by: Jisoo Jang <jisoo.jang(a)yonsei.ac.kr>
Signed-off-by: Kalle Valo <kvalo(a)kernel.org>
Link: https://lore.kernel.org/r/20221115043458.37562-1-jisoo.jang@yonsei.ac.kr
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 1 +
 1 file changed, 1 insertion(+)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
index 8510d207ee87..b4e895784002 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
@@ -273,6 +273,7 @@ int brcmf_c_preinit_dcmds(struct brcmf_if *ifp)
 			  err);
 		goto done;
 	}
+	buf[sizeof(buf) - 1] = '\0';
 	ptr = (char *)buf;
 	strsep(&ptr, "\n");
 
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Alexander Wetzel (1):
  wifi: cfg80211: Fix use after free for wext
Hector Martin (1):
  wifi: cfg80211: Partial revert "wifi: cfg80211: Fix use after free for
    wext"
 net/wireless/sme.c | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            3
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [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