x86: cpa, eliminate CPA_ enum

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

+15 -19
+15 -19
arch/x86/mm/pageattr.c
··· 27 27 int flushtlb; 28 28 }; 29 29 30 - enum { 31 - CPA_NO_SPLIT = 0, 32 - CPA_SPLIT, 33 - }; 34 - 35 30 static inline int 36 31 within(unsigned long addr, unsigned long start, unsigned long end) 37 32 { ··· 258 263 unsigned long nextpage_addr, numpages, pmask, psize, flags; 259 264 pte_t new_pte, old_pte, *tmp; 260 265 pgprot_t old_prot, new_prot; 261 - int level, res = CPA_SPLIT; 266 + int level, do_split = 1; 262 267 263 268 /* 264 269 * An Athlon 64 X2 showed hard hangs if we tried to preserve ··· 269 274 * disable this code until the hang can be debugged: 270 275 */ 271 276 if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD) 272 - return res; 277 + return 1; 273 278 274 279 spin_lock_irqsave(&pgd_lock, flags); 275 280 /* ··· 292 297 break; 293 298 #endif 294 299 default: 295 - res = -EINVAL; 300 + do_split = -EINVAL; 296 301 goto out_unlock; 297 302 } 298 303 ··· 320 325 * above: 321 326 */ 322 327 if (pgprot_val(new_prot) == pgprot_val(old_prot)) { 323 - res = CPA_NO_SPLIT; 328 + do_split = 0; 324 329 goto out_unlock; 325 330 } 326 331 ··· 340 345 new_pte = pfn_pte(pte_pfn(old_pte), canon_pgprot(new_prot)); 341 346 __set_pmd_pte(kpte, address, new_pte); 342 347 cpa->flushtlb = 1; 343 - res = CPA_NO_SPLIT; 348 + do_split = 0; 344 349 } 345 350 346 351 out_unlock: 347 352 spin_unlock_irqrestore(&pgd_lock, flags); 348 353 349 - return res; 354 + return do_split; 350 355 } 351 356 352 357 static int split_large_page(pte_t *kpte, unsigned long address) ··· 424 429 static int __change_page_attr(unsigned long address, struct cpa_data *cpa) 425 430 { 426 431 struct page *kpte_page; 427 - int level, res; 432 + int level, do_split; 428 433 pte_t *kpte; 429 434 430 435 repeat: ··· 475 480 * Check, whether we can keep the large page intact 476 481 * and just change the pte: 477 482 */ 478 - res = try_preserve_large_page(kpte, address, cpa); 479 - if (res < 0) 480 - return res; 483 + do_split = try_preserve_large_page(kpte, address, cpa); 484 + if (do_split < 0) 485 + return do_split; 481 486 482 487 /* 483 488 * When the range fits into the existing large page, 484 489 * return. cp->numpages and cpa->tlbflush have been updated in 485 490 * try_large_page: 486 491 */ 487 - if (res == CPA_NO_SPLIT) 492 + if (do_split == 0) 488 493 return 0; 489 494 490 495 /* 491 496 * We have to split the large page: 492 497 */ 493 - res = split_large_page(kpte, address); 494 - if (res) 495 - return res; 498 + do_split = split_large_page(kpte, address); 499 + if (do_split) 500 + return do_split; 496 501 cpa->flushtlb = 1; 502 + 497 503 goto repeat; 498 504 } 499 505