Port-alpha archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Can't boot alpha and mips(Re: Can't boot SGI O2)



On Tue, Apr 30, 2013 at 10:11:24PM +0900, KIYOHARA Takashi wrote:
[...]
> > How we avoid this problem?
> 
> Also can't boot alpha machine.
> 
>   arch/alpha/alpha/machdep.c:alpha_init()
>     arch/alpha/alpha/pmap.c:pmap_bootstrap()
>       kern/vfs_bio.c:buf_memcalc()
>         :

Hi,

The attached patch makes my PWS500au alpha boot again by restoring the
case where buf_map is not yet mapped when called early from
pmap_bootstrap().

-- 
Nicolas Joly

Biology IT Center
Institut Pasteur, Paris.
Index: sys/kern/vfs_bio.c
===================================================================
RCS file: /cvsroot/src/sys/kern/vfs_bio.c,v
retrieving revision 1.243
diff -u -p -r1.243 vfs_bio.c
--- sys/kern/vfs_bio.c  18 Mar 2013 13:36:22 -0000      1.243
+++ sys/kern/vfs_bio.c  15 May 2013 13:23:34 -0000
@@ -396,7 +396,7 @@ u_long
 buf_memcalc(void)
 {
        u_long n;
-       vsize_t mapsz;
+       vsize_t mapsz = 0;
 
        /*
         * Determine the upper bound of memory to use for buffers.
@@ -418,7 +418,8 @@ buf_memcalc(void)
                        printf("forcing bufcache %d -> 95", bufcache);
                        bufcache = 95;
                }
-               mapsz = vm_map_max(buf_map) - vm_map_min(buf_map);
+               if (buf_map != NULL)
+                       mapsz = vm_map_max(buf_map) - vm_map_min(buf_map);
                n = calc_cache_size(mapsz, bufcache,
                    (buf_map != kernel_map) ? 100 : BUFCACHE_VA_MAXPCT)
                    / PAGE_SIZE;


Home | Main Index | Thread Index | Old Index