OSDN Git Service

arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
authorjunhua huang <huang.junhua@zte.com.cn>
Wed, 28 Dec 2022 01:54:12 +0000 (09:54 +0800)
committerWill Deacon <will@kernel.org>
Thu, 5 Jan 2023 15:26:09 +0000 (15:26 +0000)
commitef08c0fadd8a17ebe429b85e23952dac3263ad34
tree5af5ae4279b955e0b0368b39aef25580495e0020
parent4f4c549feb4ecca95ae9abb88887b941d196f83a
arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning

After we fixed the uprobe inst endian in aarch_be, the sparse check report
the following warning info:

sparse warnings: (new ones prefixed by >>)
>> kernel/events/uprobes.c:223:25: sparse: sparse: restricted __le32 degrades to integer
>> kernel/events/uprobes.c:574:56: sparse: sparse: incorrect type in argument 4 (different base types)
@@     expected unsigned int [addressable] [usertype] opcode @@     got restricted __le32 [usertype] @@
   kernel/events/uprobes.c:574:56: sparse:     expected unsigned int [addressable] [usertype] opcode
   kernel/events/uprobes.c:574:56: sparse:     got restricted __le32 [usertype]
>> kernel/events/uprobes.c:1483:32: sparse: sparse: incorrect type in initializer (different base types)
@@     expected unsigned int [usertype] insn @@     got restricted __le32 [usertype] @@
   kernel/events/uprobes.c:1483:32: sparse:     expected unsigned int [usertype] insn
   kernel/events/uprobes.c:1483:32: sparse:     got restricted __le32 [usertype]

use the __le32 to u32 for uprobe_opcode_t, to keep the same.

Fixes: 60f07e22a73d ("arm64:uprobe fix the uprobe SWBP_INSN in big-endian")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: junhua huang <huang.junhua@zte.com.cn>
Link: https://lore.kernel.org/r/202212280954121197626@zte.com.cn
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/include/asm/uprobes.h