bb11e3bdba
This patch adds two improvements to the oops output. First it adds an additional line after the PSW which decodes the different fields of it. Second a disassembler is added that decodes the instructions surrounding the faulting PSW. The output of a test oops now looks like this: kernel BUG at init/main.c:419 illegal operation: 0001 [#1] CPU: 0 Not tainted Process swapper (pid: 0, task: 0000000000464968, ksp: 00000000004be000) Krnl PSW : 0700000180000000 00000000000120b6 (rest_init+0x36/0x38) R:0 T:1 IO:1 EX:1 Key:0 M:0 W:0 P:0 AS:0 CC:0 PM:0 EA:3 Krnl GPRS: 0000000000000003 00000000004ba017 0000000000000022 0000000000000001 000000000003a5f6 0000000000000000 00000000004be6a8 0000000000000000 0000000000000000 00000000004b8200 0000000000003a50 0000000000008000 0000000000516368 000000000033d008 00000000000120b2 00000000004bdee0 Krnl Code: 00000000000120a6: e3e0f0980024 stg %r14,152(%r15) 00000000000120ac: c0e500014296 brasl %r14,3a5d8 00000000000120b2: a7f40001 brc 15,120b4 >00000000000120b6: 0707 bcr 0,%r7 00000000000120b8: eb7ff0500024 stmg %r7,%r15,80(%r15) 00000000000120be: c0d000195825 larl %r13,33d108 00000000000120c4: a7f13f00 tmll %r15,16128 00000000000120c8: a7840001 brc 8,120ca Call Trace: ([<00000000000120b2>] rest_init+0x32/0x38) [<00000000004be614>] start_kernel+0x37c/0x410 [<0000000000012020>] _ehead+0x20/0x80 Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
38 lines
1.0 KiB
Makefile
38 lines
1.0 KiB
Makefile
#
|
|
# Makefile for the linux kernel.
|
|
#
|
|
|
|
EXTRA_AFLAGS := -traditional
|
|
|
|
obj-y := bitmap.o traps.o time.o process.o base.o early.o \
|
|
setup.o sys_s390.o ptrace.o signal.o cpcmd.o ebcdic.o \
|
|
semaphore.o s390_ext.o debug.o irq.o ipl.o dis.o
|
|
|
|
obj-y += $(if $(CONFIG_64BIT),entry64.o,entry.o)
|
|
obj-y += $(if $(CONFIG_64BIT),reipl64.o,reipl.o)
|
|
|
|
extra-y += head.o init_task.o vmlinux.lds
|
|
|
|
obj-$(CONFIG_MODULES) += s390_ksyms.o module.o
|
|
obj-$(CONFIG_SMP) += smp.o
|
|
|
|
obj-$(CONFIG_AUDIT) += audit.o
|
|
compat-obj-$(CONFIG_AUDIT) += compat_audit.o
|
|
obj-$(CONFIG_COMPAT) += compat_linux.o compat_signal.o \
|
|
compat_wrapper.o compat_exec_domain.o \
|
|
binfmt_elf32.o $(compat-obj-y)
|
|
|
|
obj-$(CONFIG_VIRT_TIMER) += vtime.o
|
|
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
|
obj-$(CONFIG_KPROBES) += kprobes.o
|
|
|
|
# Kexec part
|
|
S390_KEXEC_OBJS := machine_kexec.o crash.o
|
|
S390_KEXEC_OBJS += $(if $(CONFIG_64BIT),relocate_kernel64.o,relocate_kernel.o)
|
|
obj-$(CONFIG_KEXEC) += $(S390_KEXEC_OBJS)
|
|
|
|
#
|
|
# This is just to get the dependencies...
|
|
#
|
|
binfmt_elf32.o: $(TOPDIR)/fs/binfmt_elf.c
|