Port-macppc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[PATCH] Incorrect segment 0 initialization for PMAC G5
Hi,
i'm trying to run/port NetBSD on my PowerMac 11,2 G5 and stumbled upon
the following bug
in function arch/powerpc/oea/pmap.c:pmap_setup_segment0_map.
Here is the patch:
--- arch/powerpc/oea/pmap.c 2013-03-27 19:37:18.652744773 +0100
+++ arch/powerpc/oea/pmap.c.new 2013-03-27 23:23:34.383534571 +0100
@@ -3077,7 +3077,7 @@
int
pmap_setup_segment0_map(int use_large_pages, ...)
{
- vaddr_t va;
+ vaddr_t va, va_end;
register_t pte_lo = 0x0;
int ptegidx = 0, i = 0;
@@ -3110,7 +3110,8 @@
pa = va_arg(ap, paddr_t);
size = va_arg(ap, size_t);
- for (; va < (va + size); va += 0x1000, pa += 0x1000) {
+ va_end = va + size;
+ for (; va < va_end; va += 0x1000, pa += 0x1000) {
#if 0
printf("%s: Inserting: va: %#" _PRIxva ", pa: %#" _PRIxpa "\n",
__func__, va, pa);
#endif
In consequence of the incorrect loop invariant, the loop terminates
after the overflow of the variable va.
And i would appreciate any pointers regarding porting NetBSD to PowerMac
G5. I managed to get the display console working and
currently implementing support for U4 MPIC which is not supported by
NetBSD yet.
Regards
Home |
Main Index |
Thread Index |
Old Index