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
 
- 30 participants
 - 21064 discussions
 
                        
                            
                                
                            
                            [openeuler:OLK-6.6 2628/2628] kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true
                        
                        
by kernel test robot 02 Aug '25
                    by kernel test robot 02 Aug '25
02 Aug '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   1ca83de3cbd1afcc3038a46ab4c4c4626b9a4712
commit: a1ad9b2ed459a3e3a4a2de50e03f53036fc7ec96 [2628/2628] interference: Add mutex interference track support
config: x86_64-buildonly-randconfig-2002-20250801 (https://download.01.org/0day-ci/archive/20250801/202508012102.cdVlsY7O-lkp@…)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250801/202508012102.cdVlsY7O-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/202508012102.cdVlsY7O-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> kernel/locking/mutex.c:623:6: warning: variable 'ifs_clock' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     623 |         if (__mutex_trylock(lock)) {
         |             ^~~~~~~~~~~~~~~~~~~~~
   kernel/locking/mutex.c:725:24: note: uninitialized use occurs here
     725 |         cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX);
         |                               ^~~~~~~~~
   kernel/locking/mutex.c:623:2: note: remove the 'if' if its condition is always false
     623 |         if (__mutex_trylock(lock)) {
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
     624 |                 if (ww_ctx)
         |                 ~~~~~~~~~~~
     625 |                         __ww_mutex_check_waiters(lock, ww_ctx);
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     626 | 
     627 |                 goto skip_wait;
         |                 ~~~~~~~~~~~~~~~
     628 |         }
         |         ~
   kernel/locking/mutex.c:576:15: note: initialize the variable 'ifs_clock' to silence this warning
     576 |         u64 ifs_clock;
         |                      ^
         |                       = 0
   1 warning generated.
vim +623 kernel/locking/mutex.c
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  565  
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  566  /*
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  567   * Lock a mutex (possibly interruptible), slowpath:
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  568   */
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  569  static __always_inline int __sched
2f064a59a11ff9 kernel/locking/mutex.c Peter Zijlstra            2021-06-11  570  __mutex_lock_common(struct mutex *lock, unsigned int state, unsigned int subclass,
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  571  		    struct lockdep_map *nest_lock, unsigned long ip,
b0267507dfd018 kernel/mutex.c         Tetsuo Handa              2013-10-17  572  		    struct ww_acquire_ctx *ww_ctx, const bool use_ww_ctx)
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  573  {
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  574  	struct mutex_waiter waiter;
a40ca56577f628 kernel/locking/mutex.c Waiman Long               2016-08-26  575  	struct ww_mutex *ww;
a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui                  2025-07-16  576  	u64 ifs_clock;
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  577  	int ret;
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  578  
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  579  	if (!use_ww_ctx)
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  580  		ww_ctx = NULL;
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  581  
427b18207a87f6 kernel/locking/mutex.c Peter Zijlstra            2016-12-23  582  	might_sleep();
ea9e0fb8fe1bdf kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  583  
e6b4457b05f36b kernel/locking/mutex.c Peter Zijlstra            2021-06-30  584  	MUTEX_WARN_ON(lock->magic != lock);
6c11c6e3d5e9e5 kernel/locking/mutex.c Sebastian Andrzej Siewior 2019-07-03  585  
a40ca56577f628 kernel/locking/mutex.c Waiman Long               2016-08-26  586  	ww = container_of(lock, struct ww_mutex, base);
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  587  	if (ww_ctx) {
0422e83d84ae24 kernel/locking/mutex.c Chris Wilson              2016-05-26  588  		if (unlikely(ww_ctx == READ_ONCE(ww->ctx)))
0422e83d84ae24 kernel/locking/mutex.c Chris Wilson              2016-05-26  589  			return -EALREADY;
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  590  
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  591  		/*
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  592  		 * Reset the wounded flag after a kill. No other process can
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  593  		 * race and wound us here since they can't have a valid owner
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  594  		 * pointer if we don't have any locks held.
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  595  		 */
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  596  		if (ww_ctx->acquired == 0)
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  597  			ww_ctx->wounded = 0;
cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra            2021-08-15  598  
cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra            2021-08-15  599  #ifdef CONFIG_DEBUG_LOCK_ALLOC
cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra            2021-08-15  600  		nest_lock = &ww_ctx->dep_map;
cf702eddcd03dc kernel/locking/mutex.c Peter Zijlstra            2021-08-15  601  #endif
0422e83d84ae24 kernel/locking/mutex.c Chris Wilson              2016-05-26  602  	}
0422e83d84ae24 kernel/locking/mutex.c Chris Wilson              2016-05-26  603  
41719b03091911 kernel/mutex.c         Peter Zijlstra            2009-01-14  604  	preempt_disable();
e4c70a6629f9c7 kernel/mutex.c         Peter Zijlstra            2011-05-24  605  	mutex_acquire_nest(&lock->dep_map, subclass, 0, nest_lock, ip);
c02260277e4720 kernel/mutex.c         Frederic Weisbecker       2009-12-02  606  
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  607  	trace_contention_begin(lock, LCB_F_MUTEX | LCB_F_SPIN);
e274795ea7b7ca kernel/locking/mutex.c Peter Zijlstra            2017-01-11  608  	if (__mutex_trylock(lock) ||
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  609  	    mutex_optimistic_spin(lock, ww_ctx, NULL)) {
76916515d9d84e kernel/locking/mutex.c Davidlohr Bueso           2014-07-30  610  		/* got the lock, yay! */
3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra            2016-08-23  611  		lock_acquired(&lock->dep_map, ip);
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  612  		if (ww_ctx)
3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra            2016-08-23  613  			ww_mutex_set_context_fastpath(ww, ww_ctx);
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  614  		trace_contention_end(lock, 0);
ac6e60ee405aa3 kernel/mutex.c         Chris Mason               2009-01-14  615  		preempt_enable();
ac6e60ee405aa3 kernel/mutex.c         Chris Mason               2009-01-14  616  		return 0;
ac6e60ee405aa3 kernel/mutex.c         Chris Mason               2009-01-14  617  	}
ac6e60ee405aa3 kernel/mutex.c         Chris Mason               2009-01-14  618  
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  619  	raw_spin_lock(&lock->wait_lock);
1e820c9608eace kernel/locking/mutex.c Jason Low                 2014-06-11  620  	/*
3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra            2016-08-23  621  	 * After waiting to acquire the wait_lock, try again.
1e820c9608eace kernel/locking/mutex.c Jason Low                 2014-06-11  622  	 */
659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle            2016-12-21 @623  	if (__mutex_trylock(lock)) {
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  624  		if (ww_ctx)
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  625  			__ww_mutex_check_waiters(lock, ww_ctx);
659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  626  
ec83f425dbca47 kernel/mutex.c         Davidlohr Bueso           2013-06-28  627  		goto skip_wait;
659cf9f5824a12 kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  628  	}
ec83f425dbca47 kernel/mutex.c         Davidlohr Bueso           2013-06-28  629  
9a11b49a805665 kernel/mutex.c         Ingo Molnar               2006-07-03  630  	debug_mutex_lock_common(lock, &waiter);
c0afb0ffc06e6b kernel/locking/mutex.c Peter Zijlstra            2021-08-15  631  	waiter.task = current;
b857174e68e26f kernel/locking/mutex.c Sebastian Andrzej Siewior 2021-08-19  632  	if (use_ww_ctx)
c0afb0ffc06e6b kernel/locking/mutex.c Peter Zijlstra            2021-08-15  633  		waiter.ww_ctx = ww_ctx;
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  634  
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  635  	lock_contended(&lock->dep_map, ip);
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  636  
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  637  	if (!use_ww_ctx) {
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  638  		/* add waiting tasks to the end of the waitqueue (FIFO): */
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  639  		__mutex_add_waiter(lock, &waiter, &lock->wait_list);
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  640  	} else {
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  641  		/*
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  642  		 * Add in stamp order, waking up waiters that must kill
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  643  		 * themselves.
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  644  		 */
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  645  		ret = __ww_mutex_add_waiter(&waiter, lock, ww_ctx);
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  646  		if (ret)
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  647  			goto err_early_kill;
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  648  	}
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  649  
642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso           2017-01-03  650  	set_current_state(state);
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  651  	trace_contention_begin(lock, LCB_F_MUTEX);
a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui                  2025-07-16  652  	cgroup_ifs_enter_lock(&ifs_clock);
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  653  	for (;;) {
048661a1f963e9 kernel/locking/mutex.c Peter Zijlstra            2021-06-30  654  		bool first;
048661a1f963e9 kernel/locking/mutex.c Peter Zijlstra            2021-06-30  655  
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  656  		/*
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  657  		 * Once we hold wait_lock, we're serialized against
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  658  		 * mutex_unlock() handing the lock off to us, do a trylock
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  659  		 * before testing the error conditions to make sure we pick up
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  660  		 * the handoff.
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  661  		 */
e274795ea7b7ca kernel/locking/mutex.c Peter Zijlstra            2017-01-11  662  		if (__mutex_trylock(lock))
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  663  			goto acquired;
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  664  
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  665  		/*
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  666  		 * Check for signals and kill conditions while holding
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  667  		 * wait_lock. This ensures the lock cancellation is ordered
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  668  		 * against mutex_unlock() and wake-ups do not go missing.
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  669  		 */
3bb5f4ac55dd91 kernel/locking/mutex.c Davidlohr Bueso           2019-01-03  670  		if (signal_pending_state(state, current)) {
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  671  			ret = -EINTR;
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  672  			goto err;
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  673  		}
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  674  
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  675  		if (ww_ctx) {
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  676  			ret = __ww_mutex_check_kill(lock, &waiter, ww_ctx);
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  677  			if (ret)
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  678  				goto err;
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  679  		}
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  680  
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  681  		raw_spin_unlock(&lock->wait_lock);
bd2f55361f1834 kernel/mutex.c         Thomas Gleixner           2011-03-21  682  		schedule_preempt_disabled();
9d659ae14b545c kernel/locking/mutex.c Peter Zijlstra            2016-08-23  683  
6baa5c60a97d7f kernel/locking/mutex.c Nicolai Hähnle            2016-12-21  684  		first = __mutex_waiter_is_first(lock, &waiter);
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  685  
642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso           2017-01-03  686  		set_current_state(state);
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  687  		/*
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  688  		 * Here we order against unlock; we must either see it change
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  689  		 * state back to RUNNING and fall through the next schedule(),
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  690  		 * or we must see its unlock and acquire.
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  691  		 */
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  692  		if (__mutex_trylock_or_handoff(lock, first))
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  693  			break;
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  694  
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  695  		if (first) {
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  696  			trace_contention_begin(lock, LCB_F_MUTEX | LCB_F_SPIN);
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  697  			if (mutex_optimistic_spin(lock, ww_ctx, &waiter))
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  698  				break;
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  699  			trace_contention_begin(lock, LCB_F_MUTEX);
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  700  		}
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  701  
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  702  		raw_spin_lock(&lock->wait_lock);
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  703  	}
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  704  	raw_spin_lock(&lock->wait_lock);
5bbd7e64437833 kernel/locking/mutex.c Peter Zijlstra            2016-09-02  705  acquired:
642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso           2017-01-03  706  	__set_current_state(TASK_RUNNING);
51587bcf31d070 kernel/locking/mutex.c Davidlohr Bueso           2015-01-19  707  
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  708  	if (ww_ctx) {
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  709  		/*
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  710  		 * Wound-Wait; we stole the lock (!first_waiter), check the
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  711  		 * waiters as anyone might want to wound us.
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  712  		 */
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  713  		if (!ww_ctx->is_wait_die &&
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  714  		    !__mutex_waiter_is_first(lock, &waiter))
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  715  			__ww_mutex_check_waiters(lock, ww_ctx);
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  716  	}
08295b3b5beec9 kernel/locking/mutex.c Thomas Hellstrom          2018-06-15  717  
3a010c493271f0 kernel/locking/mutex.c Zqiang                    2021-05-17  718  	__mutex_remove_waiter(lock, &waiter);
3ca0ff571b092e kernel/locking/mutex.c Peter Zijlstra            2016-08-23  719  
ec83f425dbca47 kernel/mutex.c         Davidlohr Bueso           2013-06-28  720  	debug_mutex_free_waiter(&waiter);
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  721  
ec83f425dbca47 kernel/mutex.c         Davidlohr Bueso           2013-06-28  722  skip_wait:
ec83f425dbca47 kernel/mutex.c         Davidlohr Bueso           2013-06-28  723  	/* got the lock - cleanup and rejoice! */
c7e78cff6b7518 kernel/mutex.c         Peter Zijlstra            2008-10-16  724  	lock_acquired(&lock->dep_map, ip);
a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui                  2025-07-16  725  	cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX);
ee042be16cb455 kernel/locking/mutex.c Namhyung Kim              2022-03-22  726  	trace_contention_end(lock, 0);
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  727  
5de2055d31ea88 kernel/locking/mutex.c Waiman Long               2021-03-16  728  	if (ww_ctx)
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  729  		ww_mutex_lock_acquired(ww, ww_ctx);
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  730  
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  731  	raw_spin_unlock(&lock->wait_lock);
41719b03091911 kernel/mutex.c         Peter Zijlstra            2009-01-14  732  	preempt_enable();
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  733  	return 0;
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  734  
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  735  err:
642fa448ae6b3a kernel/locking/mutex.c Davidlohr Bueso           2017-01-03  736  	__set_current_state(TASK_RUNNING);
3a010c493271f0 kernel/locking/mutex.c Zqiang                    2021-05-17  737  	__mutex_remove_waiter(lock, &waiter);
55f036ca7e74b8 kernel/locking/mutex.c Peter Ziljstra            2018-06-15  738  err_early_kill:
a1ad9b2ed459a3 kernel/locking/mutex.c Pu Lehui                  2025-07-16  739  	cgroup_ifs_leave_lock(ifs_clock, IFS_MUTEX);
dc1f7893a70fe4 kernel/locking/mutex.c Peter Zijlstra            2022-03-30  740  	trace_contention_end(lock, ret);
ebf4c55c1ddbab kernel/locking/mutex.c Thomas Gleixner           2021-08-15  741  	raw_spin_unlock(&lock->wait_lock);
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  742  	debug_mutex_free_waiter(&waiter);
5facae4f3549b5 kernel/locking/mutex.c Qian Cai                  2019-09-19  743  	mutex_release(&lock->dep_map, ip);
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  744  	preempt_enable();
040a0a37100563 kernel/mutex.c         Maarten Lankhorst         2013-06-24  745  	return ret;
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  746  }
6053ee3b32e343 kernel/mutex.c         Ingo Molnar               2006-01-09  747  
:::::: The code at line 623 was first introduced by commit
:::::: 659cf9f5824a12e6b50785e4e9cf1adf8a3adbd0 locking/ww_mutex: Optimize ww-mutexes by waking at most one waiter for backoff when acquiring the lock
:::::: TO: Nicolai Hähnle <Nicolai.Haehnle(a)amd.com>
:::::: CC: Ingo Molnar <mingo(a)kernel.org>
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS] BUILD REGRESSION 50f79538c3031890b9ca9755ccf596a73ecb0a0a
                        
                        
by kernel test robot 01 Aug '25
                    by kernel test robot 01 Aug '25
