Skip to content

Commit c705054

Browse files
author
Alexander Gordeev
committed
s390/boot: fix physmem_info virtual vs physical address confusion
Fix virtual vs physical address confusion (which currently are the same). Reviewed-by: Vasily Gorbik <[email protected]> Signed-off-by: Alexander Gordeev <[email protected]>
1 parent 3e82610 commit c705054

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

arch/s390/include/asm/physmem_info.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#define _ASM_S390_MEM_DETECT_H
44

55
#include <linux/types.h>
6+
#include <asm/page.h>
67

78
enum physmem_info_source {
89
MEM_DETECT_NONE = 0,
@@ -133,7 +134,7 @@ static inline const char *get_rr_type_name(enum reserved_range_type t)
133134

134135
#define for_each_physmem_reserved_type_range(t, range, p_start, p_end) \
135136
for (range = &physmem_info.reserved[t], *p_start = range->start, *p_end = range->end; \
136-
range && range->end; range = range->chain, \
137+
range && range->end; range = range->chain ? __va(range->chain) : NULL, \
137138
*p_start = range ? range->start : 0, *p_end = range ? range->end : 0)
138139

139140
static inline struct reserved_range *__physmem_reserved_next(enum reserved_range_type *t,
@@ -145,7 +146,7 @@ static inline struct reserved_range *__physmem_reserved_next(enum reserved_range
145146
return range;
146147
}
147148
if (range->chain)
148-
return range->chain;
149+
return __va(range->chain);
149150
while (++*t < RR_MAX) {
150151
range = &physmem_info.reserved[*t];
151152
if (range->end)

0 commit comments

Comments
 (0)