arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
PATCH 1/1 arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
From: junhua huang <[email protected]>
After we fixed the uprobe inst endian in aarch_be, the sparse check report the following warning info:
sparse warnings: (new ones prefixed by >>)
Quoted 2 lines
Quoted 2 lines
kernel/events/uprobes.c:223:25: sparse: sparse: restricted__le32degrades to integerkernel/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]
Quoted 1 line
Quoted 1 line
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.
--- arch/arm64/include/asm/uprobes.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/include/asm/uprobes.h +1 -1
@@ -16,7 +16,7 @@#define UPROBE_SWBP_INSN_SIZE AARCH64_INSN_SIZE#define UPROBE_XOL_SLOT_BYTES MAX_UINSN_BYTES -typedef u32 uprobe_opcode_t ; +typedef __le32 uprobe_opcode_t ;struct arch_uprobe_task { };
Signature · 1 line
2.15.2
Quoted 11 lines · On Wed, 28 Dec 2022 09:54:12 +0800 (CST), [email protected] wrote:
From: junhua huang <[email protected]>
After we fixed the uprobe inst endian in
aarch_be, the sparse check report the following warning info:sparse warnings: (new ones prefixed by >>)
Quoted 2 lines
Quoted 2 lines
kernel/events/uprobes.c:223:25: sparse: sparse: restricted__le32degrades to integerkernel/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]
Quoted 6 lines
Quoted 1 line
Quoted 1 line
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][...]
Applied to arm64 (for-next/fixes), thanks!
[1/1] arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
https://git.kernel.org/arm64/c/ef08c0fadd8a
Cheers,
Signature · 5 lines
Will https://fixes.arm64.dev https://next.arm64.dev https://will.arm64.dev