x86: cpa, cleanups

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

+16 -7
+16 -7
arch/x86/mm/pageattr.c
··· 16 #include <asm/uaccess.h> 17 #include <asm/pgalloc.h> 18 19 struct cpa_data { 20 unsigned long vaddr; 21 pgprot_t mask_set; ··· 209 210 if (pgd_none(*pgd)) 211 return NULL; 212 pud = pud_offset(pgd, address); 213 if (pud_none(*pud)) 214 return NULL; ··· 227 return (pte_t *)pmd; 228 229 *level = PG_LEVEL_4K; 230 return pte_offset_kernel(pmd, address); 231 } 232 233 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) 234 { 235 /* change init_mm */ ··· 256 #endif 257 } 258 259 - static int try_preserve_large_page(pte_t *kpte, unsigned long address, 260 - struct cpa_data *cpa) 261 { 262 unsigned long nextpage_addr, numpages, pmask, psize, flags; 263 pte_t new_pte, old_pte, *tmp; ··· 350 351 out_unlock: 352 spin_unlock_irqrestore(&pgd_lock, flags); 353 return res; 354 } 355 356 static int split_large_page(pte_t *kpte, unsigned long address) 357 { 358 - pgprot_t ref_prot; 359 - gfp_t gfp_flags = GFP_KERNEL; 360 unsigned long flags, addr, pfn, pfninc = 1; 361 - pte_t *pbase, *tmp; 362 - struct page *base; 363 unsigned int i, level; 364 365 #ifdef CONFIG_DEBUG_PAGEALLOC 366 gfp_flags = GFP_ATOMIC | __GFP_NOWARN; ··· 515 * 516 * Modules and drivers should use the set_memory_* APIs instead. 517 */ 518 - 519 static int change_page_attr_addr(struct cpa_data *cpa) 520 { 521 int err;
··· 16 #include <asm/uaccess.h> 17 #include <asm/pgalloc.h> 18 19 + /* 20 + * The current flushing context - we pass it instead of 5 arguments: 21 + */ 22 struct cpa_data { 23 unsigned long vaddr; 24 pgprot_t mask_set; ··· 206 207 if (pgd_none(*pgd)) 208 return NULL; 209 + 210 pud = pud_offset(pgd, address); 211 if (pud_none(*pud)) 212 return NULL; ··· 223 return (pte_t *)pmd; 224 225 *level = PG_LEVEL_4K; 226 + 227 return pte_offset_kernel(pmd, address); 228 } 229 230 + /* 231 + * Set the new pmd in all the pgds we know about: 232 + */ 233 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte) 234 { 235 /* change init_mm */ ··· 248 #endif 249 } 250 251 + static int 252 + try_preserve_large_page(pte_t *kpte, unsigned long address, 253 + struct cpa_data *cpa) 254 { 255 unsigned long nextpage_addr, numpages, pmask, psize, flags; 256 pte_t new_pte, old_pte, *tmp; ··· 341 342 out_unlock: 343 spin_unlock_irqrestore(&pgd_lock, flags); 344 + 345 return res; 346 } 347 348 static int split_large_page(pte_t *kpte, unsigned long address) 349 { 350 unsigned long flags, addr, pfn, pfninc = 1; 351 + gfp_t gfp_flags = GFP_KERNEL; 352 unsigned int i, level; 353 + pte_t *pbase, *tmp; 354 + pgprot_t ref_prot; 355 + struct page *base; 356 357 #ifdef CONFIG_DEBUG_PAGEALLOC 358 gfp_flags = GFP_ATOMIC | __GFP_NOWARN; ··· 505 * 506 * Modules and drivers should use the set_memory_* APIs instead. 507 */ 508 static int change_page_attr_addr(struct cpa_data *cpa) 509 { 510 int err;