Loading arch/x86/mm/ioremap.c +4 −13 Original line number Diff line number Diff line Loading @@ -125,23 +125,14 @@ void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, if (phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS) return (__force void __iomem *)phys_to_virt(phys_addr); #ifdef CONFIG_X86_32 /* * Don't allow anybody to remap normal RAM that we're using.. */ if (phys_addr <= virt_to_phys(high_memory - 1)) { char *t_addr, *t_end; struct page *page; t_addr = __va(phys_addr); t_end = t_addr + (size - 1); for (page = virt_to_page(t_addr); page <= virt_to_page(t_end); page++) if (!PageReserved(page)) for (offset = phys_addr >> PAGE_SHIFT; offset < max_pfn_mapped && (offset << PAGE_SHIFT) < last_addr; offset++) { if (page_is_ram(offset)) return NULL; } #endif pgprot = MAKE_GLOBAL(__PAGE_KERNEL | flags); Loading Loading
arch/x86/mm/ioremap.c +4 −13 Original line number Diff line number Diff line Loading @@ -125,23 +125,14 @@ void __iomem *__ioremap(unsigned long phys_addr, unsigned long size, if (phys_addr >= ISA_START_ADDRESS && last_addr < ISA_END_ADDRESS) return (__force void __iomem *)phys_to_virt(phys_addr); #ifdef CONFIG_X86_32 /* * Don't allow anybody to remap normal RAM that we're using.. */ if (phys_addr <= virt_to_phys(high_memory - 1)) { char *t_addr, *t_end; struct page *page; t_addr = __va(phys_addr); t_end = t_addr + (size - 1); for (page = virt_to_page(t_addr); page <= virt_to_page(t_end); page++) if (!PageReserved(page)) for (offset = phys_addr >> PAGE_SHIFT; offset < max_pfn_mapped && (offset << PAGE_SHIFT) < last_addr; offset++) { if (page_is_ram(offset)) return NULL; } #endif pgprot = MAKE_GLOBAL(__PAGE_KERNEL | flags); Loading