summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorniklas <niklas@openbsd.org>1998-04-04 17:13:17 +0000
committerniklas <niklas@openbsd.org>1998-04-04 17:13:17 +0000
commitb407f70787ec36abca2ca9cba91222fe0b5a8411 (patch)
treea44aac4fc1f91a1f8025d4bb3f113927d9a572b8
parentignore EEPROM_TST_MODE mode on pci cards too (diff)
downloadwireguard-openbsd-b407f70787ec36abca2ca9cba91222fe0b5a8411.tar.xz
wireguard-openbsd-b407f70787ec36abca2ca9cba91222fe0b5a8411.zip
Yay! This fixes a bug that has been there since day one of the amiga port.
We have never protected the kvm area that maps Zorro I/O registers in the Z2 memory space from being allocated by the kmem_* routines. Lately kvm usage has increased and we have needed more kvm allocated than earlier thus this area have got allocated with random results. Most often resulting in MMU fault panics, but also in hangs. This bug has stalled the amiga port release builds for several weeks, but now I *hope* the amiga will have a chance to be built and tested in time for 2.3.
-rw-r--r--sys/arch/amiga/amiga/amiga_init.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/sys/arch/amiga/amiga/amiga_init.c b/sys/arch/amiga/amiga/amiga_init.c
index 0fa5ebc365f..db604d6d2a9 100644
--- a/sys/arch/amiga/amiga/amiga_init.c
+++ b/sys/arch/amiga/amiga/amiga_init.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: amiga_init.c,v 1.15 1997/09/08 19:42:28 niklas Exp $ */
+/* $OpenBSD: amiga_init.c,v 1.16 1998/04/04 17:13:17 niklas Exp $ */
/* $NetBSD: amiga_init.c,v 1.56 1997/06/10 18:22:24 veego Exp $ */
/*
@@ -739,8 +739,6 @@ start_c(id, fphystart, fphysize, cphysize, esym_addr, flags, inh_sync)
* some nice variables for pmap to use
*/
RELOC(amigahwaddr, vm_offset_t) = RELOC(DRCCADDR, u_int);
- RELOC(namigahwpg, u_int) =
- NDRCCPG + NDRCIAPG + RELOC(NZTWOMEMPG, u_int);
} else
#endif
{
@@ -766,16 +764,17 @@ start_c(id, fphystart, fphysize, cphysize, esym_addr, flags, inh_sync)
* some nice variables for pmap to use
*/
RELOC(amigahwaddr, vm_offset_t) = RELOC(CHIPMEMADDR, u_int);
- RELOC(namigahwpg, u_int) =
- NCHIPMEMPG + NCIAPG + NZTWOROMPG + RELOC(NZTWOMEMPG, u_int);
}
+ /* Tell pmap how much of the kernel_map to reserve */
+ RELOC(namigahwpg, u_int) = ptextra;
+
/*
* set this before copying the kernel, so the variable is updated in
* the `real' place too. protorp[0] is already preset to the
* CRP setting.
*/
- (RELOC(protorp[1], u_int)) = RELOC(Sysseg_pa, u_int); /* + segtable address */
+ RELOC(protorp[1], u_int) = RELOC(Sysseg_pa, u_int); /* + segtable address */
/*
* copy over the kernel (and all now initialized variables)