diff options
| -rw-r--r-- | kernel/memremap.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/memremap.c b/kernel/memremap.c index 60baf4d3401e..6cf54615a9c4 100644 --- a/kernel/memremap.c +++ b/kernel/memremap.c | |||
| @@ -29,10 +29,10 @@ __weak void __iomem *ioremap_cache(resource_size_t offset, unsigned long size) | |||
| 29 | 29 | ||
| 30 | static void *try_ram_remap(resource_size_t offset, size_t size) | 30 | static void *try_ram_remap(resource_size_t offset, size_t size) |
| 31 | { | 31 | { |
| 32 | struct page *page = pfn_to_page(offset >> PAGE_SHIFT); | 32 | unsigned long pfn = PHYS_PFN(offset); |
| 33 | 33 | ||
| 34 | /* In the simple case just return the existing linear address */ | 34 | /* In the simple case just return the existing linear address */ |
| 35 | if (!PageHighMem(page)) | 35 | if (pfn_valid(pfn) && !PageHighMem(pfn_to_page(pfn))) |
| 36 | return __va(offset); | 36 | return __va(offset); |
| 37 | return NULL; /* fallback to ioremap_cache */ | 37 | return NULL; /* fallback to ioremap_cache */ |
| 38 | } | 38 | } |
