CC: [email protected]
CC: [email protected]
TO: Guo Ren <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   f40ddce88593482919761f74910f42f4b84c004b
commit: 18c07d23da5a48525b2955aa269b8bb108c19300 csky: Fixup calltrace panic
date:   9 months ago
:::::: branch date: 3 days ago
:::::: commit date: 9 months ago
config: csky-randconfig-s032-20210217 (attached as .config)
compiler: csky-linux-gcc (GCC) 9.3.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.3-215-g0fb77bb6-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=18c07d23da5a48525b2955aa269b8bb108c19300
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 18c07d23da5a48525b2955aa269b8bb108c19300
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=csky 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


"sparse warnings: (new ones prefixed by >>)"
   kernel/locking/rtmutex.c: note: in included file (through 
include/linux/irqflags.h, include/asm-generic/cmpxchg.h, 
arch/csky/include/asm/cmpxchg.h, ...):
>> arch/csky/include/asm/irqflags.h:19:9: sparse: sparse: context imbalance in 
>> 'rt_mutex_adjust_prio_chain' - different lock contexts for basic block
--
   arch/csky/lib/usercopy.c:239:23: sparse: sparse: incorrect type in argument 
1 (different address spaces) @@     expected void const *addr @@     got void 
[noderef] <asn:1> *to @@
   arch/csky/lib/usercopy.c:239:23: sparse:     expected void const *addr
   arch/csky/lib/usercopy.c:239:23: sparse:     got void [noderef] <asn:1> *to
   arch/csky/lib/usercopy.c:237:1: sparse: sparse: symbol 'clear_user' 
redeclared with different type (incompatible argument 1 (different address 
spaces)):
>> arch/csky/lib/usercopy.c:237:1: sparse:    unsigned long extern 
>> [addressable] [toplevel] [unsigned] clear_user( ... )
   arch/csky/lib/usercopy.c: note: in included file (through 
include/linux/uaccess.h):
   arch/csky/include/asm/uaccess.h:385:15: sparse: note: previously declared as:
>> arch/csky/include/asm/uaccess.h:385:15: sparse:    unsigned long extern 
>> [addressable] [toplevel] [unsigned] clear_user( ... )
--
>> arch/csky/mm/fault.c:153:15: sparse: sparse: incorrect type in assignment 
>> (different base types) @@     expected int fault @@     got restricted 
>> vm_fault_t @@
   arch/csky/mm/fault.c:153:15: sparse:     expected int fault
   arch/csky/mm/fault.c:153:15: sparse:     got restricted vm_fault_t
>> arch/csky/mm/fault.c:154:13: sparse: sparse: restricted vm_fault_t degrades 
>> to integer
   arch/csky/mm/fault.c:155:29: sparse: sparse: restricted vm_fault_t degrades 
to integer
   arch/csky/mm/fault.c:157:34: sparse: sparse: restricted vm_fault_t degrades 
to integer
   arch/csky/mm/fault.c:159:34: sparse: sparse: restricted vm_fault_t degrades 
to integer
   arch/csky/mm/fault.c:163:21: sparse: sparse: restricted vm_fault_t degrades 
to integer
--
   kernel/exit.c:273:37: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *tsk @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:273:37: sparse:     expected struct task_struct *tsk
   kernel/exit.c:273:37: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:276:32: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *task @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:276:32: sparse:     expected struct task_struct *task
   kernel/exit.c:276:32: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:277:35: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *task @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:277:35: sparse:     expected struct task_struct *task
   kernel/exit.c:277:35: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:322:24: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct *parent @@     
got struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:322:24: sparse:     expected struct task_struct *parent
   kernel/exit.c:322:24: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:553:29: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct *reaper @@     
got struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:553:29: sparse:     expected struct task_struct *reaper
   kernel/exit.c:553:29: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:555:29: sparse: sparse: incorrect type in assignment 
(different address spaces) @@     expected struct task_struct *reaper @@     
got struct task_struct [noderef] <asn:4> *real_parent @@
   kernel/exit.c:555:29: sparse:     expected struct task_struct *reaper
   kernel/exit.c:555:29: sparse:     got struct task_struct [noderef] <asn:4> 
