Kernel
  Threads by month 
                
            - ----- 2025 -----
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- 20965 discussions
 
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6] BUILD REGRESSION 119aafedbb74fab084751ff82e016ce59ba3a203
                        
                        
by kernel test robot 20 Mar '24
                    by kernel test robot 20 Mar '24
20 Mar '24
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git OLK-6.6
branch HEAD: 119aafedbb74fab084751ff82e016ce59ba3a203  !5340  CVE-2023-52593
Error/Warning ids grouped by kconfigs:
gcc_recent_errors
|-- arm64-defconfig
|   |-- aarch64-linux-ld:arch-arm64-include-asm-kvm_mmu.h:(.hyp.text):undefined-reference-to-__kvm_nvhe_kvm_ncsnp_support
|   |-- aarch64-linux-ld:arch-arm64-kvm-hyp-nvhe-..-pgtable.c:(.hyp.text):undefined-reference-to-__kvm_nvhe_kvm_ncsnp_support
|   |-- arch-arm64-include-asm-kvm_mmu.h:(.hyp.text):dangerous-relocation:unsupported-relocation
|   |-- arch-arm64-include-asm-kvm_mmu.h:(.hyp.text):undefined-reference-to-__kvm_nvhe_kvm_ncsnp_support
|   |-- arch-arm64-kvm-hyp-nvhe-..-pgtable.c:(.hyp.text):dangerous-relocation:unsupported-relocation
|   |-- arch-arm64-kvm-hyp-nvhe-..-pgtable.c:(.hyp.text):undefined-reference-to-__kvm_nvhe_kvm_ncsnp_support
|   `-- drivers-irqchip-irq-mbigen.c:warning:expecting-prototype-for-Due-to-the-existence-of-hyper().-Prototype-was-for-GICR_LENGTH()-instead
|-- arm64-randconfig-001-20240319
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- arm64-randconfig-004-20240319
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- loongarch-allmodconfig
|   |-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|   |-- drivers-infiniband-hw-hns-hns_roce_hw_v2.c:warning:no-previous-prototype-for-hns_roce_hw_v2_get_dscp
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_set_rxfh().-Prototype-was-for-rnp_set_rxnfc()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_tet_rxfh().-Prototype-was-for-rnp_get_rxfh()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_main.c:warning:directive-output-may-be-truncated-writing-byte-into-a-region-of-size-between-and
|   |-- drivers-net-ethernet-mucse-rnp-rnp_main.c:warning:expecting-prototype-for-rnp_write_eitr().-Prototype-was-for-rnp_write_eitr_rx()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_link_event_eanble().-Prototype-was-for-rnp_mbx_link_event_enable()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_stat_mark().-Prototype-was-for-rnp_link_stat_mark()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:no-previous-prototype-for-rnp_mbx_lldp_all_ports_enable
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_fc_mode_n10().-Prototype-was-for-rnp_mac_fc_mode_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_init_hw_n10().-Prototype-was-for-rnp_init_hw_ops_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_write_uc_addr_list().-Prototype-was-for-rnp_write_uc_addr_list_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnpm_device_supports_autoneg_fc().-Prototype-was-for-rnp_device_supports_autoneg_fc()-instead
|   |-- loongson3-acpi-cpufreq.c:(.text):undefined-reference-to-acpi_processor_register_performance
|   |-- loongson3-acpi-cpufreq.c:(.text):undefined-reference-to-acpi_processor_unregister_performance
|   `-- security-integrity-ima-ima_appraise.c:warning:no-previous-prototype-for-ima_get_hash_algo
|-- loongarch-randconfig-001-20240319
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- x86_64-buildonly-randconfig-001-20240320
|   `-- (.text):undefined-reference-to-lockdep_is_cpus_held
`-- x86_64-buildonly-randconfig-005-20240320
    `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
clang_recent_errors
|-- arm64-allmodconfig
|   |-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|   |-- drivers-irqchip-irq-mbigen.c:warning:expecting-prototype-for-Due-to-the-existence-of-hyper().-Prototype-was-for-GICR_LENGTH()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_set_rxfh().-Prototype-was-for-rnp_set_rxnfc()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_tet_rxfh().-Prototype-was-for-rnp_get_rxfh()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_main.c:warning:expecting-prototype-for-rnp_write_eitr().-Prototype-was-for-rnp_write_eitr_rx()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_link_event_eanble().-Prototype-was-for-rnp_mbx_link_event_enable()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_stat_mark().-Prototype-was-for-rnp_link_stat_mark()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:no-previous-prototype-for-function-rnp_mbx_lldp_all_ports_enable
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_fc_mode_n10().-Prototype-was-for-rnp_mac_fc_mode_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_init_hw_n10().-Prototype-was-for-rnp_init_hw_ops_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_write_uc_addr_list().-Prototype-was-for-rnp_write_uc_addr_list_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnpm_device_supports_autoneg_fc().-Prototype-was-for-rnp_device_supports_autoneg_fc()-instead
|   |-- mm-mem_reliable.c:warning:arithmetic-between-different-enumeration-types-(-enum-node_stat_item-and-enum-lru_list-)
|   |-- security-integrity-ima-ima_appraise.c:warning:no-previous-prototype-for-function-ima_get_hash_algo
|   `-- security-integrity-ima-ima_fs.c:warning:variable-ret-is-used-uninitialized-whenever-if-condition-is-true
|-- arm64-randconfig-002-20240319
|   |-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|   `-- drivers-irqchip-irq-mbigen.c:warning:expecting-prototype-for-Due-to-the-existence-of-hyper().-Prototype-was-for-GICR_LENGTH()-instead
|-- arm64-randconfig-003-20240319
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- x86_64-allyesconfig
|   |-- drivers-crypto-montage-tsse-tsse_dev_mgr.c:warning:no-previous-prototype-for-function-tsse_stop_dev
|   |-- drivers-crypto-montage-tsse-tsse_dev_mgr.c:warning:variable-ptr-is-used-uninitialized-whenever-for-loop-exits-because-its-condition-is-false
|   |-- drivers-crypto-montage-tsse-tsse_fw_service.c:warning:no-previous-prototype-for-function-fw_free
|   |-- drivers-crypto-montage-tsse-tsse_fw_service.c:warning:no-previous-prototype-for-function-fw_send_msg
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-get_msginf
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-ipc_hw_init
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-ipc_init_msg
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-ipc_recieve_msg
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-ipc_send_msg
|   |-- drivers-crypto-montage-tsse-tsse_ipc.c:warning:no-previous-prototype-for-function-msg_rout
|   |-- drivers-crypto-montage-tsse-tsse_service.c:warning:no-previous-prototype-for-function-service_rout
|   |-- drivers-crypto-montage-tsse-tsse_service.c:warning:variable-ret-set-but-not-used
|   |-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_set_rxfh().-Prototype-was-for-rnp_set_rxnfc()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_ethtool.c:warning:expecting-prototype-for-rnp_tet_rxfh().-Prototype-was-for-rnp_get_rxfh()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_main.c:warning:expecting-prototype-for-rnp_write_eitr().-Prototype-was-for-rnp_write_eitr_rx()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_link_event_eanble().-Prototype-was-for-rnp_mbx_link_event_enable()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:expecting-prototype-for-rnp_mbx_stat_mark().-Prototype-was-for-rnp_link_stat_mark()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_mbx_fw.c:warning:no-previous-prototype-for-function-rnp_mbx_lldp_all_ports_enable
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_fc_mode_n10().-Prototype-was-for-rnp_mac_fc_mode_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_init_hw_n10().-Prototype-was-for-rnp_init_hw_ops_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnp_write_uc_addr_list().-Prototype-was-for-rnp_write_uc_addr_list_n10()-instead
|   |-- drivers-net-ethernet-mucse-rnp-rnp_n10.c:warning:expecting-prototype-for-rnpm_device_supports_autoneg_fc().-Prototype-was-for-rnp_device_supports_autoneg_fc()-instead
|   |-- security-integrity-ima-ima_appraise.c:warning:no-previous-prototype-for-function-ima_get_hash_algo
|   `-- security-integrity-ima-ima_fs.c:warning:variable-ret-is-used-uninitialized-whenever-if-condition-is-true
|-- x86_64-buildonly-randconfig-002-20240320
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- x86_64-buildonly-randconfig-003-20240320
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
|-- x86_64-buildonly-randconfig-004-20240320
|   `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
`-- x86_64-buildonly-randconfig-006-20240320
    `-- drivers-i2c-busses-i2c-hisi.c:warning:expecting-prototype-for-i2c_dw_acpi_pin_mux_change().-Prototype-was-for-i2c_hisi_pin_mux_change()-instead
elapsed time: 724m
configs tested: 40
configs skipped: 142
tested configs:
arm64                            allmodconfig   clang
arm64                             allnoconfig   gcc  
arm64                               defconfig   gcc  
arm64                 randconfig-001-20240319   gcc  
arm64                 randconfig-002-20240319   clang
arm64                 randconfig-003-20240319   clang
arm64                 randconfig-004-20240319   gcc  
loongarch                        allmodconfig   gcc  
loongarch                         allnoconfig   gcc  
loongarch                           defconfig   gcc  
loongarch             randconfig-001-20240319   gcc  
loongarch             randconfig-002-20240319   gcc  
x86_64                            allnoconfig   clang
x86_64                           allyesconfig   clang
x86_64       buildonly-randconfig-001-20240320   gcc  
x86_64       buildonly-randconfig-002-20240320   clang
x86_64       buildonly-randconfig-003-20240320   clang
x86_64       buildonly-randconfig-004-20240320   clang
x86_64       buildonly-randconfig-005-20240320   gcc  
x86_64       buildonly-randconfig-006-20240320   clang
x86_64                              defconfig   gcc  
x86_64                randconfig-001-20240320   clang
x86_64                randconfig-002-20240320   clang
x86_64                randconfig-003-20240320   gcc  
x86_64                randconfig-004-20240320   clang
x86_64                randconfig-005-20240320   clang
x86_64                randconfig-006-20240320   clang
x86_64                randconfig-011-20240320   gcc  
x86_64                randconfig-012-20240320   gcc  
x86_64                randconfig-013-20240320   gcc  
x86_64                randconfig-014-20240320   gcc  
x86_64                randconfig-015-20240320   clang
x86_64                randconfig-016-20240320   gcc  
x86_64                randconfig-071-20240320   clang
x86_64                randconfig-072-20240320   gcc  
x86_64                randconfig-073-20240320   clang
x86_64                randconfig-074-20240320   gcc  
x86_64                randconfig-075-20240320   gcc  
x86_64                randconfig-076-20240320   clang
x86_64                          rhel-8.3-rust   clang
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [PATCH openEuler-1.0-LTS-o] hwrng: core - Fix page fault dead lock on mmap-ed hwrng
                        
                        
by Yi Yang 20 Mar '24
                    by Yi Yang 20 Mar '24
20 Mar '24
                    
                        From: Herbert Xu <herbert(a)gondor.apana.org.au>
stable inclusion
from stable-v4.19.307
commit eafd83b92f6c044007a3591cbd476bcf90455990
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I99JR3
CVE: CVE-2023-52615
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 78aafb3884f6bc6636efcc1760c891c8500b9922 upstream.
There is a dead-lock in the hwrng device read path.  This triggers
when the user reads from /dev/hwrng into memory also mmap-ed from
/dev/hwrng.  The resulting page fault triggers a recursive read
which then dead-locks.
Fix this by using a stack buffer when calling copy_to_user.
Reported-by: Edward Adam Davis <eadavis(a)qq.com>
Reported-by: syzbot+c52ab18308964d248092(a)syzkaller.appspotmail.com
Fixes: 9996508b3353 ("hwrng: core - Replace u32 in driver API with byte array")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Herbert Xu <herbert(a)gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Yi Yang <yiyang13(a)huawei.com>
---
 drivers/char/hw_random/core.c | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index 0ef7cb0448e8..e33b71659215 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -23,10 +23,13 @@
 #include <linux/random.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 
 #define RNG_MODULE_NAME		"hw_random"
 
+#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES)
+
 static struct hwrng *current_rng;
 /* the current rng has been explicitly chosen by user via sysfs */
 static int cur_rng_set_by_user;
@@ -58,7 +61,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 
 static size_t rng_buffer_size(void)
 {
-	return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES;
+	return RNG_BUFFER_SIZE;
 }
 
 static void add_early_randomness(struct hwrng *rng)
@@ -201,6 +204,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			    size_t size, loff_t *offp)
 {
+	u8 buffer[RNG_BUFFER_SIZE];
 	ssize_t ret = 0;
 	int err = 0;
 	int bytes_read, len;
@@ -228,34 +232,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			if (bytes_read < 0) {
 				err = bytes_read;
 				goto out_unlock_reading;
+			} else if (bytes_read == 0 &&
+				   (filp->f_flags & O_NONBLOCK)) {
+				err = -EAGAIN;
+				goto out_unlock_reading;
 			}
+
 			data_avail = bytes_read;
 		}
 
-		if (!data_avail) {
-			if (filp->f_flags & O_NONBLOCK) {
-				err = -EAGAIN;
-				goto out_unlock_reading;
-			}
-		} else {
-			len = data_avail;
+		len = data_avail;
+		if (len) {
 			if (len > size)
 				len = size;
 
 			data_avail -= len;
 
-			if (copy_to_user(buf + ret, rng_buffer + data_avail,
-								len)) {
+			memcpy(buffer, rng_buffer + data_avail, len);
+		}
+		mutex_unlock(&reading_mutex);
+		put_rng(rng);
+
+		if (len) {
+			if (copy_to_user(buf + ret, buffer, len)) {
 				err = -EFAULT;
-				goto out_unlock_reading;
+				goto out;
 			}
 
 			size -= len;
 			ret += len;
 		}
 
-		mutex_unlock(&reading_mutex);
-		put_rng(rng);
 
 		if (need_resched())
 			schedule_timeout_interruptible(1);
@@ -266,6 +273,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 		}
 	}
 out:
+	memzero_explicit(buffer, sizeof(buffer));
 	return ret ? : err;
 
 out_unlock_reading:
-- 
2.25.1
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        From: Ma Wupeng <mawupeng1(a)huawei.com>
Enhanced maintenance and test capability for pbha.
Enable ARM64_PBHA by default.
Ma Wupeng (7):
  proc: introduce proc_hide_ents to hide proc files
  arm64: mm: Cleanup in pbha_bit0_pte_range
  mm: cpufeature: Make update_pbha_perf_only_bit static
  arm64: mm: Do not show info during startup if pbha is not enabled
  arm64: mm: Hide pbha_bit0 in procfs if pbha is not enabled
  arm64: mm: pagemap: Export pbha bit0 info
  config: Enable ARM64_PBHA by default
 Documentation/admin-guide/mm/pagemap.rst |  4 +++-
 arch/arm64/configs/openeuler_defconfig   |  2 +-
 arch/arm64/kernel/cpufeature.c           |  2 +-
 drivers/soc/hisilicon/pbha.c             | 11 +++++------
 fs/proc/base.c                           | 25 ++++++++++++++++++++++--
 fs/proc/task_mmu.c                       | 15 ++++++++++++++
 include/linux/pbha.h                     | 18 +++++++++++++++++
 7 files changed, 66 insertions(+), 11 deletions(-)
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            8
                            
                          
                          
                            
    
                          
                        
                    
                    
                        From: Herbert Xu <herbert(a)gondor.apana.org.au>
stable inclusion
from stable-v4.19.307
commit eafd83b92f6c044007a3591cbd476bcf90455990
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I99JR3
CVE: CVE-2023-52615
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
commit 78aafb3884f6bc6636efcc1760c891c8500b9922 upstream.
There is a dead-lock in the hwrng device read path.  This triggers
when the user reads from /dev/hwrng into memory also mmap-ed from
/dev/hwrng.  The resulting page fault triggers a recursive read
which then dead-locks.
Fix this by using a stack buffer when calling copy_to_user.
Reported-by: Edward Adam Davis <eadavis(a)qq.com>
Reported-by: syzbot+c52ab18308964d248092(a)syzkaller.appspotmail.com
Fixes: 9996508b3353 ("hwrng: core - Replace u32 in driver API with byte array")
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Herbert Xu <herbert(a)gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Signed-off-by: Yi Yang <yiyang13(a)huawei.com>
---
 drivers/char/hw_random/core.c | 34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/drivers/char/hw_random/core.c b/drivers/char/hw_random/core.c
index 0ef7cb0448e8..e33b71659215 100644
--- a/drivers/char/hw_random/core.c
+++ b/drivers/char/hw_random/core.c
@@ -23,10 +23,13 @@
 #include <linux/random.h>
 #include <linux/sched.h>
 #include <linux/slab.h>
+#include <linux/string.h>
 #include <linux/uaccess.h>
 
 #define RNG_MODULE_NAME		"hw_random"
 
+#define RNG_BUFFER_SIZE (SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES)
+
 static struct hwrng *current_rng;
 /* the current rng has been explicitly chosen by user via sysfs */
 static int cur_rng_set_by_user;
@@ -58,7 +61,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 
 static size_t rng_buffer_size(void)
 {
-	return SMP_CACHE_BYTES < 32 ? 32 : SMP_CACHE_BYTES;
+	return RNG_BUFFER_SIZE;
 }
 
 static void add_early_randomness(struct hwrng *rng)
@@ -201,6 +204,7 @@ static inline int rng_get_data(struct hwrng *rng, u8 *buffer, size_t size,
 static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			    size_t size, loff_t *offp)
 {
+	u8 buffer[RNG_BUFFER_SIZE];
 	ssize_t ret = 0;
 	int err = 0;
 	int bytes_read, len;
@@ -228,34 +232,37 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 			if (bytes_read < 0) {
 				err = bytes_read;
 				goto out_unlock_reading;
+			} else if (bytes_read == 0 &&
+				   (filp->f_flags & O_NONBLOCK)) {
+				err = -EAGAIN;
+				goto out_unlock_reading;
 			}
+
 			data_avail = bytes_read;
 		}
 
-		if (!data_avail) {
-			if (filp->f_flags & O_NONBLOCK) {
-				err = -EAGAIN;
-				goto out_unlock_reading;
-			}
-		} else {
-			len = data_avail;
+		len = data_avail;
+		if (len) {
 			if (len > size)
 				len = size;
 
 			data_avail -= len;
 
-			if (copy_to_user(buf + ret, rng_buffer + data_avail,
-								len)) {
+			memcpy(buffer, rng_buffer + data_avail, len);
+		}
+		mutex_unlock(&reading_mutex);
+		put_rng(rng);
+
+		if (len) {
+			if (copy_to_user(buf + ret, buffer, len)) {
 				err = -EFAULT;
-				goto out_unlock_reading;
+				goto out;
 			}
 
 			size -= len;
 			ret += len;
 		}
 
-		mutex_unlock(&reading_mutex);
-		put_rng(rng);
 
 		if (need_resched())
 			schedule_timeout_interruptible(1);
@@ -266,6 +273,7 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
 		}
 	}
 out:
+	memzero_explicit(buffer, sizeof(buffer));
 	return ret ? : err;
 
 out_unlock_reading:
-- 
2.25.1
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 28734/30000] drivers/infiniband/hw/xsc/mem.c:21:5: warning: no previous prototype for 'xsc_find_chunk_cont_0'
                        
                        
by kernel test robot 20 Mar '24
                    by kernel test robot 20 Mar '24
20 Mar '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   efcbd7d2c09d823eef22dff4bce44d8712ca50c4
commit: 23b8024ef459f8b615c223df6175ea17c6b50c48 [28734/30000] drivers: update yunsilicon drivers to version 1.1.0.375
config: x86_64-openeuler_defconfig-OLK-5.10-func (https://download.01.org/0day-ci/archive/20240320/202403200656.0AcS5LRj-lkp@…)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240320/202403200656.0AcS5LRj-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/202403200656.0AcS5LRj-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> drivers/infiniband/hw/xsc/mem.c:21:5: warning: no previous prototype for 'xsc_find_chunk_cont_0' [-Wmissing-prototypes]
      21 | int xsc_find_chunk_cont_0(struct xsc_pa_chunk *chunk,
         |     ^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/mem.c: In function 'xsc_find_chunk_cont_0':
>> drivers/infiniband/hw/xsc/mem.c:25:9: warning: 'static' is not at beginning of declaration [-Wold-style-declaration]
      25 |         const static int max_count =  sizeof(int) << 3;
         |         ^~~~~
   drivers/infiniband/hw/xsc/mem.c: At top level:
   drivers/infiniband/hw/xsc/mem.c:193:6: warning: no previous prototype for '__xsc_ib_cont_pages' [-Wmissing-prototypes]
     193 | void __xsc_ib_cont_pages(struct ib_umem *umem, u64 addr,
         |      ^~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/mem.c:259:6: warning: no previous prototype for '__xsc_ib_populate_pas' [-Wmissing-prototypes]
     259 | void __xsc_ib_populate_pas(struct xsc_ib_dev *dev, struct ib_umem *umem,
         |      ^~~~~~~~~~~~~~~~~~~~~
--
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:166:5: warning: no previous prototype for 'xsc_rx_alloc_page_cache' [-Wmissing-prototypes]
     166 | int xsc_rx_alloc_page_cache(struct xsc_rq *rq, int node, u8 log_init_sz)
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:179:6: warning: no previous prototype for 'xsc_rx_free_page_cache' [-Wmissing-prototypes]
     179 | void xsc_rx_free_page_cache(struct xsc_rq *rq)
         |      ^~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:197:6: warning: no previous prototype for 'xsc_eth_cq_error_event' [-Wmissing-prototypes]
     197 | void xsc_eth_cq_error_event(struct xsc_core_cq *xcq, enum xsc_event event)
         |      ^~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:211:6: warning: no previous prototype for 'xsc_eth_completion_event' [-Wmissing-prototypes]
     211 | void xsc_eth_completion_event(struct xsc_core_cq *xcq)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:260:5: warning: no previous prototype for 'xsc_eth_create_cq' [-Wmissing-prototypes]
     260 | int xsc_eth_create_cq(struct xsc_core_device *xdev, struct xsc_core_cq *xcq,
         |     ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:295:5: warning: no previous prototype for 'xsc_eth_destroy_cq' [-Wmissing-prototypes]
     295 | int xsc_eth_destroy_cq(struct xsc_core_device *xdev, struct xsc_cq *cq)
         |     ^~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:333:6: warning: no previous prototype for 'xsc_eth_free_cq' [-Wmissing-prototypes]
     333 | void xsc_eth_free_cq(struct xsc_cq *cq)
         |      ^~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:338:5: warning: no previous prototype for 'xsc_eth_create_rss_qp_rqs' [-Wmissing-prototypes]
     338 | int xsc_eth_create_rss_qp_rqs(struct xsc_core_device *xdev,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:359:6: warning: no previous prototype for 'xsc_eth_qp_event' [-Wmissing-prototypes]
     359 | void xsc_eth_qp_event(struct xsc_core_qp *qp, int type)
         |      ^~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:389:5: warning: no previous prototype for 'xsc_eth_create_qp_rq' [-Wmissing-prototypes]
     389 | int xsc_eth_create_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq,
         |     ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:416:5: warning: no previous prototype for 'xsc_eth_destroy_qp_rq' [-Wmissing-prototypes]
     416 | int xsc_eth_destroy_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq)
         |     ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:469:5: warning: no previous prototype for 'xsc_eth_create_qp_sq' [-Wmissing-prototypes]
     469 | int xsc_eth_create_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq,
         |     ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:488:5: warning: no previous prototype for 'xsc_eth_modify_qp_sq' [-Wmissing-prototypes]
     488 | int xsc_eth_modify_qp_sq(struct xsc_core_device *xdev, struct xsc_modify_raw_qp_mbox_in *in)
         |     ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:506:5: warning: no previous prototype for 'xsc_eth_destroy_qp_sq' [-Wmissing-prototypes]
     506 | int xsc_eth_destroy_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq)
         |     ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:750:5: warning: no previous prototype for 'xsc_eth_set_hw_mtu' [-Wmissing-prototypes]
     750 | int xsc_eth_set_hw_mtu(struct xsc_core_device *dev, u16 mtu, u16 rx_buf_sz)
         |     ^~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:775:5: warning: no previous prototype for 'xsc_eth_get_mac' [-Wmissing-prototypes]
     775 | int xsc_eth_get_mac(struct xsc_core_device *dev, char *mac)
         |     ^~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:806:5: warning: no previous prototype for 'xsc_eth_modify_qps_channel' [-Wmissing-prototypes]
     806 | int xsc_eth_modify_qps_channel(struct xsc_adapter *adapter, struct xsc_channel *c)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:828:5: warning: no previous prototype for 'xsc_eth_modify_qps' [-Wmissing-prototypes]
     828 | int xsc_eth_modify_qps(struct xsc_adapter *adapter,
         |     ^~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:845:5: warning: no previous prototype for 'xsc_rx_get_linear_frag_sz' [-Wmissing-prototypes]
     845 | u32 xsc_rx_get_linear_frag_sz(u32 mtu)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:852:6: warning: no previous prototype for 'xsc_rx_is_linear_skb' [-Wmissing-prototypes]
     852 | bool xsc_rx_is_linear_skb(u32 mtu)
         |      ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1316:5: warning: no previous prototype for 'xsc_eth_open_channel' [-Wmissing-prototypes]
    1316 | int xsc_eth_open_channel(struct xsc_adapter *adapter,
         |     ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1527:5: warning: no previous prototype for 'xsc_eth_open_channels' [-Wmissing-prototypes]
    1527 | int xsc_eth_open_channels(struct xsc_adapter *adapter)
         |     ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1639:6: warning: no previous prototype for 'xsc_eth_activate_channel' [-Wmissing-prototypes]
    1639 | void xsc_eth_activate_channel(struct xsc_channel *c)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1645:6: warning: no previous prototype for 'xsc_eth_deactivate_channel' [-Wmissing-prototypes]
    1645 | void xsc_eth_deactivate_channel(struct xsc_channel *c)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1691:6: warning: no previous prototype for 'xsc_eth_activate_priv_channels' [-Wmissing-prototypes]
    1691 | void xsc_eth_activate_priv_channels(struct xsc_adapter *adapter)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1706:6: warning: no previous prototype for 'xsc_eth_deactivate_priv_channels' [-Wmissing-prototypes]
    1706 | void xsc_eth_deactivate_priv_channels(struct xsc_adapter *adapter)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:1849:5: warning: no previous prototype for 'xsc_eth_change_link_status' [-Wmissing-prototypes]
    1849 | int xsc_eth_change_link_status(struct xsc_adapter *adapter)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1906:6: warning: no previous prototype for 'xsc_eth_event_handler' [-Wmissing-prototypes]
    1906 | void xsc_eth_event_handler(void *arg)
         |      ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1914:5: warning: no previous prototype for 'xsc_eth_enable_nic_hca' [-Wmissing-prototypes]
    1914 | int xsc_eth_enable_nic_hca(struct xsc_adapter *adapter)
         |     ^~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1976:5: warning: no previous prototype for 'xsc_eth_disable_nic_hca' [-Wmissing-prototypes]
    1976 | int xsc_eth_disable_nic_hca(struct xsc_adapter *adapter)
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2009:6: warning: no previous prototype for 'xsc_eth_rss_params_change' [-Wmissing-prototypes]
    2009 | void xsc_eth_rss_params_change(struct xsc_adapter *adapter, u32 change, void *modify)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2319:6: warning: no previous prototype for 'xsc_build_default_indir_rqt' [-Wmissing-prototypes]
    2319 | void xsc_build_default_indir_rqt(u32 *indirection_rqt, int len,
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2417:5: warning: no previous prototype for 'xsc_eth_nic_mtu_changed' [-Wmissing-prototypes]
    2417 | int xsc_eth_nic_mtu_changed(struct xsc_adapter *priv)
         |     ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2480:5: warning: no previous prototype for 'xsc_set_vf_mac' [-Wmissing-prototypes]
    2480 | int xsc_set_vf_mac(struct net_device *netdev, int vf, u8 *mac)
         |     ^~~~~~~~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:2497:5: warning: no previous prototype for 'xsc_get_vf_config' [-Wmissing-prototypes]
    2497 | int xsc_get_vf_config(struct net_device *dev,
         |     ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2513:5: warning: no previous prototype for 'set_feature_rxcsum' [-Wmissing-prototypes]
    2513 | int set_feature_rxcsum(struct net_device *netdev, bool enable)
         |     ^~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2565:5: warning: no previous prototype for 'xsc_eth_set_features' [-Wmissing-prototypes]
    2565 | int xsc_eth_set_features(struct net_device *netdev, netdev_features_t features)
         |     ^~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:2582:5: warning: no previous prototype for 'xsc_select_queue' [-Wmissing-prototypes]
    2582 | u16 xsc_select_queue(struct net_device *dev, struct sk_buff *skb,
         |     ^~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2771:24: warning: no previous prototype for 'xsc_tirc_get_default_config' [-Wmissing-prototypes]
    2771 | struct xsc_tirc_config xsc_tirc_get_default_config(enum xsc_traffic_types tt)
         |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2776:6: warning: no previous prototype for 'xsc_build_rss_params' [-Wmissing-prototypes]
    2776 | void xsc_build_rss_params(struct xsc_rss_params *rss_params, u16 num_channels)
         |      ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2794:6: warning: no previous prototype for 'xsc_eth_build_nic_params' [-Wmissing-prototypes]
    2794 | void xsc_eth_build_nic_params(struct xsc_adapter *adapter, u32 ch_num, u32 tc_num)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2816:6: warning: no previous prototype for 'xsc_eth_build_nic_netdev' [-Wmissing-prototypes]
    2816 | void xsc_eth_build_nic_netdev(struct xsc_adapter *adapter)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2887:5: warning: no previous prototype for 'xsc_eth_create_xdev_resources' [-Wmissing-prototypes]
    2887 | int xsc_eth_create_xdev_resources(struct xsc_core_device *xdev)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2908:5: warning: no previous prototype for 'xsc_eth_init_nic_rx' [-Wmissing-prototypes]
    2908 | int xsc_eth_init_nic_rx(struct xsc_adapter *adapter)
         |     ^~~~~~~~~~~~~~~~~~~
--
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c: In function 'xsc_dcbnl_setbuffer':
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c:968:13: warning: variable 'prio2buffer' set but not used [-Wunused-but-set-variable]
     968 |         u8 *prio2buffer = NULL;
         |             ^~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c:967:14: warning: variable 'buffer_size' set but not used [-Wunused-but-set-variable]
     967 |         u32 *buffer_size = NULL;
         |              ^~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c: In function 'xsc_dcbnl_ieee_setpfc':
>> drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c:350:29: warning: 'curr_pfc_en' is used uninitialized [-Wuninitialized]
     350 |                 curr_pfc_en |= cee_cfg->pfc_setting[i] << i;
         |                             ^~
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_dcbnl.c:327:12: note: 'curr_pfc_en' was declared here
     327 |         u8 curr_pfc_en;
         |            ^~~~~~~~~~~
--
>> drivers/net/ethernet/yunsilicon/xsc/pci/main.c:136:4: warning: no previous prototype for 'xsc_devid_to_pcie_no' [-Wmissing-prototypes]
     136 | u8 xsc_devid_to_pcie_no(int dev_id)
         |    ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:288:5: warning: no previous prototype for 'xsc_priv_init' [-Wmissing-prototypes]
     288 | int xsc_priv_init(struct xsc_core_device *dev)
         |     ^~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:302:5: warning: no previous prototype for 'xsc_dev_res_init' [-Wmissing-prototypes]
     302 | int xsc_dev_res_init(struct xsc_core_device *dev)
         |     ^~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:321:6: warning: no previous prototype for 'xsc_dev_res_cleanup' [-Wmissing-prototypes]
     321 | void xsc_dev_res_cleanup(struct xsc_core_device *dev)
         |      ^~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:327:6: warning: no previous prototype for 'xsc_init_reg_addr' [-Wmissing-prototypes]
     327 | void xsc_init_reg_addr(struct xsc_core_device *dev)
         |      ^~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:519:5: warning: no previous prototype for 'xsc_reset_function_resource' [-Wmissing-prototypes]
     519 | int xsc_reset_function_resource(struct xsc_core_device *dev)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:719:5: warning: no previous prototype for 'xsc_load_one' [-Wmissing-prototypes]
     719 | int xsc_load_one(struct xsc_core_device *dev, bool boot)
         |     ^~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/main.c:801:5: warning: no previous prototype for 'xsc_unload_one' [-Wmissing-prototypes]
     801 | int xsc_unload_one(struct xsc_core_device *dev, bool cleanup)
         |     ^~~~~~~~~~~~~~
--
>> drivers/net/ethernet/yunsilicon/xsc/pci/xsc_pci_ctrl.c:255:5: warning: no previous prototype for 'noop_pre' [-Wmissing-prototypes]
     255 | int noop_pre(struct kprobe *p, struct pt_regs *regs) { return 0; }
         |     ^~~~~~~~
>> drivers/net/ethernet/yunsilicon/xsc/pci/xsc_pci_ctrl.c:264:5: warning: no previous prototype for 'find_kallsyms_lookup_name' [-Wmissing-prototypes]
     264 | int find_kallsyms_lookup_name(void)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/yunsilicon/xsc/pci/xsc_pci_ctrl.c:310:5: warning: no previous prototype for 'xsc_pci_ctrl_exec_ioctl' [-Wmissing-prototypes]
     310 | int xsc_pci_ctrl_exec_ioctl(struct xsc_core_device *xdev, void *in, int in_size, void *out,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
vim +/xsc_find_chunk_cont_0 +21 drivers/infiniband/hw/xsc/mem.c
    20	
  > 21	int xsc_find_chunk_cont_0(struct xsc_pa_chunk *chunk,
    22				  int is_first,
    23				  int is_last)
    24	{
  > 25		const static int max_count =  sizeof(int) << 3;
    26		dma_addr_t pa, end_pa;
    27		u64 va, end_va;
    28		size_t length;
    29		int start_count, end_count;
    30		int va_start_count, va_end_count;
    31	
    32		pa = chunk->pa;
    33		va = chunk->va;
    34		length = chunk->length;
    35		end_pa = pa + length;
    36		end_va = va + length;
    37		start_count = max_count;
    38		end_count = max_count;
    39	
    40		if (!is_first) {
    41			start_count = xsc_count_trailing_zeros((unsigned long)pa);
    42			va_start_count = xsc_count_trailing_zeros(va);
    43			start_count = min_t(int, start_count, va_start_count);
    44		}
    45	
    46		if (!is_last) {
    47			end_count = xsc_count_trailing_zeros((unsigned long)end_pa);
    48			va_end_count = xsc_count_trailing_zeros(end_va);
    49			end_count = min_t(int, end_count, va_end_count);
    50		}
    51	
    52		return start_count > end_count ? end_count : start_count;
    53	}
    54	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS] BUILD SUCCESS 353422df931f2987d3888e844ceea10d6e4d14d6
                        
                        
by kernel test robot 20 Mar '24
                    by kernel test robot 20 Mar '24
20 Mar '24
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 353422df931f2987d3888e844ceea10d6e4d14d6  !5309  drm/msm/dpu: Add mutex lock in control vblank irq
Warning ids grouped by kconfigs:
gcc_recent_errors
|-- arm64-allmodconfig
|   |-- drivers-dma-pl330.c:warning:dst-may-be-used-uninitialized
|   `-- drivers-dma-pl330.c:warning:src-may-be-used-uninitialized
|-- arm64-defconfig
|   |-- drivers-dma-pl330.c:warning:dst-may-be-used-uninitialized
|   `-- drivers-dma-pl330.c:warning:src-may-be-used-uninitialized
`-- arm64-randconfig-001-20240319
    |-- drivers-dma-pl330.c:warning:dst-may-be-used-uninitialized
    `-- drivers-dma-pl330.c:warning:src-may-be-used-uninitialized
clang_recent_errors
`-- x86_64-buildonly-randconfig-002-20240319
    `-- drivers-gpu-drm-amd-amdgpu-..-display-dc-dce110-dce110_opp_csc_v.o:warning:objtool:missing-symbol-for-section-.text
elapsed time: 734m
configs tested: 35
configs skipped: 147
The following configs have been built successfully.
More configs may be tested in the coming days.
tested configs:
arm64                            allmodconfig   gcc  
arm64                             allnoconfig   gcc  
arm64                               defconfig   gcc  
arm64                 randconfig-001-20240319   gcc  
arm64                 randconfig-002-20240319   gcc  
arm64                 randconfig-003-20240319   gcc  
arm64                 randconfig-004-20240319   gcc  
x86_64                            allnoconfig   clang
x86_64                           allyesconfig   clang
x86_64       buildonly-randconfig-001-20240319   clang
x86_64       buildonly-randconfig-002-20240319   clang
x86_64       buildonly-randconfig-003-20240319   clang
x86_64       buildonly-randconfig-004-20240319   clang
x86_64       buildonly-randconfig-005-20240319   clang
x86_64       buildonly-randconfig-006-20240319   clang
x86_64                              defconfig   gcc  
x86_64                randconfig-001-20240319   clang
x86_64                randconfig-002-20240319   clang
x86_64                randconfig-003-20240319   clang
x86_64                randconfig-004-20240319   gcc  
x86_64                randconfig-005-20240319   gcc  
x86_64                randconfig-006-20240319   gcc  
x86_64                randconfig-011-20240319   clang
x86_64                randconfig-012-20240319   clang
x86_64                randconfig-013-20240319   gcc  
x86_64                randconfig-014-20240319   gcc  
x86_64                randconfig-015-20240319   clang
x86_64                randconfig-016-20240319   clang
x86_64                randconfig-071-20240319   gcc  
x86_64                randconfig-072-20240319   clang
x86_64                randconfig-073-20240319   gcc  
x86_64                randconfig-074-20240319   clang
x86_64                randconfig-075-20240319   clang
x86_64                randconfig-076-20240319   clang
x86_64                          rhel-8.3-rust   clang
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10] BUILD REGRESSION efcbd7d2c09d823eef22dff4bce44d8712ca50c4
                        
                        
by kernel test robot 19 Mar '24
                    by kernel test robot 19 Mar '24
19 Mar '24
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git OLK-5.10
branch HEAD: efcbd7d2c09d823eef22dff4bce44d8712ca50c4  !4632 [OLK-5.10] drivers: update yunsilicon drivers to version 1.1.0.375
Error/Warning: (recently discovered and may have been fixed)
mm/share_pool.c:4227:64: error: 'HUGETLB_ALLOC_BUDDY' undeclared (first use in this function)
Error/Warning ids grouped by kconfigs:
gcc_recent_errors
`-- arm64-randconfig-003-20240312
    `-- mm-share_pool.c:error:HUGETLB_ALLOC_BUDDY-undeclared-(first-use-in-this-function)
clang_recent_errors
`-- x86_64-allyesconfig
    |-- drivers-infiniband-hw-xsc-mem.c:warning:no-previous-prototype-for-function-xsc_find_chunk_cont_0
    |-- drivers-infiniband-hw-xsc-mr.c:warning:variable-using_peer_mem-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Excess-function-parameter-eecd-description-in-rnpm_lower_eeprom_clk
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Excess-function-parameter-hash_value-description-in-rnpm_set_mta
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Excess-function-parameter-hw-description-in-rnpm_mta_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Excess-function-parameter-pf-description-in-rnpm_set_vlan_anti_spoofing
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Function-parameter-or-member-count-not-described-in-rnpm_shift_in_eeprom_bits
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Function-parameter-or-member-eec-not-described-in-rnpm_lower_eeprom_clk
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Function-parameter-or-member-mc_addr-not-described-in-rnpm_set_mta
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Function-parameter-or-member-mode-not-described-in-rnpm_mta_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_common.c:warning:Function-parameter-or-member-vf-not-described-in-rnpm_set_vlan_anti_spoofing
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_debugfs.c:warning:Excess-function-parameter-pf-description-in-rnpm_dbg_adapter_exit
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_debugfs.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_dbg_adapter_exit
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-dev-description-in-rnpm_get_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-dev-description-in-rnpm_set_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-ec-description-in-rnpm_get_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-ee-description-in-rnpm_get_module_eeprom
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-flags-description-in-rnpm_set_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-kec-description-in-rnpm_get_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-kec-description-in-rnpm_set_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-netdev-description-in-rnpm_get_module_eeprom
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-netdev-description-in-rnpm_get_module_info
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-netdev-description-in-rnpm_get_rxnfc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Excess-function-parameter-pf-description-in-rnpm_get_rss_hash_opts
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_get_rss_hash_opts
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-coal-not-described-in-rnpm_get_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-dev-not-described-in-rnpm_get_module_eeprom
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-dev-not-described-in-rnpm_get_module_info
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-dev-not-described-in-rnpm_get_rxnfc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-eeprom-not-described-in-rnpm_get_module_eeprom
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-kernel_coal-not-described-in-rnpm_get_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-kernel_coal-not-described-in-rnpm_set_coalesce
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-netdev-not-described-in-rnpm_get_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-netdev-not-described-in-rnpm_set_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:Function-parameter-or-member-priv_flags-not-described-in-rnpm_set_priv_flags
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:variable-autoneg_changed-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:variable-dma_ch-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ethtool.c:warning:variable-duplex_changed-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-inner_vlan_tag-description-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-l4_hdr_len-description-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-mss_seg_len-description-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-rxr_count-description-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-rxr_idx-description-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-tunnel_hdr_len-description-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-txr_count-description-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-txr_idx-description-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Excess-function-parameter-v_count-description-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-eth_queue_idx-not-described-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-inner_vlan_tunnel_len-not-described-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-mss_len_vf_num-not-described-in-rnpm_tx_ctxtdesc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-r_count-not-described-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-r_idx-not-described-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:Function-parameter-or-member-step-not-described-in-rnpm_alloc_q_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:no-previous-prototype-for-function-rnpm_setup_layer2_remapping
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:no-previous-prototype-for-function-rnpm_setup_tuple5_remapping
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_lib.c:warning:no-previous-prototype-for-function-rnpm_setup_tuple5_remapping_tcam
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-data-description-in-rnpm_pf_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-data-description-in-rnpm_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-ent-description-in-rnpm_probe
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-hw-description-in-rnpm_wol_supported
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-link_speed-description-in-rnpm_watchdog_update_link
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-maxrate-description-in-rnpm_tx_maxrate_own
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-msix_vector-description-in-rnpm_set_ring_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-netdev-description-in-rnpm_setup_tc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-netdev-description-in-rnpm_tx_maxrate_own
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-pb-description-in-rnpm_lpbthresh
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-queue-description-in-rnpm_set_ring_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-skb-description-in-rnpm_is_non_eop
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Excess-function-parameter-subdev_id-description-in-rnpm_wol_supported
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_rx_ring_reinit
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_setup_rx_resources
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_setup_tx_resources
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_tx_maxrate_own
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-adapter-not-described-in-rnpm_wol_supported
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-dev-not-described-in-rnpm_setup_tc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-id-not-described-in-rnpm_probe
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-is_rxframe-not-described-in-rnpm_write_eitr
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-napi_budget-not-described-in-rnpm_clean_tx_irq
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-rnpm_msix_vector-not-described-in-rnpm_set_ring_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-rnpm_queue-not-described-in-rnpm_set_ring_vector
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-subdevice_id-not-described-in-rnpm_wol_supported
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-t-not-described-in-rnpm_pf_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-t-not-described-in-rnpm_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:Function-parameter-or-member-txqueue-not-described-in-rnpm_tx_timeout
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-clean_all_port_resetting
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-control_mac_rx
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_assign_netdev_ops
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_can_rpu_start
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_check_mc_addr
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_clear_udp_tunnel_port
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_fix_queue_number
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_pf_service_event_schedule
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_pf_service_task
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_pf_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_rx_ring_reinit
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_service_timer
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_vlan_stags_flag
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_write_eitr
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_xmit_nop_frame_ring
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-rnpm_xmit_nop_frame_ring_temp
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-update_pf_vlan
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:no-previous-prototype-for-function-wait_all_port_resetting
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:variable-hw-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:variable-packets-is-used-uninitialized-whenever-if-condition-is-false
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_main.c:warning:variable-xdp_xmit-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Excess-function-parameter-vf_number-description-in-rnpm_check_for_ack_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Excess-function-parameter-vf_number-description-in-rnpm_check_for_msg_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Excess-function-parameter-vf_number-description-in-rnpm_read_mbx_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Function-parameter-or-member-mbx_id-not-described-in-rnpm_check_for_ack_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Function-parameter-or-member-mbx_id-not-described-in-rnpm_check_for_msg_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx.c:warning:Function-parameter-or-member-mbx_id-not-described-in-rnpm_read_mbx_pf
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-mbx_cookie_zalloc
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_fw_get_capablity
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_fw_reg_read
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_fw_send_cmd_wait
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_get_port_stats2
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_link_stat_mark_disable
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_mbx_fw_post_req
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_mbx_lldp_all_ports_enable
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_mbx_pluginout_evt_en
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:no-previous-prototype-for-function-rnpm_mbx_write_posted_locked
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:variable-err-is-uninitialized-when-used-here
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:variable-err-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:variable-hw-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_mbx_fw.c:warning:variable-value-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:Excess-function-parameter-atr_input-description-in-rnpm_atr_compute_perfect_hash_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:Excess-function-parameter-stream-description-in-rnpm_atr_compute_sig_hash_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:Function-parameter-or-member-common-not-described-in-rnpm_atr_compute_sig_hash_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:Function-parameter-or-member-input-not-described-in-rnpm_atr_compute_perfect_hash_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:Function-parameter-or-member-input-not-described-in-rnpm_atr_compute_sig_hash_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:no-previous-prototype-for-function-rnpm_reset_pipeline_n10
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_n10.c:warning:variable-status-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Excess-function-parameter-eeprom_data-description-in-rnpm_read_i2c_sff8472_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Excess-function-parameter-hw-description-in-rnpm_get_i2c_data
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Excess-function-parameter-hw-description-in-rnpm_get_phy_type_from_id
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-autoneg_wait_to_complete-not-described-in-rnpm_setup_phy_link_speed_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-dev_addr-not-described-in-rnpm_read_i2c_byte_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-dev_addr-not-described-in-rnpm_write_i2c_byte_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-device_type-not-described-in-rnpm_read_phy_reg_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-link_up-not-described-in-rnpm_check_phy_link_tnx
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-phy_id-not-described-in-rnpm_get_phy_type_from_id
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-sff8472_data-not-described-in-rnpm_read_i2c_sff8472_generic
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_phy.c:warning:Function-parameter-or-member-speed-not-described-in-rnpm_check_phy_link_tnx
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ptp.c:warning:no-previous-prototype-for-function-rnpm_ptp_setup_ptp
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_ptp.c:warning:variable-target-set-but-not-used
    |-- drivers-net-ethernet-mucse-rnpm-rnpm_sysfs.c:warning:no-previous-prototype-for-function-rnpm_mbx_get_pn_sn
    |-- drivers-net-ethernet-yunsilicon-xsc-common-xsc_core.h:warning:bitwise-or-with-non-zero-value-always-evaluates-to-true
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:no-previous-prototype-for-function-xsc_eth_change_link_status
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:no-previous-prototype-for-function-xsc_get_vf_config
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:no-previous-prototype-for-function-xsc_rx_get_linear_frag_sz
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:no-previous-prototype-for-function-xsc_rx_is_linear_skb
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:no-previous-prototype-for-function-xsc_select_queue
    |-- drivers-net-ethernet-yunsilicon-xsc-net-main.c:warning:variable-txq_ix-is-uninitialized-when-used-here
    |-- drivers-net-ethernet-yunsilicon-xsc-net-xsc_dcbnl.c:warning:variable-buffer_size-set-but-not-used
    |-- drivers-net-ethernet-yunsilicon-xsc-net-xsc_dcbnl.c:warning:variable-curr_pfc_en-is-uninitialized-when-used-here
    |-- drivers-net-ethernet-yunsilicon-xsc-net-xsc_dcbnl.c:warning:variable-prio2buffer-set-but-not-used
    |-- drivers-net-ethernet-yunsilicon-xsc-pci-main.c:warning:no-previous-prototype-for-function-xsc_devid_to_pcie_no
    |-- drivers-net-ethernet-yunsilicon-xsc-pci-xsc_pci_ctrl.c:warning:no-previous-prototype-for-function-find_kallsyms_lookup_name
    |-- drivers-net-ethernet-yunsilicon-xsc-pci-xsc_pci_ctrl.c:warning:no-previous-prototype-for-function-noop_pre
    |-- drivers-net-ethernet-yusur-k2-..-platform-ys_intr.c:warning:overlapping-comparisons-always-evaluate-to-false
    |-- drivers-net-ethernet-yusur-k2-ys_k2_tx.c:warning:variable-clean_tail_ptr-set-but-not-used
    |-- drivers-ub-urma-ubcore-ubcore_device.c:warning:no-previous-prototype-for-function-ubcore_find_tpf_device_legacy
    |-- drivers-ub-urma-ubcore-ubcore_tp.c:warning:no-previous-prototype-for-function-ubcore_modify_tp_state
    |-- drivers-ub-urma-uburma-uburma_main.c:warning:no-previous-prototype-for-function-uburma_dev_accessible_by_ns
    |-- drivers-ub-urma-uburma-uburma_main.c:warning:no-previous-prototype-for-function-uburma_set_dev_ns
    `-- drivers-ub-urma-uburma-uburma_main.c:warning:no-previous-prototype-for-function-uburma_set_ns_mode
elapsed time: 734m
configs tested: 31
configs skipped: 148
tested configs:
arm64                            allmodconfig   clang
arm64                             allnoconfig   gcc  
arm64                               defconfig   gcc  
arm64                 randconfig-001-20240319   gcc  
arm64                 randconfig-002-20240319   clang
arm64                 randconfig-003-20240319   clang
arm64                 randconfig-004-20240319   gcc  
x86_64                            allnoconfig   clang
x86_64                           allyesconfig   clang
x86_64       buildonly-randconfig-001-20240319   clang
x86_64       buildonly-randconfig-002-20240319   clang
x86_64       buildonly-randconfig-003-20240319   clang
x86_64       buildonly-randconfig-004-20240319   clang
x86_64       buildonly-randconfig-005-20240319   clang
x86_64       buildonly-randconfig-006-20240319   clang
x86_64                              defconfig   gcc  
x86_64                randconfig-001-20240319   clang
x86_64                randconfig-002-20240319   clang
x86_64                randconfig-003-20240319   clang
x86_64                randconfig-004-20240319   gcc  
x86_64                randconfig-005-20240319   gcc  
x86_64                randconfig-006-20240319   gcc  
x86_64                randconfig-011-20240319   clang
x86_64                randconfig-012-20240319   clang
x86_64                randconfig-013-20240319   gcc  
x86_64                randconfig-014-20240319   gcc  
x86_64                randconfig-015-20240319   clang
x86_64                randconfig-016-20240319   clang
x86_64                randconfig-071-20240319   gcc  
x86_64                randconfig-072-20240319   clang
x86_64                          rhel-8.3-rust   clang
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-5.10 28734/30000] drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true
                        
                        
by kernel test robot 19 Mar '24
                    by kernel test robot 19 Mar '24
19 Mar '24
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-5.10
head:   efcbd7d2c09d823eef22dff4bce44d8712ca50c4
commit: 23b8024ef459f8b615c223df6175ea17c6b50c48 [28734/30000] drivers: update yunsilicon drivers to version 1.1.0.375
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240319/202403192226.xeD34VaP-lkp@…)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240319/202403192226.xeD34VaP-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/202403192226.xeD34VaP-lkp@intel.com/
All warnings (new ones prefixed by >>):
   In file included from drivers/infiniband/hw/xsc/main.c:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/main.c:41:6: warning: no previous prototype for function 'xsc_get_sys_image_guid' [-Wmissing-prototypes]
      41 | void xsc_get_sys_image_guid(u8 *dev_addr, u8 *guid)
         |      ^
   drivers/infiniband/hw/xsc/main.c:41:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      41 | void xsc_get_sys_image_guid(u8 *dev_addr, u8 *guid)
         | ^
         | static 
   drivers/infiniband/hw/xsc/main.c:68:6: warning: variable 'max_sq_sg' set but not used [-Wunused-but-set-variable]
      68 |         int max_sq_sg;
         |             ^
   drivers/infiniband/hw/xsc/main.c:307:5: warning: no previous prototype for function 'xsc_ib_add_gid' [-Wmissing-prototypes]
     307 | int xsc_ib_add_gid(const struct ib_gid_attr *attr, void **context)
         |     ^
   drivers/infiniband/hw/xsc/main.c:307:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     307 | int xsc_ib_add_gid(const struct ib_gid_attr *attr, void **context)
         | ^
         | static 
   drivers/infiniband/hw/xsc/main.c:573:6: warning: no previous prototype for function 'xsc_get_guid' [-Wmissing-prototypes]
     573 | void xsc_get_guid(u8 *dev_addr, u8 *guid)
         |      ^
   drivers/infiniband/hw/xsc/main.c:573:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     573 | void xsc_get_guid(u8 *dev_addr, u8 *guid)
         | ^
         | static 
   drivers/infiniband/hw/xsc/main.c:602:6: warning: no previous prototype for function 'xsc_core_event' [-Wmissing-prototypes]
     602 | void xsc_core_event(struct xsc_core_device *xdev, enum xsc_dev_event event,
         |      ^
   drivers/infiniband/hw/xsc/main.c:602:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     602 | void xsc_core_event(struct xsc_core_device *xdev, enum xsc_dev_event event,
         | ^
         | static 
   drivers/infiniband/hw/xsc/main.c:773:30: warning: implicit conversion from enumeration type 'enum xsc_rdma_driver_id' to different enumeration type 'enum rdma_driver_id' [-Wenum-conversion]
     773 |         dev->ib_dev.ops.driver_id = RDMA_DRIVER_XSC5;
         |                                   ~ ^~~~~~~~~~~~~~~~
   7 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:11:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:408:5: warning: no previous prototype for function '_rdma_ctrl_exec_ioctl' [-Wmissing-prototypes]
     408 | int _rdma_ctrl_exec_ioctl(struct xsc_core_device *xdev, void *in, int in_size, void *out,
         |     ^
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:408:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     408 | int _rdma_ctrl_exec_ioctl(struct xsc_core_device *xdev, void *in, int in_size, void *out,
         | ^
         | static 
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:672:6: warning: no previous prototype for function 'xsc_rdma_ctrl_fini' [-Wmissing-prototypes]
     672 | void xsc_rdma_ctrl_fini(void)
         |      ^
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:672:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     672 | void xsc_rdma_ctrl_fini(void)
         | ^
         | static 
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:677:5: warning: no previous prototype for function 'xsc_rdma_ctrl_init' [-Wmissing-prototypes]
     677 | int xsc_rdma_ctrl_init(void)
         |     ^
   drivers/infiniband/hw/xsc/xsc_rdma_ctrl.c:677:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     677 | int xsc_rdma_ctrl_init(void)
         | ^
         | static 
   4 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/cq.c:9:
   In file included from drivers/infiniband/hw/xsc/xsc_ib.h:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/cq.c:361:5: warning: no previous prototype for function 'xsc_cqe_is_empty' [-Wmissing-prototypes]
     361 | int xsc_cqe_is_empty(struct xsc_ib_cq *cq)
         |     ^
   drivers/infiniband/hw/xsc/cq.c:361:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     361 | int xsc_cqe_is_empty(struct xsc_ib_cq *cq)
         | ^
         | static 
   2 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/qp.c:9:
   In file included from drivers/infiniband/hw/xsc/xsc_ib.h:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/qp.c:264:26: warning: variable 'context' set but not used [-Wunused-but-set-variable]
     264 |         struct xsc_ib_ucontext *context;
         |                                 ^
   drivers/infiniband/hw/xsc/qp.c:346:26: warning: variable 'context' set but not used [-Wunused-but-set-variable]
     346 |         struct xsc_ib_ucontext *context;
         |                                 ^
   drivers/infiniband/hw/xsc/qp.c:1208:5: warning: no previous prototype for function 'xsc_icrc_hdr' [-Wmissing-prototypes]
    1208 | u32 xsc_icrc_hdr(struct xsc_ib_dev *dev, void *pkt, u32 size, u32 *icrc)
         |     ^
   drivers/infiniband/hw/xsc/qp.c:1208:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1208 | u32 xsc_icrc_hdr(struct xsc_ib_dev *dev, void *pkt, u32 size, u32 *icrc)
         | ^
         | static 
   drivers/infiniband/hw/xsc/qp.c:1298:5: warning: no previous prototype for function 'build_qp1_send_v2' [-Wmissing-prototypes]
    1298 | int build_qp1_send_v2(struct xsc_ib_dev *dev,
         |     ^
   drivers/infiniband/hw/xsc/qp.c:1298:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1298 | int build_qp1_send_v2(struct xsc_ib_dev *dev,
         | ^
         | static 
   drivers/infiniband/hw/xsc/qp.c:1786:33: warning: unused function 'to_ib_mig_state' [-Wunused-function]
    1786 | static inline enum ib_mig_state to_ib_mig_state(int xsc_mig_state)
         |                                 ^~~~~~~~~~~~~~~
   6 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/mem.c:9:
   In file included from drivers/infiniband/hw/xsc/xsc_ib.h:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
>> drivers/infiniband/hw/xsc/mem.c:21:5: warning: no previous prototype for function 'xsc_find_chunk_cont_0' [-Wmissing-prototypes]
      21 | int xsc_find_chunk_cont_0(struct xsc_pa_chunk *chunk,
         |     ^
   drivers/infiniband/hw/xsc/mem.c:21:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      21 | int xsc_find_chunk_cont_0(struct xsc_pa_chunk *chunk,
         | ^
         | static 
   drivers/infiniband/hw/xsc/mem.c:193:6: warning: no previous prototype for function '__xsc_ib_cont_pages' [-Wmissing-prototypes]
     193 | void __xsc_ib_cont_pages(struct ib_umem *umem, u64 addr,
         |      ^
   drivers/infiniband/hw/xsc/mem.c:193:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     193 | void __xsc_ib_cont_pages(struct ib_umem *umem, u64 addr,
         | ^
         | static 
   drivers/infiniband/hw/xsc/mem.c:259:6: warning: no previous prototype for function '__xsc_ib_populate_pas' [-Wmissing-prototypes]
     259 | void __xsc_ib_populate_pas(struct xsc_ib_dev *dev, struct ib_umem *umem,
         |      ^
   drivers/infiniband/hw/xsc/mem.c:259:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     259 | void __xsc_ib_populate_pas(struct xsc_ib_dev *dev, struct ib_umem *umem,
         | ^
         | static 
   4 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/mr.c:15:
   In file included from drivers/infiniband/hw/xsc/xsc_ib.h:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/mr.c:75:6: warning: no previous prototype for function 'xsc_fill_pas' [-Wmissing-prototypes]
      75 | void xsc_fill_pas(int npages, u64 *pas, __be64 *req_pas)
         |      ^
   drivers/infiniband/hw/xsc/mr.c:75:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      75 | void xsc_fill_pas(int npages, u64 *pas, __be64 *req_pas)
         | ^
         | static 
>> drivers/infiniband/hw/xsc/mr.c:160:6: warning: variable 'using_peer_mem' set but not used [-Wunused-but-set-variable]
     160 |         int using_peer_mem = 0;
         |             ^
   3 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/ah.c:12:
   In file included from drivers/infiniband/hw/xsc/xsc_ib.h:15:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
--
   In file included from drivers/infiniband/hw/xsc/devx.c:11:
   In file included from drivers/net/ethernet/yunsilicon/xsc/common/driver.h:18:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/devx.c:75:1: warning: unused variable 'xsc_ib_object_XSC_IB_OBJECT_DEVX' [-Wunused-const-variable]
      75 | DECLARE_UVERBS_GLOBAL_METHODS(XSC_IB_OBJECT_DEVX,
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      76 |                               &UVERBS_METHOD(XSC_IB_METHOD_DEVX_OTHER));
         |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/rdma/uverbs_named_ioctl.h:67:40: note: expanded from macro 'DECLARE_UVERBS_GLOBAL_METHODS'
      67 |         static const struct uverbs_object_def UVERBS_OBJECT(_object_id) = {    \
         |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~
   include/rdma/uverbs_named_ioctl.h:19:27: note: expanded from macro 'UVERBS_OBJECT'
      19 | #define UVERBS_OBJECT(id)       _UVERBS_NAME(UVERBS_MODULE_NAME, _object_##id)
         |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/rdma/uverbs_named_ioctl.h:16:28: note: expanded from macro '_UVERBS_NAME'
      16 | #define _UVERBS_NAME(x, y)      _UVERBS_PASTE(x, y)
         |                                 ^~~~~~~~~~~~~~~~~~~
   include/rdma/uverbs_named_ioctl.h:15:29: note: expanded from macro '_UVERBS_PASTE'
      15 | #define _UVERBS_PASTE(x, y)     x ## y
         |                                 ^~~~~~
   <scratch space>:118:1: note: expanded from here
     118 | xsc_ib_object_XSC_IB_OBJECT_DEVX
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   2 warnings generated.
--
   In file included from drivers/infiniband/hw/xsc/private_dev.c:11:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/infiniband/hw/xsc/private_dev.c:429:5: warning: no previous prototype for function 'xsc_priv_dev_exec_ioctl' [-Wmissing-prototypes]
     429 | int xsc_priv_dev_exec_ioctl(struct xsc_core_device *xdev, void *in, int in_size, void *out,
         |     ^
   drivers/infiniband/hw/xsc/private_dev.c:429:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     429 | int xsc_priv_dev_exec_ioctl(struct xsc_core_device *xdev, void *in, int in_size, void *out,
         | ^
         | static 
   2 warnings generated.
--
   In file included from drivers/net/ethernet/yunsilicon/xsc/net/main.c:21:
>> drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h:1752:32: warning: bitwise or with non-zero value always evaluates to true [-Wtautological-bitwise-compare]
    1752 |         if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
         |             ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/ethernet/yunsilicon/xsc/net/main.c:29:
   In file included from drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_txrx.h:11:
   drivers/net/ethernet/yunsilicon/xsc/net/xsc_eth_debug.h:68:7: warning: variable 'pos' set but not used [-Wunused-but-set-variable]
      68 |                 int pos;
         |                     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:166:5: warning: no previous prototype for function 'xsc_rx_alloc_page_cache' [-Wmissing-prototypes]
     166 | int xsc_rx_alloc_page_cache(struct xsc_rq *rq, int node, u8 log_init_sz)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:166:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     166 | int xsc_rx_alloc_page_cache(struct xsc_rq *rq, int node, u8 log_init_sz)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:179:6: warning: no previous prototype for function 'xsc_rx_free_page_cache' [-Wmissing-prototypes]
     179 | void xsc_rx_free_page_cache(struct xsc_rq *rq)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:179:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     179 | void xsc_rx_free_page_cache(struct xsc_rq *rq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:197:6: warning: no previous prototype for function 'xsc_eth_cq_error_event' [-Wmissing-prototypes]
     197 | void xsc_eth_cq_error_event(struct xsc_core_cq *xcq, enum xsc_event event)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:197:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     197 | void xsc_eth_cq_error_event(struct xsc_core_cq *xcq, enum xsc_event event)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:211:6: warning: no previous prototype for function 'xsc_eth_completion_event' [-Wmissing-prototypes]
     211 | void xsc_eth_completion_event(struct xsc_core_cq *xcq)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     211 | void xsc_eth_completion_event(struct xsc_core_cq *xcq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:260:5: warning: no previous prototype for function 'xsc_eth_create_cq' [-Wmissing-prototypes]
     260 | int xsc_eth_create_cq(struct xsc_core_device *xdev, struct xsc_core_cq *xcq,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:260:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     260 | int xsc_eth_create_cq(struct xsc_core_device *xdev, struct xsc_core_cq *xcq,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:295:5: warning: no previous prototype for function 'xsc_eth_destroy_cq' [-Wmissing-prototypes]
     295 | int xsc_eth_destroy_cq(struct xsc_core_device *xdev, struct xsc_cq *cq)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:295:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     295 | int xsc_eth_destroy_cq(struct xsc_core_device *xdev, struct xsc_cq *cq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:333:6: warning: no previous prototype for function 'xsc_eth_free_cq' [-Wmissing-prototypes]
     333 | void xsc_eth_free_cq(struct xsc_cq *cq)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:333:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     333 | void xsc_eth_free_cq(struct xsc_cq *cq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:338:5: warning: no previous prototype for function 'xsc_eth_create_rss_qp_rqs' [-Wmissing-prototypes]
     338 | int xsc_eth_create_rss_qp_rqs(struct xsc_core_device *xdev,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:338:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     338 | int xsc_eth_create_rss_qp_rqs(struct xsc_core_device *xdev,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:359:6: warning: no previous prototype for function 'xsc_eth_qp_event' [-Wmissing-prototypes]
     359 | void xsc_eth_qp_event(struct xsc_core_qp *qp, int type)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:359:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     359 | void xsc_eth_qp_event(struct xsc_core_qp *qp, int type)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:389:5: warning: no previous prototype for function 'xsc_eth_create_qp_rq' [-Wmissing-prototypes]
     389 | int xsc_eth_create_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:389:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     389 | int xsc_eth_create_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:416:5: warning: no previous prototype for function 'xsc_eth_destroy_qp_rq' [-Wmissing-prototypes]
     416 | int xsc_eth_destroy_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:416:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     416 | int xsc_eth_destroy_qp_rq(struct xsc_core_device *xdev, struct xsc_rq *prq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:469:5: warning: no previous prototype for function 'xsc_eth_create_qp_sq' [-Wmissing-prototypes]
     469 | int xsc_eth_create_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:469:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     469 | int xsc_eth_create_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:488:5: warning: no previous prototype for function 'xsc_eth_modify_qp_sq' [-Wmissing-prototypes]
     488 | int xsc_eth_modify_qp_sq(struct xsc_core_device *xdev, struct xsc_modify_raw_qp_mbox_in *in)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:488:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     488 | int xsc_eth_modify_qp_sq(struct xsc_core_device *xdev, struct xsc_modify_raw_qp_mbox_in *in)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:506:5: warning: no previous prototype for function 'xsc_eth_destroy_qp_sq' [-Wmissing-prototypes]
     506 | int xsc_eth_destroy_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:506:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     506 | int xsc_eth_destroy_qp_sq(struct xsc_core_device *xdev, struct xsc_sq *psq)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:750:5: warning: no previous prototype for function 'xsc_eth_set_hw_mtu' [-Wmissing-prototypes]
     750 | int xsc_eth_set_hw_mtu(struct xsc_core_device *dev, u16 mtu, u16 rx_buf_sz)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:750:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     750 | int xsc_eth_set_hw_mtu(struct xsc_core_device *dev, u16 mtu, u16 rx_buf_sz)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:775:5: warning: no previous prototype for function 'xsc_eth_get_mac' [-Wmissing-prototypes]
     775 | int xsc_eth_get_mac(struct xsc_core_device *dev, char *mac)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:775:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     775 | int xsc_eth_get_mac(struct xsc_core_device *dev, char *mac)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:806:5: warning: no previous prototype for function 'xsc_eth_modify_qps_channel' [-Wmissing-prototypes]
     806 | int xsc_eth_modify_qps_channel(struct xsc_adapter *adapter, struct xsc_channel *c)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:806:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     806 | int xsc_eth_modify_qps_channel(struct xsc_adapter *adapter, struct xsc_channel *c)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:828:5: warning: no previous prototype for function 'xsc_eth_modify_qps' [-Wmissing-prototypes]
     828 | int xsc_eth_modify_qps(struct xsc_adapter *adapter,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:828:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     828 | int xsc_eth_modify_qps(struct xsc_adapter *adapter,
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:845:5: warning: no previous prototype for function 'xsc_rx_get_linear_frag_sz' [-Wmissing-prototypes]
     845 | u32 xsc_rx_get_linear_frag_sz(u32 mtu)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:845:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     845 | u32 xsc_rx_get_linear_frag_sz(u32 mtu)
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:852:6: warning: no previous prototype for function 'xsc_rx_is_linear_skb' [-Wmissing-prototypes]
     852 | bool xsc_rx_is_linear_skb(u32 mtu)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:852:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     852 | bool xsc_rx_is_linear_skb(u32 mtu)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1316:5: warning: no previous prototype for function 'xsc_eth_open_channel' [-Wmissing-prototypes]
    1316 | int xsc_eth_open_channel(struct xsc_adapter *adapter,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1316:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1316 | int xsc_eth_open_channel(struct xsc_adapter *adapter,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1527:5: warning: no previous prototype for function 'xsc_eth_open_channels' [-Wmissing-prototypes]
    1527 | int xsc_eth_open_channels(struct xsc_adapter *adapter)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1527:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1527 | int xsc_eth_open_channels(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1639:6: warning: no previous prototype for function 'xsc_eth_activate_channel' [-Wmissing-prototypes]
    1639 | void xsc_eth_activate_channel(struct xsc_channel *c)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1639:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1639 | void xsc_eth_activate_channel(struct xsc_channel *c)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1645:6: warning: no previous prototype for function 'xsc_eth_deactivate_channel' [-Wmissing-prototypes]
    1645 | void xsc_eth_deactivate_channel(struct xsc_channel *c)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1645:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1645 | void xsc_eth_deactivate_channel(struct xsc_channel *c)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1691:6: warning: no previous prototype for function 'xsc_eth_activate_priv_channels' [-Wmissing-prototypes]
    1691 | void xsc_eth_activate_priv_channels(struct xsc_adapter *adapter)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1691:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1691 | void xsc_eth_activate_priv_channels(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1706:6: warning: no previous prototype for function 'xsc_eth_deactivate_priv_channels' [-Wmissing-prototypes]
    1706 | void xsc_eth_deactivate_priv_channels(struct xsc_adapter *adapter)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1706:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1706 | void xsc_eth_deactivate_priv_channels(struct xsc_adapter *adapter)
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:1849:5: warning: no previous prototype for function 'xsc_eth_change_link_status' [-Wmissing-prototypes]
    1849 | int xsc_eth_change_link_status(struct xsc_adapter *adapter)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1849:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1849 | int xsc_eth_change_link_status(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1906:6: warning: no previous prototype for function 'xsc_eth_event_handler' [-Wmissing-prototypes]
    1906 | void xsc_eth_event_handler(void *arg)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1906:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1906 | void xsc_eth_event_handler(void *arg)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1914:5: warning: no previous prototype for function 'xsc_eth_enable_nic_hca' [-Wmissing-prototypes]
    1914 | int xsc_eth_enable_nic_hca(struct xsc_adapter *adapter)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1914:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1914 | int xsc_eth_enable_nic_hca(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1976:5: warning: no previous prototype for function 'xsc_eth_disable_nic_hca' [-Wmissing-prototypes]
    1976 | int xsc_eth_disable_nic_hca(struct xsc_adapter *adapter)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:1976:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1976 | int xsc_eth_disable_nic_hca(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2009:6: warning: no previous prototype for function 'xsc_eth_rss_params_change' [-Wmissing-prototypes]
    2009 | void xsc_eth_rss_params_change(struct xsc_adapter *adapter, u32 change, void *modify)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2009:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2009 | void xsc_eth_rss_params_change(struct xsc_adapter *adapter, u32 change, void *modify)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2319:6: warning: no previous prototype for function 'xsc_build_default_indir_rqt' [-Wmissing-prototypes]
    2319 | void xsc_build_default_indir_rqt(u32 *indirection_rqt, int len,
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2319:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2319 | void xsc_build_default_indir_rqt(u32 *indirection_rqt, int len,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2417:5: warning: no previous prototype for function 'xsc_eth_nic_mtu_changed' [-Wmissing-prototypes]
    2417 | int xsc_eth_nic_mtu_changed(struct xsc_adapter *priv)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2417:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2417 | int xsc_eth_nic_mtu_changed(struct xsc_adapter *priv)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2480:5: warning: no previous prototype for function 'xsc_set_vf_mac' [-Wmissing-prototypes]
    2480 | int xsc_set_vf_mac(struct net_device *netdev, int vf, u8 *mac)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2480:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2480 | int xsc_set_vf_mac(struct net_device *netdev, int vf, u8 *mac)
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:2497:5: warning: no previous prototype for function 'xsc_get_vf_config' [-Wmissing-prototypes]
    2497 | int xsc_get_vf_config(struct net_device *dev,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2497:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2497 | int xsc_get_vf_config(struct net_device *dev,
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2513:5: warning: no previous prototype for function 'set_feature_rxcsum' [-Wmissing-prototypes]
    2513 | int set_feature_rxcsum(struct net_device *netdev, bool enable)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2513:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2513 | int set_feature_rxcsum(struct net_device *netdev, bool enable)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2565:5: warning: no previous prototype for function 'xsc_eth_set_features' [-Wmissing-prototypes]
    2565 | int xsc_eth_set_features(struct net_device *netdev, netdev_features_t features)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2565:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2565 | int xsc_eth_set_features(struct net_device *netdev, netdev_features_t features)
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:2582:5: warning: no previous prototype for function 'xsc_select_queue' [-Wmissing-prototypes]
    2582 | u16 xsc_select_queue(struct net_device *dev, struct sk_buff *skb,
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2582:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2582 | u16 xsc_select_queue(struct net_device *dev, struct sk_buff *skb,
         | ^
         | static 
>> drivers/net/ethernet/yunsilicon/xsc/net/main.c:2591:10: warning: variable 'txq_ix' is uninitialized when used here [-Wuninitialized]
    2591 |                 return txq_ix;
         |                        ^~~~~~
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2585:12: note: initialize the variable 'txq_ix' to silence this warning
    2585 |         int txq_ix, up = 0;
         |                   ^
         |                    = 0
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2771:24: warning: no previous prototype for function 'xsc_tirc_get_default_config' [-Wmissing-prototypes]
    2771 | struct xsc_tirc_config xsc_tirc_get_default_config(enum xsc_traffic_types tt)
         |                        ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2771:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2771 | struct xsc_tirc_config xsc_tirc_get_default_config(enum xsc_traffic_types tt)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2776:6: warning: no previous prototype for function 'xsc_build_rss_params' [-Wmissing-prototypes]
    2776 | void xsc_build_rss_params(struct xsc_rss_params *rss_params, u16 num_channels)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2776:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2776 | void xsc_build_rss_params(struct xsc_rss_params *rss_params, u16 num_channels)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2794:6: warning: no previous prototype for function 'xsc_eth_build_nic_params' [-Wmissing-prototypes]
    2794 | void xsc_eth_build_nic_params(struct xsc_adapter *adapter, u32 ch_num, u32 tc_num)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2794:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2794 | void xsc_eth_build_nic_params(struct xsc_adapter *adapter, u32 ch_num, u32 tc_num)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2816:6: warning: no previous prototype for function 'xsc_eth_build_nic_netdev' [-Wmissing-prototypes]
    2816 | void xsc_eth_build_nic_netdev(struct xsc_adapter *adapter)
         |      ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2816:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2816 | void xsc_eth_build_nic_netdev(struct xsc_adapter *adapter)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2887:5: warning: no previous prototype for function 'xsc_eth_create_xdev_resources' [-Wmissing-prototypes]
    2887 | int xsc_eth_create_xdev_resources(struct xsc_core_device *xdev)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2887:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2887 | int xsc_eth_create_xdev_resources(struct xsc_core_device *xdev)
         | ^
         | static 
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2908:5: warning: no previous prototype for function 'xsc_eth_init_nic_rx' [-Wmissing-prototypes]
    2908 | int xsc_eth_init_nic_rx(struct xsc_adapter *adapter)
         |     ^
   drivers/net/ethernet/yunsilicon/xsc/net/main.c:2908:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    2908 | int xsc_eth_init_nic_rx(struct xsc_adapter *adapter)
         | ^
         | static 
   47 warnings generated.
..
vim +1752 drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h
  1745	
  1746	static inline bool
  1747	is_support_rdma(struct xsc_core_device *dev)
  1748	{
  1749		if (!dev)
  1750			return false;
  1751	
> 1752		if (dev->caps.hw_feature_flag | XSC_HW_RDMA_SUPPORT)
  1753			return true;
  1754	
  1755		return false;
  1756	}
  1757	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                     
                        
                    
                        
                            
                                
                            
                            [PATCH OLK-5.10] media: pvrusb2: fix use after free on context disconnection
                        
                        
by Guan Jing 19 Mar '24
                    by Guan Jing 19 Mar '24
19 Mar '24
                    
                        From: "Ricardo B. Marliere" <ricardo(a)marliere.net>
stable inclusion
from stable-v5.10.209
commit 3233d8bf7893550045682192cb227af7fa3defeb
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/I932VV
CVE: CVE-2023-52445
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id…
--------------------------------
[ Upstream commit ded85b0c0edd8f45fec88783d7555a5b982449c1 ]
Upon module load, a kthread is created targeting the
pvr2_context_thread_func function, which may call pvr2_context_destroy
and thus call kfree() on the context object. However, that might happen
before the usb hub_event handler is able to notify the driver. This
patch adds a sanity check before the invalid read reported by syzbot,
within the context disconnection call stack.
Reported-and-tested-by: syzbot+621409285c4156a009b3(a)syzkaller.appspotmail.com
Closes: https://lore.kernel.org/all/000000000000a02a4205fff8eb92@google.com/
Fixes: e5be15c63804 ("V4L/DVB (7711): pvrusb2: Fix race on module unload")
Signed-off-by: Ricardo B. Marliere <ricardo(a)marliere.net>
Acked-by: Mike Isely <isely(a)pobox.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco(a)xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab(a)kernel.org>
Signed-off-by: Sasha Levin <sashal(a)kernel.org>
Signed-off-by: Guan Jing <guanjing6(a)huawei.com>
---
 drivers/media/usb/pvrusb2/pvrusb2-context.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/media/usb/pvrusb2/pvrusb2-context.c b/drivers/media/usb/pvrusb2/pvrusb2-context.c
index 14170a5d72b3..1764674de98b 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-context.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-context.c
@@ -268,7 +268,8 @@ void pvr2_context_disconnect(struct pvr2_context *mp)
 {
 	pvr2_hdw_disconnect(mp->hdw);
 	mp->disconnect_flag = !0;
-	pvr2_context_notify(mp);
+	if (!pvr2_context_shutok())
+		pvr2_context_notify(mp);
 }
 
 
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                    
                        Andrei Matei (2):
  bpf: Fix verification of indirect var-off stack access
  bpf: Fix accesses to uninit stack slots
Eduard Zingerman (1):
  bpf: Allow reads from uninit stack
Kees Cook (1):
  bpf, verifier: Fix memory leak in array reallocation for stack state
Lorenz Bauer (2):
  bpf: verifier: Improve function state reallocation
  bpf: verifier: Use copy_array for jmp_history
Stanislav Fomichev (1):
  bpf: expose bpf_strtol and bpf_strtoul to all program types
 kernel/bpf/cgroup.c                           |   4 -
 kernel/bpf/helpers.c                          |   7 +-
 kernel/bpf/verifier.c                         | 302 +++++++++---------
 .../selftests/bpf/verifier/basic_stack.c      |  11 +-
 tools/testing/selftests/bpf/verifier/calls.c  |  17 +-
 .../bpf/verifier/helper_access_var_len.c      | 104 ++++--
 .../testing/selftests/bpf/verifier/int_ptr.c  |  16 +-
 .../selftests/bpf/verifier/raw_stack.c        |   7 +-
 .../selftests/bpf/verifier/search_pruning.c   |  13 +-
 tools/testing/selftests/bpf/verifier/sock.c   |  27 --
 .../testing/selftests/bpf/verifier/var_off.c  | 113 +++----
 11 files changed, 313 insertions(+), 308 deletions(-)
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            8
                            
                          
                          
                            
    
                          
                        
                     
                        
                    