arch/x86/entry/entry_fred.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
The 'regs->orig_ax' has been invalidated to '-1' in the entry, so in the
printout, fred_bad_type() should use the passed parameter 'error_code'.
Fixes: 14619d912b65 ("x86/fred: FRED entry/exit and dispatch code")
Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com>
---
arch/x86/entry/entry_fred.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c
index ac120cbdaaf2..099697ba6e58 100644
--- a/arch/x86/entry/entry_fred.c
+++ b/arch/x86/entry/entry_fred.c
@@ -28,9 +28,9 @@ static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code
if (regs->fred_cs.sl > 0) {
pr_emerg("PANIC: invalid or fatal FRED event; event type %u "
"vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
- regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+ regs->fred_ss.type, regs->fred_ss.vector, error_code,
fred_event_data(regs), regs->cs, regs->ip);
- die("invalid or fatal FRED event", regs, regs->orig_ax);
+ die("invalid or fatal FRED event", regs, error_code);
panic("invalid or fatal FRED event");
} else {
unsigned long flags = oops_begin();
@@ -38,10 +38,10 @@ static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code
pr_alert("BUG: invalid or fatal FRED event; event type %u "
"vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n",
- regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax,
+ regs->fred_ss.type, regs->fred_ss.vector, error_code,
fred_event_data(regs), regs->cs, regs->ip);
- if (__die("Invalid or fatal FRED event", regs, regs->orig_ax))
+ if (__die("Invalid or fatal FRED event", regs, error_code))
sig = 0;
oops_end(flags, regs, sig);
--
2.31.1
On April 17, 2024 4:34:25 AM PDT, Hou Wenlong <houwenlong.hwl@antgroup.com> wrote: >The 'regs->orig_ax' has been invalidated to '-1' in the entry, so in the >printout, fred_bad_type() should use the passed parameter 'error_code'. > >Fixes: 14619d912b65 ("x86/fred: FRED entry/exit and dispatch code") >Signed-off-by: Hou Wenlong <houwenlong.hwl@antgroup.com> >--- > arch/x86/entry/entry_fred.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > >diff --git a/arch/x86/entry/entry_fred.c b/arch/x86/entry/entry_fred.c >index ac120cbdaaf2..099697ba6e58 100644 >--- a/arch/x86/entry/entry_fred.c >+++ b/arch/x86/entry/entry_fred.c >@@ -28,9 +28,9 @@ static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code > if (regs->fred_cs.sl > 0) { > pr_emerg("PANIC: invalid or fatal FRED event; event type %u " > "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n", >- regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax, >+ regs->fred_ss.type, regs->fred_ss.vector, error_code, > fred_event_data(regs), regs->cs, regs->ip); >- die("invalid or fatal FRED event", regs, regs->orig_ax); >+ die("invalid or fatal FRED event", regs, error_code); > panic("invalid or fatal FRED event"); > } else { > unsigned long flags = oops_begin(); >@@ -38,10 +38,10 @@ static noinstr void fred_bad_type(struct pt_regs *regs, unsigned long error_code > > pr_alert("BUG: invalid or fatal FRED event; event type %u " > "vector %u error 0x%lx aux 0x%lx at %04x:%016lx\n", >- regs->fred_ss.type, regs->fred_ss.vector, regs->orig_ax, >+ regs->fred_ss.type, regs->fred_ss.vector, error_code, > fred_event_data(regs), regs->cs, regs->ip); > >- if (__die("Invalid or fatal FRED event", regs, regs->orig_ax)) >+ if (__die("Invalid or fatal FRED event", regs, error_code)) > sig = 0; > > oops_end(flags, regs, sig); Acked-by: H. Peter Anvin (Intel) <hpa@zytor.com>
© 2016 - 2024 Red Hat, Inc.