aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ipl.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/ipl.c')
-rw-r--r--arch/s390/kernel/ipl.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/arch/s390/kernel/ipl.c b/arch/s390/kernel/ipl.c
index 2f6cfd460cb6..e64d141555ce 100644
--- a/arch/s390/kernel/ipl.c
+++ b/arch/s390/kernel/ipl.c
@@ -1,8 +1,7 @@
1/* 1/*
2 * arch/s390/kernel/ipl.c
3 * ipl/reipl/dump support for Linux on s390. 2 * ipl/reipl/dump support for Linux on s390.
4 * 3 *
5 * Copyright IBM Corp. 2005,2012 4 * Copyright IBM Corp. 2005, 2012
6 * Author(s): Michael Holzheu <holzheu@de.ibm.com> 5 * Author(s): Michael Holzheu <holzheu@de.ibm.com>
7 * Heiko Carstens <heiko.carstens@de.ibm.com> 6 * Heiko Carstens <heiko.carstens@de.ibm.com>
8 * Volker Sameske <sameske@de.ibm.com> 7 * Volker Sameske <sameske@de.ibm.com>
@@ -1528,15 +1527,12 @@ static struct shutdown_action __refdata dump_action = {
1528 1527
1529static void dump_reipl_run(struct shutdown_trigger *trigger) 1528static void dump_reipl_run(struct shutdown_trigger *trigger)
1530{ 1529{
1531 struct { 1530 unsigned long ipib = (unsigned long) reipl_block_actual;
1532 void *addr; 1531 unsigned int csum;
1533 __u32 csum;
1534 } __packed ipib;
1535 1532
1536 ipib.csum = csum_partial(reipl_block_actual, 1533 csum = csum_partial(reipl_block_actual, reipl_block_actual->hdr.len, 0);
1537 reipl_block_actual->hdr.len, 0); 1534 mem_assign_absolute(S390_lowcore.ipib, ipib);
1538 ipib.addr = reipl_block_actual; 1535 mem_assign_absolute(S390_lowcore.ipib_checksum, csum);
1539 memcpy_absolute(&S390_lowcore.ipib, &ipib, sizeof(ipib));
1540 dump_run(trigger); 1536 dump_run(trigger);
1541} 1537}
1542 1538