01 Aug '25
                    
                        tree/branch: https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
branch HEAD: 50f79538c3031890b9ca9755ccf596a73ecb0a0a  !17369  ext4: inline: fix len overflow in ext4_prepare_inline_data
Error/Warning (recently discovered and may have been fixed):
    https://lore.kernel.org/oe-kbuild-all/202507030343.E83xAhC0-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202507150036.2TFl4VP9-lkp@intel.com
    https://lore.kernel.org/oe-kbuild-all/202508011420.p4KE9Bax-lkp@intel.com
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:184:13: error: variable 'fault_level' set but not used [-Werror=unused-but-set-variable]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:185:13: error: variable 'pcie_src' set but not used [-Werror=unused-but-set-variable]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:384:5: error: no previous prototype for 'sss_init_hwdev' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:487:6: error: no previous prototype for 'sss_deinit_hwdev' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:518:6: error: no previous prototype for 'sss_hwdev_stop' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:531:6: error: no previous prototype for 'sss_hwdev_detach' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_init.c:539:6: error: no previous prototype for 'sss_hwdev_shutdown' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_io_flush.c:91:5: error: no previous prototype for 'sss_hwdev_flush_io' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_mgmt_info.c:54:5: error: no previous prototype for 'sss_init_mgmt_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwdev_mgmt_info.c:90:6: error: no previous prototype for 'sss_deinit_mgmt_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm.c:682:5: error: no previous prototype for 'sss_sync_send_adm_msg' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:689:5: error: no previous prototype for 'sss_hwif_init_adm' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:738:6: error: no previous prototype for 'sss_hwif_deinit_adm' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_adm_init.c:752:6: error: no previous prototype for 'sss_complete_adm_event' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ceq.c:130:13: error: no previous prototype for 'sss_ceq_intr_handle' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ceq.c:95:6: error: no previous prototype for 'sss_init_ceqe_desc' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:277:5: error: no previous prototype for 'sss_reinit_ctrlq_ctx' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:367:6: error: no previous prototype for 'sss_deinit_ctrlq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:501:5: error: no previous prototype for 'sss_init_ctrlq_channel' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:538:6: error: no previous prototype for 'sss_deinit_ctrlq_channel' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:547:6: error: no previous prototype for 'sss_ctrlq_flush_sync_cmd' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_ctrlq_init.c:573:5: error: no previous prototype for 'sss_wait_ctrlq_stop' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:104:4: error: no previous prototype for 'sss_get_pcie_itf_id' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:113:20: error: no previous prototype for 'sss_get_func_type' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:131:5: error: no previous prototype for 'sss_get_glb_pf_vf_offset' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:140:4: error: no previous prototype for 'sss_get_ppf_id' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:15:5: error: no previous prototype for 'sss_alloc_db_addr' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:37:6: error: no previous prototype for 'sss_free_db_addr' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:52:6: error: no previous prototype for 'sss_chip_set_msix_auto_mask' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:70:6: error: no previous prototype for 'sss_chip_set_msix_state' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:86:5: error: no previous prototype for 'sss_get_global_func_id' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_export.c:95:4: error: no previous prototype for 'sss_get_pf_id_of_vf' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_irq.c:111:6: error: no previous prototype for 'sss_deinit_irq_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_irq.c:54:5: error: no previous prototype for 'sss_init_irq_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:252:5: error: no previous prototype for 'sss_init_func_mbx_msg' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:401:5: error: no previous prototype for 'sss_hwif_init_mbx' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:449:6: error: no previous prototype for 'sss_hwif_deinit_mbx' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mbx_init.c:872:6: error: no previous prototype for 'sss_recv_mbx_aeq_handler' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:248:6: error: no previous prototype for 'sss_mgmt_msg_aeqe_handler' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:271:6: error: no previous prototype for 'sss_force_complete_all' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_hwif_mgmt_init.c:290:6: error: no previous prototype for 'sss_flush_mgmt_workq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_error.c:34:18: error: no previous prototype for 'sss_detect_pci_error' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:37:6: error: no previous prototype for 'sss_init_uld_lock' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:42:6: error: no previous prototype for 'sss_lock_uld' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:47:6: error: no previous prototype for 'sss_unlock_uld' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:52:14: error: no previous prototype for 'sss_get_uld_names' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:57:22: error: no previous prototype for 'sss_get_uld_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_global.c:62:6: error: no previous prototype for 'sss_attach_is_enable' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_probe.c:276:5: error: no previous prototype for 'sss_attach_uld_driver' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_probe.c:548:5: error: no previous prototype for 'sss_pci_probe' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:120:6: error: no previous prototype for 'sss_detach_all_uld_driver' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:138:6: error: no previous prototype for 'sss_dettach_uld_dev' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:179:6: error: no previous prototype for 'sss_deinit_function' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:200:6: error: no previous prototype for 'sss_unmap_pci_bar' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:211:5: error: no previous prototype for 'sss_deinit_adapter' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:237:6: error: no previous prototype for 'sss_deinit_pci_dev' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:249:6: error: no previous prototype for 'sss_pci_remove' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_remove.c:90:6: error: no previous prototype for 'sss_detach_uld_driver' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/hw/sss_pci_shutdown.c:28:6: error: no previous prototype for 'sss_pci_shutdown' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool.c:467:6: error: no previous prototype for 'sss_nic_set_ethtool_ops' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_api.c:644:5: error: no previous prototype for 'sss_nic_finish_loop_test' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:120:5: error: no previous prototype for 'sss_nic_set_link_ksettings' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:44:5: error: no previous prototype for 'sss_nic_get_sset_count' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:62:6: error: no previous prototype for 'sss_nic_get_ethtool_stats' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:78:6: error: no previous prototype for 'sss_nic_get_strings' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ethtool_stats.c:98:5: error: no previous prototype for 'sss_nic_get_link_ksettings' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_filter.c:468:6: error: no previous prototype for 'sss_nic_set_rx_mode_work' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_filter.c:67:6: error: no previous prototype for 'sss_nic_clean_mac_list_filter' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_irq.c:266:5: error: no previous prototype for 'sss_nic_request_qp_irq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_irq.c:311:6: error: no previous prototype for 'sss_nic_release_qp_irq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:1029:22: error: no previous prototype for 'get_nic_uld_info' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:878:6: error: no previous prototype for 'sss_nic_port_module_cable_plug' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:884:6: error: no previous prototype for 'sss_nic_port_module_cable_unplug' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_main.c:890:6: error: no previous prototype for 'sss_nic_port_module_link_err' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:297:5: error: no previous prototype for 'sss_nic_ndo_vlan_rx_add_vid' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:318:5: error: no previous prototype for 'sss_nic_ndo_vlan_rx_kill_vid' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:506:5: error: no previous prototype for 'sss_nic_ndo_set_vf_link_state' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:787:6: error: no previous prototype for 'sss_nic_set_netdev_ops' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_netdev_ops.c:795:6: error: no previous prototype for 'sss_nic_is_netdev_ops_match' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:350:6: error: no previous prototype for 'sss_nic_flush_tcam_list' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:366:6: error: no previous prototype for 'sss_nic_flush_tcam_node_list' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:382:6: error: no previous prototype for 'sss_nic_flush_rx_flow_rule' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:397:6: error: no previous prototype for 'sss_nic_flush_tcam' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:797:5: error: no previous prototype for 'sss_nic_ethtool_update_flow' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:842:5: error: no previous prototype for 'sss_nic_ethtool_delete_flow' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:864:5: error: no previous prototype for 'sss_nic_ethtool_get_flow' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:887:5: error: no previous prototype for 'sss_nic_ethtool_get_all_flows' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_ntuple.c:905:6: error: no previous prototype for 'sss_nic_validate_channel_setting_in_ntuple' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:136:6: error: no previous prototype for 'sss_nic_free_rq_res_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:208:5: error: no previous prototype for 'sss_nic_init_rq_desc_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:235:6: error: no previous prototype for 'sss_nic_free_rq_desc_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:241:5: error: no previous prototype for 'sss_nic_alloc_rq_desc_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:267:5: error: no previous prototype for 'sss_nic_update_rx_rss' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:282:6: error: no previous prototype for 'sss_nic_reset_rx_rss' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_init.c:80:5: error: no previous prototype for 'sss_nic_alloc_rq_res_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_rx_reset.c:179:6: error: no previous prototype for 'sss_nic_rq_watchdog_handler' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:104:6: error: no previous prototype for 'sss_nic_init_all_sq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:128:5: error: no previous prototype for 'sss_nic_alloc_sq_desc_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:153:6: error: no previous prototype for 'sss_nic_free_sq_desc_group' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:200:6: error: no previous prototype for 'sss_nic_flush_all_sq' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:42:5: error: no previous prototype for 'sss_nic_alloc_sq_resource' [-Werror=missing-prototypes]
    drivers/net/ethernet/3snic/sssnic/nic/sss_nic_tx_init.c:87:6: error: no previous prototype for 'sss_nic_free_sq_resource' [-Werror=missing-prototypes]
    include/linux/uaccess.h:112:17: warning: 'cap' may be used uninitialized [-Wmaybe-uninitialized]
    mm/mmu_gather.o: warning: objtool: missing symbol for section .text
