autoconf botch with multiple UBA's
jim at haring.UUCP
jim at haring.UUCP
Wed Feb 15 13:38:09 AEST 1984
Subject: autoconf botch with multiple UBA's
Index: /usr/sys/vax/autoconf.c
Description:
The autoconfiguration code tries to use structures assigned
per UBA if it finds one, even if the system has not been
configured for those UBA's, causing illegal references and
panic on boot.
Repeat-By:
Try booting a system configured with only one UBA on a machine
which has more.
Fix:
The code in autoconf.c/probenexus() around "case NEX_UBA?"
should look something like:
........
case NEX_UBA3:
printf("uba%d at tr%d\n", numuba, nexnum);
if(numuba >= MAXNUBA){
printf("%d uba's", numuba);
goto unsupp;
}
if(numuba >= NUBA){
printf("uba%d", numuba);
goto unconfig;
}
#if VAX780
if (cpu == VAX_780)
setscbnex(ubaintv[numuba]);
.........
You can then throw the following code in autoconf.c/unifind()
away too, as the situation is now handled by the code above:
#if defined(VAX_750)
if (cpu == VAX_750)
printf("More than 2 UBA's not supported\n");
else
#endif
Another (small) point, the existing code will always print
uba? at trX
uba? not configured
for each extra UBA found, where ? remains the same each time.
A solution would be to have another (local) count of physical
UBA's found, "numuba" is the count of those found and configured.
The same goes for MBA counts.
Jim McKie Centrum voor Wiskunde en Informatica, Amsterdam ..mcvax!jim
More information about the Comp.unix.wizards
mailing list