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
 - 21042 discussions
 
                        
                            
                                
                            
                            [PATCH openEuler-1.0-LTS] PCI/sysfs: Prohibit unaligned access to I/O port on non-x86
                        
                        
by Ziming Du 30 Oct '25
                    by Ziming Du 30 Oct '25
30 Oct '25
                    
                        From: Yongqiang Liu <liuyongqiang13(a)huawei.com>
hulk inclusion
category: bugfix
bugzilla: 190753
--------------------------------
Unaligned access is harmful for non-x86 archs such as arm64. When we
use pwrite or pread to access the I/O port resources with unaligned
offset, system will crash as follows:
Unable to handle kernel paging request at virtual address fffffbfffe8010c1
Internal error: Oops: 0000000096000061 [#1] SMP
Modules linked in:
CPU: 1 PID: 44230 Comm: syz.1.10955 Not tainted 6.6.0+ #1
Hardware name: linux,dummy-virt (DT)
pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __raw_writew arch/arm64/include/asm/io.h:33 [inline]
pc : _outw include/asm-generic/io.h:594 [inline]
pc : logic_outw+0x54/0x218 lib/logic_pio.c:305
lr : _outw include/asm-generic/io.h:593 [inline]
lr : logic_outw+0x40/0x218 lib/logic_pio.c:305
sp : ffff800083097a30
x29: ffff800083097a30 x28: ffffba71ba86e130 x27: 1ffff00010612f93
x26: ffff3bae63b3a420 x25: ffffba71bbf585d0 x24: 0000000000005ac1
x23: 00000000000010c1 x22: ffff3baf0deb6488 x21: 0000000000000002
x20: 00000000000010c1 x19: 0000000000ffbffe x18: 0000000000000000
x17: 0000000000000000 x16: ffffba71b9f44b48 x15: 00000000200002c0
x14: 0000000000000000 x13: 0000000000000000 x12: ffff6775ca80451f
x11: 1fffe775ca80451e x10: ffff6775ca80451e x9 : ffffba71bb78cf2c
x8 : 0000988a357fbae2 x7 : ffff3bae540228f7 x6 : 0000000000000001
x5 : 1fffe775e2b43c78 x4 : dfff800000000000 x3 : ffffba71b9a00000
x2 : ffff80008d22a000 x1 : ffffc58ec6600000 x0 : fffffbfffe8010c1
Call trace:
 _outw include/asm-generic/io.h:594 [inline]
 logic_outw+0x54/0x218 lib/logic_pio.c:305
 pci_resource_io drivers/pci/pci-sysfs.c:1157 [inline]
 pci_write_resource_io drivers/pci/pci-sysfs.c:1191 [inline]
 pci_write_resource_io+0x208/0x260 drivers/pci/pci-sysfs.c:1181
 sysfs_kf_bin_write+0x188/0x210 fs/sysfs/file.c:158
 kernfs_fop_write_iter+0x2e8/0x4b0 fs/kernfs/file.c:338
 call_write_iter include/linux/fs.h:2085 [inline]
 new_sync_write fs/read_write.c:493 [inline]
 vfs_write+0x7bc/0xac8 fs/read_write.c:586
 ksys_write+0x12c/0x270 fs/read_write.c:639
 __do_sys_write fs/read_write.c:651 [inline]
 __se_sys_write fs/read_write.c:648 [inline]
 __arm64_sys_write+0x78/0xb8 fs/read_write.c:648
 __invoke_syscall arch/arm64/kernel/syscall.c:37 [inline]
 invoke_syscall+0x8c/0x2e0 arch/arm64/kernel/syscall.c:51
 el0_svc_common.constprop.0+0x200/0x2a8 arch/arm64/kernel/syscall.c:134
 do_el0_svc+0x4c/0x70 arch/arm64/kernel/syscall.c:176
 el0_svc+0x44/0x1d8 arch/arm64/kernel/entry-common.c:806
 el0t_64_sync_handler+0x100/0x130 arch/arm64/kernel/entry-common.c:844
 el0t_64_sync+0x3c8/0x3d0 arch/arm64/kernel/entry.S:757
Powerpc seems affected as well, so prohibit the unaligned access
on non-x86 archs.
Fixes: 8633328be242 ("PCI: Allow read/write access to sysfs I/O port resources")
Signed-off-by: Yongqiang Liu <liuyongqiang13(a)huawei.com>
Signed-off-by: Ziming Du <duziming2(a)huawei.com>
---
 drivers/pci/pci-sysfs.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index 48c56cb086524..e8c3a1b7d4a93 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1204,6 +1204,13 @@ static int pci_mmap_resource_wc(struct file *filp, struct kobject *kobj,
 	return pci_mmap_resource(kobj, attr, vma, 1);
 }
 
+#if !defined(CONFIG_X86)
+static bool is_unaligned(unsigned long port, size_t size)
+{
+	return port & (size - 1);
+}
+#endif
+
 static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,
 			       struct bin_attribute *attr, char *buf,
 			       loff_t off, size_t count, bool write)
@@ -1220,6 +1227,11 @@ static ssize_t pci_resource_io(struct file *filp, struct kobject *kobj,
 	if (port + count - 1 > pci_resource_end(pdev, bar))
 		return -EINVAL;
 
+#if !defined(CONFIG_X86)
+	if (is_unaligned(port, count))
+		return -EFAULT;
+#endif
+
 	switch (count) {
 	case 1:
 		if (write)
-- 
2.43.0
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 3257/3257] mm/mem_reliable.c:214:52: sparse: sparse: incorrect type in argument 3 (different address spaces)
                        
                        
by kernel test robot 30 Oct '25
                    by kernel test robot 30 Oct '25
30 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   13f149450a6b4609c03a79beee0859dfe43ca949
commit: 714b582e1796fefd9d81f83fdc12a56390af1a99 [3257/3257] mm: Enable reliable memory for x86 platform
config: x86_64-randconfig-121-20251030 (https://download.01.org/0day-ci/archive/20251030/202510301407.l2kqHqRB-lkp@…)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251030/202510301407.l2kqHqRB-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/202510301407.l2kqHqRB-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> mm/mem_reliable.c:214:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] __user *buffer @@
   mm/mem_reliable.c:214:52: sparse:     expected void *
   mm/mem_reliable.c:214:52: sparse:     got void [noderef] __user *buffer
   mm/mem_reliable.c:234:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] __user *buffer @@
   mm/mem_reliable.c:234:52: sparse:     expected void *
   mm/mem_reliable.c:234:52: sparse:     got void [noderef] __user *buffer
   mm/mem_reliable.c:298:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] __user *buffer @@
   mm/mem_reliable.c:298:52: sparse:     expected void *
   mm/mem_reliable.c:298:52: sparse:     got void [noderef] __user *buffer
   mm/mem_reliable.c:332:52: sparse: sparse: incorrect type in argument 3 (different address spaces) @@     expected void * @@     got void [noderef] __user *buffer @@
   mm/mem_reliable.c:332:52: sparse:     expected void *
   mm/mem_reliable.c:332:52: sparse:     got void [noderef] __user *buffer
>> mm/mem_reliable.c:352:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   mm/mem_reliable.c:352:33: sparse:     expected int ( [usertype] *proc_handler )( ... )
   mm/mem_reliable.c:352:33: sparse:     got int ( * )( ... )
   mm/mem_reliable.c:359:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   mm/mem_reliable.c:359:33: sparse:     expected int ( [usertype] *proc_handler )( ... )
   mm/mem_reliable.c:359:33: sparse:     got int ( * )( ... )
   mm/mem_reliable.c:367:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   mm/mem_reliable.c:367:33: sparse:     expected int ( [usertype] *proc_handler )( ... )
   mm/mem_reliable.c:367:33: sparse:     got int ( * )( ... )
   mm/mem_reliable.c:375:33: sparse: sparse: incorrect type in initializer (incompatible argument 3 (different address spaces)) @@     expected int ( [usertype] *proc_handler )( ... ) @@     got int ( * )( ... ) @@
   mm/mem_reliable.c:375:33: sparse:     expected int ( [usertype] *proc_handler )( ... )
   mm/mem_reliable.c:375:33: sparse:     got int ( * )( ... )
