linux/drivers
Thomas Gleixner 2f6474e463 x86/entry: Switch XEN/PV hypercall entry to IDTENTRY
Convert the XEN/PV hypercall to IDTENTRY:

  - Emit the ASM stub with DECLARE_IDTENTRY
  - Remove the ASM idtentry in 64-bit
  - Remove the open coded ASM entry code in 32-bit
  - Remove the old prototypes

The handler stubs need to stay in ASM code as they need corner case handling
and adjustment of the stack pointer.

Provide a new C function which invokes the entry/exit handling and calls
into the XEN handler on the interrupt stack if required.

The exit code is slightly different from the regular idtentry_exit() on
non-preemptible kernels. If the hypercall is preemptible and need_resched()
is set then XEN provides a preempt hypercall scheduling function.

Move this functionality into the entry code so it can use the existing
idtentry functionality.

[ mingo: Build fixes. ]

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Andy Lutomirski <luto@kernel.org>
Acked-by: Juergen Gross <jgross@suse.com>
Tested-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/20200521202118.055270078@linutronix.de
2020-06-11 15:15:08 +02:00
..
accessibility
acpi More ACPI updates for 5.8-rc1 2020-06-10 14:09:08 -07:00
amba ARM: SoC changes for v5.8 2020-06-04 19:47:11 -07:00
android mmap locking API: convert mmap_sem API comments 2020-06-09 09:39:14 -07:00
ata for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
atm mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
auxdisplay
base linux-kselftest-kunit-5.8-rc1 2020-06-09 10:04:47 -07:00
bcma
block mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
bluetooth Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-06-03 16:27:18 -07:00
bus Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
cdrom Merge branch 'work.sysctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-10 16:05:54 -07:00
char Merge branch 'work.sysctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-10 16:05:54 -07:00
clk This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
clocksource
connector
counter
cpufreq More power management updates for 5.8-rc1 2020-06-10 14:04:39 -07:00
cpuidle powerpc updates for 5.8 2020-06-05 12:39:30 -07:00
crypto virtio: features, fixes 2020-06-10 13:42:09 -07:00
dax device-dax: add memory via add_memory_driver_managed() 2020-06-04 19:06:23 -07:00
dca
devfreq
dio
dma dmaengine updates for v5.8-rc1 2020-06-10 11:03:04 -07:00
dma-buf DMA reservations: use the new mmap locking API 2020-06-09 09:39:14 -07:00
edac Merge branches 'edac-i10nm' and 'edac-misc' into edac-updates-for-5.8 2020-06-01 11:39:15 +02:00
eisa
extcon extcon: arizona: Fix runtime PM imbalance on error 2020-05-29 17:36:02 +09:00
firewire
firmware mmap locking API: add MMAP_LOCK_INITIALIZER 2020-06-09 09:39:14 -07:00
fpga Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
fsi
gnss
gpio USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
gpu Merge branch 'uaccess.i915' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-10 16:04:27 -07:00
greybus
hid Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-06-10 13:51:47 -07:00
hsi
hv hyperv-next for 5.8 2020-06-03 15:00:05 -07:00
hwmon
hwspinlock
hwtracing Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
i2c This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
i3c
ide
idle
iio Staging/IIO driver patches for 5.8-rc1 2020-06-07 10:45:08 -07:00
infiniband mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2020-06-10 13:51:47 -07:00
interconnect More power management updates for 5.8-rc1 2020-06-10 14:04:39 -07:00
iommu mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
ipack
irqchip irqchip: Fix "Loongson HyperTransport Vector support" driver build on all non-MIPS platforms 2020-06-01 09:48:52 +02:00
isdn
leds LEDs pull request for 5.8-rc1. 2020-06-04 11:03:45 -07:00
lightnvm for-5.8/block-2020-06-01 2020-06-02 15:29:19 -07:00
macintosh mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
mailbox
mcb
md - Largest change for this cycle is the DM zoned target's metadata 2020-06-05 15:45:03 -07:00
media mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
memory
memstick
message
mfd This is the bulk of GPIO changes for the v5.8 kernel cycle. 2020-06-05 14:00:30 -07:00
misc virtio: features, fixes 2020-06-10 13:42:09 -07:00
mmc This time around we have 4 lines of diff in the core framework, removing a 2020-06-10 11:42:19 -07:00
most
mtd This pull request contains a single change for UBI: 2020-06-10 13:24:40 -07:00
mux
net virtio: features, fixes 2020-06-10 13:42:09 -07:00
nfc Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-06-01 12:00:10 -07:00
ntb NTB: perf: Fix race condition when run with ntb_test 2020-06-05 20:02:09 -04:00
nubus
nvdimm asm-generic: don't include <linux/mm.h> in cacheflush.h 2020-06-08 11:05:57 -07:00
nvme RDMA 5.8 merge window pull request 2020-06-05 14:05:57 -07:00
nvmem
of Driver core patches for 5.8-rc1 2020-06-07 10:53:36 -07:00
opp opp: Don't parse icc paths unnecessarily 2020-06-01 13:10:15 +05:30
oprofile mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
parisc
parport Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
pci s390 updates for the 5.8 merge window 2020-06-08 12:05:31 -07:00
pcmcia pci-v5.8-changes 2020-06-06 11:01:58 -07:00
perf arm64 updates for 5.8 2020-06-01 15:18:27 -07:00
phy
pinctrl This is the bulk of pin control changes for the v5.8 2020-06-07 16:13:43 -07:00
platform power supply and reset changes for the v5.8 series 2020-06-10 11:28:35 -07:00
pnp
power power supply and reset changes for the v5.8 series 2020-06-10 11:28:35 -07:00
powercap
pps
ps3
ptp
pwm
rapidio rapidio: convert get_user_pages() --> pin_user_pages() 2020-06-04 19:06:26 -07:00
ras
regulator Merge remote-tracking branch 'regulator/for-5.8' into regulator-linus 2020-06-01 13:01:44 +01:00
remoteproc remoteproc updates for v5.8 2020-06-08 13:01:08 -07:00
reset Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
rpmsg remoteproc updates for v5.8 2020-06-08 13:01:08 -07:00
rtc RTC for 5.8 2020-06-07 16:11:23 -07:00
s390 s390 updates for the 5.8 merge window 2020-06-08 12:05:31 -07:00
sbus mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
scsi mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
sfi
sh
siox
slimbus
soc remoteproc updates for v5.8 2020-06-08 13:01:08 -07:00
soundwire
spi Char/Misc driver patches for 5.8-rc1 2020-06-07 10:59:32 -07:00
spmi
ssb
staging mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
target SCSI misc on 20200605 2020-06-05 15:11:50 -07:00
tc
tee mmap locking API: use coccinelle to convert mmap_sem rwsem call sites 2020-06-09 09:39:14 -07:00
thermal
thunderbolt USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
tty mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
uio
usb USB/PHY driver updates for 5.8-rc1 2020-06-07 09:42:16 -07:00
vdpa ifcvf: implement config interrupt in IFCVF 2020-06-06 16:26:47 -04:00
vfio mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
vhost virtio: features, fixes 2020-06-10 13:42:09 -07:00
video mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
virt
virtio virtio_mem: convert device block size into 64bit 2020-06-09 06:42:06 -04:00
visorbus
vlynq
vme
w1
watchdog linux-watchdog 5.8-rc1 tag 2020-06-04 10:50:22 -07:00
xen x86/entry: Switch XEN/PV hypercall entry to IDTENTRY 2020-06-11 15:15:08 +02:00
zorro
Kconfig
Makefile