Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69b4a3a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 fixes from Martin Schwidefsky:
 "Enable LZ4 compression for the kernel image, add the machine id for
  the new zBC12 model, fix an issue with hanging dasd devices, correct a
  Kconfig dependency, fix a compile error in the perf module with
  CONFIG_KVM=n and fix the find_next_bit_left primitive for the PCI base
  layer"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/dasd: fix hanging devices after path events
  s390/perf: fix compile error (undefined reference sie_exit)
  s390/bitops: fix find_next_bit_left
  s390: add support for IBM zBC12 machine
  s390/Kconfig: select 'TTY' when 'S390_GUEST' is enabled
  s390: add support for LZ4-compressed kernel
parents 6160968c 0e003b70
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -118,6 +118,7 @@ config S390
	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
	select HAVE_FUNCTION_TRACE_MCOUNT_TEST
	select HAVE_KERNEL_BZIP2
	select HAVE_KERNEL_BZIP2
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_LZ4
	select HAVE_KERNEL_LZMA
	select HAVE_KERNEL_LZMA
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_LZO
	select HAVE_KERNEL_XZ
	select HAVE_KERNEL_XZ
@@ -227,11 +228,12 @@ config MARCH_Z196
	  not work on older machines.
	  not work on older machines.


config MARCH_ZEC12
config MARCH_ZEC12
	bool "IBM zEC12"
	bool "IBM zBC12 and zEC12"
	select HAVE_MARCH_ZEC12_FEATURES if 64BIT
	select HAVE_MARCH_ZEC12_FEATURES if 64BIT
	help
	help
	  Select this to enable optimizations for IBM zEC12 (2827 series). The
	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
	  kernel will be slightly faster but will not work on older machines.
	  2827 series). The kernel will be slightly faster but will not work on
	  older machines.


endchoice
endchoice


@@ -709,6 +711,7 @@ config S390_GUEST
	def_bool y
	def_bool y
	prompt "s390 support for virtio devices"
	prompt "s390 support for virtio devices"
	depends on 64BIT
	depends on 64BIT
	select TTY
	select VIRTUALIZATION
	select VIRTUALIZATION
	select VIRTIO
	select VIRTIO
	select VIRTIO_CONSOLE
	select VIRTIO_CONSOLE
+6 −3
Original line number Original line Diff line number Diff line
@@ -6,9 +6,9 @@


BITS := $(if $(CONFIG_64BIT),64,31)
BITS := $(if $(CONFIG_64BIT),64,31)


targets	:= vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \
targets	:= vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
	   vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo misc.o piggy.o \
targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
	   sizes.h head$(BITS).o
targets += misc.o piggy.o sizes.h head$(BITS).o


KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -48,6 +48,7 @@ vmlinux.bin.all-y := $(obj)/vmlinux.bin


suffix-$(CONFIG_KERNEL_GZIP)  := gz
suffix-$(CONFIG_KERNEL_GZIP)  := gz
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
suffix-$(CONFIG_KERNEL_LZ4)  := lz4
suffix-$(CONFIG_KERNEL_LZMA)  := lzma
suffix-$(CONFIG_KERNEL_LZMA)  := lzma
suffix-$(CONFIG_KERNEL_LZO)  := lzo
suffix-$(CONFIG_KERNEL_LZO)  := lzo
suffix-$(CONFIG_KERNEL_XZ)  := xz
suffix-$(CONFIG_KERNEL_XZ)  := xz
@@ -56,6 +57,8 @@ $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y)
	$(call if_changed,gzip)
	$(call if_changed,gzip)
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y)
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y)
	$(call if_changed,bzip2)
	$(call if_changed,bzip2)
$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y)
	$(call if_changed,lz4)
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y)
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y)
	$(call if_changed,lzma)
	$(call if_changed,lzma)
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y)
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y)
+4 −0
Original line number Original line Diff line number Diff line
@@ -47,6 +47,10 @@ static unsigned long free_mem_end_ptr;
#include "../../../../lib/decompress_bunzip2.c"
#include "../../../../lib/decompress_bunzip2.c"
#endif
#endif


#ifdef CONFIG_KERNEL_LZ4
#include "../../../../lib/decompress_unlz4.c"
#endif

#ifdef CONFIG_KERNEL_LZMA
#ifdef CONFIG_KERNEL_LZMA
#include "../../../../lib/decompress_unlzma.c"
#include "../../../../lib/decompress_unlzma.c"
#endif
#endif
+1 −1
Original line number Original line Diff line number Diff line
@@ -693,7 +693,7 @@ static inline int find_next_bit_left(const unsigned long *addr,
	size -= offset;
	size -= offset;
	p = addr + offset / BITS_PER_LONG;
	p = addr + offset / BITS_PER_LONG;
	if (bit) {
	if (bit) {
		set = __flo_word(0, *p & (~0UL << bit));
		set = __flo_word(0, *p & (~0UL >> bit));
		if (set >= size)
		if (set >= size)
			return size + offset;
			return size + offset;
		if (set < BITS_PER_LONG)
		if (set < BITS_PER_LONG)
+5 −4
Original line number Original line Diff line number Diff line
@@ -52,12 +52,13 @@ static struct kvm_s390_sie_block *sie_block(struct pt_regs *regs)


static bool is_in_guest(struct pt_regs *regs)
static bool is_in_guest(struct pt_regs *regs)
{
{
	unsigned long ip = instruction_pointer(regs);

	if (user_mode(regs))
	if (user_mode(regs))
		return false;
		return false;

#if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
	return ip == (unsigned long) &sie_exit;
	return instruction_pointer(regs) == (unsigned long) &sie_exit;
#else
	return false;
#endif
}
}


static unsigned long guest_is_user_mode(struct pt_regs *regs)
static unsigned long guest_is_user_mode(struct pt_regs *regs)
Loading