On Sat, Jan 14, 2017 at 05:32:36PM +0800, Paul Goyette wrote: > Yeah, it seems that the rump initialization code is calling routine > drvctl_init() in order to determine the c-major for the /dev/drvctl node. > The right thing to do here is to temporarily attach the cdevsw structure, > retrieve the c-major, and then detach the cdevsw. Later, normal module > initialization code will handle the full-blown attach of the drvctl device > module. > > Interestingly, it seems that this code is broken in other ways, too! In > particular, even though it retrieves the c-major for /dev/drvctl, it never > actually creates the device node! So I have to wonder if you can even use > drvctl within rump at this time! > > Anyway, try the attached patch. It should avoid the duplicate attempts at > calling drvctl_init(), and it should also enable /dev/drvctl within the rump > environment. Let me know if it helps.
Indeed - no more panics! (I also added a #include <rump-sys/vfs.h> ) Thanks! Patrick