vim +214 mm/mem_reliable.c
6e6cf0d7d67425 Chen Wandun 2022-11-11  205  
2525d04c630800 Ma Wupeng   2022-11-11  206  #ifdef CONFIG_SYSCTL
8968270eb5fbed Ma Wupeng   2022-11-11  207  static int reliable_limit_handler(struct ctl_table *table, int write,
8968270eb5fbed Ma Wupeng   2022-11-11  208  				  void __user *buffer, size_t *length,
8968270eb5fbed Ma Wupeng   2022-11-11  209  				  loff_t *ppos)
8968270eb5fbed Ma Wupeng   2022-11-11  210  {
8968270eb5fbed Ma Wupeng   2022-11-11  211  	unsigned long old = task_reliable_limit;
8968270eb5fbed Ma Wupeng   2022-11-11  212  	int ret;
8968270eb5fbed Ma Wupeng   2022-11-11  213  
8968270eb5fbed Ma Wupeng   2022-11-11 @214  	ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
8968270eb5fbed Ma Wupeng   2022-11-11  215  	if (ret == 0 && write) {
8968270eb5fbed Ma Wupeng   2022-11-11  216  		if (task_reliable_limit > PAGES_TO_B(total_reliable_pages()) ||
8968270eb5fbed Ma Wupeng   2022-11-11  217  		    task_reliable_limit <
8968270eb5fbed Ma Wupeng   2022-11-11  218  			    (task_reliable_used_pages() << PAGE_SHIFT)) {
8968270eb5fbed Ma Wupeng   2022-11-11  219  			task_reliable_limit = old;
8968270eb5fbed Ma Wupeng   2022-11-11  220  			return -EINVAL;
8968270eb5fbed Ma Wupeng   2022-11-11  221  		}
8968270eb5fbed Ma Wupeng   2022-11-11  222  	}
8968270eb5fbed Ma Wupeng   2022-11-11  223  
8968270eb5fbed Ma Wupeng   2022-11-11  224  	return ret;
8968270eb5fbed Ma Wupeng   2022-11-11  225  }
8968270eb5fbed Ma Wupeng   2022-11-11  226  
4021a0d53e3e0d Chen Wandun 2022-11-11  227  static int reliable_pagecache_max_bytes_write(struct ctl_table *table,
4021a0d53e3e0d Chen Wandun 2022-11-11  228  					      int write, void __user *buffer,
4021a0d53e3e0d Chen Wandun 2022-11-11  229  					      size_t *length, loff_t *ppos)
4021a0d53e3e0d Chen Wandun 2022-11-11  230  {
4021a0d53e3e0d Chen Wandun 2022-11-11  231  	unsigned long old_value = reliable_pagecache_max_bytes;
4021a0d53e3e0d Chen Wandun 2022-11-11  232  	int ret;
4021a0d53e3e0d Chen Wandun 2022-11-11  233  
4021a0d53e3e0d Chen Wandun 2022-11-11  234  	ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
4021a0d53e3e0d Chen Wandun 2022-11-11  235  	if (!ret && write) {
4021a0d53e3e0d Chen Wandun 2022-11-11  236  		if (reliable_pagecache_max_bytes >
4021a0d53e3e0d Chen Wandun 2022-11-11  237  		    PAGES_TO_B(total_reliable_pages())) {
4021a0d53e3e0d Chen Wandun 2022-11-11  238  			reliable_pagecache_max_bytes = old_value;
4021a0d53e3e0d Chen Wandun 2022-11-11  239  			return -EINVAL;
4021a0d53e3e0d Chen Wandun 2022-11-11  240  		}
4021a0d53e3e0d Chen Wandun 2022-11-11  241  	}
4021a0d53e3e0d Chen Wandun 2022-11-11  242  
4021a0d53e3e0d Chen Wandun 2022-11-11  243  	return ret;
4021a0d53e3e0d Chen Wandun 2022-11-11  244  }
4021a0d53e3e0d Chen Wandun 2022-11-11  245  
2525d04c630800 Ma Wupeng   2022-11-11  246  static void mem_reliable_feature_disable(int idx);
2525d04c630800 Ma Wupeng   2022-11-11  247  
2525d04c630800 Ma Wupeng   2022-11-11  248  #define CTRL_BITS_SHIFT MEM_RELIABLE_MAX
2525d04c630800 Ma Wupeng   2022-11-11  249  #define CTRL_BITS_MASK ((1 << CTRL_BITS_SHIFT) - 1)
2525d04c630800 Ma Wupeng   2022-11-11  250  
2525d04c630800 Ma Wupeng   2022-11-11  251  static unsigned long mem_reliable_ctrl_bits = CTRL_BITS_MASK;
2525d04c630800 Ma Wupeng   2022-11-11  252  
2525d04c630800 Ma Wupeng   2022-11-11  253  static void mem_reliable_ctrl_bit_disable(int idx)
2525d04c630800 Ma Wupeng   2022-11-11  254  {
2525d04c630800 Ma Wupeng   2022-11-11  255  	clear_bit(idx, &mem_reliable_ctrl_bits);
2525d04c630800 Ma Wupeng   2022-11-11  256  }
2525d04c630800 Ma Wupeng   2022-11-11  257  
2525d04c630800 Ma Wupeng   2022-11-11  258  static bool mem_reliable_ctrl_bit_is_enabled(int idx)
2525d04c630800 Ma Wupeng   2022-11-11  259  {
2525d04c630800 Ma Wupeng   2022-11-11  260  	return !!test_bit(idx, &mem_reliable_ctrl_bits);
2525d04c630800 Ma Wupeng   2022-11-11  261  }
2525d04c630800 Ma Wupeng   2022-11-11  262  
2525d04c630800 Ma Wupeng   2022-11-11  263  static void mem_reliable_parse_ctrl_bits(unsigned long ctrl_bits)
2525d04c630800 Ma Wupeng   2022-11-11  264  {
2525d04c630800 Ma Wupeng   2022-11-11  265  	bool status;
2525d04c630800 Ma Wupeng   2022-11-11  266  	int i;
2525d04c630800 Ma Wupeng   2022-11-11  267  
2525d04c630800 Ma Wupeng   2022-11-11  268  	for (i = MEM_RELIABLE_FALLBACK; i < MEM_RELIABLE_MAX; i++) {
2525d04c630800 Ma Wupeng   2022-11-11  269  		status = !!test_bit(i, &ctrl_bits);
2525d04c630800 Ma Wupeng   2022-11-11  270  
2525d04c630800 Ma Wupeng   2022-11-11  271  		if (mem_reliable_ctrl_bit_is_enabled(i) && !status)
2525d04c630800 Ma Wupeng   2022-11-11  272  			mem_reliable_feature_disable(i);
2525d04c630800 Ma Wupeng   2022-11-11  273  	}
2525d04c630800 Ma Wupeng   2022-11-11  274  }
2525d04c630800 Ma Wupeng   2022-11-11  275  
2525d04c630800 Ma Wupeng   2022-11-11  276  static void mem_reliable_disable_all(void)
2525d04c630800 Ma Wupeng   2022-11-11  277  {
2525d04c630800 Ma Wupeng   2022-11-11  278  	mem_reliable_ctrl_bits = 0;
2525d04c630800 Ma Wupeng   2022-11-11  279  
2525d04c630800 Ma Wupeng   2022-11-11  280  	reliable_allow_fallback = false;
2525d04c630800 Ma Wupeng   2022-11-11  281  	shmem_reliable = false;
2525d04c630800 Ma Wupeng   2022-11-11  282  	pagecache_use_reliable_mem = false;
2525d04c630800 Ma Wupeng   2022-11-11  283  	static_branch_disable(&mem_reliable);
2525d04c630800 Ma Wupeng   2022-11-11  284  
2525d04c630800 Ma Wupeng   2022-11-11  285  	pr_info("memory reliable feature disabled.\n");
2525d04c630800 Ma Wupeng   2022-11-11  286  }
2525d04c630800 Ma Wupeng   2022-11-11  287  
2525d04c630800 Ma Wupeng   2022-11-11  288  static int reliable_debug_handler(struct ctl_table *table, int write,
2525d04c630800 Ma Wupeng   2022-11-11  289  				  void __user *buffer, size_t *length,
2525d04c630800 Ma Wupeng   2022-11-11  290  				  loff_t *ppos)
2525d04c630800 Ma Wupeng   2022-11-11  291  {
2525d04c630800 Ma Wupeng   2022-11-11  292  	unsigned long old_ctrl_bits, new_ctrl_bits;
2525d04c630800 Ma Wupeng   2022-11-11  293  	static DEFINE_MUTEX(reliable_debug_mutex);
2525d04c630800 Ma Wupeng   2022-11-11  294  	int ret;
2525d04c630800 Ma Wupeng   2022-11-11  295  
2525d04c630800 Ma Wupeng   2022-11-11  296  	mutex_lock(&reliable_debug_mutex);
2525d04c630800 Ma Wupeng   2022-11-11  297  	old_ctrl_bits = mem_reliable_ctrl_bits;
2525d04c630800 Ma Wupeng   2022-11-11  298  	ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
2525d04c630800 Ma Wupeng   2022-11-11  299  	if (ret == 0 && write) {
2525d04c630800 Ma Wupeng   2022-11-11  300  		if (!mem_reliable_is_enabled() ||
2525d04c630800 Ma Wupeng   2022-11-11  301  		    (mem_reliable_ctrl_bits > (1 << CTRL_BITS_SHIFT) - 1)) {
2525d04c630800 Ma Wupeng   2022-11-11  302  			mem_reliable_ctrl_bits = old_ctrl_bits;
2525d04c630800 Ma Wupeng   2022-11-11  303  			mutex_unlock(&reliable_debug_mutex);
2525d04c630800 Ma Wupeng   2022-11-11  304  
2525d04c630800 Ma Wupeng   2022-11-11  305  			return -EINVAL;
2525d04c630800 Ma Wupeng   2022-11-11  306  		}
2525d04c630800 Ma Wupeng   2022-11-11  307  
2525d04c630800 Ma Wupeng   2022-11-11  308  		new_ctrl_bits = mem_reliable_ctrl_bits;
2525d04c630800 Ma Wupeng   2022-11-11  309  		mem_reliable_ctrl_bits = old_ctrl_bits;
2525d04c630800 Ma Wupeng   2022-11-11  310  		if (!!test_bit(MEM_RELIABLE_ALL, &new_ctrl_bits))
2525d04c630800 Ma Wupeng   2022-11-11  311  			mem_reliable_parse_ctrl_bits(new_ctrl_bits);
2525d04c630800 Ma Wupeng   2022-11-11  312  		else
2525d04c630800 Ma Wupeng   2022-11-11  313  			mem_reliable_disable_all();
2525d04c630800 Ma Wupeng   2022-11-11  314  	}
2525d04c630800 Ma Wupeng   2022-11-11  315  
2525d04c630800 Ma Wupeng   2022-11-11  316  	mutex_unlock(&reliable_debug_mutex);
2525d04c630800 Ma Wupeng   2022-11-11  317  
2525d04c630800 Ma Wupeng   2022-11-11  318  	return ret;
2525d04c630800 Ma Wupeng   2022-11-11  319  }
2525d04c630800 Ma Wupeng   2022-11-11  320  
f30c7817f982da Ma Wupeng   2022-11-11  321  #ifdef CONFIG_SHMEM
f30c7817f982da Ma Wupeng   2022-11-11  322  static unsigned long sysctl_shmem_reliable_bytes_limit = ULONG_MAX;
f30c7817f982da Ma Wupeng   2022-11-11  323  
f30c7817f982da Ma Wupeng   2022-11-11  324  static int reliable_shmem_bytes_limit_handler(struct ctl_table *table,
f30c7817f982da Ma Wupeng   2022-11-11  325  					      int write, void __user *buffer,
f30c7817f982da Ma Wupeng   2022-11-11  326  					      size_t *length, loff_t *ppos)
f30c7817f982da Ma Wupeng   2022-11-11  327  {
f30c7817f982da Ma Wupeng   2022-11-11  328  	unsigned long *data_ptr = (unsigned long *)(table->data);
f30c7817f982da Ma Wupeng   2022-11-11  329  	unsigned long old = *data_ptr;
f30c7817f982da Ma Wupeng   2022-11-11  330  	int ret;
f30c7817f982da Ma Wupeng   2022-11-11  331  
f30c7817f982da Ma Wupeng   2022-11-11  332  	ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
f30c7817f982da Ma Wupeng   2022-11-11  333  	if (!ret && write) {
f30c7817f982da Ma Wupeng   2022-11-11  334  		if (*data_ptr > PAGES_TO_B(total_reliable_pages())) {
f30c7817f982da Ma Wupeng   2022-11-11  335  			*data_ptr = old;
f30c7817f982da Ma Wupeng   2022-11-11  336  			return -EINVAL;
f30c7817f982da Ma Wupeng   2022-11-11  337  		}
f30c7817f982da Ma Wupeng   2022-11-11  338  
f30c7817f982da Ma Wupeng   2022-11-11  339  		shmem_reliable_nr_page = *data_ptr >> PAGE_SHIFT;
f30c7817f982da Ma Wupeng   2022-11-11  340  	}
f30c7817f982da Ma Wupeng   2022-11-11  341  
f30c7817f982da Ma Wupeng   2022-11-11  342  	return ret;
f30c7817f982da Ma Wupeng   2022-11-11  343  }
f30c7817f982da Ma Wupeng   2022-11-11  344  #endif
f30c7817f982da Ma Wupeng   2022-11-11  345  
4021a0d53e3e0d Chen Wandun 2022-11-11  346  static struct ctl_table reliable_ctl_table[] = {
4021a0d53e3e0d Chen Wandun 2022-11-11  347  	{
4021a0d53e3e0d Chen Wandun 2022-11-11  348  		.procname = "reliable_pagecache_max_bytes",
4021a0d53e3e0d Chen Wandun 2022-11-11  349  		.data = &reliable_pagecache_max_bytes,
4021a0d53e3e0d Chen Wandun 2022-11-11  350  		.maxlen = sizeof(reliable_pagecache_max_bytes),
4021a0d53e3e0d Chen Wandun 2022-11-11  351  		.mode = 0644,
4021a0d53e3e0d Chen Wandun 2022-11-11 @352  		.proc_handler = reliable_pagecache_max_bytes_write,
4021a0d53e3e0d Chen Wandun 2022-11-11  353  	},
8968270eb5fbed Ma Wupeng   2022-11-11  354  	{
8968270eb5fbed Ma Wupeng   2022-11-11  355  		.procname = "task_reliable_limit",
8968270eb5fbed Ma Wupeng   2022-11-11  356  		.data = &task_reliable_limit,
8968270eb5fbed Ma Wupeng   2022-11-11  357  		.maxlen = sizeof(task_reliable_limit),
8968270eb5fbed Ma Wupeng   2022-11-11  358  		.mode = 0644,
8968270eb5fbed Ma Wupeng   2022-11-11  359  		.proc_handler = reliable_limit_handler,
8968270eb5fbed Ma Wupeng   2022-11-11  360  	},
f30c7817f982da Ma Wupeng   2022-11-11  361  #ifdef CONFIG_SHMEM
f30c7817f982da Ma Wupeng   2022-11-11  362  	{
f30c7817f982da Ma Wupeng   2022-11-11  363  		.procname = "shmem_reliable_bytes_limit",
f30c7817f982da Ma Wupeng   2022-11-11  364  		.data = &sysctl_shmem_reliable_bytes_limit,
f30c7817f982da Ma Wupeng   2022-11-11  365  		.maxlen = sizeof(sysctl_shmem_reliable_bytes_limit),
f30c7817f982da Ma Wupeng   2022-11-11  366  		.mode = 0644,
f30c7817f982da Ma Wupeng   2022-11-11  367  		.proc_handler = reliable_shmem_bytes_limit_handler,
f30c7817f982da Ma Wupeng   2022-11-11  368  	},
f30c7817f982da Ma Wupeng   2022-11-11  369  #endif
2525d04c630800 Ma Wupeng   2022-11-11  370  	{
2525d04c630800 Ma Wupeng   2022-11-11  371  		.procname = "reliable_debug",
2525d04c630800 Ma Wupeng   2022-11-11  372  		.data = &mem_reliable_ctrl_bits,
2525d04c630800 Ma Wupeng   2022-11-11  373  		.maxlen = sizeof(mem_reliable_ctrl_bits),
2525d04c630800 Ma Wupeng   2022-11-11  374  		.mode = 0600,
2525d04c630800 Ma Wupeng   2022-11-11  375  		.proc_handler = reliable_debug_handler,
2525d04c630800 Ma Wupeng   2022-11-11  376  	},
4021a0d53e3e0d Chen Wandun 2022-11-11  377  	{}
4021a0d53e3e0d Chen Wandun 2022-11-11  378  };
4021a0d53e3e0d Chen Wandun 2022-11-11  379  
:::::: The code at line 214 was first introduced by commit
:::::: 8968270eb5fbedb9c62e265e49228ef59a4f2321 mm: Add reliable memory use limit for user tasks
:::::: TO: Ma Wupeng <mawupeng1(a)huawei.com>
:::::: CC: Wang Wensheng <wangwensheng4(a)huawei.com>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        您好!
Kernel 邀请您参加 2025-10-31 14:00 召开的WeLink会议(自动录制)
会议主题:openEuler Kernel SIG双周例会
会议内容:
1. 进展update
2. 议题征集中
(可直接回复本邮件申请,也可填报至kernel会议纪要看板)
会议链接:https://meeting.huaweicloud.com:36443/#/j/985774693
会议纪要:https://etherpad.openeuler.org/p/Kernel-meetings
更多资讯尽在:https://www.openeuler.org/zh/
Hello!
Kernel invites you to attend the WeLink conference(auto recording) will be held at 2025-10-31 14:00,
The subject of the conference is openEuler Kernel SIG双周例会
Summary:
1. 进展update
2. 议题征集中
(可直接回复本邮件申请,也可填报至kernel会议纪要看板)
You can join the meeting at https://meeting.huaweicloud.com:36443/#/j/985774693
Add topics at https://etherpad.openeuler.org/p/Kernel-meetings
More information: https://www.openeuler.org/en/
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    30 Oct '25
                    
                        hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IAJEHU
