[net.bugs.4bsd] vax/autoconf.c bug

ddl@husc6.HARVARD.EDU (Dan Lanciani) (09/11/86)

Subject: autoconf repeatedly finds the same mass-storage device
Index:	sys/vax/autoconf.c 4.3BSD

Description:
	The vax autoconfiguration system will incorrectly find mass-
	storage devices more than once if a kernel is used on a machine
	with fewer devices than it expects AND at least one of the
	devices actually present is at a "standard" address.

Repeat-By:
	Configure a kernel for two uda devices.  Boot it on a machine
	with only one uda50 at one of the standard addresses.  Watch as
	the uda50 is found twice:  once at the address you configured
	and again at a "standard" address when the second, configured
	address fails.

Fix:
	Apply the following context diff to autoconf.c:

*** autoconf.c.bad	Thu Sep 11 03:20:40 1986
--- autoconf.c	Thu Sep 11 03:20:56 1986
***************
*** 686,691 ****
--- 686,693 ----
  			continue;
  		}
  		printf("vec %o, ipl %x\n", cvec, br);
+ 		while (--i >= 0)
+ 			ualloc[ubaoff(addr+i)] = 1;
  		um->um_alive = 1;
  		um->um_ubanum = numuba;
  		um->um_hd = &uba_hd[numuba];