diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2020-01-28 18:29:25 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2020-01-28 18:29:25 -0800 |
commit | fad7bdc9b054a3dc2f5e77a8061c07aead6f5a5e (patch) | |
tree | 5005f612c8bb682fa621d6d3f8b75897e71590af | |
parent | a78416d97425551b6790dc56626ac5c87415f3fc (diff) | |
parent | d65197ad52494bed3b5e64708281b8295f76c391 (diff) |
Merge tag 'for-linus-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
Pull UML updates from Anton Ivanov:
"I am sending this on behalf of Richard who is traveling.
This contains the following changes for UML:
- Fix for time travel mode
- Disable CONFIG_CONSTRUCTORS again
- A new command line option to have an non-raw serial line
- Preparations to remove obsolete UML network drivers"
* tag 'for-linus-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml:
um: Fix time-travel=inf-cpu with xor/raid6
Revert "um: Enable CONFIG_CONSTRUCTORS"
um: Mark non-vector net transports as obsolete
um: Add an option to make serial driver non-raw
-rw-r--r-- | arch/um/Kconfig | 2 | ||||
-rw-r--r-- | arch/um/drivers/Kconfig | 81 | ||||
-rw-r--r-- | arch/um/drivers/chan_user.h | 2 | ||||
-rw-r--r-- | arch/um/drivers/ssl.c | 8 | ||||
-rw-r--r-- | arch/um/include/asm/Kbuild | 1 | ||||
-rw-r--r-- | arch/um/include/asm/common.lds.S | 2 | ||||
-rw-r--r-- | arch/um/include/asm/xor.h | 7 | ||||
-rw-r--r-- | arch/um/kernel/dyn.lds.S | 1 | ||||
-rw-r--r-- | init/Kconfig | 1 | ||||
-rw-r--r-- | kernel/gcov/Kconfig | 2 |
10 files changed, 63 insertions, 44 deletions
diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 6f0edd0c0220..0917f8443c28 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -189,6 +189,8 @@ config SECCOMP config UML_TIME_TRAVEL_SUPPORT bool prompt "Support time-travel mode (e.g. for test execution)" + # inf-cpu mode is incompatible with the benchmarking + depends on !RAID6_PQ_BENCHMARK help Enable this option to support time travel inside the UML instance. diff --git a/arch/um/drivers/Kconfig b/arch/um/drivers/Kconfig index 388096fb45a2..72d417055782 100644 --- a/arch/um/drivers/Kconfig +++ b/arch/um/drivers/Kconfig @@ -147,7 +147,7 @@ config UML_NET make use of UML networking. config UML_NET_ETHERTAP - bool "Ethertap transport" + bool "Ethertap transport (obsolete)" depends on UML_NET help The Ethertap User-Mode Linux network transport allows a single @@ -167,14 +167,13 @@ config UML_NET_ETHERTAP has examples of the UML command line to use to enable Ethertap networking. - If you'd like to set up an IP network with the host and/or the - outside world, say Y to this, the Daemon Transport and/or the - Slip Transport. You'll need at least one of them, but may choose - more than one without conflict. If you don't need UML networking, - say N. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_TUNTAP - bool "TUN/TAP transport" + bool "TUN/TAP transport (obsolete)" depends on UML_NET help The UML TUN/TAP network transport allows a UML instance to exchange @@ -185,8 +184,13 @@ config UML_NET_TUNTAP To use this transport, your host kernel must have support for TUN/TAP devices, either built-in or as a module. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. + config UML_NET_SLIP - bool "SLIP transport" + bool "SLIP transport (obsolete)" depends on UML_NET help The slip User-Mode Linux network transport allows a running UML to @@ -201,16 +205,13 @@ config UML_NET_SLIP has examples of the UML command line to use to enable slip networking, and details of a few quirks with it. - The Ethertap Transport is preferred over slip because of its - limitations. If you prefer slip, however, say Y here. Otherwise - choose the Multicast transport (to network multiple UMLs on - multiple hosts), Ethertap (to network with the host and the - outside world), and/or the Daemon transport (to network multiple - UMLs on a single host). You may choose more than one without - conflict. If you don't need UML networking, say N. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_DAEMON - bool "Daemon transport" + bool "Daemon transport (obsolete)" depends on UML_NET help This User-Mode Linux network transport allows one or more running @@ -225,13 +226,10 @@ config UML_NET_DAEMON has examples of the UML command line to use to enable Daemon networking. - If you'd like to set up a network with other UMLs on a single host, - say Y. If you need a network between UMLs on multiple physical - hosts, choose the Multicast Transport. To set up a network with - the host and/or other IP machines, say Y to the Ethertap or Slip - transports. You'll need at least one of them, but may choose - more than one without conflict. If you don't need UML networking, - say N. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_VECTOR bool "Vector I/O high performance network devices" @@ -245,7 +243,7 @@ config UML_NET_VECTOR drivers. config UML_NET_VDE - bool "VDE transport" + bool "VDE transport (obsolete)" depends on UML_NET help This User-Mode Linux network transport allows one or more running @@ -263,11 +261,13 @@ config UML_NET_VDE That site has a good overview of what VDE is and also examples of the UML command line to use to enable VDE networking. - If you need UML networking with VDE, - say Y. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_MCAST - bool "Multicast transport" + bool "Multicast transport (obsolete)" depends on UML_NET help This Multicast User-Mode Linux network transport allows multiple @@ -284,15 +284,13 @@ config UML_NET_MCAST has examples of the UML command line to use to enable Multicast networking, and notes about the security of this approach. - If you need UMLs on multiple physical hosts to communicate as if - they shared an Ethernet network, say Y. If you need to communicate - with other IP machines, make sure you select one of the other - transports (possibly in addition to Multicast; they're not - exclusive). If you don't need to network UMLs say N to each of - the transports. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_PCAP - bool "pcap transport" + bool "pcap transport (obsolete)" depends on UML_NET help The pcap transport makes a pcap packet stream on the host look @@ -304,11 +302,13 @@ config UML_NET_PCAP <http://user-mode-linux.sourceforge.net/old/networking.html> That site has examples of the UML command line to use to enable this option. - If you intend to use UML as a network monitor for the host, say - Y here. Otherwise, say N. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. config UML_NET_SLIRP - bool "SLiRP transport" + bool "SLiRP transport (obsolete)" depends on UML_NET help The SLiRP User-Mode Linux network transport allows a running UML @@ -328,9 +328,10 @@ config UML_NET_SLIRP that of a host behind a firewall that masquerades all network connections passing through it (but is less secure). - To use this you should first have slirp compiled somewhere - accessible on the host, and have read its documentation. If you - don't need UML networking, say N. + NOTE: THIS TRANSPORT IS DEPRECATED AND WILL BE REMOVED SOON!!! Please + migrate to UML_NET_VECTOR. + + If unsure, say N. Startup example: "eth0=slirp,FE:FD:01:02:03:04,/usr/local/bin/slirp" diff --git a/arch/um/drivers/chan_user.h b/arch/um/drivers/chan_user.h index 72222bb036f5..4e51b85e2a23 100644 --- a/arch/um/drivers/chan_user.h +++ b/arch/um/drivers/chan_user.h @@ -11,7 +11,7 @@ struct chan_opts { void (*const announce)(char *dev_name, int dev); char *xterm_title; - const int raw; + int raw; }; struct chan_ops { diff --git a/arch/um/drivers/ssl.c b/arch/um/drivers/ssl.c index b213201b8a3b..26c5716fac0f 100644 --- a/arch/um/drivers/ssl.c +++ b/arch/um/drivers/ssl.c @@ -196,3 +196,11 @@ static int ssl_chan_setup(char *str) __setup("ssl", ssl_chan_setup); __channel_help(ssl_chan_setup, "ssl"); + +static int ssl_non_raw_setup(char *str) +{ + opts.raw = 0; + return 1; +} +__setup("ssl-non-raw", ssl_non_raw_setup); +__channel_help(ssl_non_raw_setup, "set serial lines to non-raw mode"); diff --git a/arch/um/include/asm/Kbuild b/arch/um/include/asm/Kbuild index 398006d27e40..db7d9d4e30d8 100644 --- a/arch/um/include/asm/Kbuild +++ b/arch/um/include/asm/Kbuild @@ -25,5 +25,4 @@ generic-y += switch_to.h generic-y += topology.h generic-y += trace_clock.h generic-y += word-at-a-time.h -generic-y += xor.h generic-y += kprobes.h diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/common.lds.S index 7145ce699982..eca6c452a41b 100644 --- a/arch/um/include/asm/common.lds.S +++ b/arch/um/include/asm/common.lds.S @@ -82,8 +82,8 @@ __preinit_array_end = .; } .init_array : { - /* dummy - we call this ourselves */ __init_array_start = .; + *(.init_array) __init_array_end = .; } .fini_array : { diff --git a/arch/um/include/asm/xor.h b/arch/um/include/asm/xor.h new file mode 100644 index 000000000000..7a3208c47cfc --- /dev/null +++ b/arch/um/include/asm/xor.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#include <asm-generic/xor.h> +#include <shared/timer-internal.h> + +/* pick an arbitrary one - measuring isn't possible with inf-cpu */ +#define XOR_SELECT_TEMPLATE(x) \ + (time_travel_mode == TT_MODE_INFCPU ? &xor_block_8regs : NULL) diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S index c69d69ee96be..f5001481010c 100644 --- a/arch/um/kernel/dyn.lds.S +++ b/arch/um/kernel/dyn.lds.S @@ -103,6 +103,7 @@ SECTIONS be empty, which isn't pretty. */ . = ALIGN(32 / 8); .preinit_array : { *(.preinit_array) } + .init_array : { *(.init_array) } .fini_array : { *(.fini_array) } .data : { INIT_TASK_DATA(KERNEL_STACK_SIZE) diff --git a/init/Kconfig b/init/Kconfig index 303b41369181..24b23d843df1 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -54,6 +54,7 @@ config CC_DISABLE_WARN_MAYBE_UNINITIALIZED config CONSTRUCTORS bool + depends on !UML config IRQ_WORK bool diff --git a/kernel/gcov/Kconfig b/kernel/gcov/Kconfig index 060e8e726755..3941a9c48f83 100644 --- a/kernel/gcov/Kconfig +++ b/kernel/gcov/Kconfig @@ -4,7 +4,7 @@ menu "GCOV-based kernel profiling" config GCOV_KERNEL bool "Enable gcov-based kernel profiling" depends on DEBUG_FS - select CONSTRUCTORS + select CONSTRUCTORS if !UML default n ---help--- This option enables gcov-based code profiling (e.g. for code coverage |