*real_parent
   kernel/exit.c:880:63: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected struct sighand_struct *const sighand 
@@     got struct sighand_struct [noderef] <asn:4> *sighand @@
   kernel/exit.c:880:63: sparse:     expected struct sighand_struct *const 
sighand
   kernel/exit.c:880:63: sparse:     got struct sighand_struct [noderef] 
<asn:4> *sighand
   kernel/exit.c:1032:39: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1032:39: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1032:39: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1057:41: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1057:41: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1057:41: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1146:25: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1146:25: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1146:25: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1161:27: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1161:27: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1161:27: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1212:25: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1212:25: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1212:25: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1215:35: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1215:35: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1215:35: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1221:27: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct spinlock [usertype] *lock @@  
   got struct spinlock [noderef] <asn:4> * @@
   kernel/exit.c:1221:27: sparse:     expected struct spinlock [usertype] *lock
   kernel/exit.c:1221:27: sparse:     got struct spinlock [noderef] <asn:4> *
   kernel/exit.c:1402:59: sparse: sparse: incompatible types in comparison 
expression (different base types):
   kernel/exit.c:1402:59: sparse:    void *
   kernel/exit.c:1402:59: sparse:    struct task_struct [noderef] <asn:4> *
   kernel/exit.c:1614:37: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> *stat_addr @@
   kernel/exit.c:1614:37: sparse:     expected int *__pu_addr
   kernel/exit.c:1614:37: sparse:     got int [noderef] <asn:1> *stat_addr
   kernel/exit.c:1705:13: sparse: sparse: symbol 'abort' was not declared. 
Should it be static?
   kernel/exit.c: note: in included file:
   include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p1 @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   include/linux/ptrace.h:99:40: sparse:     expected struct task_struct *p1
   include/linux/ptrace.h:99:40: sparse:     got struct task_struct [noderef] 
<asn:4> *real_parent
   include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *p2 @@     got 
struct task_struct [noderef] <asn:4> *parent @@
   include/linux/ptrace.h:99:60: sparse:     expected struct task_struct *p2
   include/linux/ptrace.h:99:60: sparse:     got struct task_struct [noderef] 
<asn:4> *parent
   include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p1 @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   include/linux/ptrace.h:99:40: sparse:     expected struct task_struct *p1
   include/linux/ptrace.h:99:40: sparse:     got struct task_struct [noderef] 
<asn:4> *real_parent
   include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *p2 @@     got 
struct task_struct [noderef] <asn:4> *parent @@
   include/linux/ptrace.h:99:60: sparse:     expected struct task_struct *p2
   include/linux/ptrace.h:99:60: sparse:     got struct task_struct [noderef] 
<asn:4> *parent
   kernel/exit.c: note: in included file (through include/linux/sched/signal.h, 
include/linux/rcuwait.h, include/linux/percpu-rwsem.h, ...):
   include/linux/sched/task.h:117:21: sparse: sparse: context imbalance in 
'wait_task_zombie' - unexpected unlock
   include/linux/sched/task.h:117:21: sparse: sparse: context imbalance in 
'wait_task_stopped' - unexpected unlock
   include/linux/sched/task.h:117:21: sparse: sparse: context imbalance in 
'wait_task_continued' - unexpected unlock
   kernel/exit.c: note: in included file:
   include/linux/ptrace.h:99:40: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected struct task_struct *p1 @@     got 
struct task_struct [noderef] <asn:4> *real_parent @@
   include/linux/ptrace.h:99:40: sparse:     expected struct task_struct *p1
   include/linux/ptrace.h:99:40: sparse:     got struct task_struct [noderef] 
<asn:4> *real_parent
   include/linux/ptrace.h:99:60: sparse: sparse: incorrect type in argument 2 
(different address spaces) @@     expected struct task_struct *p2 @@     got 
struct task_struct [noderef] <asn:4> *parent @@
   include/linux/ptrace.h:99:60: sparse:     expected struct task_struct *p2
   include/linux/ptrace.h:99:60: sparse:     got struct task_struct [noderef] 
<asn:4> *parent
   kernel/exit.c: note: in included file (through include/linux/thread_info.h, 
include/asm-generic/preempt.h, arch/csky/include/generated/asm/preempt.h, ...):
>> arch/csky/include/asm/thread_info.h:53:9: sparse: sparse: context imbalance 
>> in 'do_wait' - wrong count at exit
   kernel/exit.c:1561:14: sparse: sparse: incorrect type in argument 1 
