]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
LoongArch: Make regs_irqs_disabled() more clear
authorTiezhu Yang <yangtiezhu@loongson.cn>
Thu, 24 Apr 2025 12:15:41 +0000 (20:15 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Sat, 26 Apr 2025 01:58:12 +0000 (09:58 +0800)
In the current code, the definition of regs_irqs_disabled() is actually
"!(regs->csr_prmd & CSR_CRMD_IE)" because arch_irqs_disabled_flags() is
defined as "!(flags & CSR_CRMD_IE)", it looks a little strange.

Define regs_irqs_disabled() as !(regs->csr_prmd & CSR_PRMD_PIE) directly
to make it more clear, no functional change.

While at it, the return value of regs_irqs_disabled() is true or false,
so change its type to reflect that and also make it always inline.

Fixes: 803b0fc5c3f2 ("LoongArch: Add process management")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/include/asm/ptrace.h

index f3ddaed9ef7f08562af4941eb4c032cc5e2a5ca0..a5b63c84f8541a3e3099884afd09eb0a46d94b4d 100644 (file)
@@ -33,9 +33,9 @@ struct pt_regs {
        unsigned long __last[];
 } __aligned(8);
 
-static inline int regs_irqs_disabled(struct pt_regs *regs)
+static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
 {
-       return arch_irqs_disabled_flags(regs->csr_prmd);
+       return !(regs->csr_prmd & CSR_PRMD_PIE);
 }
 
 static inline unsigned long kernel_stack_pointer(struct pt_regs *regs)