Commit 2facd5d3 authored by Alexander Gordeev's avatar Alexander Gordeev
Browse files

s390/ipl: fix IPIB virtual vs physical address confusion



The pointer to IPL Parameter Information Block is stored
in the absolute lowcore for later use by dump tools. That
pointer is a virtual address, though it should be physical
instead.

Note, this does not fix a real issue, since virtual and
physical addresses are currently the same.

Suggested-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
parent a33239be
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -1935,14 +1935,13 @@ static struct shutdown_action __refdata dump_action = {

static void dump_reipl_run(struct shutdown_trigger *trigger)
{
	unsigned long ipib = (unsigned long) reipl_block_actual;
	struct lowcore *abs_lc;
	unsigned int csum;

	csum = (__force unsigned int)
	       csum_partial(reipl_block_actual, reipl_block_actual->hdr.len, 0);
	abs_lc = get_abs_lowcore();
	abs_lc->ipib = ipib;
	abs_lc->ipib = __pa(reipl_block_actual);
	abs_lc->ipib_checksum = csum;
	put_abs_lowcore(abs_lc);
	dump_run(trigger);