diff options
author | 2002-04-21 22:27:56 +0000 | |
---|---|---|
committer | 2002-04-21 22:27:56 +0000 | |
commit | bf8acc4f756bf0acd98c8b845d976953823817db (patch) | |
tree | 7178c97f15173e8d80424cbf68c481e3ea01b7ba | |
parent | Document fractional delays. (diff) | |
download | wireguard-openbsd-bf8acc4f756bf0acd98c8b845d976953823817db.tar.xz wireguard-openbsd-bf8acc4f756bf0acd98c8b845d976953823817db.zip |
map io rw, not rwx and dmamem uncached (until sync does the flush)
-rw-r--r-- | sys/arch/hppa/hppa/mainbus.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/sys/arch/hppa/hppa/mainbus.c b/sys/arch/hppa/hppa/mainbus.c index 5f4d97af1e2..374f0ac79e8 100644 --- a/sys/arch/hppa/hppa/mainbus.c +++ b/sys/arch/hppa/hppa/mainbus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mainbus.c,v 1.29 2002/03/19 23:04:16 mickey Exp $ */ +/* $OpenBSD: mainbus.c,v 1.30 2002/04/21 22:27:56 mickey Exp $ */ /* * Copyright (c) 1998-2001 Michael Shalayeff @@ -116,7 +116,7 @@ mbus_add_mapping(bus_addr_t bpa, bus_size_t size, int cachable, len = pdc_btlb.max_size << PGSHIFT; if (btlb_insert(HPPA_SID_KERNEL, spa, spa, &len, pmap_sid2pid(HPPA_SID_KERNEL) | - pmap_prot(pmap_kernel(), VM_PROT_ALL)) >= 0) { + pmap_prot(pmap_kernel(), UVM_PROT_RW)) >= 0) { pa = spa + len - 1; #ifdef BTLBDEBUG printf("--- %x/%x, %qx, %qx-%qx", @@ -138,7 +138,7 @@ mbus_add_mapping(bus_addr_t bpa, bus_size_t size, int cachable, epa = (u_int64_t)~0U + 1; for (; spa < epa; spa += PAGE_SIZE) - pmap_kenter_pa(spa, spa, VM_PROT_ALL); + pmap_kenter_pa(spa, spa, UVM_PROT_RW); } #ifdef BTLBDEBUG @@ -732,7 +732,7 @@ mbus_dmamem_alloc(void *v, bus_size_t size, bus_size_t alignment, return ENOMEM; if (uvm_map(kernel_map, &va, size, NULL, UVM_UNKNOWN_OFFSET, 0, - UVM_MAPFLAG(UVM_PROT_ALL, UVM_PROT_ALL, UVM_INH_NONE, + UVM_MAPFLAG(UVM_PROT_RW, UVM_PROT_RW, UVM_INH_NONE, UVM_ADV_RANDOM, 0))) { uvm_pglistfree(&pglist); return ENOMEM; @@ -742,18 +742,16 @@ mbus_dmamem_alloc(void *v, bus_size_t size, bus_size_t alignment, segs[0].ds_len = size; *rsegs = 1; - for (pg = TAILQ_FIRST(&pglist); pg; pg = TAILQ_NEXT(pg, pageq)) { + TAILQ_FOREACH(pg, &pglist, pageq) { - pmap_kenter_pa(va, VM_PAGE_TO_PHYS(pg), - VM_PROT_READ|VM_PROT_WRITE); -#if notused - pmap_changebit(va, TLB_UNCACHEABLE, 0); /* XXX for now */ -#endif + pmap_kenter_pa(va, VM_PAGE_TO_PHYS(pg), UVM_PROT_RW); + /* XXX for now */ + pmap_changebit(pg, PTE_PROT(TLB_UNCACHEABLE), 0); va += PAGE_SIZE; } pmap_update(pmap_kernel()); - return 0; + return (0); } void |