[net.bugs.4bsd] apparent ubareset bug

thomas (05/10/83)

When ubareset is called, it calls a reset routine for each device.  These
routines each do a ubarelse() call if they have allocated a hunk of unibus
map.  However, ubareset() has called ubainitmaps() which called rminit()
which freed the entire unibus map.  Thus, the call to ubarelse() (which calls
rmfree()) produces a "bad rmfree" panic and crashes the system.  Not a very
good result.  In particular, the dh driver will ALWAYS produce this
crash, since it allocates a piece of unibus map permanently.  Is this
really a bug?  If so, why has no one found it before now?  I have replaced
all such calls to ubarelse(ubanum, thing) with thing=0.  I think it will
work (as yet untested).  I will report if it turns out otherwise.

Any thoughts out there about this?

=Spencer