Re: ifconfig stopped loading driver

From: Brooks Davis <brooks_at_freebsd.org>
Date: Sat, 24 Mar 2007 20:10:00 -0500
On Fri, Mar 23, 2007 at 02:03:16PM +0300, Yar Tikhiy wrote:
> 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?

This is a bad idea, IMO.  I think ifconfig shouldn't attempt to load
modules at all, but am willing to be overruled for historical cases.
Added bits to ifconfig to make it a cripped version of kldload with a
wierd syntax makes no sense.

-- Brooks

Received on Sun Mar 25 2007 - 00:28:04 UTC

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