Skip to content

Commit

Permalink
s390/kernel: Remove OS info init function call and diag 308 for kdump
Browse files Browse the repository at this point in the history
Because of a design change for stand-alone kdump the function that
was done by the OS info init function is moved to the boot loader
code. This has two implications that are implemented by this patch:
a) The OS info init function is no longer called by the kernel
b) The diag 308 subcode 1 reset is no longer done by the kdump boot code.
   This is necessary because otherwise the operation that is done now
   by the boot loader would be reversed. For the normal kexec based
   kdump mechansim the reset is already done by the kdump trigger code
   (e.g. panic or PSW restart).

Signed-off-by: Michael Holzheu <[email protected]>
Signed-off-by: Martin Schwidefsky <[email protected]>
  • Loading branch information
Michael Holzheu authored and Martin Schwidefsky committed May 23, 2012
1 parent 6101167 commit d7b7cde
Show file tree
Hide file tree
Showing 4 changed files with 2 additions and 23 deletions.
5 changes: 2 additions & 3 deletions arch/s390/include/asm/os_info.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@

#define OS_INFO_VMCOREINFO 0
#define OS_INFO_REIPL_BLOCK 1
#define OS_INFO_INIT_FN 2

struct os_info_entry {
u64 addr;
Expand All @@ -28,8 +27,8 @@ struct os_info {
u16 version_minor;
u64 crashkernel_addr;
u64 crashkernel_size;
struct os_info_entry entry[3];
u8 reserved[4004];
struct os_info_entry entry[2];
u8 reserved[4024];
} __packed;

void os_info_init(void);
Expand Down
7 changes: 0 additions & 7 deletions arch/s390/kernel/head_kdump.S
Original file line number Diff line number Diff line change
Expand Up @@ -85,11 +85,6 @@ startup_kdump_relocated:
basr %r13,0
0:
mvc 0(8,%r0),.Lrestart_psw-0b(%r13) # Setup restart PSW
mvc 464(16,%r0),.Lpgm_psw-0b(%r13) # Setup pgm check PSW
lhi %r1,1 # Start new kernel
diag %r1,%r1,0x308 # with diag 308

.Lno_diag308: # No diag 308
sam31 # Switch to 31 bit addr mode
sr %r1,%r1 # Erase register r1
sr %r2,%r2 # Erase register r2
Expand All @@ -98,8 +93,6 @@ startup_kdump_relocated:
.align 8
.Lrestart_psw:
.long 0x00080000,0x80000000 + startup
.Lpgm_psw:
.quad 0x0000000180000000,0x0000000000000000 + .Lno_diag308
#else
.align 2
.Lep_startup_kdump:
Expand Down
1 change: 0 additions & 1 deletion arch/s390/kernel/os_info.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ static void os_info_old_init(void)
goto fail_free;
os_info_old_alloc(OS_INFO_VMCOREINFO, 1);
os_info_old_alloc(OS_INFO_REIPL_BLOCK, 1);
os_info_old_alloc(OS_INFO_INIT_FN, PAGE_SIZE);
pr_info("crashkernel: addr=0x%lx size=%lu\n",
(unsigned long) os_info_old->crashkernel_addr,
(unsigned long) os_info_old->crashkernel_size);
Expand Down
12 changes: 0 additions & 12 deletions arch/s390/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -800,17 +800,6 @@ void __noreturn cpu_die(void)

#endif /* CONFIG_HOTPLUG_CPU */

static void smp_call_os_info_init_fn(void)
{
int (*init_fn)(void);
unsigned long size;

init_fn = os_info_old_entry(OS_INFO_INIT_FN, &size);
if (!init_fn)
return;
init_fn();
}

void __init smp_prepare_cpus(unsigned int max_cpus)
{
/* request the 0x1201 emergency signal external interrupt */
Expand All @@ -819,7 +808,6 @@ void __init smp_prepare_cpus(unsigned int max_cpus)
/* request the 0x1202 external call external interrupt */
if (register_external_interrupt(0x1202, do_ext_call_interrupt) != 0)
panic("Couldn't request external interrupt 0x1202");
smp_call_os_info_init_fn();
smp_detect_cpus();
}

Expand Down

0 comments on commit d7b7cde

Please sign in to comment.