Hey all,

So the problem turned out to be that somehow, when ethermediumlink()
is called, its view of the namespace doesn't include /net as a
separate mount. So I figured the devroot reset routine was getting
called somehow after all the ip stuff attached. I reordered stuff to
attempt to guarantee this wasn't the case, but didn't have much luck
with that either. However, manually changing all the chandial lines to
use #l/ether0 (instead of argv[2], which was /net/ether0) causes stuff
to `just work'.

Clearly my idea of what's happening in what order is kind of screwy.
I've plopped things in various orders, but the only way things are
running is if I use that hack. I see that '#l' is bound to /net in
/lib/namespace, so it's happening before rio starts (and even if
that's not where that happened; I put a bind -a '#l' /net in
/usr/glenda/lib/profile prior to rio starting and that didn't help).
Regarding the order of things:

I'm calling links() after initseg() as it is in Plan 9's main.c;
inside links(), I call ethervelink() (my virtual ethernet driver),
ethermediumlink(), netdevmediumlink() and loopbackmediumlink().

Any ideas now that the issue is a bit less arcane?

--dho

Reply via email to