mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 21:38:32 +08:00
b1ddd406cd
The legacy hypercall handlers were originally added with
a comment explaining that "copying the argument structures in
HYPERVISOR_event_channel_op() and HYPERVISOR_physdev_op() into the local
variable is sufficiently safe" and only made sure to not write
past the end of the argument structure, the checks in linux/string.h
disagree with that, when link-time optimizations are used:
In function 'memcpy',
inlined from 'pirq_query_unmask' at drivers/xen/fallback.c:53:2,
inlined from '__startup_pirq' at drivers/xen/events/events_base.c:529:2,
inlined from 'restore_pirqs' at drivers/xen/events/events_base.c:1439:3,
inlined from 'xen_irq_resume' at drivers/xen/events/events_base.c:1581:2:
include/linux/string.h:350:3: error: call to '__read_overflow2' declared with attribute error: detected read beyond size of object passed as 2nd parameter
__read_overflow2();
^
Further research turned out that only Xen 3.0.2 or earlier required the
fallback at all, while all versions in use today don't need it.
As far as I can tell, it is not even possible to run a mainline kernel
on those old Xen releases, at the time when they were in use, only
a patched kernel was supported anyway.
Fixes: cf47a83fb0
("xen/hypercall: fix hypercall fallback code for very old hypervisors")
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Cc: Jan Beulich <JBeulich@suse.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Juergen Gross <jgross@suse.com>
47 lines
1.8 KiB
Makefile
47 lines
1.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
|
|
obj-y += grant-table.o features.o balloon.o manage.o preempt.o time.o
|
|
obj-y += mem-reservation.o
|
|
obj-y += events/
|
|
obj-y += xenbus/
|
|
|
|
nostackp := $(call cc-option, -fno-stack-protector)
|
|
CFLAGS_features.o := $(nostackp)
|
|
|
|
dom0-$(CONFIG_ARM64) += arm-device.o
|
|
dom0-$(CONFIG_PCI) += pci.o
|
|
dom0-$(CONFIG_USB_SUPPORT) += dbgp.o
|
|
dom0-$(CONFIG_XEN_ACPI) += acpi.o $(xen-pad-y)
|
|
xen-pad-$(CONFIG_X86) += xen-acpi-pad.o
|
|
dom0-$(CONFIG_X86) += pcpu.o
|
|
obj-$(CONFIG_XEN_DOM0) += $(dom0-y)
|
|
obj-$(CONFIG_BLOCK) += biomerge.o
|
|
obj-$(CONFIG_XEN_BALLOON) += xen-balloon.o
|
|
obj-$(CONFIG_XEN_SELFBALLOONING) += xen-selfballoon.o
|
|
obj-$(CONFIG_XEN_DEV_EVTCHN) += xen-evtchn.o
|
|
obj-$(CONFIG_XEN_GNTDEV) += xen-gntdev.o
|
|
obj-$(CONFIG_XEN_GRANT_DEV_ALLOC) += xen-gntalloc.o
|
|
obj-$(CONFIG_XENFS) += xenfs/
|
|
obj-$(CONFIG_XEN_SYS_HYPERVISOR) += sys-hypervisor.o
|
|
obj-$(CONFIG_XEN_PVHVM) += platform-pci.o
|
|
obj-$(CONFIG_XEN_TMEM) += tmem.o
|
|
obj-$(CONFIG_SWIOTLB_XEN) += swiotlb-xen.o
|
|
obj-$(CONFIG_XEN_MCE_LOG) += mcelog.o
|
|
obj-$(CONFIG_XEN_PCIDEV_BACKEND) += xen-pciback/
|
|
obj-$(CONFIG_XEN_PRIVCMD) += xen-privcmd.o
|
|
obj-$(CONFIG_XEN_STUB) += xen-stub.o
|
|
obj-$(CONFIG_XEN_ACPI_HOTPLUG_MEMORY) += xen-acpi-memhotplug.o
|
|
obj-$(CONFIG_XEN_ACPI_HOTPLUG_CPU) += xen-acpi-cpuhotplug.o
|
|
obj-$(CONFIG_XEN_ACPI_PROCESSOR) += xen-acpi-processor.o
|
|
obj-$(CONFIG_XEN_EFI) += efi.o
|
|
obj-$(CONFIG_XEN_SCSI_BACKEND) += xen-scsiback.o
|
|
obj-$(CONFIG_XEN_AUTO_XLATE) += xlate_mmu.o
|
|
obj-$(CONFIG_XEN_PVCALLS_BACKEND) += pvcalls-back.o
|
|
obj-$(CONFIG_XEN_PVCALLS_FRONTEND) += pvcalls-front.o
|
|
xen-evtchn-y := evtchn.o
|
|
xen-gntdev-y := gntdev.o
|
|
xen-gntdev-$(CONFIG_XEN_GNTDEV_DMABUF) += gntdev-dmabuf.o
|
|
xen-gntalloc-y := gntalloc.o
|
|
xen-privcmd-y := privcmd.o privcmd-buf.o
|
|
obj-$(CONFIG_XEN_FRONT_PGDIR_SHBUF) += xen-front-pgdir-shbuf.o
|