Skip to content

Commit 69b4a3a

Browse files
committed
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
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
2 parents 6160968 + 0e003b7 commit 69b4a3a

File tree

9 files changed

+31
-12
lines changed

9 files changed

+31
-12
lines changed

arch/s390/Kconfig

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ config S390
118118
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
119119
select HAVE_KERNEL_BZIP2
120120
select HAVE_KERNEL_GZIP
121+
select HAVE_KERNEL_LZ4
121122
select HAVE_KERNEL_LZMA
122123
select HAVE_KERNEL_LZO
123124
select HAVE_KERNEL_XZ
@@ -227,11 +228,12 @@ config MARCH_Z196
227228
not work on older machines.
228229

229230
config MARCH_ZEC12
230-
bool "IBM zEC12"
231+
bool "IBM zBC12 and zEC12"
231232
select HAVE_MARCH_ZEC12_FEATURES if 64BIT
232233
help
233-
Select this to enable optimizations for IBM zEC12 (2827 series). The
234-
kernel will be slightly faster but will not work on older machines.
234+
Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
235+
2827 series). The kernel will be slightly faster but will not work on
236+
older machines.
235237

236238
endchoice
237239

@@ -709,6 +711,7 @@ config S390_GUEST
709711
def_bool y
710712
prompt "s390 support for virtio devices"
711713
depends on 64BIT
714+
select TTY
712715
select VIRTUALIZATION
713716
select VIRTIO
714717
select VIRTIO_CONSOLE

arch/s390/boot/compressed/Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66

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

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

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

4949
suffix-$(CONFIG_KERNEL_GZIP) := gz
5050
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
51+
suffix-$(CONFIG_KERNEL_LZ4) := lz4
5152
suffix-$(CONFIG_KERNEL_LZMA) := lzma
5253
suffix-$(CONFIG_KERNEL_LZO) := lzo
5354
suffix-$(CONFIG_KERNEL_XZ) := xz
@@ -56,6 +57,8 @@ $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y)
5657
$(call if_changed,gzip)
5758
$(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y)
5859
$(call if_changed,bzip2)
60+
$(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y)
61+
$(call if_changed,lz4)
5962
$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y)
6063
$(call if_changed,lzma)
6164
$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y)

arch/s390/boot/compressed/misc.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ static unsigned long free_mem_end_ptr;
4747
#include "../../../../lib/decompress_bunzip2.c"
4848
#endif
4949

50+
#ifdef CONFIG_KERNEL_LZ4
51+
#include "../../../../lib/decompress_unlz4.c"
52+
#endif
53+
5054
#ifdef CONFIG_KERNEL_LZMA
5155
#include "../../../../lib/decompress_unlzma.c"
5256
#endif

arch/s390/include/asm/bitops.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ static inline int find_next_bit_left(const unsigned long *addr,
693693
size -= offset;
694694
p = addr + offset / BITS_PER_LONG;
695695
if (bit) {
696-
set = __flo_word(0, *p & (~0UL << bit));
696+
set = __flo_word(0, *p & (~0UL >> bit));
697697
if (set >= size)
698698
return size + offset;
699699
if (set < BITS_PER_LONG)

arch/s390/kernel/perf_event.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,13 @@ static struct kvm_s390_sie_block *sie_block(struct pt_regs *regs)
5252

5353
static bool is_in_guest(struct pt_regs *regs)
5454
{
55-
unsigned long ip = instruction_pointer(regs);
56-
5755
if (user_mode(regs))
5856
return false;
59-
60-
return ip == (unsigned long) &sie_exit;
57+
#if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
58+
return instruction_pointer(regs) == (unsigned long) &sie_exit;
59+
#else
60+
return false;
61+
#endif
6162
}
6263

6364
static unsigned long guest_is_user_mode(struct pt_regs *regs)

arch/s390/kernel/setup.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -994,6 +994,7 @@ static void __init setup_hwcaps(void)
994994
strcpy(elf_platform, "z196");
995995
break;
996996
case 0x2827:
997+
case 0x2828:
997998
strcpy(elf_platform, "zEC12");
998999
break;
9991000
}

arch/s390/mm/init.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ static void __init setup_zero_pages(void)
6969
order = 2;
7070
break;
7171
case 0x2827: /* zEC12 */
72+
case 0x2828: /* zEC12 */
7273
default:
7374
order = 5;
7475
break;

arch/s390/oprofile/init.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,7 @@ static int oprofile_hwsampler_init(struct oprofile_operations *ops)
440440
switch (id.machine) {
441441
case 0x2097: case 0x2098: ops->cpu_type = "s390/z10"; break;
442442
case 0x2817: case 0x2818: ops->cpu_type = "s390/z196"; break;
443-
case 0x2827: ops->cpu_type = "s390/zEC12"; break;
443+
case 0x2827: case 0x2828: ops->cpu_type = "s390/zEC12"; break;
444444
default: return -ENODEV;
445445
}
446446
}

drivers/s390/block/dasd.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2392,6 +2392,12 @@ int dasd_sleep_on_immediatly(struct dasd_ccw_req *cqr)
23922392
rc = cqr->intrc;
23932393
else
23942394
rc = -EIO;
2395+
2396+
/* kick tasklets */
2397+
dasd_schedule_device_bh(device);
2398+
if (device->block)
2399+
dasd_schedule_block_bh(device->block);
2400+
23952401
return rc;
23962402
}
23972403

0 commit comments

Comments
 (0)