diff options
Diffstat (limited to 'arch/x86/mm/pat.c')
| -rw-r--r-- | arch/x86/mm/pat.c | 7 | 
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 2610bd93c89..657438858e8 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -563,6 +563,13 @@ int kernel_map_sync_memtype(u64 base, unsigned long size, unsigned long flags)  	if (base > __pa(high_memory-1))  		return 0; +	/* +	 * some areas in the middle of the kernel identity range +	 * are not mapped, like the PCI space. +	 */ +	if (!page_is_ram(base >> PAGE_SHIFT)) +		return 0; +  	id_sz = (__pa(high_memory-1) <= base + size) ?  				__pa(high_memory) - base :  				size;  |