original_kernel/arch/s390/kernel
Heiko Carstens 0b991f5cdc s390/cachinfo: add missing facility check to init_cache_level()
Stephen Powell reported the following crash on a z890 machine:

Kernel BUG at 00000000001219d0 [verbose debug info unavailable]
illegal operation: 0001 ilc:3 [#1] SMP
Krnl PSW : 0704e00180000000 00000000001219d0 (init_cache_level+0x38/0xe0)
	   R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 EA:3
Krnl Code: 00000000001219c2: a7840056		brc	8,121a6e
	   00000000001219c6: a7190000		lghi	%r1,0
	  #00000000001219ca: eb101000004c	ecag	%r1,%r0,0(%r1)
	  >00000000001219d0: a7390000		lghi	%r3,0
	   00000000001219d4: e310f0a00024	stg	%r1,160(%r15)
	   00000000001219da: a7080000		lhi	%r0,0
	   00000000001219de: a7b9f000		lghi	%r11,-4096
	   00000000001219e2: c0a0002899d9	larl	%r10,634d94
Call Trace:
 [<0000000000478ee2>] detect_cache_attributes+0x2a/0x2b8
 [<000000000097c9b0>] cacheinfo_sysfs_init+0x60/0xc8
 [<00000000001001c0>] do_one_initcall+0x98/0x1c8
 [<000000000094fdc2>] kernel_init_freeable+0x212/0x2d8
 [<000000000062352e>] kernel_init+0x26/0x118
 [<000000000062fd2e>] kernel_thread_starter+0x6/0xc

The illegal operation was executed because of a missing facility check,
which should have made sure that the ECAG execution would only be executed
on machines which have the general-instructions-extension facility
installed.

Reported-and-tested-by: Stephen Powell <zlinuxman@wowway.com>
Cc: stable@vger.kernel.org # v4.0+
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2015-07-28 08:54:42 +02:00
..
vdso32
vdso64
.gitignore
Makefile
asm-offsets.c
audit.c
audit.h
base.S
cache.c
compat_audit.c
compat_linux.c
compat_linux.h
compat_ptrace.h
compat_signal.c
compat_wrapper.c
cpcmd.c
crash_dump.c
debug.c
diag.c
dis.c
dumpstack.c
early.c
ebcdic.c
entry.S
entry.h
ftrace.c
head.S
head64.S
head_kdump.S
idle.c
ipl.c
irq.c
jump_label.c
kprobes.c
lgr.c
machine_kexec.c
mcount.S
module.c
nmi.c
os_info.c
perf_cpum_cf.c
perf_cpum_cf_events.c
perf_cpum_sf.c
perf_event.c
pgm_check.S
process.c
processor.c
ptrace.c
reipl.S
relocate_kernel.S
runtime_instr.c
s390_ksyms.c
sclp.S
setup.c
signal.c
smp.c
stacktrace.c
suspend.c
swsusp.S
sys_s390.c
syscalls.S
sysinfo.c
time.c
topology.c
traps.c
uprobes.c
vdso.c
vmlinux.lds.S
vtime.c