Error/Warning ids grouped by kconfigs:
recent_errors
|-- arm64-allmodconfig
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_deinit_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_detach
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_hwdev_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:no-previous-prototype-for-sss_init_hwdev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-fault_level-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_init.c:error:variable-pcie_src-set-but-not-used
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_io_flush.c:error:no-previous-prototype-for-sss_hwdev_flush_io
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_deinit_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwdev_mgmt_info.c:error:no-previous-prototype-for-sss_init_mgmt_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm.c:error:no-previous-prototype-for-sss_sync_send_adm_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_complete_adm_event
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_deinit_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_adm_init.c:error:no-previous-prototype-for-sss_hwif_init_adm
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_ceq_intr_handle
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ceq.c:error:no-previous-prototype-for-sss_init_ceqe_desc
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_ctrlq_flush_sync_cmd
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_deinit_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_init_ctrlq_channel
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_reinit_ctrlq_ctx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_ctrlq_init.c:error:no-previous-prototype-for-sss_wait_ctrlq_stop
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_alloc_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_auto_mask
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_chip_set_msix_state
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_free_db_addr
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_func_type
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_glb_pf_vf_offset
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_global_func_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pcie_itf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_pf_id_of_vf
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_export.c:error:no-previous-prototype-for-sss_get_ppf_id
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_deinit_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_irq.c:error:no-previous-prototype-for-sss_init_irq_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_deinit_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_hwif_init_mbx
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_init_func_mbx_msg
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mbx_init.c:error:no-previous-prototype-for-sss_recv_mbx_aeq_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_flush_mgmt_workq
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_force_complete_all
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_hwif_mgmt_init.c:error:no-previous-prototype-for-sss_mgmt_msg_aeqe_handler
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_error.c:error:no-previous-prototype-for-sss_detect_pci_error
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_attach_is_enable
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_get_uld_names
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_init_uld_lock
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_lock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_global.c:error:no-previous-prototype-for-sss_unlock_uld
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_attach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_probe.c:error:no-previous-prototype-for-sss_pci_probe
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_adapter
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_function
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_deinit_pci_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_all_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_detach_uld_driver
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_dettach_uld_dev
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_pci_remove
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_remove.c:error:no-previous-prototype-for-sss_unmap_pci_bar
|   |-- drivers-net-ethernet-3snic-sssnic-hw-sss_pci_shutdown.c:error:no-previous-prototype-for-sss_pci_shutdown
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool.c:error:no-previous-prototype-for-sss_nic_set_ethtool_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_api.c:error:no-previous-prototype-for-sss_nic_finish_loop_test
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_ethtool_stats
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_sset_count
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_get_strings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ethtool_stats.c:error:no-previous-prototype-for-sss_nic_set_link_ksettings
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_clean_mac_list_filter
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_filter.c:error:no-previous-prototype-for-sss_nic_set_rx_mode_work
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_release_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_irq.c:error:no-previous-prototype-for-sss_nic_request_qp_irq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-get_nic_uld_info
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_plug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_cable_unplug
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_main.c:error:no-previous-prototype-for-sss_nic_port_module_link_err
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_is_netdev_ops_match
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_set_vf_link_state
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_add_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_ndo_vlan_rx_kill_vid
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_netdev_ops.c:error:no-previous-prototype-for-sss_nic_set_netdev_ops
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_delete_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_all_flows
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_get_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_ethtool_update_flow
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_rx_flow_rule
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_flush_tcam_node_list
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_ntuple.c:error:no-previous-prototype-for-sss_nic_validate_channel_setting_in_ntuple
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_alloc_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_free_rq_res_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_init_rq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_reset_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_init.c:error:no-previous-prototype-for-sss_nic_update_rx_rss
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_rx_reset.c:error:no-previous-prototype-for-sss_nic_rq_watchdog_handler
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_alloc_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_flush_all_sq
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_desc_group
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_free_sq_resource
|   |-- drivers-net-ethernet-3snic-sssnic-nic-sss_nic_tx_init.c:error:no-previous-prototype-for-sss_nic_init_all_sq
|   `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- arm64-allnoconfig
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-001-20250714
|   `-- include-linux-uaccess.h:warning:cap-may-be-used-uninitialized
|-- arm64-randconfig-001-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-002-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   |-- mm-rmap.c:warning:no-previous-prototype-for-is_vma_temporary_stack
|   |-- mm-rodata_test.c:warning:no-previous-prototype-for-rodata_test
|   |-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|   `-- net-9p-client.c:warning:type-may-be-used-uninitialized-in-this-function
|-- arm64-randconfig-003-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_enter
|   |-- drivers-tty-tty_buffer.c:error:implicit-declaration-of-function-printk_safe_exit
|   |-- mm-memory.c:error:implicit-declaration-of-function-hugetlb_insert_hugepage_pte_by_pa
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- arm64-randconfig-r121-20250729
|   |-- mm-mem_reliable.c:sparse:sparse:invalid-assignment:
|   |-- mm-mem_reliable.c:sparse:sparse:symbol-reliable_pagecache_max_bytes_write-was-not-declared.-Should-it-be-static
|   `-- mm-page_alloc.c:sparse:sparse:incorrect-type-in-argument-(different-base-types)-expected-restricted-gfp_t-usertype-flags-got-unsigned-int
|-- x86_64-allnoconfig
|   |-- mm-mmu_gather.o:warning:objtool:missing-symbol-for-section-.text
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-allyesconfig
|   `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-buildonly-randconfig-002-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-003-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-memcontrol.o:warning:objtool:missing-symbol-for-section-.text.unlikely.
|   |-- mm-mmu_gather.o:warning:objtool:missing-symbol-for-section-.text
|   |-- mm-rodata_test.o:warning:objtool:missing-symbol-for-section-.text
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-buildonly-randconfig-004-20250801
|   `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-buildonly-randconfig-006-20250801
|   `-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|-- x86_64-defconfig
|   `-- include-asm-generic-bug.h:warning:mcu_ctrl-may-be-used-uninitialized-in-this-function
|-- x86_64-randconfig-102-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled
|-- x86_64-randconfig-103-20250801
|   |-- block-blk-throttle.c:preceding-lock-on-line
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-104-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-121-20250801
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|-- x86_64-randconfig-122-20250801
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   |-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
|   `-- mm-vmscan.c:error:implicit-declaration-of-function-kernel_swap_enabled-Werror-Wimplicit-function-declaration
|-- x86_64-randconfig-123-20250801
|   |-- block-blk-cgroup.c:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
|   |-- include-linux-backing-dev.h:sparse:sparse:incompatible-types-in-comparison-expression-(different-address-spaces):
|   `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
`-- x86_64-rhel-9.4-rust
    |-- drivers-pinctrl-core.c:error:Cannot-parse-struct-or-union
    `-- mm-hugetlb.c:warning:no-previous-prototype-for-function-free_huge_page_to_dhugetlb_pool
