1
0
Fork 0
alistair23-linux/arch
David Woodhouse 3499ba8198 xen: Fix event channel callback via INTX/GSI
For a while, event channel notification via the PCI platform device
has been broken, because we attempt to communicate with xenstore before
we even have notifications working, with the xs_reset_watches() call
in xs_init().

We tend to get away with this on Xen versions below 4.0 because we avoid
calling xs_reset_watches() anyway, because xenstore might not cope with
reading a non-existent key. And newer Xen *does* have the vector
callback support, so we rarely fall back to INTX/GSI delivery.

To fix it, clean up a bit of the mess of xs_init() and xenbus_probe()
startup. Call xs_init() directly from xenbus_init() only in the !XS_HVM
case, deferring it to be called from xenbus_probe() in the XS_HVM case
instead.

Then fix up the invocation of xenbus_probe() to happen either from its
device_initcall if the callback is available early enough, or when the
callback is finally set up. This means that the hack of calling
xenbus_probe() from a workqueue after the first interrupt, or directly
from the PCI platform device setup, is no longer needed.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Link: https://lore.kernel.org/r/20210113132606.422794-2-dwmw2@infradead.org
Signed-off-by: Juergen Gross <jgross@suse.com>
2021-01-13 16:12:00 +01:00
..
alpha sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
arc asm-generic: add correct MAX_POSSIBLE_PHYSMEM_BITS setting 2020-11-27 15:00:35 -08:00
arm xen: Fix event channel callback via INTX/GSI 2021-01-13 16:12:00 +01:00
arm64 Bugfixes for ARM, x86 and tools. 2020-12-12 10:08:16 -08:00
c6x arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
csky Yet two more places which invoke tracing from RCU disabled regions in the 2020-11-29 11:19:26 -08:00
h8300 sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
hexagon sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
ia64 Yet two more places which invoke tracing from RCU disabled regions in the 2020-11-29 11:19:26 -08:00
m68k arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
microblaze sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
mips Yet two more places which invoke tracing from RCU disabled regions in the 2020-11-29 11:19:26 -08:00
nds32 arch-cleanup-2020-10-22 2020-10-23 10:06:38 -07:00
nios2 sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
openrisc sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
parisc sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
powerpc powerpc fixes for 5.10 #6 2020-12-10 16:36:30 -08:00
riscv RISC-V Fixes for 5.10 (unless there's an rc8) 2020-12-12 09:50:26 -08:00
s390 s390: fix irq state tracing 2020-12-02 18:17:50 +01:00
sh sched/idle: Fix arch_cpu_idle() vs tracing 2020-11-24 16:47:35 +01:00
sparc Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-12-08 15:03:39 -08:00
um Yet two more places which invoke tracing from RCU disabled regions in the 2020-11-29 11:19:26 -08:00
x86 xen: Kconfig: remove X86_64 depends from XEN_512GB 2020-12-19 07:27:37 +01:00
xtensa xtensa: uaccess: Add missing __user to strncpy_from_user() prototype 2020-11-17 05:09:28 -08:00
.gitignore
Kconfig kbuild: Hoist '--orphan-handling' into Kconfig 2020-12-01 22:45:36 +09:00