ref: 0174373c8110b78dc9d73c95746d538192c20f5f
parent: 49406a18428cb84a284e09d13a4a42f3b36f1188
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Jun 18 08:16:54 EDT 2015
zynq: use KADDR() for kmap() if we can avoiding the mapping
--- a/sys/src/9/zynq/mmu.c
+++ b/sys/src/9/zynq/mmu.c
@@ -286,6 +286,8 @@
ulong *e, *v;
int i, s;
+ if(cankaddr(page->pa))
+ return (KMap*)KADDR(page->pa);
if(up == nil)
panic("kmap: up=0 pc=%#.8lux", getcallerpc(&page));if(up->l1 == nil)
@@ -329,6 +331,8 @@
ulong *e;
va = (uintptr) arg;
+ if(va >= KZERO)
+ return;
if(up->l1 == nil || (up->l1->va[L1X(KMAP)] & 3) == 0)
panic("kunmap: no kmaps");if(va < KMAP || va >= KMAP + NKMAP * BY2PG)
--
⑨