elapsed time: 731m
configs tested: 17
configs skipped: 122
tested configs:
arm64                        allmodconfig    gcc-15.1.0
arm64                         allnoconfig    gcc-15.1.0
arm64                           defconfig    gcc-15.1.0
arm64             randconfig-001-20250801    gcc-12.5.0
arm64             randconfig-002-20250801    gcc-10.5.0
arm64             randconfig-003-20250801    gcc-11.5.0
arm64             randconfig-004-20250801    gcc-6.5.0
x86_64                        allnoconfig    clang-20
x86_64                       allyesconfig    clang-20
x86_64  buildonly-randconfig-001-20250801    gcc-12
x86_64  buildonly-randconfig-002-20250801    clang-20
x86_64  buildonly-randconfig-003-20250801    clang-20
x86_64  buildonly-randconfig-004-20250801    clang-20
x86_64  buildonly-randconfig-005-20250801    gcc-12
x86_64  buildonly-randconfig-006-20250801    clang-20
x86_64                          defconfig    gcc-11
x86_64                      rhel-9.4-rust    clang-22
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 2628/2628] versioncheck: ./drivers/crypto/sedriver/wst_se_common_type.h: 19 linux/version.h not needed.
                        
                        
by kernel test robot 01 Aug '25
                    by kernel test robot 01 Aug '25