--------------------------------
When cpu hyperthreading is enabled, one physical core can virtualize
multiple logical cpus. Assume that physical core0 virtualizes two
logical cpus, cpu0 and cpu1. Only when the load of cpu0 exceeds the set
ratio to the capacity of cpu0, the task will be migrated to the cpu1,
otherwise the task will not be migrated and the cpu0 will still be used.
External impacts:
   1) default config: CONFIG_SCHED_KEEP_ON_CORE=y
   2) sysctl: /proc/sys/kernel/sched_util_ratio
   3) sched features: KEEP_ON_CORE (default NO_KEEP_ON_CORE)
Signed-off-by: Cheng Yu <serein.chengyu(a)huawei.com>
---
 arch/arm64/Kconfig                     |  1 +
 arch/arm64/configs/openeuler_defconfig |  1 +
 init/Kconfig                           | 19 +++++++++++
 kernel/sched/fair.c                    | 47 ++++++++++++++++++++++++++
 kernel/sched/features.h                |  4 +++
 5 files changed, 72 insertions(+)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index dec41d9fa054..8ad5692a460c 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -107,6 +107,7 @@ config ARM64
 	select ARCH_SUPPORTS_NUMA_BALANCING
 	select ARCH_SUPPORTS_SCHED_PARAL
 	select ARCH_SUPPORTS_SCHED_SOFT_QUOTA
