linux_dsm_epyc7002/arch/x86/include/asm
KarimAllah Ahmed 72a9b18629 xen: Remove event channel notification through Xen PCI platform device
Ever since commit 254d1a3f02 ("xen/pv-on-hvm kexec: shutdown watches
from old kernel") using the INTx interrupt from Xen PCI platform
device for event channel notification would just lockup the guest
during bootup.  postcore_initcall now calls xs_reset_watches which
will eventually try to read a value from XenStore and will get stuck
on read_reply at XenBus forever since the platform driver is not
probed yet and its INTx interrupt handler is not registered yet. That
means that the guest can not be notified at this moment of any pending
event channels and none of the per-event handlers will ever be invoked
(including the XenStore one) and the reply will never be picked up by
the kernel.

The exact stack where things get stuck during xenbus_init:

-xenbus_init
 -xs_init
  -xs_reset_watches
   -xenbus_scanf
    -xenbus_read
     -xs_single
      -xs_single
       -xs_talkv

Vector callbacks have always been the favourite event notification
mechanism since their introduction in commit 38e20b07ef ("x86/xen:
event channels delivery on HVM.") and the vector callback feature has
always been advertised for quite some time by Xen that's why INTx was
broken for several years now without impacting anyone.

Luckily this also means that event channel notification through INTx
is basically dead-code which can be safely removed without impacting
anybody since it has been effectively disabled for more than 4 years
with nobody complaining about it (at least as far as I'm aware of).

This commit removes event channel notification through Xen PCI
platform device.

Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: David Vrabel <david.vrabel@citrix.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Julien Grall <julien.grall@citrix.com>
Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: Ross Lagerwall <ross.lagerwall@citrix.com>
Cc: xen-devel@lists.xenproject.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: Anthony Liguori <aliguori@amazon.com>
Signed-off-by: KarimAllah Ahmed <karahmed@amazon.de>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
2016-09-30 11:44:34 +01:00
..
crypto
fpu tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
numachip
trace x86/fpu: Add tracepoints to dump FPU state at key points 2016-06-08 13:33:33 +02:00
uv x86/platform/UV: Fix problem with UV4 BIOS providing incorrect PXM values 2016-08-10 15:55:38 +02:00
xen xen: Remove event channel notification through Xen PCI platform device 2016-09-30 11:44:34 +01:00
a.out-core.h
acenv.h
acpi.h Merge branch 'acpi-tables' 2016-07-25 13:41:01 +02:00
agp.h
alternative-asm.h
alternative.h x86/asm: Make asm/alternative.h safe from assembly 2016-04-29 11:56:41 +02:00
amd_nb.h
apb_timer.h
apic_flat_64.h
apic.h x86/timers/apic: Inform TSC deadline clockevent device about recalibration 2016-08-10 12:38:12 +02:00
apicdef.h
apm.h x86, asm: use bool for bitops and other assembly outputs 2016-06-08 12:41:20 -07:00
arch_hweight.h x86/hweight: Get rid of the special calling convention 2016-06-08 15:01:02 +02:00
archrandom.h x86, asm: Use CC_SET()/CC_OUT() and static_cpu_has() in archrandom.h 2016-06-08 12:41:20 -07:00
asm-offsets.h
asm.h x86, asm: define CC_SET() and CC_OUT() macros 2016-06-08 12:41:20 -07:00
atomic64_32.h locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:31 +02:00
atomic64_64.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
atomic.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
barrier.h
bios_ebda.h x86/boot: Reorganize and clean up the BIOS area reservation code 2016-07-21 10:11:57 +02:00
bitops.h x86, asm: Use CC_SET()/CC_OUT() in <asm/bitops.h> 2016-06-08 12:41:20 -07:00
boot.h x86/KASLR: Build identity mappings on demand 2016-05-07 07:38:39 +02:00
bootparam_utils.h
bug.h
bugs.h x86/mm/mpx: Work around MPX erratum SKD046 2016-05-20 09:07:40 +02:00
cache.h
cacheflush.h
calgary.h
ce4100.h
checksum_32.h x86/uaccess: Move thread_info::addr_limit to thread_struct 2016-07-15 10:26:30 +02:00
checksum_64.h
checksum.h
clocksource.h x86/vdso: Remove direct HPET access through the vDSO 2016-04-13 10:28:34 +02:00
cmdline.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h
compat.h x86/signals: Add missing signal_compat code for x86 features 2016-06-14 12:19:24 +02:00
cpu_device_id.h
cpu.h xen: features and fixes for 4.8-rc0 2016-07-27 11:35:37 -07:00
cpufeature.h x86/cpufeature: Add helper macro for mask check macros 2016-06-30 09:11:32 +02:00
cpufeatures.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-30 12:56:26 -07:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc_defs.h
desc.h
device.h
disabled-features.h x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated 2016-06-30 09:11:32 +02:00
div64.h
dma-mapping.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma.h
dmi.h
dwarf2.h
e820.h
edac.h
efi.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
elf.h tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
emergency-restart.h
entry_arch.h
espfix.h
exec.h
fb.h
fixmap.h
floppy.h
frame.h
ftrace.h Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-24 09:47:32 -07:00
futex.h
gart.h
genapic.h
geode.h
hardirq.h x86/irq: Do not substract irq_tlb_count from irq_call_count 2016-08-11 11:14:59 +02:00
highmem.h
hpet.h
hugetlb.h Merge branch 'x86/urgent' into x86/asm, to fix semantic conflict 2016-04-22 10:13:53 +02:00
hw_breakpoint.h
hw_irq.h x86/irq: Cure live lock in fixup_irqs() 2016-03-18 14:51:06 +01:00
hypertransport.h
hypervisor.h
i8259.h
ia32_unistd.h
ia32.h
idle.h
imr.h
inat_types.h
inat.h x86/insn: Add AVX-512 support to the instruction decoder 2016-07-21 09:37:11 -03:00
init.h x86/power/64: Always create temporary identity mapping correctly 2016-08-08 22:04:30 +02:00
insn.h x86/insn: Add AVX-512 support to the instruction decoder 2016-07-21 09:37:11 -03:00
inst.h
intel_mid_vrtc.h
intel_pmc_ipc.h
intel_pt.h
intel_punit_ipc.h
intel_scu_ipc.h
intel_telemetry.h intel_telemetry: Constify telemetry_core_ops structures 2016-05-05 13:58:55 -07:00
intel-family.h Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-30 12:56:26 -07:00
intel-mid.h x86/sfi: Enable enumeration of SD devices 2016-07-13 09:24:51 +02:00
io_apic.h
io.h
iomap.h
iommu_table.h
iommu.h
iosf_mbi.h
ipi.h
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h x86/cpufeature: Replace cpu_has_apic with boot_cpu_has() usage 2016-04-13 11:37:41 +02:00
irq.h
irqdomain.h
irqflags.h
ist.h
jump_label.h
kasan.h
kaslr.h x86/mm: Enable KASLR for vmalloc memory regions 2016-07-08 17:35:21 +02:00
kbdleds.h
Kbuild kbuild, x86: Track generated headers with generated-y 2016-07-07 15:58:44 +02:00
kdebug.h x86/dumpstack: Add show_stack_regs() and use it 2016-07-08 11:33:19 +02:00
kexec-bzimage64.h
kexec.h
kgdb.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
kmap_types.h
kmemcheck.h
kprobes.h x86: fix up a few misc stack pointer vs thread_info confusions 2016-06-24 16:55:53 -07:00
kvm_emulate.h
kvm_guest.h
kvm_host.h - ARM: GICv3 ITS emulation and various fixes. Removal of the old 2016-08-02 16:11:27 -04:00
kvm_page_track.h
kvm_para.h
lguest_hcall.h
lguest.h
linkage.h x86/entry/32: Remove asmlinkage_protect() 2016-05-05 08:37:31 +02:00
livepatch.h x86: Audit and remove any remaining unnecessary uses of module.h 2016-07-14 15:07:00 +02:00
local64.h
local.h x86, asm: change the GEN_*_RMWcc() macros to not quote the condition 2016-06-08 12:41:20 -07:00
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h rtc: cmos: move mc146818rtc code out of asm-generic/rtc.h 2016-06-04 00:20:00 +02:00
mce.h x86/mce/AMD: Log Deferred Errors using SMCA MCA_DE{STAT,ADDR} registers 2016-05-12 09:08:19 +02:00
microcode_amd.h x86/microcode/AMD: Make amd_ucode_patch[] static 2016-06-08 11:04:20 +02:00
microcode_intel.h x86/microcode/intel: Unexport save_mc_for_early() 2016-06-08 11:04:20 +02:00
microcode.h x86/microcode: Fix suspend to RAM with builtin microcode 2016-06-08 11:04:19 +02:00
misc.h
mmconfig.h
mmu_context.h tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
mmu.h
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h
mpx.h
mshyperv.h
msi.h
msidef.h
msr-index.h x86: remove duplicate turbo ratio limit MSRs 2016-07-07 15:32:00 +02:00
msr-trace.h
msr.h x86/msr: Use the proper trace point conditional for writes 2016-06-06 15:33:39 +02:00
mtrr.h x86/mtrr: Fix Xorg crashes in Qemu sessions 2016-03-29 12:23:26 +02:00
mutex_32.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
mutex_64.h locking/mutex: Optimize mutex_trylock() fast-path 2016-06-08 15:17:01 +02:00
mutex.h
mwait.h x86/cpu: Add workaround for MONITOR instruction erratum on Goldmont based CPUs 2016-07-20 09:48:40 +02:00
nmi.h
nops.h
numa_32.h
numa.h
olpc_ofw.h
olpc.h
page_32_types.h x86/asm, x86/microcode: Add __PAGE_OFFSET_BASE define on 32-bit 2016-07-27 14:59:59 +02:00
page_32.h
page_64_types.h x86/mm: Enable KASLR for physical mapping memory regions 2016-07-08 17:35:15 +02:00
page_64.h
page_types.h
page.h x86/boot: Split out kernel_ident_mapping_init() 2016-05-07 07:38:39 +02:00
paravirt_types.h Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 15:54:01 -07:00
paravirt.h Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-05-16 15:54:01 -07:00
parport.h
pat.h x86/xen, pat: Remove PAT table init code from Xen 2016-03-29 12:23:27 +02:00
pci_64.h
pci_x86.h
pci-direct.h
pci-functions.h
pci.h
percpu.h x86, asm: Use CC_SET()/CC_OUT() in <asm/percpu.h> 2016-06-08 12:41:20 -07:00
perf_event_p4.h
perf_event.h perf/x86/intel/pt: Don't die on VMXON 2016-04-28 10:32:42 +02:00
pgalloc.h arch: x86: charge page tables to kmemcg 2016-07-26 16:19:19 -07:00
pgtable_32_types.h
pgtable_32.h
pgtable_64_types.h x86/mm: Enable KASLR for vmalloc memory regions 2016-07-08 17:35:21 +02:00
pgtable_64.h x86/mm: Fix swap entry comment and macro 2016-08-11 11:04:10 +02:00
pgtable_types.h x86/mm: Remove kernel_unmap_pages_in_pgd() and efi_cleanup_page_tables() 2016-07-15 10:26:26 +02:00
pgtable-2level_types.h
pgtable-2level.h
pgtable-3level_types.h
pgtable-3level.h
pgtable.h Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 17:32:28 -07:00
pkeys.h
platform_sst_audio.h
pm-trace.h
pmc_atom.h
pmc_core.h platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
pmem.h pmem: kill __pmem address space 2016-07-12 19:25:38 -07:00
posix_types.h
preempt.h x86, asm: change the GEN_*_RMWcc() macros to not quote the condition 2016-06-08 12:41:20 -07:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 18:48:27 -07:00
prom.h
proto.h
ptrace.h x86/entry: Get rid of two-phase syscall entry work 2016-06-14 10:54:39 -07:00
pvclock-abi.h
pvclock.h pvclock: introduce seqcount-like API 2016-08-04 13:52:21 +02:00
qrwlock.h
qspinlock_paravirt.h
qspinlock.h
realmode.h x86/boot: Rework reserve_real_mode() to allow multiple tries 2016-08-11 11:15:01 +02:00
reboot_fixups.h
reboot.h
required-features.h x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated 2016-06-30 09:11:32 +02:00
rio.h
rmwcc.h x86, asm: change GEN_*_RMWcc() to use CC_SET()/CC_OUT() 2016-06-08 12:41:20 -07:00
rwsem.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
seccomp.h
sections.h
segment.h x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization 2016-04-29 11:56:41 +02:00
serial.h
setup_arch.h
setup.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h x86, bitops: remove use of "sbb" to return CF 2016-06-08 12:41:20 -07:00
simd.h
smap.h
smp.h xen: features and fixes for 4.8-rc0 2016-07-27 11:35:37 -07:00
sparsemem.h
special_insns.h x86/insn: remove pcommit 2016-07-23 11:04:23 -07:00
spinlock_types.h
spinlock.h
sta2x11.h
stackprotector.h
stacktrace.h x86: avoid avoid passing around 'thread_info' in stack dumping code 2016-06-23 12:20:01 -07:00
string_32.h
string_64.h x86/mm, x86/mce: Fix return type/value for memcpy_mcsafe() 2016-03-16 09:02:18 +01:00
string.h
suspend_32.h
suspend_64.h
suspend.h
svm.h x86/kvm/svm: Simplify cpu_has_svm() 2016-06-16 00:04:31 +02:00
swiotlb.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
switch_to.h x86/entry, sched/x86: Don't save/restore EFLAGS on task switch 2016-05-05 08:37:30 +02:00
sync_bitops.h x86, bitops: remove use of "sbb" to return CF 2016-06-08 12:41:20 -07:00
sys_ia32.h
syscall.h x86/ptrace: Stop setting TS_COMPAT in ptrace code 2016-07-27 11:09:43 +02:00
syscalls.h
sysfb.h
tce.h
text-patching.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
thread_info.h Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user 2016-08-08 14:48:14 -07:00
time.h
timer.h
timex.h
tlb.h
tlbflush.h x86/mm: Disable preemption during CR3 read+write 2016-08-10 15:37:16 +02:00
topology.h Merge branch 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-08-01 14:23:42 -04:00
trace_clock.h
traps.h
tsc.h x86/tsc: Remove the unused check_tsc_disabled() 2016-07-15 10:35:08 +02:00
uaccess_32.h x86/uaccess: Enable hardened usercopy 2016-07-26 14:41:48 -07:00
uaccess_64.h x86/uaccess: Enable hardened usercopy 2016-07-26 14:41:48 -07:00
uaccess.h Implements HARDENED_USERCOPY verification of copy_to_user/copy_from_user 2016-08-08 14:48:14 -07:00
unaligned.h
unistd.h x86/syscalls: Add compat_sys_preadv64v2/compat_sys_pwritev64v2 2016-07-15 10:30:26 +02:00
uprobes.h
user32.h
user_32.h
user_64.h
user.h
vdso.h
vga.h
vgtod.h
virtext.h x86/kvm/svm: Simplify cpu_has_svm() 2016-06-16 00:04:31 +02:00
vm86.h
vmx.h Revert "KVM: x86: add pcommit support" 2016-07-23 11:04:23 -07:00
vsyscall.h
vvar.h
word-at-a-time.h
x2apic.h
x86_init.h Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 19:41:35 -07:00
xor_32.h x86/cpufeature: Replace cpu_has_xmm with boot_cpu_has() usage 2016-04-13 11:37:40 +02:00
xor_64.h
xor_avx.h x86/cpufeature: Replace cpu_has_avx with boot_cpu_has() usage 2016-04-13 11:37:40 +02:00
xor.h