Skip to content

Commit 9718d96

Browse files
xen0nchenhuacai
authored andcommitted
LoongArch: Humanize the EUEN line when showing registers
Example output looks like: [ xx.xxxxxx] EUEN: 00000000 (-FPE -SXE -ASXE -BTE) Signed-off-by: WANG Xuerui <git@xen0n.name> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
1 parent ce7f0b1 commit 9718d96

1 file changed

Lines changed: 11 additions & 1 deletion

File tree

arch/loongarch/kernel/traps.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,16 @@ static void print_prmd(unsigned long x)
211211
pr_cont(")\n");
212212
}
213213

214+
static void print_euen(unsigned long x)
215+
{
216+
printk(" EUEN: %08lx (", x);
217+
print_bool_fragment("FPE", FIELD_GET(CSR_EUEN_FPEN, x), true);
218+
print_bool_fragment("SXE", FIELD_GET(CSR_EUEN_LSXEN, x), false);
219+
print_bool_fragment("ASXE", FIELD_GET(CSR_EUEN_LASXEN, x), false);
220+
print_bool_fragment("BTE", FIELD_GET(CSR_EUEN_LBTEN, x), false);
221+
pr_cont(")\n");
222+
}
223+
214224
static void __show_regs(const struct pt_regs *regs)
215225
{
216226
const int field = 2 * sizeof(unsigned long);
@@ -254,7 +264,7 @@ static void __show_regs(const struct pt_regs *regs)
254264
/* Print saved important CSRs */
255265
print_crmd(regs->csr_crmd);
256266
print_prmd(regs->csr_prmd);
257-
printk(" EUEN: %08lx\n", regs->csr_euen);
267+
print_euen(regs->csr_euen);
258268
printk(" ECFG: %08lx\n", regs->csr_ecfg);
259269
printk("ESTAT: %08lx\n", regs->csr_estat);
260270

0 commit comments

Comments
 (0)