01 Aug '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   1ca83de3cbd1afcc3038a46ab4c4c4626b9a4712
commit: 3fb87845837f13b19d7b20349801e75f2e303293 [2628/2628] crypto: loongson: add wst se chip support
reproduce: (https://download.01.org/0day-ci/archive/20250801/202508011313.0ZBhYReL-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/202508011313.0ZBhYReL-lkp@intel.com/
versioncheck warnings: (new ones prefixed by >>)
   INFO PATH=/opt/cross/clang-20/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
   /usr/bin/timeout -k 100 3h /usr/bin/make KCFLAGS= -fno-crash-diagnostics -Wno-error=return-type -Wreturn-type -funsigned-char -Wundef W=1 --keep-going LLVM=1 -j32 ARCH=x86_64 versioncheck
   find ./* \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o \
   	-name '*.[hcS]' -type f -print | sort \
   	| xargs perl -w ./scripts/checkversion.pl
   ./drivers/accessibility/speakup/genmap.c: 13 linux/version.h not needed.
   ./drivers/accessibility/speakup/makemapdata.c: 13 linux/version.h not needed.
   ./drivers/char/ipmi/ipmi_si_ls2k500.c: 19 linux/version.h not needed.
   ./drivers/crypto/ccp/hygon/hct.c: 6 linux/version.h not needed.
   ./drivers/crypto/ccp/hygon/tdm-dev.h: 29 linux/version.h not needed.
   ./drivers/crypto/montage/tsse/tsse_vuart.c: 21 linux/version.h not needed.
>> ./drivers/crypto/sedriver/wst_se_common_type.h: 19 linux/version.h not needed.
   ./drivers/gpu/drm/phytium/phytium_gem.c: 9 linux/version.h not needed.
   ./drivers/i2c/busses/i2c-zhaoxin.c: 18 linux/version.h not needed.
   ./drivers/net/ethernet/3snic/sssnic/include/kernel/sss_linux_kernel.h: 13 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/edma_drv/bma_include.h: 32 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/edma_drv/bma_pci.c: 17 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/kbox_drv/kbox_include.h: 20 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/kbox_drv/kbox_main.c: 22 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/kbox_drv/kbox_mce.c: 16 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/bma/kbox_drv/kbox_ram_op.c: 16 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/hinic/ossl_knl.h: 22 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/hinic3/bond/hinic3_bond.c: 12 linux/version.h not needed.
   ./drivers/net/ethernet/huawei/hinic3/ossl_knl_linux.h: 12 linux/version.h not needed.
   ./drivers/net/ethernet/linkdata/sxe/base/compat/sxe_compat.h: 16 linux/version.h not needed.
   ./drivers/net/ethernet/linkdata/sxevf/base/compat/sxe_compat.h: 16 linux/version.h not needed.
   ./drivers/net/ethernet/mucse/rnpm/rnpm_common.h: 7 linux/version.h not needed.
   ./drivers/net/ethernet/yunsilicon/xsc/common/xsc_core.h: 26 linux/version.h not needed.
   ./drivers/scsi/hisi_raid/hiraid_main.c: 9 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/linux/ps3_base.c: 11 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/linux/ps3_cli.c: 14 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/linux/ps3_driver_log.c: 3 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_device_manager.h: 9 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_device_manager_sas.h: 6 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_qos.c: 6 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_rb_tree.h: 7 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_sas_transport.h: 9 linux/version.h not needed.
   ./drivers/scsi/linkdata/ps3stor/ps3_scsi_cmd_err.c: 9 linux/version.h not needed.
   ./drivers/scsi/sssraid/sssraid_fw.c: 6 linux/version.h not needed.
   ./drivers/scsi/sssraid/sssraid_os.c: 6 linux/version.h not needed.
   ./drivers/staging/media/atomisp/include/linux/atomisp.h: 23 linux/version.h not needed.
   ./fs/proc/etmem_scan.c: 13 linux/version.h not needed.
   ./samples/bpf/spintest.bpf.c: 8 linux/version.h not needed.
   ./samples/trace_events/trace_custom_sched.c: 11 linux/version.h not needed.
   ./sound/soc/codecs/cs42l42.c: 14 linux/version.h not needed.
   ./tools/lib/bpf/bpf_helpers.h: 402: need linux/version.h
   ./tools/testing/selftests/bpf/progs/dev_cgroup.c: 9 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/netcnt_prog.c: 3 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_map_lock.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_send_signal_kern.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_spin_lock.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_tcp_estats.c: 37 linux/version.h not needed.
   ./tools/testing/selftests/wireguard/qemu/init.c: 27 linux/version.h not needed.
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 2628/2628] versioncheck: ./drivers/net/ethernet/huawei/hinic3/ossl_knl_linux.h: 11 linux/version.h not needed.
                        
                        
by kernel test robot 01 Aug '25
                    by kernel test robot 01 Aug '25
01 Aug '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   1ca83de3cbd1afcc3038a46ab4c4c4626b9a4712
commit: dcb286ce50a35a77e51b61db72c7cc001647b598 [2628/2628] net/hinic3: add huawei/hinic3 driver
reproduce: (https://download.01.org/0day-ci/archive/20250801/202508011355.f9w5qabM-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/202508011355.f9w5qabM-lkp@intel.com/
versioncheck warnings: (new ones prefixed by >>)
   INFO PATH=/opt/cross/clang-20/bin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
   /usr/bin/timeout -k 100 3h /usr/bin/make KCFLAGS= -fno-crash-diagnostics -Wno-error=return-type -Wreturn-type -funsigned-char -Wundef W=1 --keep-going LLVM=1 -j32 ARCH=x86_64 versioncheck
   find ./* \( -name SCCS -o -name BitKeeper -o -name .svn -o -name CVS -o -name .pc -o -name .hg -o -name .git \) -prune -o \
   	-name '*.[hcS]' -type f -print | sort \
   	| xargs perl -w ./scripts/checkversion.pl
   ./drivers/accessibility/speakup/genmap.c: 13 linux/version.h not needed.
   ./drivers/accessibility/speakup/makemapdata.c: 13 linux/version.h not needed.
   ./drivers/char/ipmi/ipmi_si_ls2k500.c: 19 linux/version.h not needed.
   ./drivers/crypto/montage/tsse/tsse_vuart.c: 21 linux/version.h not needed.
   ./drivers/gpu/drm/phytium/phytium_gem.c: 9 linux/version.h not needed.
   ./drivers/i2c/busses/i2c-zhaoxin.c: 15 linux/version.h not needed.
>> ./drivers/net/ethernet/huawei/hinic3/ossl_knl_linux.h: 11 linux/version.h not needed.
   ./drivers/staging/media/atomisp/include/linux/atomisp.h: 23 linux/version.h not needed.
   ./fs/proc/etmem_scan.c: 13 linux/version.h not needed.
   ./samples/bpf/spintest.bpf.c: 8 linux/version.h not needed.
   ./samples/trace_events/trace_custom_sched.c: 11 linux/version.h not needed.
   ./sound/soc/codecs/cs42l42.c: 14 linux/version.h not needed.
   ./tools/lib/bpf/bpf_helpers.h: 402: need linux/version.h
   ./tools/testing/selftests/bpf/progs/dev_cgroup.c: 9 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/netcnt_prog.c: 3 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_map_lock.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_send_signal_kern.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_spin_lock.c: 4 linux/version.h not needed.
   ./tools/testing/selftests/bpf/progs/test_tcp_estats.c: 37 linux/version.h not needed.
   ./tools/testing/selftests/wireguard/qemu/init.c: 27 linux/version.h not needed.
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:openEuler-1.0-LTS 1740/1740] mm/page_alloc.c:3684:54: sparse: sparse: incorrect type in argument 1 (different base types)
                        
                        
by kernel test robot 01 Aug '25
                    by kernel test robot 01 Aug '25
01 Aug '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git openEuler-1.0-LTS
head:   50f79538c3031890b9ca9755ccf596a73ecb0a0a
commit: 9b6c51cd780588813c5d327e2a6d677d010a2b6f [1740/1740] mm: fix zoneref mapping problem in memory reliable
config: arm64-randconfig-r121-20250729 (https://download.01.org/0day-ci/archive/20250801/202508011847.rOz6VFTy-lkp@…)
compiler: aarch64-linux-gcc (GCC) 15.1.0
reproduce: (https://download.01.org/0day-ci/archive/20250801/202508011847.rOz6VFTy-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/202508011847.rOz6VFTy-lkp@intel.com/
sparse warnings: (new ones prefixed by >>)
   mm/page_alloc.c:140:1: sparse: sparse: symbol 'pcpu_drain_mutex' was not declared. Should it be static?
   mm/page_alloc.c: note: in included file (through include/linux/mm.h):
   include/linux/mem_reliable.h:68:15: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c:4656:13: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c:4661:35: sparse: sparse: invalid assignment: |=
   mm/page_alloc.c:4661:35: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4661:35: sparse:    right side has type unsigned int
   mm/page_alloc.c:4677:35: sparse: sparse: invalid assignment: |=
   mm/page_alloc.c:4677:35: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4677:35: sparse:    right side has type unsigned int
   mm/page_alloc.c:4683:35: sparse: sparse: invalid assignment: |=
   mm/page_alloc.c:4683:35: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4683:35: sparse:    right side has type unsigned int
   mm/page_alloc.c:4698:35: sparse: sparse: invalid assignment: |=
   mm/page_alloc.c:4698:35: sparse:    left side has type restricted gfp_t
   mm/page_alloc.c:4698:35: sparse:    right side has type unsigned int
   mm/page_alloc.c: note: in included file (through include/linux/mm.h):
   include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:324:27: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c:3683:14: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c:3684:45: sparse: sparse: restricted gfp_t degrades to integer
>> mm/page_alloc.c:3684:54: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected restricted gfp_t [usertype] flags @@     got unsigned int @@
   mm/page_alloc.c:3684:54: sparse:     expected restricted gfp_t [usertype] flags
   mm/page_alloc.c:3684:54: sparse:     got unsigned int
   include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c:3701:14: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer
   include/linux/gfp.h:457:34: sparse: sparse: restricted gfp_t degrades to integer
   mm/page_alloc.c: In function 'mem_init_print_info':
   mm/page_alloc.c:7512:27: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 36-      |                           ^~
   mm/page_alloc.c:7516:9: note: in expansion of macro 'adj_init_size'
    7516 |         adj_init_size(__init_begin, __init_end, init_data_size,
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: note: use '&__init_begin[0] <= &_sinittext[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 42-      |                           ^~
   mm/page_alloc.c:7516:9: note: in expansion of macro 'adj_init_size'
    7516 |         adj_init_size(__init_begin, __init_end, init_data_size,
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 48-      |                                         ^
   mm/page_alloc.c:7516:9: note: in expansion of macro 'adj_init_size'
    7516 |         adj_init_size(__init_begin, __init_end, init_data_size,
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: note: use '&_sinittext[0] < &__init_end[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 54-      |                                         ^
   mm/page_alloc.c:7516:9: note: in expansion of macro 'adj_init_size'
    7516 |         adj_init_size(__init_begin, __init_end, init_data_size,
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 60-      |                           ^~
   mm/page_alloc.c:7518:9: note: in expansion of macro 'adj_init_size'
    7518 |         adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: note: use '&_stext[0] <= &_sinittext[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 66-      |                           ^~
   mm/page_alloc.c:7518:9: note: in expansion of macro 'adj_init_size'
    7518 |         adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 72-      |                                         ^
   mm/page_alloc.c:7518:9: note: in expansion of macro 'adj_init_size'
    7518 |         adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: note: use '&_sinittext[0] < &_etext[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 78-      |                                         ^
   mm/page_alloc.c:7518:9: note: in expansion of macro 'adj_init_size'
    7518 |         adj_init_size(_stext, _etext, codesize, _sinittext, init_code_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 84-      |                           ^~
   mm/page_alloc.c:7519:9: note: in expansion of macro 'adj_init_size'
    7519 |         adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: note: use '&_sdata[0] <= &__init_begin[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 90-      |                           ^~
   mm/page_alloc.c:7519:9: note: in expansion of macro 'adj_init_size'
    7519 |         adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 96-      |                                         ^
   mm/page_alloc.c:7519:9: note: in expansion of macro 'adj_init_size'
    7519 |         adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: note: use '&__init_begin[0] < &_edata[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 102-      |                                         ^
   mm/page_alloc.c:7519:9: note: in expansion of macro 'adj_init_size'
    7519 |         adj_init_size(_sdata, _edata, datasize, __init_begin, init_data_size);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 108-      |                           ^~
   mm/page_alloc.c:7520:9: note: in expansion of macro 'adj_init_size'
    7520 |         adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:27: note: use '&_stext[0] <= &__start_rodata[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 114-      |                           ^~
   mm/page_alloc.c:7520:9: note: in expansion of macro 'adj_init_size'
    7520 |         adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: warning: comparison between two arrays [-Warray-compare]
    7512 |                 if (start <= pos && pos < end && size > adj) 120-      |                                         ^
   mm/page_alloc.c:7520:9: note: in expansion of macro 'adj_init_size'
    7520 |         adj_init_size(_stext, _etext, codesize, __start_rodata, rosize);
         |         ^~~~~~~~~~~~~
   mm/page_alloc.c:7512:41: note: use '&__start_rodata[0] < &_etext[0]' to compare the addresses
    7512 |                 if (start <= pos && pos < end && size > adj) 126-      |                                         ^
vim +3684 mm/page_alloc.c
  3673	
  3674	#ifdef CONFIG_MEMORY_RELIABLE
  3675	static inline void reliable_fb_find_zone(gfp_t gfp_mask,
  3676						 struct alloc_context *ac)
  3677	{
  3678		if (!reliable_allow_fb_enabled())
  3679			return;
  3680	
  3681		/* dst node don't have zone we want, fallback here */
  3682		if ((gfp_mask & __GFP_THISNODE) && (ac->high_zoneidx == ZONE_NORMAL) &&
  3683		    (gfp_mask & ___GFP_RELIABILITY)) {
> 3684			ac->high_zoneidx = gfp_zone(gfp_mask & ~___GFP_RELIABILITY);
  3685			ac->preferred_zoneref = first_zones_zonelist(
  3686				ac->zonelist, ac->high_zoneidx, ac->nodemask);
  3687		}
  3688	
  3689		return;
  3690	}
  3691	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [PATCH OLK-6.6 v4 00/39] High Performance Container Resource View Isolation -- Stage 2
                        
                        
by GONG Ruiqi 01 Aug '25
                    by GONG Ruiqi 01 Aug '25
01 Aug '25
                    
                        v4:
  - Fix compile failure of bpf_mem_failure() when CONFIG_MEMORY_FAILURE=n
  - Move iterator target for diskstats & partitions into
    block/bpf-rvi.c, to avoid unexpected "kABI changes" (actually no)
v3:
  - Optimize swaptotal's estimation and make it a stand-alone function
v2:
  - Remove pidns's refcount from the loadavg global list.
  - Optimize calculation of swap{total,usage,free} for swap and meminfo
  - Fix a put_task_struct() missing for bpf_disk_seqf_start()
  - Remove ineffective build control in samples/bpf/Makefile
  - Clean up some commented code
