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] -=-=-=-=-=-=-=-=-=-=-=-