protect_memory(addr, PAGE_SIZE, 1, 1, 1, 1); 
os_protect_memory((void *) addr, PAGE_SIZE, 1, 1, 1); 
int flush_tlb_kernel_range_common(unsigned long start, unsigned long end){        struct mm_struct *mm;        pgd_t *pgd;        pud_t *pud;        pmd_t *pmd;        pte_t *pte;        unsigned long addr, last;        int updated = 0, err;        mm = &init_mm;        for(addr = start; addr < end;){                pgd = pgd_offset(mm, addr);                if(!pgd_present(*pgd)){                        last = ADD_ROUND(addr, PGDIR_SIZE);                        if(last > end)                                last = end;                        if(pgd_newpage(*pgd)){                                updated = 1;                                err = os_unmap_memory((void *) addr,                                                      last - addr);                                if(err < 0)                                        panic("munmap failed, errno = %d\n",                                              -err);                        }                        addr = last;                        continue;                }                pud = pud_offset(pgd, addr);                if(!pud_present(*pud)){                        last = ADD_ROUND(addr, PUD_SIZE);                        if(last > end)                                last = end;                        if(pud_newpage(*pud)){                                updated = 1;                                err = os_unmap_memory((void *) addr,                                                      last - addr);                                if(err < 0)                                        panic("munmap failed, errno = %d\n",                                              -err);                        }                        addr = last;                        continue;                }                pmd = pmd_offset(pud, addr);                if(!pmd_present(*pmd)){                        last = ADD_ROUND(addr, PMD_SIZE);                        if(last > end)                                last = end;                        if(pmd_newpage(*pmd)){                                updated = 1;                                err = os_unmap_memory((void *) addr,                                                      last - addr);                                if(err < 0)                                        panic("munmap failed, errno = %d\n",                                              -err);                        }                        addr = last;                        continue;                }                pte = pte_offset_kernel(pmd, addr);                if(!pte_present(*pte) || pte_newpage(*pte)){                        updated = 1;                        err = os_unmap_memory((void *) addr,                                              PAGE_SIZE);                        if(err < 0)                                panic("munmap failed, errno = %d\n",                                      -err);                        if(pte_present(*pte))                                map_memory(addr,                                           pte_val(*pte) & PAGE_MASK,                                           PAGE_SIZE, 1, 1, 1);                }                else if(pte_newprot(*pte)){                        updated = 1;                        protect_memory(addr, PAGE_SIZE, 1, 1, 1, 1);                }                addr += PAGE_SIZE;        }        return(updated);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0f80bc85c587e8fdeecece4f294a47eca4922ea2/tlb.c/clean/arch/um/kernel/tlb.c