Changes in kernel/generic/src/mm/as.c [c964521:1624aae] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/mm/as.c
rc964521 r1624aae 422 422 * No need to check for overlaps. 423 423 */ 424 425 page_table_lock(as, false);426 424 427 425 /* … … 488 486 pte_t *pte; 489 487 488 page_table_lock(as, false); 490 489 pte = page_mapping_find(as, b + 491 490 i * PAGE_SIZE); … … 500 499 page_mapping_remove(as, b + 501 500 i * PAGE_SIZE); 501 page_table_unlock(as, false); 502 502 } 503 503 } … … 510 510 tlb_invalidate_pages(as->asid, area->base + pages * PAGE_SIZE, 511 511 area->pages - pages); 512 513 512 /* 514 513 * Invalidate software translation caches (e.g. TSB on sparc64). … … 517 516 pages * PAGE_SIZE, area->pages - pages); 518 517 tlb_shootdown_finalize(); 519 520 page_table_unlock(as, false);521 518 522 519 } else { … … 568 565 569 566 base = area->base; 570 571 page_table_lock(as, false);572 567 573 568 /* … … 591 586 592 587 for (j = 0; j < (size_t) node->value[i]; j++) { 588 page_table_lock(as, false); 593 589 pte = page_mapping_find(as, b + j * PAGE_SIZE); 594 590 ASSERT(pte && PTE_VALID(pte) && … … 600 596 } 601 597 page_mapping_remove(as, b + j * PAGE_SIZE); 598 page_table_unlock(as, false); 602 599 } 603 600 } … … 609 606 610 607 tlb_invalidate_pages(as->asid, area->base, area->pages); 611 612 608 /* 613 609 * Invalidate potential software translation caches (e.g. TSB on … … 616 612 as_invalidate_translation_cache(as, area->base, area->pages); 617 613 tlb_shootdown_finalize(); 618 619 page_table_unlock(as, false);620 614 621 615 btree_destroy(&area->used_space); … … 864 858 old_frame = malloc(used_pages * sizeof(uintptr_t), 0); 865 859 866 page_table_lock(as, false);867 868 860 /* 869 861 * Start TLB shootdown sequence. … … 889 881 890 882 for (j = 0; j < (size_t) node->value[i]; j++) { 883 page_table_lock(as, false); 891 884 pte = page_mapping_find(as, b + j * PAGE_SIZE); 892 885 ASSERT(pte && PTE_VALID(pte) && … … 896 889 /* Remove old mapping */ 897 890 page_mapping_remove(as, b + j * PAGE_SIZE); 891 page_table_unlock(as, false); 898 892 } 899 893 } … … 912 906 as_invalidate_translation_cache(as, area->base, area->pages); 913 907 tlb_shootdown_finalize(); 914 915 page_table_unlock(as, false);916 908 917 909 /*
Note:
See TracChangeset
for help on using the changeset viewer.