---
Common supports:
bpf-rvi: cpuset: Fix missing of return for !tsk in task_effective_cpumask()
bpf-rvi: Add bpf_mem_cgroup_from_task() kfunc
bpf-rvi: cgroup: Add cgroup_rstat_flush_atomic() kfunc
bpf-rvi: proc: add bpf_get_{idle,iowait}_time kfunc
bpf-rvi: cpuacct: Add bpf_cpuacct_kcpustat_cpu_fetch kfunc
bpf-rvi: cpuacct: Add task_cpuacct()
Cpuinfo_arm64:
bpf-rvi: arm64: Add bpf_arm64_cpu_have_feature() kfunc
bpf-rvi: arm64: Add cpuinfo_arm64 iterator target
bpf-rvi: Add bpf_arch_flags kunc for arm64
samples/bpf: Add iterator program for cpuinfo_arm64
Diskstats:
bpf-rvi: block: Add diskstats iterator target
bpf-rvi: blk-cgroup: Add bpf_blkcg_get_dev_iostat() kfunc
samples/bpf: Add iterator program for diskstats
Partitions:
bpf-rvi: block: Add partitions iterator target
bpf-rvi: block: Look up /dev in reaper's fs->root and filter partitions
samples/bpf: Add iterator program for partitions
Loadavg:
bpf-rvi: pidns: Calculate loadavg for each pid namespace
bpf-rvi: pidns: Add for_each_task_in_pidns and loadavg-related kfuncs
samples/bpf: Add iterator program for loadavg
Uptime:
bpf-rvi: cpuacct: Add bpf_task_ca_cpuusage() kfunc
samples/bpf: Add iterator program for uptime
Swaps:
bpf-rvi: Add bpf_si_memswinfo() kfunc
bpf-rvi: Add bpf_page_counter_read() kfunc
samples/bpf: Add iterator program for swaps
Stat:
bpf-rvi: Add bpf_seq_file_append() kfunc
bpf-rvi: Add stat-related misc kfuncs
bpf-rvi: Add cpu runqueue related kfuncs
bpf-rvi: Add kstat_ & kcpustat_ kfuncs
bpf-rvi: stat: Add stat iterator target
samples/bpf: Add iterator program for stat
Meminfo:
bpf-rvi: x86: Add bpf_mem_direct_map kfunc
bpf-rvi: Add bpf_mem_{file_{hugepage,pmdmapped},kreclaimable} kfunc
bpf-rvi: Add bpf_mem_{total,free}cma kfunc
bpf-rvi: Add bpf_hugetlb_report_meminfo kfunc
bpf-rvi: Add bpf_mem_failure kfunc
bpf-rvi: Add bpf_mem_percpu kfunc
bpf-rvi: Add bpf_mem_commit_limit & bpf_mem_committed kfunc
bpf-rvi: Add bpf_mem_vmalloc_{used,total} kfunc
samples/bpf: Add iterator program for meminfo
---
GONG Ruiqi (31):
  bpf-rvi: cpuset: Fix missing of return for !tsk in
    task_effective_cpumask()
  bpf-rvi: Add bpf_mem_cgroup_from_task() kfunc
  bpf-rvi: cgroup: Add cgroup_rstat_flush_atomic() kfunc
  bpf-rvi: proc: add bpf_get_{idle,iowait}_time kfunc
  bpf-rvi: cpuacct: Add bpf_cpuacct_kcpustat_cpu_fetch kfunc
  bpf-rvi: cpuacct: Add task_cpuacct()
  bpf-rvi: arm64: Add bpf_arm64_cpu_have_feature() kfunc
  bpf-rvi: arm64: Add cpuinfo_arm64 iterator target
  bpf-rvi: Add bpf_arch_flags kunc for arm64
  samples/bpf: Add iterator program for cpuinfo_arm64
  bpf-rvi: block: Add diskstats iterator target
  bpf-rvi: blk-cgroup: Add bpf_blkcg_get_dev_iostat() kfunc
  samples/bpf: Add iterator program for diskstats
  bpf-rvi: block: Add partitions iterator target
  bpf-rvi: block: Look up /dev in reaper's fs->root and filter
    partitions
  samples/bpf: Add iterator program for partitions
  bpf-rvi: pidns: Calculate loadavg for each pid namespace
  bpf-rvi: pidns: Add for_each_task_in_pidns and loadavg-related kfuncs
  samples/bpf: Add iterator program for loadavg
  bpf-rvi: cpuacct: Add bpf_task_ca_cpuusage() kfunc
  samples/bpf: Add iterator program for uptime
  bpf-rvi: Add bpf_si_memswinfo() kfunc
  bpf-rvi: Add bpf_page_counter_read() kfunc
  samples/bpf: Add iterator program for swaps
  bpf-rvi: Add bpf_seq_file_append() kfunc
  bpf-rvi: Add stat-related misc kfuncs
  bpf-rvi: Add cpu runqueue related kfuncs
  bpf-rvi: Add kstat_ & kcpustat_ kfuncs
  bpf-rvi: stat: Add stat iterator target
  samples/bpf: Add iterator program for stat
  samples/bpf: Add iterator program for meminfo
Gu Bowen (8):
  bpf-rvi: x86: Add bpf_mem_direct_map kfunc
  bpf-rvi: Add bpf_mem_{file_{hugepage,pmdmapped},kreclaimable} kfunc
  bpf-rvi: Add bpf_mem_{total,free}cma kfunc
  bpf-rvi: Add bpf_hugetlb_report_meminfo kfunc
  bpf-rvi: Add bpf_mem_failure kfunc
  bpf-rvi: Add bpf_mem_percpu kfunc
  bpf-rvi: Add bpf_mem_commit_limit & bpf_mem_committed kfunc
  bpf-rvi: Add bpf_mem_vmalloc_{used,total} kfunc
 arch/arm64/kernel/Makefile              |   1 +
 arch/arm64/kernel/bpf-rvi.c             | 212 ++++++++++++
 arch/arm64/kernel/cpufeature.c          |  28 ++
 arch/arm64/kernel/cpuinfo.c             | 128 +------
 arch/arm64/kernel/hwcap_str.h           | 131 +++++++
 arch/x86/mm/pat/set_memory.c            |  33 ++
 block/Kconfig.iosched                   |   3 +
 block/Makefile                          |   1 +
 block/blk-cgroup.c                      | 158 +++++++++
 block/bpf-rvi.c                         | 442 ++++++++++++++++++++++++
 block/genhd.c                           |   3 +-
 fs/proc/stat.c                          | 204 +++++++++++
 include/linux/cgroup.h                  |  12 +
 include/linux/pid.h                     |   5 +
 include/linux/pid_namespace.h           |  28 ++
 kernel/bpf-rvi/Kconfig                  |   2 +
 kernel/bpf-rvi/Makefile                 |   2 +-
 kernel/bpf-rvi/common_kfuncs.c          | 310 +++++++++++++++++
 kernel/bpf-rvi/generic_single_iter.c    |   3 +
 kernel/cgroup/cpuset.c                  |   4 +-
 kernel/cgroup/rstat.c                   |  18 +
 kernel/pid.c                            |   9 +
 kernel/pid_namespace.c                  | 130 +++++++
 kernel/sched/cpuacct.c                  |  43 +++
 samples/bpf/bpf_rvi_cpuinfo_arm64.bpf.c | 112 ++++++
 samples/bpf/bpf_rvi_diskstats.bpf.c     | 299 ++++++++++++++++
 samples/bpf/bpf_rvi_loadavg.bpf.c       |  60 ++++
 samples/bpf/bpf_rvi_meminfo.bpf.c       | 278 +++++++++++++++
 samples/bpf/bpf_rvi_partitions.bpf.c    |  42 +++
 samples/bpf/bpf_rvi_stat.bpf.c          | 220 ++++++++++++
 samples/bpf/bpf_rvi_swaps.bpf.c         | 138 ++++++++
 samples/bpf/bpf_rvi_uptime.bpf.c        | 122 +++++++
 32 files changed, 3050 insertions(+), 131 deletions(-)
 create mode 100644 arch/arm64/kernel/bpf-rvi.c
 create mode 100644 arch/arm64/kernel/hwcap_str.h
 create mode 100644 block/bpf-rvi.c
 create mode 100644 kernel/bpf-rvi/common_kfuncs.c
 create mode 100644 samples/bpf/bpf_rvi_cpuinfo_arm64.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_diskstats.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_loadavg.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_meminfo.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_partitions.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_stat.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_swaps.bpf.c
 create mode 100644 samples/bpf/bpf_rvi_uptime.bpf.c
-- 
2.25.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            40
                            
                          
                          
                            
    
                          
                        
                    
                        
                            
                                
                            
                            [openeuler:OLK-6.6 2618/2618] drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1869:3: error: call to undeclared function '__symbol_put'; ISO C99 and later do not support implicit function declarations
                        
                        
by kernel test robot 01 Aug '25
                    by kernel test robot 01 Aug '25
01 Aug '25
                    
                        tree:   https://gitee.com/openeuler/kernel.git OLK-6.6