+	select ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
 	select ARCH_SUPPORTS_PAGE_TABLE_CHECK
 	select ARCH_SUPPORTS_PER_VMA_LOCK
 	select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index ce292ed39752..57dcf692d82e 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -211,6 +211,7 @@ CONFIG_NET_NS=y
 CONFIG_SCHED_STEAL=y
 CONFIG_SCHED_PARAL=y
 CONFIG_SCHED_SOFT_QUOTA=y
+CONFIG_SCHED_KEEP_ON_CORE=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_SCHED_AUTOGROUP=y
 CONFIG_RELAY=y
diff --git a/init/Kconfig b/init/Kconfig
index 2720083aaa17..2322830cb4ce 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1192,6 +1192,25 @@ config SCHED_SOFT_QUOTA
 	  restrictions on the use of the CPU quota, such as some commercial
 	  scenarios that charge based on the use of CPU quota.
 
+#
+# For architectures that want to enable the support for SCHED_KEEP_ON_CORE
+#
+config ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
+	bool
+
+config SCHED_KEEP_ON_CORE
+	bool "Prefer physical cores when migrating tasks"
+	depends on ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
+	depends on SCHED_SMT
+	default n
+	help
+	  When cpu hyperthreading is enabled, one physical core can virtualize
+	  multiple logical cpus. Assume that physical core0 virtualizes two
+	  logical cpus, cpu0 and cpu1. Only when the load of cpu0 exceeds the
+	  ratio to the capacity of cpu0, the task will be migrated to the cpu1,
+	  otherwise the task will not be migrated and the cpu0 will still be
+	  used.
+
 config SCHED_MM_CID
 	def_bool n
 	depends on SMP && RSEQ
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index b22f3c072d20..d0ee00a018b0 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -231,6 +231,10 @@ static int sysctl_affinity_adjust_delay_ms = 5000;
 unsigned int sysctl_soft_runtime_ratio = 20;
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+int sysctl_sched_util_ratio = 100;
+#endif
+
 #ifdef CONFIG_SYSCTL
 static struct ctl_table sched_fair_sysctls[] = {
 	{
@@ -341,6 +345,17 @@ static struct ctl_table sched_fair_sysctls[] = {
 		.extra1         = SYSCTL_ONE,
 		.extra2         = SYSCTL_ONE_HUNDRED,
 	},
+#endif
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	{
+		.procname       = "sched_util_ratio",
+		.data           = &sysctl_sched_util_ratio,
+		.maxlen         = sizeof(sysctl_sched_util_ratio),
+		.mode           = 0644,
+		.proc_handler   = proc_dointvec_minmax,
+		.extra1         = SYSCTL_ZERO,
+		.extra2         = SYSCTL_ONE_HUNDRED,
+	},
 #endif
 	{}
 };
@@ -8784,6 +8799,20 @@ static __always_inline unsigned long cpu_util_without(int cpu, struct task_struc
 	return cpu_util(cpu, p, -1, 0);
 }
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+static bool core_has_spare(int cpu)
+{
+	int core_id = cpumask_first(cpu_smt_mask(cpu));
+	unsigned long util = cpu_util_cfs(core_id);
+	unsigned long capacity = capacity_of(core_id);
+
+	if (sysctl_sched_util_ratio == 100)
+		return true;
+
+	return util * 100 < capacity * sysctl_sched_util_ratio;
+}
+#endif
+
 /*
  * energy_env - Utilization landscape for energy estimation.
  * @task_busy_time: Utilization contribution by the task for which we test the
@@ -9453,6 +9482,15 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags)
 		/* Fast path */
 		new_cpu = select_idle_sibling(p, prev_cpu, new_cpu);
 	}
+
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	if (sched_feat(KEEP_ON_CORE) &&
+	    static_branch_likely(&sched_smt_present)) {
+		if (core_has_spare(new_cpu))
+			new_cpu = cpumask_first(cpu_smt_mask((new_cpu)));
+	}
+#endif
+
 	rcu_read_unlock();
 	schedstat_end_time(cpu_rq(cpu), time);
 
