File tree Expand file tree Collapse file tree 9 files changed +31
-12
lines changed Expand file tree Collapse file tree 9 files changed +31
-12
lines changed Original file line number Diff line number Diff line change @@ -118,6 +118,7 @@ config S390
118
118
select HAVE_FUNCTION_TRACE_MCOUNT_TEST
119
119
select HAVE_KERNEL_BZIP2
120
120
select HAVE_KERNEL_GZIP
121
+ select HAVE_KERNEL_LZ4
121
122
select HAVE_KERNEL_LZMA
122
123
select HAVE_KERNEL_LZO
123
124
select HAVE_KERNEL_XZ
@@ -227,11 +228,12 @@ config MARCH_Z196
227
228
not work on older machines.
228
229
229
230
config MARCH_ZEC12
230
- bool "IBM zEC12"
231
+ bool "IBM zBC12 and zEC12"
231
232
select HAVE_MARCH_ZEC12_FEATURES if 64BIT
232
233
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.
235
237
236
238
endchoice
237
239
@@ -709,6 +711,7 @@ config S390_GUEST
709
711
def_bool y
710
712
prompt "s390 support for virtio devices"
711
713
depends on 64BIT
714
+ select TTY
712
715
select VIRTUALIZATION
713
716
select VIRTIO
714
717
select VIRTIO_CONSOLE
Original file line number Diff line number Diff line change 6
6
7
7
BITS := $(if $(CONFIG_64BIT ) ,64,31)
8
8
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
12
12
13
13
KBUILD_CFLAGS := -m$(BITS ) -D__KERNEL__ $(LINUX_INCLUDE ) -O2
14
14
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -48,6 +48,7 @@ vmlinux.bin.all-y := $(obj)/vmlinux.bin
48
48
49
49
suffix-$(CONFIG_KERNEL_GZIP) := gz
50
50
suffix-$(CONFIG_KERNEL_BZIP2) := bz2
51
+ suffix-$(CONFIG_KERNEL_LZ4) := lz4
51
52
suffix-$(CONFIG_KERNEL_LZMA) := lzma
52
53
suffix-$(CONFIG_KERNEL_LZO) := lzo
53
54
suffix-$(CONFIG_KERNEL_XZ) := xz
@@ -56,6 +57,8 @@ $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y)
56
57
$(call if_changed,gzip)
57
58
$(obj ) /vmlinux.bin.bz2 : $(vmlinux.bin.all-y )
58
59
$(call if_changed,bzip2)
60
+ $(obj ) /vmlinux.bin.lz4 : $(vmlinux.bin.all-y )
61
+ $(call if_changed,lz4)
59
62
$(obj ) /vmlinux.bin.lzma : $(vmlinux.bin.all-y )
60
63
$(call if_changed,lzma)
61
64
$(obj ) /vmlinux.bin.lzo : $(vmlinux.bin.all-y )
Original file line number Diff line number Diff line change @@ -47,6 +47,10 @@ static unsigned long free_mem_end_ptr;
47
47
#include "../../../../lib/decompress_bunzip2.c"
48
48
#endif
49
49
50
+ #ifdef CONFIG_KERNEL_LZ4
51
+ #include "../../../../lib/decompress_unlz4.c"
52
+ #endif
53
+
50
54
#ifdef CONFIG_KERNEL_LZMA
51
55
#include "../../../../lib/decompress_unlzma.c"
52
56
#endif
Original file line number Diff line number Diff line change @@ -693,7 +693,7 @@ static inline int find_next_bit_left(const unsigned long *addr,
693
693
size -= offset ;
694
694
p = addr + offset / BITS_PER_LONG ;
695
695
if (bit ) {
696
- set = __flo_word (0 , * p & (~0UL << bit ));
696
+ set = __flo_word (0 , * p & (~0UL >> bit ));
697
697
if (set >= size )
698
698
return size + offset ;
699
699
if (set < BITS_PER_LONG )
Original file line number Diff line number Diff line change @@ -52,12 +52,13 @@ static struct kvm_s390_sie_block *sie_block(struct pt_regs *regs)
52
52
53
53
static bool is_in_guest (struct pt_regs * regs )
54
54
{
55
- unsigned long ip = instruction_pointer (regs );
56
-
57
55
if (user_mode (regs ))
58
56
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
61
62
}
62
63
63
64
static unsigned long guest_is_user_mode (struct pt_regs * regs )
Original file line number Diff line number Diff line change @@ -994,6 +994,7 @@ static void __init setup_hwcaps(void)
994
994
strcpy (elf_platform , "z196" );
995
995
break ;
996
996
case 0x2827 :
997
+ case 0x2828 :
997
998
strcpy (elf_platform , "zEC12" );
998
999
break ;
999
1000
}
Original file line number Diff line number Diff line change @@ -69,6 +69,7 @@ static void __init setup_zero_pages(void)
69
69
order = 2 ;
70
70
break ;
71
71
case 0x2827 : /* zEC12 */
72
+ case 0x2828 : /* zEC12 */
72
73
default :
73
74
order = 5 ;
74
75
break ;
Original file line number Diff line number Diff line change @@ -440,7 +440,7 @@ static int oprofile_hwsampler_init(struct oprofile_operations *ops)
440
440
switch (id .machine ) {
441
441
case 0x2097 : case 0x2098 : ops -> cpu_type = "s390/z10" ; break ;
442
442
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 ;
444
444
default : return - ENODEV ;
445
445
}
446
446
}
Original file line number Diff line number Diff line change @@ -2392,6 +2392,12 @@ int dasd_sleep_on_immediatly(struct dasd_ccw_req *cqr)
2392
2392
rc = cqr -> intrc ;
2393
2393
else
2394
2394
rc = - EIO ;
2395
+
2396
+ /* kick tasklets */
2397
+ dasd_schedule_device_bh (device );
2398
+ if (device -> block )
2399
+ dasd_schedule_block_bh (device -> block );
2400
+
2395
2401
return rc ;
2396
2402
}
2397
2403
You can’t perform that action at this time.
0 commit comments