head:   8c3c65c303f0b7266ec761ebaf173b86b36ac913
commit: 0bf0c942a09ba92e1d22e6960464b628dd4408fa [2618/2618] net/hinic3: Synchronize new NIC features and bug fixes
config: arm64-randconfig-001-20250801 (https://download.01.org/0day-ci/archive/20250801/202508011513.18ofSIpR-lkp@…)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 8f09b03aebb71c154f3bbe725c29e3f47d37c26e)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250801/202508011513.18ofSIpR-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/202508011513.18ofSIpR-lkp@intel.com/
All errors (new ones prefixed by >>):
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:108:6: warning: no previous prototype for function 'hinic3_uld_lock_init' [-Wmissing-prototypes]
     108 | void hinic3_uld_lock_init(void)
         |      ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:108:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     108 | void hinic3_uld_lock_init(void)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:526:5: warning: no previous prototype for function 'hinic3_pdev_is_virtfn' [-Wmissing-prototypes]
     526 | u32 hinic3_pdev_is_virtfn(struct pci_dev *pdev)
         |     ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:526:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     526 | u32 hinic3_pdev_is_virtfn(struct pci_dev *pdev)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:788:5: warning: no previous prototype for function '__set_vroce_func_state' [-Wmissing-prototypes]
     788 | int __set_vroce_func_state(struct hinic3_pcidev *pci_adapter)
         |     ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:788:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     788 | int __set_vroce_func_state(struct hinic3_pcidev *pci_adapter)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:831:6: warning: no previous prototype for function 'slave_host_mgmt_vroce_work' [-Wmissing-prototypes]
     831 | void slave_host_mgmt_vroce_work(struct work_struct *work)
         |      ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:831:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     831 | void slave_host_mgmt_vroce_work(struct work_struct *work)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:841:7: warning: no previous prototype for function 'hinic3_get_roce_uld_by_pdev' [-Wmissing-prototypes]
     841 | void *hinic3_get_roce_uld_by_pdev(struct pci_dev *pdev)
         |       ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:841:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
     841 | void *hinic3_get_roce_uld_by_pdev(struct pci_dev *pdev)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1784:6: warning: no previous prototype for function 'hinic3_set_func_state' [-Wmissing-prototypes]
    1784 | void hinic3_set_func_state(struct hinic3_pcidev *pci_adapter)
         |      ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1784:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1784 | void hinic3_set_func_state(struct hinic3_pcidev *pci_adapter)
         | ^
         | static 
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1810:6: warning: no previous prototype for function 'slave_host_mgmt_work' [-Wmissing-prototypes]
    1810 | void slave_host_mgmt_work(struct work_struct *work)
         |      ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1810:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
    1810 | void slave_host_mgmt_work(struct work_struct *work)
         | ^
         | static 
>> drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1869:3: error: call to undeclared function '__symbol_put'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1869 |                 __symbol_put("migration_dev_migration_probe");
         |                 ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1869:3: note: did you mean '__symbol_get'?
   include/linux/module.h:301:7: note: '__symbol_get' declared here
     301 | void *__symbol_get(const char *symbol);
         |       ^
   drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c:1928:3: error: call to undeclared function '__symbol_put'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1928 |                 __symbol_put("migration_dev_add_vf");
         |                 ^
   7 warnings and 2 errors generated.
Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for HALTPOLL_CPUIDLE
   Depends on [n]: CPU_IDLE [=n] && ARCH_CPUIDLE_HALTPOLL [=y] && ARCH_HAS_OPTIMIZED_POLL [=y]
   Selected by [y]:
   - ARM64 [=y]
vim +/__symbol_put +1869 drivers/net/ethernet/huawei/hinic3/hw/hinic3_lld.c
  1847	
  1848	static void slave_host_vfio_probe_delay_work(struct work_struct *work)
  1849	{
  1850		struct delayed_work *delay = to_delayed_work(work);
  1851		struct hinic3_pcidev *pci_adapter = container_of(delay, struct hinic3_pcidev,
  1852								 migration_probe_dwork);
  1853		struct pci_dev *pdev = pci_adapter->pcidev;
  1854		int (*dev_migration_probe)(struct pci_dev *pdev);
  1855		int rc;
  1856	
  1857		if (hinic3_func_type((struct hinic3_hwdev *)pci_adapter->hwdev) != TYPE_PF)
  1858			return;
  1859	
  1860		dev_migration_probe = __symbol_get("migration_dev_migration_probe");
  1861		if (!(dev_migration_probe)) {
  1862			sdk_err(&pdev->dev,
  1863				"Failed to find: migration_dev_migration_probe");
  1864			queue_delayed_work(pci_adapter->migration_probe_workq,
  1865					   &pci_adapter->migration_probe_dwork,
  1866					   WAIT_TIME * HZ);
  1867		} else {
  1868			rc = dev_migration_probe(pdev);
> 1869			__symbol_put("migration_dev_migration_probe");
  1870			if (rc) {
  1871				sdk_err(&pdev->dev,
  1872					"Failed to __dev_migration_probe, rc:0x%x, pf migrated(%d).\n",
  1873					rc, g_is_pf_migrated);
  1874			} else {
  1875				g_is_pf_migrated = true;
  1876				sdk_info(&pdev->dev,
  1877					 "Succeeded in __dev_migration_probe, pf migrated(%d).\n",
  1878					 g_is_pf_migrated);
  1879			}
  1880		}
  1881	}
  1882	
-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        From: Octavian Purdila <tavip(a)google.com>
mainline inclusion
from mainline-v6.14-rc1
commit 10685681bafce6febb39770f3387621bf5d67d0b
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBVH45
CVE: CVE-2024-57996
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
The current implementation does not work correctly with a limit of
1. iproute2 actually checks for this and this patch adds the check in
kernel as well.
This fixes the following syzkaller reported crash:
UBSAN: array-index-out-of-bounds in net/sched/sch_sfq.c:210:6
index 65535 is out of range for type 'struct sfq_head[128]'
CPU: 0 PID: 2569 Comm: syz-executor101 Not tainted 5.10.0-smp-DEV #1
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
Call Trace:
  __dump_stack lib/dump_stack.c:79 [inline]
  dump_stack+0x125/0x19f lib/dump_stack.c:120
  ubsan_epilogue lib/ubsan.c:148 [inline]
  __ubsan_handle_out_of_bounds+0xed/0x120 lib/ubsan.c:347
  sfq_link net/sched/sch_sfq.c:210 [inline]
  sfq_dec+0x528/0x600 net/sched/sch_sfq.c:238
  sfq_dequeue+0x39b/0x9d0 net/sched/sch_sfq.c:500
  sfq_reset+0x13/0x50 net/sched/sch_sfq.c:525
  qdisc_reset+0xfe/0x510 net/sched/sch_generic.c:1026
  tbf_reset+0x3d/0x100 net/sched/sch_tbf.c:319
  qdisc_reset+0xfe/0x510 net/sched/sch_generic.c:1026
  dev_reset_queue+0x8c/0x140 net/sched/sch_generic.c:1296
  netdev_for_each_tx_queue include/linux/netdevice.h:2350 [inline]
  dev_deactivate_many+0x6dc/0xc20 net/sched/sch_generic.c:1362
  __dev_close_many+0x214/0x350 net/core/dev.c:1468
  dev_close_many+0x207/0x510 net/core/dev.c:1506
  unregister_netdevice_many+0x40f/0x16b0 net/core/dev.c:10738
  unregister_netdevice_queue+0x2be/0x310 net/core/dev.c:10695
  unregister_netdevice include/linux/netdevice.h:2893 [inline]
  __tun_detach+0x6b6/0x1600 drivers/net/tun.c:689
  tun_detach drivers/net/tun.c:705 [inline]
  tun_chr_close+0x104/0x1b0 drivers/net/tun.c:3640
  __fput+0x203/0x840 fs/file_table.c:280
  task_work_run+0x129/0x1b0 kernel/task_work.c:185
  exit_task_work include/linux/task_work.h:33 [inline]
  do_exit+0x5ce/0x2200 kernel/exit.c:931
  do_group_exit+0x144/0x310 kernel/exit.c:1046
  __do_sys_exit_group kernel/exit.c:1057 [inline]
  __se_sys_exit_group kernel/exit.c:1055 [inline]
  __x64_sys_exit_group+0x3b/0x40 kernel/exit.c:1055
 do_syscall_64+0x6c/0xd0
 entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7fe5e7b52479
Code: Unable to access opcode bytes at RIP 0x7fe5e7b5244f.
RSP: 002b:00007ffd3c800398 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe5e7b52479
RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000000
RBP: 00007fe5e7bcd2d0 R08: ffffffffffffffb8 R09: 0000000000000014
R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe5e7bcd2d0
R13: 0000000000000000 R14: 00007fe5e7bcdd20 R15: 00007fe5e7b24270
The crash can be also be reproduced with the following (with a tc
recompiled to allow for sfq limits of 1):
tc qdisc add dev dummy0 handle 1: root tbf rate 1Kbit burst 100b lat 1s
../iproute2-6.9.0/tc/tc qdisc add dev dummy0 handle 2: parent 1:10 sfq limit 1
ifconfig dummy0 up
ping -I dummy0 -f -c2 -W0.1 8.8.8.8
sleep 1
Scenario that triggers the crash:
* the first packet is sent and queued in TBF and SFQ; qdisc qlen is 1
* TBF dequeues: it peeks from SFQ which moves the packet to the
  gso_skb list and keeps qdisc qlen set to 1. TBF is out of tokens so
  it schedules itself for later.
* the second packet is sent and TBF tries to queues it to SFQ. qdisc
  qlen is now 2 and because the SFQ limit is 1 the packet is dropped
  by SFQ. At this point qlen is 1, and all of the SFQ slots are empty,
  however q->tail is not NULL.
At this point, assuming no more packets are queued, when sch_dequeue
runs again it will decrement the qlen for the current empty slot
causing an underflow and the subsequent out of bounds access.
Reported-by: syzbot <syzkaller(a)googlegroups.com>
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Octavian Purdila <tavip(a)google.com>
Reviewed-by: Eric Dumazet <edumazet(a)google.com>
Link: https://patch.msgid.link/20241204030520.2084663-2-tavip@google.com
Signed-off-by: Jakub Kicinski <kuba(a)kernel.org>
Conflicts:
        net/sched/sch_sfq.c
[conflicts due to not merge e4650d7ae425 ("net_sched: sch_sfq: handle bigger packets")]
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
 net/sched/sch_sfq.c | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/net/sched/sch_sfq.c b/net/sched/sch_sfq.c
index 066754a18569..453136d7a13c 100644
--- a/net/sched/sch_sfq.c
+++ b/net/sched/sch_sfq.c
@@ -654,6 +654,9 @@ static int sfq_change(struct Qdisc *sch, struct nlattr *opt)
 		if (!p)
 			return -ENOMEM;
 	}