@@ -10825,6 +10863,15 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
 	}
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	if (sched_feat(KEEP_ON_CORE) &&
+	    static_branch_likely(&sched_smt_present)) {
+		if (core_has_spare(env->dst_cpu) &&
+		    cpumask_first(cpu_smt_mask((env->dst_cpu))) != env->dst_cpu)
+			return 0;
+	}
+#endif
+
 	/*
 	 * We do not migrate tasks that are:
 	 * 1) throttled_lb_pair, or
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index b95797360dd6..1f135b0ea6fd 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -65,6 +65,10 @@ SCHED_FEAT(STEAL, false)
 SCHED_FEAT(PARAL, false)
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+SCHED_FEAT(KEEP_ON_CORE, false)
+#endif
+
 /*
  * Issue a WARN when we do multiple update_rq_clock() calls
  * in a single rq->lock section. Default disabled because the
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3067/3067] drivers/ub/ubfi/irq.c:11:5: warning: no previous prototype for 'ubrt_register_gsi'
                        
                        
by kernel test robot 30 Oct '25
                    by kernel test robot 30 Oct '25
30 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   8894fa6a2898641fafc4ccaaa73f0078705a223e
commit: 6533f3af69cee90712f3481841901ab0a10f8339 [3067/3067] ub:ubfi: ubfi driver create ubc device
config: arm64-allnoconfig (https://download.01.org/0day-ci/archive/20251030/202510301347.pIaq0wY3-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251030/202510301347.pIaq0wY3-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/202510301347.pIaq0wY3-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/ub/ubfi/irq.c:11:5: warning: no previous prototype for 'ubrt_register_gsi' [-Wmissing-prototypes]
      11 | int ubrt_register_gsi(u32 hwirq, int trigger, int polarity, const char *name,
         |     ^~~~~~~~~~~~~~~~~
>> drivers/ub/ubfi/irq.c:37:6: warning: no previous prototype for 'ubrt_unregister_gsi' [-Wmissing-prototypes]
      37 | void ubrt_unregister_gsi(u32 hwirq)
         |      ^~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for ARCH_SUPPORTS_SCHED_SOFT_QUOTA
   Depends on [n]: CGROUPS [=n]
   Selected by [y]:
   - ARM64 [=y]
   WARNING: unmet direct dependencies detected for HALTPOLL_CPUIDLE
   Depends on [n]: CPU_IDLE [=n] && ARCH_CPUIDLE_HALTPOLL [=y] && ARCH_HAS_OPTIMIZED_POLL [=y]
   Selected by [y]:
   - ARM64 [=y]
vim +/ubrt_register_gsi +11 drivers/ub/ubfi/irq.c
    10	
  > 11	int ubrt_register_gsi(u32 hwirq, int trigger, int polarity, const char *name,
    12			      struct resource *res)
    13	{
    14	#ifdef CONFIG_ACPI
    15		int irq;
    16	
    17		if (!res) {
    18			pr_err("ub register gsi, res is null\n");
    19			return -EINVAL;
    20		}
    21	
    22		irq = acpi_register_gsi(NULL, hwirq, trigger, polarity);
    23		if (irq <= 0) {
    24			pr_err("could not register ub gsi hwirq %u\n", hwirq);
    25			return -EINVAL;
    26		}
    27	
    28		res->name = name;
    29		res->start = irq;
    30		res->end = irq;
    31		res->flags = IORESOURCE_IRQ;
    32	#endif
    33		return 0;
    34	}
    35	EXPORT_SYMBOL_GPL(ubrt_register_gsi);
    36	
  > 37	void ubrt_unregister_gsi(u32 hwirq)
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 3257/3257] drivers/gpu/drm/inspur/inspur_cursor.c:54:32: sparse: sparse: cast removes address space '__iomem' of expression
                        
                        
by kernel test robot 30 Oct '25
                    by kernel test robot 30 Oct '25
30 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   13f149450a6b4609c03a79beee0859dfe43ca949
commit: b9d65551a3adfa87a7c5d33391187ee60a1b501d [3257/3257] drm: add inspur drm driver support
config: x86_64-randconfig-121-20251030 (https://download.01.org/0day-ci/archive/20251030/202510301254.n0HWSdf0-lkp@…)
compiler: gcc-12 (Debian 12.4.0-5) 12.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251030/202510301254.n0HWSdf0-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/202510301254.n0HWSdf0-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
>> drivers/gpu/drm/inspur/inspur_cursor.c:54:32: sparse: sparse: cast removes address space '__iomem' of expression
vim +/__iomem +54 drivers/gpu/drm/inspur/inspur_cursor.c
    49	
    50	#define HW_FLAG_OFFSET 0x01ffff00
    51	#define HW_FLAG_ENABLE 0x1bd40750
    52	unsigned char getKVMHWCursorSetting(struct inspur_drm_private *priv)
    53	{
  > 54		unsigned int value = *(unsigned int *)(priv->fb_map + HW_FLAG_OFFSET);
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 3067/3067] drivers/ub/ubfi/irq.c:11:5: warning: no previous prototype for function 'ubrt_register_gsi'
                        
                        
by kernel test robot 30 Oct '25
                    by kernel test robot 30 Oct '25
30 Oct '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   39d344bdf1da74284209d54d7199c6c6daca9905
commit: 6533f3af69cee90712f3481841901ab0a10f8339 [3067/3067] ub:ubfi: ubfi driver create ubc device
config: x86_64-allnoconfig (https://download.01.org/0day-ci/archive/20251030/202510301246.3F4So5Wc-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/20251030/202510301246.3F4So5Wc-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/202510301246.3F4So5Wc-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/ub/ubfi/irq.c:11:5: warning: no previous prototype for function 'ubrt_register_gsi' [-Wmissing-prototypes]
      11 | int ubrt_register_gsi(u32 hwirq, int trigger, int polarity, const char *name,
         |     ^
   drivers/ub/ubfi/irq.c:11:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      11 | int ubrt_register_gsi(u32 hwirq, int trigger, int polarity, const char *name,
         | ^
         | static 
>> drivers/ub/ubfi/irq.c:37:6: warning: no previous prototype for function 'ubrt_unregister_gsi' [-Wmissing-prototypes]
      37 | void ubrt_unregister_gsi(u32 hwirq)
         |      ^
   drivers/ub/ubfi/irq.c:37:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      37 | void ubrt_unregister_gsi(u32 hwirq)
         | ^
         | static 
   2 warnings generated.
vim +/ubrt_register_gsi +11 drivers/ub/ubfi/irq.c
    10	
  > 11	int ubrt_register_gsi(u32 hwirq, int trigger, int polarity, const char *name,
    12			      struct resource *res)
    13	{
    14	#ifdef CONFIG_ACPI
    15		int irq;
    16	
    17		if (!res) {
    18			pr_err("ub register gsi, res is null\n");
    19			return -EINVAL;
    20		}
    21	
    22		irq = acpi_register_gsi(NULL, hwirq, trigger, polarity);
    23		if (irq <= 0) {
    24			pr_err("could not register ub gsi hwirq %u\n", hwirq);
    25			return -EINVAL;
    26		}
    27	
    28		res->name = name;
    29		res->start = irq;
    30		res->end = irq;
    31		res->flags = IORESOURCE_IRQ;
    32	#endif
    33		return 0;
    34	}
    35	EXPORT_SYMBOL_GPL(ubrt_register_gsi);
    36	
  > 37	void ubrt_unregister_gsi(u32 hwirq)
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    30 Oct '25
                    
                        hulk inclusion
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/IAJEHU
--------------------------------
When cpu hyperthreading is enabled, one physical core can virtualize
multiple logical cpus. Assume that physical core0 virtualizes two
logical cpus, cpu0 and cpu1. Only when the load of cpu0 exceeds the set
ratio to the capacity of cpu0, the task will be migrated to the cpu1,
otherwise the task will not be migrated and the cpu0 will still be used.
External impacts:
   1) default config: CONFIG_SCHED_KEEP_ON_CORE=y
   2) sysctl: /proc/sys/kernel/sched_util_ratio
   3) sched features: KEEP_ON_CORE (default NO_KEEP_ON_CORE)
Signed-off-by: Cheng Yu <serein.chengyu(a)huawei.com>
---
 arch/arm64/Kconfig                     |  1 +
 arch/arm64/configs/openeuler_defconfig |  1 +
 init/Kconfig                           | 19 ++++++++++
 kernel/sched/fair.c                    | 48 +++++++++++++++++++++++++-
 kernel/sched/features.h                |  4 +++
 5 files changed, 72 insertions(+), 1 deletion(-)
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index dec41d9fa054..8ad5692a460c 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -107,6 +107,7 @@ config ARM64
 	select ARCH_SUPPORTS_NUMA_BALANCING
 	select ARCH_SUPPORTS_SCHED_PARAL
 	select ARCH_SUPPORTS_SCHED_SOFT_QUOTA
+	select ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
 	select ARCH_SUPPORTS_PAGE_TABLE_CHECK
 	select ARCH_SUPPORTS_PER_VMA_LOCK
 	select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
diff --git a/arch/arm64/configs/openeuler_defconfig b/arch/arm64/configs/openeuler_defconfig
index ce292ed39752..57dcf692d82e 100644
--- a/arch/arm64/configs/openeuler_defconfig
+++ b/arch/arm64/configs/openeuler_defconfig
@@ -211,6 +211,7 @@ CONFIG_NET_NS=y
 CONFIG_SCHED_STEAL=y
 CONFIG_SCHED_PARAL=y
 CONFIG_SCHED_SOFT_QUOTA=y
+CONFIG_SCHED_KEEP_ON_CORE=y
 CONFIG_CHECKPOINT_RESTORE=y
 CONFIG_SCHED_AUTOGROUP=y
 CONFIG_RELAY=y
diff --git a/init/Kconfig b/init/Kconfig
index 2720083aaa17..2322830cb4ce 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1192,6 +1192,25 @@ config SCHED_SOFT_QUOTA
 	  restrictions on the use of the CPU quota, such as some commercial
 	  scenarios that charge based on the use of CPU quota.
 
+#
+# For architectures that want to enable the support for SCHED_KEEP_ON_CORE
+#
+config ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
+	bool
+
+config SCHED_KEEP_ON_CORE
+	bool "Prefer physical cores when migrating tasks"
+	depends on ARCH_SUPPORTS_SCHED_KEEP_ON_CORE
+	depends on SCHED_SMT
+	default n
+	help
+	  When cpu hyperthreading is enabled, one physical core can virtualize
+	  multiple logical cpus. Assume that physical core0 virtualizes two
+	  logical cpus, cpu0 and cpu1. Only when the load of cpu0 exceeds the
+	  ratio to the capacity of cpu0, the task will be migrated to the cpu1,
+	  otherwise the task will not be migrated and the cpu0 will still be
+	  used.
+
 config SCHED_MM_CID
 	def_bool n
 	depends on SMP && RSEQ
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index b22f3c072d20..c0618a244052 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -231,6 +231,10 @@ static int sysctl_affinity_adjust_delay_ms = 5000;
 unsigned int sysctl_soft_runtime_ratio = 20;
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+int sysctl_sched_util_ratio = 100;
+#endif
+
 #ifdef CONFIG_SYSCTL
 static struct ctl_table sched_fair_sysctls[] = {
 	{
@@ -341,6 +345,17 @@ static struct ctl_table sched_fair_sysctls[] = {
 		.extra1         = SYSCTL_ONE,
 		.extra2         = SYSCTL_ONE_HUNDRED,
 	},
+#endif
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	{
+		.procname       = "sched_util_ratio",
+		.data           = &sysctl_sched_util_ratio,
+		.maxlen         = sizeof(sysctl_sched_util_ratio),
+		.mode           = 0644,
+		.proc_handler   = proc_dointvec_minmax,
+		.extra1         = SYSCTL_ZERO,
+		.extra2         = SYSCTL_ONE_HUNDRED,
+	},
 #endif
 	{}
 };
@@ -8230,7 +8245,6 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t
 
 	return -1;
 }
-
 #else /* CONFIG_SCHED_SMT */
 
 static inline void set_idle_cores(int cpu, int val)
