Hi Sebastian, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/locking/core] [also build test WARNING on linus/master v6.1-rc7 next-20221129] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Sebastian-Andrzej-Siewior/Re-Crash-with-PREEMPT_RT-on-aarch64-machine/20221129-000000 patch link: https://lore.kernel.org/r/Y4Tapja2qq8HiHBZ%40linutronix.de patch subject: Re: Crash with PREEMPT_RT on aarch64 machine config: ia64-randconfig-s053-20221129 compiler: ia64-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/d4aea399f0b5472dc15a4c623d99b4ae79005050 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Sebastian-Andrzej-Siewior/Re-Crash-with-PREEMPT_RT-on-aarch64-machine/20221129-000000 git checkout d4aea399f0b5472dc15a4c623d99b4ae79005050 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=ia64 SHELL=/bin/bash kernel/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) kernel/locking/rtmutex_api.c: note: in included file (through include/linux/irqflags.h, include/linux/spinlock.h): arch/ia64/include/asm/irqflags.h:64:9: sparse: sparse: context imbalance in 'rt_mutex_adjust_prio_chain' - different lock contexts for basic block arch/ia64/include/asm/irqflags.h:64:9: sparse: sparse: context imbalance in 'rt_mutex_slowlock_block' - unexpected unlock kernel/locking/rtmutex_api.c: note: in included file: >> kernel/locking/rtmutex.c:117:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected struct task_struct *volatile @@ got unsigned long [assigned] val @@ kernel/locking/rtmutex.c:117:9: sparse: expected struct task_struct *volatile kernel/locking/rtmutex.c:117:9: sparse: got unsigned long [assigned] val >> kernel/locking/rtmutex.c:117:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected struct task_struct *volatile @@ got unsigned long [assigned] val @@ kernel/locking/rtmutex.c:117:9: sparse: expected struct task_struct *volatile kernel/locking/rtmutex.c:117:9: sparse: got unsigned long [assigned] val vim +117 kernel/locking/rtmutex.c 108 109 static __always_inline void 110 rt_mutex_set_owner_pi(struct rt_mutex_base *lock, struct task_struct *owner) 111 { 112 unsigned long val = (unsigned long)owner; 113 114 if (rt_mutex_has_waiters(lock)) 115 val |= RT_MUTEX_HAS_WAITERS; 116 > 117 WRITE_ONCE(lock->owner, val); 118 } 119 -- 0-DAY CI Kernel Test Service https://01.org/lkp