(different address spaces) @@     expected void const *addr @@     got struct 
siginfo [noderef] <asn:1> *infop @@
   kernel/exit.c:1561:14: sparse:     expected void const *addr
   kernel/exit.c:1561:14: sparse:     got struct siginfo [noderef] <asn:1> 
*infop
   kernel/exit.c:1564:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> * @@
   kernel/exit.c:1564:9: sparse:     expected int *__pu_addr
   kernel/exit.c:1564:9: sparse:     got int [noderef] <asn:1> *
   kernel/exit.c:1565:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> * @@
   kernel/exit.c:1565:9: sparse:     expected int *__pu_addr
   kernel/exit.c:1565:9: sparse:     got int [noderef] <asn:1> *
   kernel/exit.c:1566:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> * @@
   kernel/exit.c:1566:9: sparse:     expected int *__pu_addr
   kernel/exit.c:1566:9: sparse:     got int [noderef] <asn:1> *
   kernel/exit.c:1567:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> * @@
   kernel/exit.c:1567:9: sparse:     expected int *__pu_addr
   kernel/exit.c:1567:9: sparse:     got int [noderef] <asn:1> *
   kernel/exit.c:1568:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected unsigned int *__pu_addr @@     got 
unsigned int [noderef] <asn:1> * @@
   kernel/exit.c:1568:9: sparse:     expected unsigned int *__pu_addr
   kernel/exit.c:1568:9: sparse:     got unsigned int [noderef] <asn:1> *
   kernel/exit.c:1569:9: sparse: sparse: incorrect type in initializer 
(different address spaces) @@     expected int *__pu_addr @@     got int 
[noderef] <asn:1> * @@
   kernel/exit.c:1569:9: sparse:     expected int *__pu_addr
   kernel/exit.c:1569:9: sparse:     got int [noderef] <asn:1> *

vim +/do_wait +53 arch/csky/include/asm/thread_info.h

e9564df753fd54 Guo Ren 2018-09-05  39  
0ea2dc7cd668be Guo Ren 2018-12-09  40  #define thread_saved_fp(tsk) \
0ea2dc7cd668be Guo Ren 2018-12-09  41   ((unsigned long)(((struct switch_stack 
*)(tsk->thread.ksp))->r8))
0ea2dc7cd668be Guo Ren 2018-12-09  42  
18c07d23da5a48 Guo Ren 2020-05-13  43  #define thread_saved_sp(tsk) \
18c07d23da5a48 Guo Ren 2020-05-13  44   ((unsigned long)(tsk->thread.ksp))
18c07d23da5a48 Guo Ren 2020-05-13  45  
18c07d23da5a48 Guo Ren 2020-05-13  46  #define thread_saved_lr(tsk) \
18c07d23da5a48 Guo Ren 2020-05-13  47   ((unsigned long)(((struct switch_stack 
*)(tsk->thread.ksp))->r15))
18c07d23da5a48 Guo Ren 2020-05-13  48  
e9564df753fd54 Guo Ren 2018-09-05  49  static inline struct thread_info 
*current_thread_info(void)
e9564df753fd54 Guo Ren 2018-09-05  50  {
e9564df753fd54 Guo Ren 2018-09-05  51   unsigned long sp;
e9564df753fd54 Guo Ren 2018-09-05  52  
e9564df753fd54 Guo Ren 2018-09-05 @53   asm volatile("mov %0, sp\n":"=r"(sp));
e9564df753fd54 Guo Ren 2018-09-05  54  
e9564df753fd54 Guo Ren 2018-09-05  55   return (struct thread_info *)(sp & 
~(THREAD_SIZE - 1));
e9564df753fd54 Guo Ren 2018-09-05  56  }
e9564df753fd54 Guo Ren 2018-09-05  57  

:::::: The code at line 53 was first introduced by commit
:::::: e9564df753fd547fcbcd4fd10015c3b1213ef452 csky: Process management and 
Signal

:::::: TO: Guo Ren <[email protected]>
:::::: CC: Guo Ren <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to