@@ -8784,6 +8798,20 @@ static __always_inline unsigned long cpu_util_without(int cpu, struct task_struc
 	return cpu_util(cpu, p, -1, 0);
 }
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+static bool core_has_spare(int cpu)
+{
+	int core_id = cpumask_first(cpu_smt_mask(cpu));
+	unsigned long util = cpu_util_cfs(core_id);
+	unsigned long capacity = capacity_of(core_id);
+
+	if (sysctl_sched_util_ratio == 100)
+		return true;
+
+	return util * 100 < capacity * sysctl_sched_util_ratio;
+}
+#endif
+
 /*
  * energy_env - Utilization landscape for energy estimation.
  * @task_busy_time: Utilization contribution by the task for which we test the
@@ -9453,6 +9481,15 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int wake_flags)
 		/* Fast path */
 		new_cpu = select_idle_sibling(p, prev_cpu, new_cpu);
 	}
+
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	if (sched_feat(KEEP_ON_CORE) &&
+	    static_branch_likely(&sched_smt_present)) {
+		if (core_has_spare(new_cpu))
+			new_cpu = cpumask_first(cpu_smt_mask((new_cpu)));
+	}
+#endif
+
 	rcu_read_unlock();
 	schedstat_end_time(cpu_rq(cpu), time);
 
