From: Paul Gortmaker <pa...@kernel.org>

This reverts commit 22ca647c8f880f21881e9b2d38070dc61196a39d.

This (2/5) is a part of a fix from the v6.6.7 content.  However
during repeated boot testing on qemu-x86 (32 and 64) with NFS
root it hangs during the verbose printk of the PCI register layout
map.  The v6.6.6 and the v6.6.7 with 5 reverts does not have this
issue.  Note that NFS root seems to be key for some reason.

https://bugzilla.yoctoproject.org/show_bug.cgi?id=15463

Signed-off-by: Paul Gortmaker <pa...@kernel.org>
---
 arch/x86/entry/common.c | 37 +------------------------------------
 1 file changed, 1 insertion(+), 36 deletions(-)

diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
index 9c0b26ae5106..0f22a037be66 100644
--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -25,7 +25,6 @@
 #include <xen/events.h>
 #endif
 
-#include <asm/apic.h>
 #include <asm/desc.h>
 #include <asm/traps.h>
 #include <asm/vdso.h>
@@ -121,25 +120,6 @@ static __always_inline void do_syscall_32_irqs_on(struct 
pt_regs *regs, int nr)
 }
 
 #ifdef CONFIG_IA32_EMULATION
-static __always_inline bool int80_is_external(void)
-{
-       const unsigned int offs = (0x80 / 32) * 0x10;
-       const u32 bit = BIT(0x80 % 32);
-
-       /* The local APIC on XENPV guests is fake */
-       if (cpu_feature_enabled(X86_FEATURE_XENPV))
-               return false;
-
-       /*
-        * If vector 0x80 is set in the APIC ISR then this is an external
-        * interrupt. Either from broken hardware or injected by a VMM.
-        *
-        * Note: In guest mode this is only valid for secure guests where
-        * the secure module fully controls the vAPIC exposed to the guest.
-        */
-       return apic_read(APIC_ISR + offs) & bit;
-}
-
 /**
  * int80_emulation - 32-bit legacy syscall entry
  *
@@ -163,27 +143,12 @@ DEFINE_IDTENTRY_RAW(int80_emulation)
 {
        int nr;
 
-       /* Kernel does not use INT $0x80! */
-       if (unlikely(!user_mode(regs))) {
-               irqentry_enter(regs);
-               instrumentation_begin();
-               panic("Unexpected external interrupt 0x80\n");
-       }
-
-       /*
-        * Establish kernel context for instrumentation, including for
-        * int80_is_external() below which calls into the APIC driver.
-        * Identical for soft and external interrupts.
-        */
+       /* Establish kernel context. */
        enter_from_user_mode(regs);
 
        instrumentation_begin();
        add_random_kstack_offset();
 
-       /* Validate that this is a soft interrupt to the extent possible */
-       if (unlikely(int80_is_external()))
-               panic("Unexpected external interrupt 0x80\n");
-
        /*
         * The low level idtentry code pushed -1 into regs::orig_ax
         * and regs::ax contains the syscall number.
-- 
2.44.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#13836): 
https://lists.yoctoproject.org/g/linux-yocto/message/13836
Mute This Topic: https://lists.yoctoproject.org/mt/105625696/21656
Group Owner: linux-yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to