x86: PAT proper tracking of set_memory_uc and friends

Big thinko in pat memtype tracking code. reserve_memtype should be called
with physical address and not virtual address.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by venkatesh.pallipadi@intel.com and committed by Ingo Molnar c15238df b2a6a58c

+3 -3
+3 -3
arch/x86/mm/pageattr.c
··· 849 849 /* 850 850 * for now UC MINUS. see comments in ioremap_nocache() 851 851 */ 852 - if (reserve_memtype(addr, addr + numpages * PAGE_SIZE, 852 + if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE, 853 853 _PAGE_CACHE_UC_MINUS, NULL)) 854 854 return -EINVAL; 855 855 ··· 868 868 if (!pat_enabled) 869 869 return set_memory_uc(addr, numpages); 870 870 871 - if (reserve_memtype(addr, addr + numpages * PAGE_SIZE, 871 + if (reserve_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE, 872 872 _PAGE_CACHE_WC, NULL)) 873 873 return -EINVAL; 874 874 ··· 884 884 885 885 int set_memory_wb(unsigned long addr, int numpages) 886 886 { 887 - free_memtype(addr, addr + numpages * PAGE_SIZE); 887 + free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE); 888 888 889 889 return _set_memory_wb(addr, numpages); 890 890 }