Thanks Casper and Garrett's clarification. Masayuki, I will send you a fix version later.
-- Quaker Casper.Dik at Sun.COM wrote: >>Hmm... that's bad. It sounds like a shared interrupt. (Or the driver >>isn't clearing the hardware interrupt before doing attach(9e), but then >>that would indicate the same bug in both windows and solaris drivers.) >>It also sounds like the device doesn't get reset by e.g. a PCI bus >>reset. I've seen that before with prism cards. >> >> > >It was a shared interrupt; yes. Yep, the fact that warm boot and cold >boot are different is really a bug; the fact that some devices don't >reset is an error in the hardware; working around this in software is >the only real option. > >(My Ferrari 4000 fixes this interesting conundrum by making a reboot >actually cause a < .1sec power cycle) > > > >>devo_reset (if that's what you mean) is listed as not supported. But >>grepping around in the code, it looks like it gets called via >>devi_reset, which is called via reset_leaves(), and possibly via other >>paths as well. >> >> > >Yes. It's called on reboot and panics; it's is not a supported entry >point but it is needed. What you can do is very limited: in panic mode, >all interrupts are disabled. > >Casper > >
