diff options
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/mm/pageattr.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c index d71e1b636ce6..d487eaa17bff 100644 --- a/arch/x86/mm/pageattr.c +++ b/arch/x86/mm/pageattr.c | |||
@@ -1021,15 +1021,19 @@ int _set_memory_wb(unsigned long addr, int numpages) | |||
1021 | 1021 | ||
1022 | int set_memory_wb(unsigned long addr, int numpages) | 1022 | int set_memory_wb(unsigned long addr, int numpages) |
1023 | { | 1023 | { |
1024 | int ret = _set_memory_wb(addr, numpages); | ||
1024 | free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE); | 1025 | free_memtype(__pa(addr), __pa(addr) + numpages * PAGE_SIZE); |
1025 | 1026 | return ret; | |
1026 | return _set_memory_wb(addr, numpages); | ||
1027 | } | 1027 | } |
1028 | EXPORT_SYMBOL(set_memory_wb); | 1028 | EXPORT_SYMBOL(set_memory_wb); |
1029 | 1029 | ||
1030 | int set_memory_array_wb(unsigned long *addr, int addrinarray) | 1030 | int set_memory_array_wb(unsigned long *addr, int addrinarray) |
1031 | { | 1031 | { |
1032 | int i; | 1032 | int i; |
1033 | int ret; | ||
1034 | |||
1035 | ret = change_page_attr_clear(addr, addrinarray, | ||
1036 | __pgprot(_PAGE_CACHE_MASK), 1); | ||
1033 | 1037 | ||
1034 | for (i = 0; i < addrinarray; i++) { | 1038 | for (i = 0; i < addrinarray; i++) { |
1035 | unsigned long start = __pa(addr[i]); | 1039 | unsigned long start = __pa(addr[i]); |
@@ -1042,8 +1046,7 @@ int set_memory_array_wb(unsigned long *addr, int addrinarray) | |||
1042 | } | 1046 | } |
1043 | free_memtype(start, end); | 1047 | free_memtype(start, end); |
1044 | } | 1048 | } |
1045 | return change_page_attr_clear(addr, addrinarray, | 1049 | return ret; |
1046 | __pgprot(_PAGE_CACHE_MASK), 1); | ||
1047 | } | 1050 | } |
1048 | EXPORT_SYMBOL(set_memory_array_wb); | 1051 | EXPORT_SYMBOL(set_memory_array_wb); |
1049 | 1052 | ||