cf47a83fb0
While copying the argument structures in HYPERVISOR_event_channel_op() and HYPERVISOR_physdev_op() into the local variable is sufficiently safe even if the actual structure is smaller than the container one, copying back eventual output values the same way isn't: This may collide with on-stack variables (particularly "rc") which may change between the first and second memcpy() (i.e. the second memcpy() could discard that change). Move the fallback code into out-of-line functions, and handle all of the operations known by this old a hypervisor individually: Some don't require copying back anything at all, and for the rest use the individual argument structures' sizes rather than the container's. Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> [v2: Reduce #define/#undef usage in HYPERVISOR_physdev_op_compat().] [v3: Fix compile errors when modules use said hypercalls] [v4: Add xen_ prefix to the HYPERCALL_..] [v5: Alter the name and only EXPORT_SYMBOL_GPL one of them] Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
36 lines
1.2 KiB
Makefile
36 lines
1.2 KiB
Makefile
ifneq ($(CONFIG_ARM),y)
|
|
obj-y += manage.o balloon.o
|
|
obj-$(CONFIG_HOTPLUG_CPU) += cpu_hotplug.o
|
|
endif
|
|
obj-y += grant-table.o features.o events.o fallback.o
|
|
obj-y += xenbus/
|
|
|
|
nostackp := $(call cc-option, -fno-stack-protector)
|
|
CFLAGS_features.o := $(nostackp)
|
|
|
|
dom0-$(CONFIG_PCI) += pci.o
|
|
dom0-$(CONFIG_USB_SUPPORT) += dbgp.o
|
|
dom0-$(CONFIG_ACPI) += acpi.o
|
|
dom0-$(CONFIG_X86) += pcpu.o
|
|
obj-$(CONFIG_XEN_DOM0) += $(dom0-y)
|
|
obj-$(CONFIG_BLOCK) += biomerge.o
|
|
obj-$(CONFIG_XEN_XENCOMM) += xencomm.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_ACPI_PROCESSOR) += xen-acpi-processor.o
|
|
xen-evtchn-y := evtchn.o
|
|
xen-gntdev-y := gntdev.o
|
|
xen-gntalloc-y := gntalloc.o
|
|
xen-privcmd-y := privcmd.o
|