Re: ifconfig stopped loading driver

From: Yar Tikhiy <yar_at_comp.chem.msu.su>
Date: Fri, 23 Mar 2007 14:03:16 +0300
On Thu, Mar 22, 2007 at 10:31:44AM -0700, Kevin Oberman wrote:
> > Date: Thu, 22 Mar 2007 09:15:22 -0700
> > From: "Kip Macy" <kip.macy_at_gmail.com>
> >
> > On 3/22/07, Kevin Oberman <oberman_at_es.net> wrote:
> > > For a long time under V6 and current (and probably V5), if I issued an
> > > ifconfig for my Atheros card, the driver (along with the HAL and rate
> > > modules) would auto-load and my card would be found.
> > >
> > > Starting with my March 19 build, this no longer happens. I need to boot
> > > single-user and manually load the module if I will need it. I don't want
> > > the card to start by default since I don't want the radio on when I am
> > > flying.
> > >
> > > Was this a deliberate change or did something break? It is a real pain.
> 
> O.K. It is clearly a deliberate change, although I am not sure the
> effect is what was intended.
> 
> The call to ifmaybeload(ifname) was moved inside of the if for a
> "create" which applies to pseudo-devices, but not "real" interfaces. As
> a result, the driver never gets loaded. I read the commit message, but I
> don't think that this is the right way to fix the problem
> described. (I'm not sure, what a better approach might be, though.)
> 
> This breaks behavior that goes back over 7 years, having appeared in
> the first release of V4. I can work around it, but it's going to be a
> big surprise to many and it is sure a pain in the neck to me.

I readily admit that my change provoked your trouble.  When committing
it, I took into account only cloned interfaces, but not hardware
ones, perhaps because I had never used modules for hardware interfaces.

Nevertheless, I still think that the practice of loading the module
on any ifconfig command is poor in spite of its age.  It can be
worked around only by dirty hacks.  One of them is an ifconfig
option not to load the module for devd scripts to use it when
shutting down the interface.  Another one is to load the module
only on "positive" ifconfig commands, such as "up" and "alias"
(incl.  the first address,) but not on "negative" ones, e.g., "down"
and "-alias" -- but what to do with "ifconfig -alias up" then?

Perhaps it's time to have "ifconfig foo0 load" along with "ifconfig
bar0 create" to allow loading the module explicitly.  People even
won't have to specify "load" in their rc.conf files as rc.d can add
it for them when, and only when, the interface is started.

Comments?

--
Yar
Received on Fri Mar 23 2007 - 10:24:11 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:07 UTC