ARC: [mm] Zero page optimization
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
Родитель
2f9e99618f
Коммит
29b93c68bf
|
@ -433,9 +433,14 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned,
|
||||||
{
|
{
|
||||||
unsigned long vaddr = vaddr_unaligned & PAGE_MASK;
|
unsigned long vaddr = vaddr_unaligned & PAGE_MASK;
|
||||||
unsigned long paddr = pte_val(*ptep) & PAGE_MASK;
|
unsigned long paddr = pte_val(*ptep) & PAGE_MASK;
|
||||||
|
struct page *page = pfn_to_page(pte_pfn(*ptep));
|
||||||
|
|
||||||
create_tlb(vma, vaddr, ptep);
|
create_tlb(vma, vaddr, ptep);
|
||||||
|
|
||||||
|
if (page == ZERO_PAGE(0)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Exec page : Independent of aliasing/page-color considerations,
|
* Exec page : Independent of aliasing/page-color considerations,
|
||||||
* since icache doesn't snoop dcache on ARC, any dirty
|
* since icache doesn't snoop dcache on ARC, any dirty
|
||||||
|
@ -447,7 +452,6 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long vaddr_unaligned,
|
||||||
*/
|
*/
|
||||||
if ((vma->vm_flags & VM_EXEC) ||
|
if ((vma->vm_flags & VM_EXEC) ||
|
||||||
addr_not_cache_congruent(paddr, vaddr)) {
|
addr_not_cache_congruent(paddr, vaddr)) {
|
||||||
struct page *page = pfn_to_page(pte_pfn(*ptep));
|
|
||||||
|
|
||||||
int dirty = test_and_clear_bit(PG_arch_1, &page->flags);
|
int dirty = test_and_clear_bit(PG_arch_1, &page->flags);
|
||||||
if (dirty) {
|
if (dirty) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче