BUG();
do {
- pte_t * pte = pte_alloc_kernel(&init_mm, pmd, address);
+ pte_t * pte = pte_alloc_kernel(pmd, address);
if (!pte)
return -ENOMEM;
remap_area_pte(pte, address, end - address, address + phys_addr, flags);
flush_cache_all();
if (address >= end)
BUG();
- spin_lock(&init_mm.page_table_lock);
do {
pmd_t *pmd = pmd_alloc(&init_mm, dir, address);
error = -ENOMEM;
address = (address + PGDIR_SIZE) & PGDIR_MASK;
dir++;
} while (address && (address < end));
- spin_unlock(&init_mm.page_table_lock);
flush_tlb_all();
return 0;
}
}
static struct resource shmedia_iomap = {
- .name = "shmedia_iomap",
- .start = IOBASE_VADDR,
+ .name = "shmedia_iomap",
+ .start = IOBASE_VADDR + PAGE_SIZE,
.end = IOBASE_END - 1,
};
return;
clear_page((void *)ptep);
- pte_clear(ptep);
+ pte_clear(&init_mm, vaddr, ptep);
}
unsigned long onchip_remap(unsigned long phys, unsigned long size, const char *name)