summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormickey <mickey@openbsd.org>2002-04-21 22:27:56 +0000
committermickey <mickey@openbsd.org>2002-04-21 22:27:56 +0000
commitbf8acc4f756bf0acd98c8b845d976953823817db (patch)
tree7178c97f15173e8d80424cbf68c481e3ea01b7ba
parentDocument fractional delays. (diff)
downloadwireguard-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.c20
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