+	if (ctl->limit == 1)
+		return -EINVAL;
+
 	sch_tree_lock(sch);
 	if (ctl->quantum) {
 		q->quantum = ctl->quantum;
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    01 Aug '25
                    
                        From: Marcelo Ricardo Leitner <marcelo.leitner(a)gmail.com>
mainline inclusion
from mainline-v5.18-rc1
commit bcb74e132a76ce0502bb33d5b65533a4ed72d159
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP2JY
CVE: CVE-2022-49183
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
When switching zones or network namespaces without doing a ct clear in
between, it is now leaking a reference to the old ct entry. That's
because tcf_ct_skb_nfct_cached() returns false and
tcf_ct_flow_table_lookup() may simply overwrite it.
The fix is to, as the ct entry is not reusable, free it already at
tcf_ct_skb_nfct_cached().
Reported-by: Florian Westphal <fw(a)strlen.de>
Fixes: 2f131de361f6 ("net/sched: act_ct: Fix flow table lookup after ct clear or switching zones")
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner(a)gmail.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Conflicts:
        net/sched/act_ct.c
[conflicts due to not mergered 408bdcfce8df ("net: prefer nf_ct_put instead of nf_conntrack_put")]
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
 net/sched/act_ct.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/net/sched/act_ct.c b/net/sched/act_ct.c
index 52ba1b278c54..6524efee71e2 100644
--- a/net/sched/act_ct.c
+++ b/net/sched/act_ct.c
@@ -580,22 +580,25 @@ static bool tcf_ct_skb_nfct_cached(struct net *net, struct sk_buff *skb,
 	if (!ct)
 		return false;
 	if (!net_eq(net, read_pnet(&ct->ct_net)))
-		return false;
+		goto drop_ct;
 	if (nf_ct_zone(ct)->id != zone_id)
-		return false;
+		goto drop_ct;
 
 	/* Force conntrack entry direction. */
 	if (force && CTINFO2DIR(ctinfo) != IP_CT_DIR_ORIGINAL) {
 		if (nf_ct_is_confirmed(ct))
 			nf_ct_kill(ct);
 
-		nf_conntrack_put(&ct->ct_general);
-		nf_ct_set(skb, NULL, IP_CT_UNTRACKED);
-
-		return false;
+		goto drop_ct;
 	}
 
 	return true;
+
+drop_ct:
+	nf_conntrack_put(&ct->ct_general);
+	nf_ct_set(skb, NULL, IP_CT_UNTRACKED);
+
+	return false;
 }
 
 /* Trim the skb to the length specified by the IP/IPv6 header,
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1
                            
                          
                          
                            
    
                          
                        
                    
                    
                        From: Eric Dumazet <edumazet(a)google.com>
mainline inclusion
from mainline-v5.19-rc1
commit 4c971d2f3548e4f11b1460ac048f5307e4b39fdb
category: bugfix
bugzilla: https://gitee.com/src-openeuler/kernel/issues/IBP3SY
CVE: CVE-2022-49420
Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?…
--------------------------------
UDP sendmsg() is lockless, and reads sk->sk_bound_dev_if while
this field can be changed by another thread.
Adds minimal annotations to avoid KCSAN splats for UDP.
Following patches will add more annotations to potential lockless readers.
BUG: KCSAN: data-race in __ip6_datagram_connect / udpv6_sendmsg
write to 0xffff888136d47a94 of 4 bytes by task 7681 on cpu 0:
 __ip6_datagram_connect+0x6e2/0x930 net/ipv6/datagram.c:221
 ip6_datagram_connect+0x2a/0x40 net/ipv6/datagram.c:272
 inet_dgram_connect+0x107/0x190 net/ipv4/af_inet.c:576
 __sys_connect_file net/socket.c:1900 [inline]
 __sys_connect+0x197/0x1b0 net/socket.c:1917
 __do_sys_connect net/socket.c:1927 [inline]
 __se_sys_connect net/socket.c:1924 [inline]
 __x64_sys_connect+0x3d/0x50 net/socket.c:1924
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x2b/0x50 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x44/0xae
read to 0xffff888136d47a94 of 4 bytes by task 7670 on cpu 1:
 udpv6_sendmsg+0xc60/0x16e0 net/ipv6/udp.c:1436
 inet6_sendmsg+0x5f/0x80 net/ipv6/af_inet6.c:652
 sock_sendmsg_nosec net/socket.c:705 [inline]
 sock_sendmsg net/socket.c:725 [inline]
 ____sys_sendmsg+0x39a/0x510 net/socket.c:2413
 ___sys_sendmsg net/socket.c:2467 [inline]
 __sys_sendmmsg+0x267/0x4c0 net/socket.c:2553
 __do_sys_sendmmsg net/socket.c:2582 [inline]
 __se_sys_sendmmsg net/socket.c:2579 [inline]
 __x64_sys_sendmmsg+0x53/0x60 net/socket.c:2579
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x2b/0x50 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x44/0xae
value changed: 0x00000000 -> 0xffffff9b
Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 7670 Comm: syz-executor.3 Tainted: G        W         5.18.0-rc1-syzkaller-dirty #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
I chose to not add Fixes: tag because race has minor consequences
and stable teams busy enough.
Signed-off-by: Eric Dumazet <edumazet(a)google.com>
Reported-by: syzbot <syzkaller(a)googlegroups.com>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Conflicts:
	net/ipv6/udp.c
[conflicts due to not merge 5298953e742d ("udp6: don't make extra copies of iflow")]
Signed-off-by: Wang Liang <wangliang74(a)huawei.com>
---
 include/net/ip.h    |  2 +-
 include/net/sock.h  |  5 +++--
 net/ipv6/datagram.c |  6 +++---
 net/ipv6/udp.c      | 11 ++++++-----
 4 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/include/net/ip.h b/include/net/ip.h
index c5a7bf4eb234..12cb525572f0 100644
--- a/include/net/ip.h
+++ b/include/net/ip.h
@@ -93,7 +93,7 @@ static inline void ipcm_init_sk(struct ipcm_cookie *ipcm,
 
 	ipcm->sockc.mark = inet->sk.sk_mark;
 	ipcm->sockc.tsflags = inet->sk.sk_tsflags;
-	ipcm->oif = inet->sk.sk_bound_dev_if;
+	ipcm->oif = READ_ONCE(inet->sk.sk_bound_dev_if);
 	ipcm->addr = inet->inet_saddr;
 	ipcm->protocol = inet->inet_num;
 }
diff --git a/include/net/sock.h b/include/net/sock.h
index cdf00877055a..b81e870a9fcc 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -2859,13 +2859,14 @@ static inline void sk_pacing_shift_update(struct sock *sk, int val)
  */
 static inline bool sk_dev_equal_l3scope(struct sock *sk, int dif)
 {
+	int bound_dev_if = READ_ONCE(sk->sk_bound_dev_if);
 	int mdif;
 
-	if (!sk->sk_bound_dev_if || sk->sk_bound_dev_if == dif)
+	if (!bound_dev_if || bound_dev_if == dif)
 		return true;
 
 	mdif = l3mdev_master_ifindex_by_index(sock_net(sk), dif);
-	if (mdif && mdif == sk->sk_bound_dev_if)
+	if (mdif && mdif == bound_dev_if)
 		return true;
 
 	return false;
diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
index a30ff5d6808a..fc8a969288d5 100644
--- a/net/ipv6/datagram.c
+++ b/net/ipv6/datagram.c
@@ -218,11 +218,11 @@ int __ip6_datagram_connect(struct sock *sk, struct sockaddr *uaddr,
 				err = -EINVAL;
 				goto out;
 			}
-			sk->sk_bound_dev_if = usin->sin6_scope_id;
+			WRITE_ONCE(sk->sk_bound_dev_if, usin->sin6_scope_id);
 		}
 
 		if (!sk->sk_bound_dev_if && (addr_type & IPV6_ADDR_MULTICAST))
-			sk->sk_bound_dev_if = np->mcast_oif;
+			WRITE_ONCE(sk->sk_bound_dev_if, np->mcast_oif);
 
 		/* Connect to link-local address requires an interface */
 		if (!sk->sk_bound_dev_if) {
@@ -798,7 +798,7 @@ int ip6_datagram_send_ctl(struct net *net, struct sock *sk,
 			if (src_idx) {
 				if (fl6->flowi6_oif &&
 				    src_idx != fl6->flowi6_oif &&
-				    (sk->sk_bound_dev_if != fl6->flowi6_oif ||
+				    (READ_ONCE(sk->sk_bound_dev_if) != fl6->flowi6_oif ||
 				     !sk_dev_equal_l3scope(sk, src_idx)))
 					return -EINVAL;
 				fl6->flowi6_oif = src_idx;
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 43eab741b32b..00b22f541422 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -116,7 +116,7 @@ static int compute_score(struct sock *sk, struct net *net,
 			 const struct in6_addr *daddr, unsigned short hnum,
 			 int dif, int sdif)
 {
-	int score;
+	int bound_dev_if, score;
 	struct inet_sock *inet;
 	bool dev_match;
 
@@ -143,10 +143,11 @@ static int compute_score(struct sock *sk, struct net *net,
 		score++;
 	}
 
-	dev_match = udp_sk_bound_dev_eq(net, sk->sk_bound_dev_if, dif, sdif);
+	bound_dev_if = READ_ONCE(sk->sk_bound_dev_if);
+	dev_match = udp_sk_bound_dev_eq(net, bound_dev_if, dif, sdif);
 	if (!dev_match)
 		return -1;
-	if (sk->sk_bound_dev_if)
+	if (bound_dev_if)
 		score++;
 
 	if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id())
@@ -793,7 +794,7 @@ static bool __udp_v6_is_mcast_sock(struct net *net, struct sock *sk,
 	    (inet->inet_dport && inet->inet_dport != rmt_port) ||
 	    (!ipv6_addr_any(&sk->sk_v6_daddr) &&
 		    !ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr)) ||
-	    !udp_sk_bound_dev_eq(net, sk->sk_bound_dev_if, dif, sdif) ||
+	    !udp_sk_bound_dev_eq(net, READ_ONCE(sk->sk_bound_dev_if), dif, sdif) ||
 	    (!ipv6_addr_any(&sk->sk_v6_rcv_saddr) &&
 		    !ipv6_addr_equal(&sk->sk_v6_rcv_saddr, loc_addr)))
 		return false;
@@ -1438,7 +1439,7 @@ int udpv6_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
 	}
 
 	if (!fl6.flowi6_oif)
-		fl6.flowi6_oif = sk->sk_bound_dev_if;
+		fl6.flowi6_oif = READ_ONCE(sk->sk_bound_dev_if);
 
 	if (!fl6.flowi6_oif)
 		fl6.flowi6_oif = np->sticky_pktinfo.ipi6_ifindex;
-- 
2.34.1
                    
                  
                  
                          
                            
                            2
                            
                          
                          
                            
                            1