Date: Wed, 2 Feb 2011 17:12:54 +0000 (UTC) From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: Monthadar Al Jaberi <monthadar@gmail.com> Cc: FreeBSD virtualization mailing list <freebsd-virtualization@freebsd.org> Subject: Re: simulating wireless device (if_alloc panic, VirtualBox, VIMAGE) Message-ID: <20110202164827.I80258@maildrop.int.zabbadoz.net> In-Reply-To: <AANLkTi=mk2vfyXJBaK5mV2sBWEj0-RDZneLs%2BXq_c7sb@mail.gmail.com> References: <AANLkTik8D_bLwcUKZdBT-kpkJdDXtPTLvAqfUe0cLoSz@mail.gmail.com> <4D484213.6050100@freebsd.org> <AANLkTikJKZLQVA5X2PQs0oT4iFsZYBw7K07kjQTc9iGD@mail.gmail.com> <4D486108.5060805@freebsd.org> <AANLkTi=mk2vfyXJBaK5mV2sBWEj0-RDZneLs%2BXq_c7sb@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 2 Feb 2011, Monthadar Al Jaberi wrote:
Hi,
> Thanx makes more sense, but I have noticed something weired if you can
> shade some light on.
>
> I added printfs one when the module is first loaded (static int
> event_handler(module_t module, int event, void *arg)):
> curthread=0xc3f95870
> curthread->td_vnet=0xc3170e00
> curthread->td_ucred=0xc3185d00
> TD_TO_VNET=0
> CRED_TO_VNET=0
Try to load it from laoder on boot; I think that should work as we are
setting the curvent for the kernel startup.
The problem you are seeing is a bug in the current implementation that
you cannot add any physical network interface after the kernel started.
This applies to cardbus/usb/... as well as any kind of ethernet
interface, so a kldload igb should yield it as well.
The fix for that is easy and hard at the same time:
A) either touch all drivers
B) or touch all cloned interfaces and change 3 common lines.
or try to make cloners aware of vimages.
Solution B) is sitting in perforce with the entire stuff that it depends
on and was started with CH=179022,179255 but not limited to that if you
want to have a peek.
What you certainly can do locally to your driver for now is to make a
change like this:
+#ifdef VIMAGE
+ CURVNET_SET(vnet0);
+#endif
ifp = if_alloc(IFT_ETHER);
+#ifdef VIMAGE
+ CURVNET_RESTORE();
+#endif
It's the type A) kind of change from above that will break eventually
in the future.
/bz
--
Bjoern A. Zeeb You have to have visions!
<ks> Going to jail sucks -- <bz> All my daemons like it!
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/jails.html
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20110202164827.I80258>
