Skip to content

Commit 2facd5d

Browse files
author
Alexander Gordeev
committed
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: Heiko Carstens <[email protected]> Reviewed-by: Heiko Carstens <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]>
1 parent a33239b commit 2facd5d

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

arch/s390/kernel/ipl.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1935,14 +1935,13 @@ static struct shutdown_action __refdata dump_action = {
19351935

19361936
static void dump_reipl_run(struct shutdown_trigger *trigger)
19371937
{
1938-
unsigned long ipib = (unsigned long) reipl_block_actual;
19391938
struct lowcore *abs_lc;
19401939
unsigned int csum;
19411940

19421941
csum = (__force unsigned int)
19431942
csum_partial(reipl_block_actual, reipl_block_actual->hdr.len, 0);
19441943
abs_lc = get_abs_lowcore();
1945-
abs_lc->ipib = ipib;
1944+
abs_lc->ipib = __pa(reipl_block_actual);
19461945
abs_lc->ipib_checksum = csum;
19471946
put_abs_lowcore(abs_lc);
19481947
dump_run(trigger);

0 commit comments

Comments
 (0)