Commit dcf3c935 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml

Pull UML updates from Richard Weinberger:

 - Support for optimized routines based on the host CPU

 - Support for PCI via virtio

 - Various fixes

* tag 'for-linus-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
  um: remove unneeded semicolon in um_arch.c
  um: Remove the repeated declaration
  um: fix error return code in winch_tramp()
  um: fix error return code in slip_open()
  um: Fix stack pointer alignment
  um: implement flush_cache_vmap/flush_cache_vunmap
  um: add a UML specific futex implementation
  um: enable the use of optimized xor routines in UML
  um: Add support for host CPU flags and alignment
  um: allow not setting extra rpaths in the linux binary
  um: virtio/pci: enable suspend/resume
  um: add PCI over virtio emulation driver
  um: irqs: allow invoking time-travel handler multiple times
  um: time-travel/signals: fix ndelay() in interrupt
  um: expose time-travel mode to userspace side
  um: export signals_enabled directly
  um: remove unused smp_sigio_handler() declaration
  lib: add iomem emulation (logic_iomem)
  um: allow disabling NO_IOMEM
parents 7a400bf2 1aee0201
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@ config UML
	select HAVE_FUTEX_CMPXCHG if FUTEX
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DEBUG_BUGVERBOSE
	select NO_DMA
	select NO_DMA if !UML_DMA_EMULATION
	select GENERIC_IRQ_SHOW
	select GENERIC_CPU_DEVICES
	select HAVE_GCC_PLUGINS
@@ -26,7 +26,22 @@ config MMU
	bool
	default y

config UML_DMA_EMULATION
	bool

config NO_IOMEM
	bool "disable IOMEM" if EXPERT
	depends on !INDIRECT_IOMEM
	default y

config UML_IOMEM_EMULATION
	bool
	select INDIRECT_IOMEM
	select GENERIC_PCI_IOMAP
	select GENERIC_IOMAP
	select NO_GENERIC_PCI_IOPORT_MAP

config NO_IOPORT_MAP
	def_bool y

config ISA
@@ -61,6 +76,9 @@ config NR_CPUS
	range 1 1
	default 1

config ARCH_HAS_CACHE_LINE_SIZE
	def_bool y

source "arch/$(HEADER_ARCH)/um/Kconfig"

config MAY_HAVE_RUNTIME_DEPS
@@ -91,6 +109,19 @@ config LD_SCRIPT_DYN
	depends on !LD_SCRIPT_STATIC
	select MODULE_REL_CRCS if MODVERSIONS

config LD_SCRIPT_DYN_RPATH
	bool "set rpath in the binary" if EXPERT
	default y
	depends on LD_SCRIPT_DYN
	help
	  Add /lib (and /lib64 for 64-bit) to the linux binary's rpath
	  explicitly.

	  You may need to turn this off if compiling for nix systems
	  that have their libraries in random /nix directories and
	  might otherwise unexpected use libraries from /lib or /lib64
	  instead of the desired ones.

config HOSTFS
	tristate "Host filesystem"
	help
+2 −1
Original line number Diff line number Diff line
@@ -118,7 +118,8 @@ archprepare:
	$(Q)$(MAKE) $(build)=$(HOST_DIR)/um include/generated/user_constants.h

LINK-$(CONFIG_LD_SCRIPT_STATIC) += -static
LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN) += $(call cc-option, -no-pie)
LINK-$(CONFIG_LD_SCRIPT_DYN_RPATH) += -Wl,-rpath,/lib

CFLAGS_NO_HARDENING := $(call cc-option, -fno-PIC,) $(call cc-option, -fno-pic,) \
	-fno-stack-protector $(call cc-option, -fno-stack-protector-all)
+20 −0
Original line number Diff line number Diff line
@@ -357,3 +357,23 @@ config UML_RTC
	  rtcwake, especially in time-travel mode. This driver enables that
	  by providing a fake RTC clock that causes a wakeup at the right
	  time.

config UML_PCI_OVER_VIRTIO
	bool "Enable PCI over VIRTIO device simulation"
	# in theory, just VIRTIO is enough, but that causes recursion
	depends on VIRTIO_UML
	select FORCE_PCI
	select UML_IOMEM_EMULATION
	select UML_DMA_EMULATION
	select PCI_MSI
	select PCI_MSI_IRQ_DOMAIN
	select PCI_LOCKLESS_CONFIG

config UML_PCI_OVER_VIRTIO_DEVICE_ID
	int "set the virtio device ID for PCI emulation"
	default -1
	depends on UML_PCI_OVER_VIRTIO
	help
	  There's no official device ID assigned (yet), set the one you
	  wish to use for experimentation here. The default of -1 is
	  not valid and will cause the driver to fail at probe.
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ obj-$(CONFIG_BLK_DEV_COW_COMMON) += cow_user.o
obj-$(CONFIG_UML_RANDOM) += random.o
obj-$(CONFIG_VIRTIO_UML) += virtio_uml.o
obj-$(CONFIG_UML_RTC) += rtc.o
obj-$(CONFIG_UML_PCI_OVER_VIRTIO) += virt-pci.o

# pcap_user.o must be added explicitly.
USER_OBJS := fd.o null.o pty.o tty.o xterm.o slip_common.o pcap_user.o vde_user.o vector_user.o
+2 −1
Original line number Diff line number Diff line
@@ -256,7 +256,8 @@ static int winch_tramp(int fd, struct tty_port *port, int *fd_out,
		goto out_close;
	}

	if (os_set_fd_block(*fd_out, 0)) {
	err = os_set_fd_block(*fd_out, 0);
	if (err) {
		printk(UM_KERN_ERR "winch_tramp: failed to set thread_fd "
		       "non-blocking.\n");
		goto out_close;
Loading