@@ -10825,6 +10862,15 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env)
 	}
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+	if (sched_feat(KEEP_ON_CORE) &&
+	    static_branch_likely(&sched_smt_present)) {
+		if (core_has_spare(env->dst_cpu) &&
+		    cpumask_first(cpu_smt_mask((env->dst_cpu))) != env->dst_cpu)
+			return 0;
+	}
+#endif
+
 	/*
 	 * We do not migrate tasks that are:
 	 * 1) throttled_lb_pair, or
diff --git a/kernel/sched/features.h b/kernel/sched/features.h
index b95797360dd6..1f135b0ea6fd 100644
--- a/kernel/sched/features.h
+++ b/kernel/sched/features.h
@@ -65,6 +65,10 @@ SCHED_FEAT(STEAL, false)
 SCHED_FEAT(PARAL, false)
 #endif
 
+#ifdef CONFIG_SCHED_KEEP_ON_CORE
+SCHED_FEAT(KEEP_ON_CORE, false)
+#endif
+
 /*
  * Issue a WARN when we do multiple update_rq_clock() calls
  * in a single rq->lock section. Default disabled because the
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    30 Oct '25
                    
                        From: Jozsef Kadlecsik <kadlec(a)netfilter.org>
stable inclusion
from stable-v6.6.91
commit a3dfec485401943e315c394c29afe2db8f9481d6
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/ICBIZM
CVE: CVE-2025-37997
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit 8478a729c0462273188263136880480729e9efca ]
Region locking introduced in v5.6-rc4 contained three macros to handle
the region locks: ahash_bucket_start(), ahash_bucket_end() which gave
back the start and end hash bucket values belonging to a given region
lock and ahash_region() which should give back the region lock belonging
to a given hash bucket. The latter was incorrect which can lead to a
race condition between the garbage collector and adding new elements
when a hash type of set is defined with timeouts.
Fixes: f66ee0410b1c ("netfilter: ipset: Fix "INFO: rcu detected stall in hash_xxx" reports")
Reported-by: Kota Toda <kota.toda(a)gmo-cybersecurity.com>
Signed-off-by: Jozsef Kadlecsik <kadlec(a)netfilter.org>
Signed-off-by: Pablo Neira Ayuso <pablo(a)netfilter.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Zhang Changzhong <zhangchangzhong(a)huawei.com>
---
 net/netfilter/ipset/ip_set_hash_gen.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h
index 20aad81..c2d88b1 100644
--- a/net/netfilter/ipset/ip_set_hash_gen.h
+++ b/net/netfilter/ipset/ip_set_hash_gen.h
@@ -63,7 +63,7 @@ struct hbucket {
 #define ahash_sizeof_regions(htable_bits)		\
 	(ahash_numof_locks(htable_bits) * sizeof(struct ip_set_region))
 #define ahash_region(n, htable_bits)		\
-	((n) % ahash_numof_locks(htable_bits))
+	((n) / jhash_size(HTABLE_REGION_BITS))
 #define ahash_bucket_start(h,  htable_bits)	\
 	((htable_bits) < HTABLE_REGION_BITS ? 0	\
 		: (h) * jhash_size(HTABLE_REGION_BITS))
-- 
2.9.5
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS] BUILD REGRESSION 1afc352b4572c02bd3b5c9195481f393af060e44
                        
                        
by kernel test robot 30 Oct '25
                    by kernel test robot 30 Oct '25
30 Oct '25
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 1afc352b4572c02bd3b5c9195481f393af060e44  !18643  wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit()
Error/Warning (recently discovered and may have been fixed):
    https://lore.kernel.org/oe-kbuild-all/202510280809.PNDpUlLq-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202510290723.7bXIAhsR-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202510300315.AULNBBrr-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202510300549.PPuMkgHB-lkp@intel.com
    drivers/net/ethernet/huawei/hinic3/hw/.tmp_hinic3_devlink.o: warning: objtool: missing symbol for section .text
    drivers/net/ethernet/huawei/hinic3/hw/.tmp_hinic3_lld.o: warning: objtool: missing symbol for section .text.unlikely.
    mm/mmu_gather.o: warning: objtool: missing symbol for section .text
Unverified Error/Warning (likely false positive, kindly check if interested):
    include/linux/thread_info.h:59:17: warning: 'header' may be used uninitialized [-Wmaybe-uninitialized]
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_deinit_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_detach
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_init_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-fault_level-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-pcie_src-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_io_flush.c:error:no-previous-prototype-for-sss_hwdev_flush_io
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_deinit_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_init_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm.c:error:no-previous-prototype-for-sss_sync_send_adm_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_complete_adm_event
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_deinit_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_init_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_ceq_intr_handle
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_init_ceqe_desc
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_ctrlq_flush_sync_cmd
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_init_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_reinit_ctrlq_ctx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_wait_ctrlq_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_alloc_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_auto_mask
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_state
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_free_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_func_type
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_glb_pf_vf_offset
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_global_func_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pcie_itf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pf_id_of_vf
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_ppf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_deinit_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_init_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_deinit_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_init_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_init_func_mbx_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_recv_mbx_aeq_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_flush_mgmt_workq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_force_complete_all
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_mgmt_msg_aeqe_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_error.c:error:no-previous-prototype-for-sss_detect_pci_error
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_attach_is_enable
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_names
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_init_uld_lock
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_lock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_unlock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_attach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_pci_probe
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_adapter
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_function
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_pci_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_all_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_dettach_uld_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_pci_remove
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_unmap_pci_bar
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_shutdown.c:error:no-previous-prototype-for-sss_pci_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool.c:error:no-previous-prototype-for-sss_nic_set_ethtool_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_api.c:error:no-previous-prototype-for-sss_nic_finish_loop_test
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_ethtool_stats
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_sset_count
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_strings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_set_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_clean_mac_list_filter
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_set_rx_mode_work
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_release_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_request_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-get_nic_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_plug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_unplug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_link_err
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_is_netdev_ops_match
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_set_vf_link_state
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_add_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_kill_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_set_netdev_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_delete_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_all_flows
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_update_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_rx_flow_rule
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_node_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_validate_channel_setting_in_ntuple
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_init_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_reset_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_update_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_reset.c:error:no-previous-prototype-for-sss_nic_rq_watchdog_handler
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_flush_all_sq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_init_all_sq
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-allnoconfig
|   |-- include-linux-list.h:warning:storing-the-address-of-local-variable-wait-in-((struct-list_head-)x)-.prev
|   |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
|   |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- init-calibrate.c:warning:no-previous-prototype-for-calibration_delay_done
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-clear_zone_contiguous
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-set_zone_contiguous
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-allyesconfig
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_deinit_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_detach
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_init_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-fault_level-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-pcie_src-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_io_flush.c:error:no-previous-prototype-for-sss_hwdev_flush_io
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_deinit_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_init_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm.c:error:no-previous-prototype-for-sss_sync_send_adm_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_complete_adm_event
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_deinit_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_init_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_ceq_intr_handle
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_init_ceqe_desc
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_ctrlq_flush_sync_cmd
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_init_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_reinit_ctrlq_ctx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_wait_ctrlq_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_alloc_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_auto_mask
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_state
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_free_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_func_type
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_glb_pf_vf_offset
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_global_func_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pcie_itf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pf_id_of_vf
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_ppf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_deinit_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_init_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_deinit_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_init_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_init_func_mbx_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_recv_mbx_aeq_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_flush_mgmt_workq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_force_complete_all
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_mgmt_msg_aeqe_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_error.c:error:no-previous-prototype-for-sss_detect_pci_error
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_attach_is_enable
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_names
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_init_uld_lock
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_lock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_unlock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_attach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_pci_probe
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_adapter
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_function
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_pci_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_all_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_dettach_uld_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_pci_remove
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_unmap_pci_bar
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_shutdown.c:error:no-previous-prototype-for-sss_pci_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool.c:error:no-previous-prototype-for-sss_nic_set_ethtool_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_api.c:error:no-previous-prototype-for-sss_nic_finish_loop_test
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_ethtool_stats
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_sset_count
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_strings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_set_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_clean_mac_list_filter
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_set_rx_mode_work
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_release_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_request_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-get_nic_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_plug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_unplug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_link_err
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_is_netdev_ops_match
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_set_vf_link_state
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_add_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_kill_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_set_netdev_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_delete_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_all_flows
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_update_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_rx_flow_rule
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_node_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_validate_channel_setting_in_ntuple
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_init_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_reset_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_update_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_reset.c:error:no-previous-prototype-for-sss_nic_rq_watchdog_handler
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_flush_all_sq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_init_all_sq
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-defconfig
|   |-- include-linux-list.h:warning:storing-the-address-of-local-variable-waiter-in-(struct-list_head-)((char-)sem-).prev
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-clear_zone_contiguous
|   `-- mm-page_alloc.c:warning:no-previous-prototype-for-set_zone_contiguous
|-- arm64-randconfig-001-20251029
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_enter
|   |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_exit
|   |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- include-linux-string.h:warning:__builtin_strcpy-source-argument-is-the-same-as-destination
|   |-- include-linux-thread_info.h:warning:header-may-be-used-uninitialized
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|   `-- mm-vmscan.c:warning:variable-nid-set-but-not-used
|-- arm64-randconfig-002-20251029
|   |-- crypto-lrw.c:warning:mismatch-in-argument-type-of-built-in-function-free-expected-void
|   |-- crypto-xts.c:warning:mismatch-in-argument-type-of-built-in-function-free-expected-void
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-clear_zone_contiguous
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-set_zone_contiguous
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   |-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|   `-- mm-vmscan.c:warning:variable-nid-set-but-not-used
|-- arm64-randconfig-003-20251029
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-list.h:warning:storing-the-address-of-local-variable-ticket-in-((struct-list_head-)((char-)space_info-))-.prev
|   |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|-- arm64-randconfig-004-20251029
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- include-scsi-scsi_cmnd.h:warning:scsi_cmnd-may-be-used-uninitialized-in-this-function
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-clear_zone_contiguous
|   |-- mm-page_alloc.c:warning:no-previous-prototype-for-set_zone_contiguous
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-r121-20250728
|   |-- kernel-cgroup-cgroup.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-cgroup_subsys_state-css-got-struct-cgroup_subsys_state-noderef-asn
|   `-- mm-page_alloc.c:sparse:sparse:invalid-assignment:
|-- arm64-randconfig-r121-20250729
|   |-- mm-mem_reliable.c:sparse:sparse:invalid-assignment:
|   |-- mm-mem_reliable.c:sparse:sparse:symbol-reliable_debug_handler-was-not-declared.-Should-it-be-static
|   |-- mm-mem_reliable.c:sparse:sparse:symbol-reliable_limit_handler-was-not-declared.-Should-it-be-static
|   |-- mm-mem_reliable.c:sparse:sparse:symbol-reliable_pagecache_max_bytes_write-was-not-declared.-Should-it-be-static
|   `-- mm-page_alloc.c:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-restricted-gfp_t-usertype-flags-got-unsigned-int
|-- arm64-randconfig-r132-20251030
|   |-- block-blk-merge.c:sparse:sparse:symbol-blk_try_req_merge-was-not-declared.-Should-it-be-static
|   |-- crypto-algif_hash.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-authenc.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-authencesn.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-ccm.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-cryptd.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-echainiv.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-gcm.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-a-got-restricted-__be64-usertype
|   |-- crypto-gcm.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-unsigned-long-long-usertype-b-got-restricted-__be64-usertype
|   |-- crypto-hmac.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-seqiv.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-shash.c:sparse:sparse:Variable-length-array-is-used.
|   |-- crypto-xcbc.c:sparse:sparse:Variable-length-array-is-used.
|   |-- drivers-gpu-drm-amd-amdgpu-amdgpu_debugfs.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-signed-int-noderef-asn-got-signed-int-usertype
|   |-- drivers-gpu-drm-amd-amdgpu-amdgpu_debugfs.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
|   |-- drivers-gpu-drm-amd-amdgpu-amdgpu_ring.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
|   |-- drivers-gpu-drm-amd-amdgpu-amdgpu_ttm.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
|   |-- drivers-gpu-drm-ast-ast_fb.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
|   |-- drivers-gpu-drm-cirrus-cirrus_fbdev.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-got-void
|   |-- drivers-gpu-drm-cirrus-cirrus_fbdev.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-char-noderef-asn-screen_base-got-void-assigned-sysram
|   |-- drivers-gpu-drm-radeon-radeon_ttm.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-int-noderef-asn-got-unsigned-int-usertype
|   |-- drivers-irqchip-irq-mbigen.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-chip_data-got-void-noderef-asn-base
|   |-- drivers-irqchip-irq-mbigen.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-noderef-asn-base-got-void-chip_data
|   |-- drivers-pci-controller-dwc-pcie-hisi.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-priv-got-void-noderef-asn-assigned-reg_base
|   |-- drivers-pci-controller-dwc-pcie-hisi.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-noderef-asn-reg_base-got-void-priv
|   |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void
|   |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void-bar_addr
|   |-- drivers-pci-controller-pci-xgene.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-bar_addr-got-void-noderef-asn
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void-csr
|   |-- drivers-power-reset-xgene-reboot.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-csr-got-void-noderef-asn
|   |-- drivers-staging-gmjstcm-tcm_tis_spi.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-const-volatile-noderef-asn-addr-got-void-static-noderef-toplevel-asn-reuse_conf_
|   |-- drivers-staging-gmjstcm-tcm_tis_spi.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-volatile-noderef-asn-addr-got-void
|   |-- include-crypto-cbc.h:sparse:sparse:Variable-length-array-is-used.
|   |-- include-linux-bpf-cgroup.h:sparse:sparse:Using-plain-integer-as-NULL-pointer
|   |-- include-linux-mempolicy.h:warning:__do_mbind-defined-but-not-used
|   |-- include-linux-printk.h:warning:this-statement-may-fall-through
|   |-- include-linux-ptrace.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-cred-const-ptracer_cred-got-struct-cred-const-noderef-asn-ptracer_cred
|   |-- include-linux-ptrace.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-task_struct-new_parent-got-struct-task_struct-noderef-asn-parent
|   |-- include-linux-ptrace.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-task_struct-p1-got-struct-task_struct-noderef-asn-real_parent
|   |-- include-linux-ptrace.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-struct-task_struct-p2-got-struct-task_struct-noderef-asn-parent
|   |-- include-linux-signal.h:warning:this-statement-may-fall-through
|   |-- include-trace-events-vmscan.h:sparse:sparse:cast-to-restricted-isolate_mode_t
|   |-- include-trace-events-vmscan.h:sparse:sparse:restricted-isolate_mode_t-degrades-to-integer
|   |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char
|   |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char-name
|   |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dir_name-got-char
|   |-- init-do_mounts.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-type-got-char-fs
|   |-- init-do_mounts.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-filename-got-char-name
|   |-- init-do_mounts.h:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-pathname-got-char-name
|   |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-filename-got-char
|   |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-pathname-got-char
|   |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dev_name-got-char
|   |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-dir_name-got-char
|   |-- init-do_mounts_initrd.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-noderef-asn-name-got-char
|   |-- init-init_task.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-struct-task_struct-noderef-asn-parent-got-struct-task_struct
|   |-- init-init_task.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-struct-task_struct-noderef-asn-real_parent-got-struct-task_struct
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-buf-got-char-const-p
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-filename-got-char-filename
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-filename-got-char-static-assigned-toplevel-collected
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-name-got-char-path
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-newname-got-char-static-assigned-toplevel-collected
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-oldname-got-char
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-oldname-got-char-old
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-pathname-got-char-path
|   |-- init-initramfs.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-char-const-noderef-asn-pathname-got-char-static-assigned-toplevel-collected
|   |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-addr-got-void-noderef-asn-mem_base
|   |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-noderef-asn-mem_base-got-void
|   |-- kernel-dma-coherent.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-virt_base-got-void-noderef-asn-mem_base
|   |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be32-usertype-device_from-got-unsigned-int
|   |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be32-usertype-device_to-got-unsigned-int
|   |-- kernel-trace-blktrace.c:sparse:sparse:incorrect-type-in-assignment-(different-base-types)-expected-restricted-__be64-usertype-sector_from-got-unsigned-long-long
|   |-- kernel-trace-ftrace.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-struct-ftrace_ops-ops-got-struct-ftrace_ops-noderef-asn-static-addressable-toplevel-ftrace_ops_list
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pagep
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pagep-got-void-noderef-asn
|   |-- mm-filemap.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
|   |-- mm-maccess.c:sparse:sparse:symbol-__probe_user_read-was-not-declared.-Should-it-be-static
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-migrate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-pslot
|   |-- mm-migrate.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-pslot-got-void-noderef-asn
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-slot
|   |-- mm-page-writeback.c:sparse:sparse:incorrect-type-in-assignment-(different-address-spaces)-expected-void-slot-got-void-noderef-asn
|   |-- mm-page_alloc.c:sparse:sparse:invalid-assignment:
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   |-- mm-slub.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-unsigned-long-noderef-asn-got-unsigned-long
|   |-- mm-slub.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-void-noderef-asn-got-void
|   |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slot-got-void-addressable-slot
|   |-- mm-truncate.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-noderef-asn-slotp-got-void
|   |-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|   |-- mm-vmstat.c:sparse:sparse:incorrect-type-in-initializer-(different-address-spaces)-expected-signed-char-noderef-usertype-asn-got-signed-char
|   `-- mm-workingset.c:sparse:sparse:incorrect-type-in-argument-(different-address-spaces)-expected-void-arg-got-void-noderef-asn
|-- x86_64-allmodconfig
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-net-ethernet-huawei-hinic3-hw-.tmp_hinic3_devlink.o:warning:objtool:missing-symbol-for-section-.text
|   |-- drivers-net-ethernet-huawei-hinic3-hw-.tmp_hinic3_lld.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-allnoconfig
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-mmu_gather.o:warning:objtool:missing-symbol-for-section-.text
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-allyesconfig
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-net-ethernet-huawei-hinic3-hw-.tmp_hinic3_devlink.o:warning:objtool:missing-symbol-for-section-.text
|   |-- drivers-net-ethernet-huawei-hinic3-hw-.tmp_hinic3_lld.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-buildonly-randconfig-001-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-buildonly-randconfig-005-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:warning:variable-nid-set-but-not-used
|-- x86_64-randconfig-001-20251030
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-003-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-005-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:warning:variable-nid-set-but-not-used
|-- x86_64-randconfig-011-20251030
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-012-20251030
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-015-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-016-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-073-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   |-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|   `-- mm-vmscan.c:warning:variable-nid-set-but-not-used
|-- x86_64-randconfig-074-20251030
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
|   |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-076-20251030
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   |-- mm-mmap.c:warning:variable-new_start-set-but-not-used
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
|-- x86_64-randconfig-104-20251030
|   |-- arch-x86-events-zhaoxin-uncore.c:opportunity-for-str_enabled_disabled(uncore_enabled)
|   |-- crypto-aead.c:opportunity-for-str_yes_no(alg-cra_flags-CRYPTO_ALG_ASYNC)
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   |-- mm-memcontrol.c:warning:bad-line:otherwise.
|   |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
|   `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
`-- x86_64-rhel-9.4-rust
    |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_issue
    |-- block-blk-wbt.c:warning:no-previous-prototype-for-function-wbt_requeue
    |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
    |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
    |-- mm-memcontrol.c:warning:bad-line:otherwise.
    |-- mm-memory.c:warning:cast-from-int-(-)(unsigned-long-unsigned-long-struct-cgp_args-)-to-ktask_thread_func-(aka-int-(-)(void-void-void-)-)-converts-to-incompatible-function-type
    `-- mm-rmap.c:warning:variable-cstart-set-but-not-used
elapsed time: 1046m
configs tested: 37
configs skipped: 145
tested configs:
arm64                        allmodconfig    gcc-15.1.0
arm64                         allnoconfig    gcc-15.1.0
arm64                        allyesconfig    gcc-15.1.0
arm64                           defconfig    gcc-15.1.0
arm64             randconfig-001-20251029    gcc-12.5.0
arm64             randconfig-002-20251029    gcc-9.5.0
arm64             randconfig-003-20251029    gcc-13.4.0
arm64             randconfig-004-20251029    gcc-11.5.0
x86_64                       allmodconfig    clang-20
x86_64                        allnoconfig    clang-20
x86_64                       allyesconfig    clang-20
x86_64  buildonly-randconfig-001-20251030    clang-20
x86_64  buildonly-randconfig-002-20251030    gcc-14
x86_64  buildonly-randconfig-003-20251030    gcc-13
x86_64  buildonly-randconfig-004-20251030    gcc-14
x86_64  buildonly-randconfig-005-20251030    clang-20
x86_64  buildonly-randconfig-006-20251030    gcc-14
x86_64                          defconfig    gcc-14
x86_64            randconfig-001-20251030    clang-20
x86_64            randconfig-002-20251030    gcc-14
x86_64            randconfig-003-20251030    clang-20
x86_64            randconfig-004-20251030    gcc-12
x86_64            randconfig-005-20251030    clang-20
x86_64            randconfig-006-20251030    gcc-14
x86_64            randconfig-011-20251030    clang-20
x86_64            randconfig-012-20251030    clang-20
x86_64            randconfig-013-20251030    gcc-13
x86_64            randconfig-014-20251030    gcc-14
x86_64            randconfig-015-20251030    clang-20
x86_64            randconfig-016-20251030    clang-20
x86_64            randconfig-071-20251030    gcc-14
x86_64            randconfig-072-20251030    gcc-14
x86_64            randconfig-073-20251030    clang-20
x86_64            randconfig-074-20251030    clang-20
x86_64            randconfig-075-20251030    gcc-13
x86_64            randconfig-076-20251030    clang-20
x86_64                      rhel-9.4-rust    clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0