Date: Fri, 23 Mar 2007 14:03:16 +0300 From: Yar Tikhiy <yar@comp.chem.msu.su> To: Kevin Oberman <oberman@es.net> Cc: current@freebsd.org Subject: Re: ifconfig stopped loading driver Message-ID: <20070323110315.GB19357@comp.chem.msu.su> In-Reply-To: <20070322173144.46C7D45047@ptavv.es.net> References: <b1fa29170703220915q7d9f1950pa151ffeaf3c2fb05@mail.gmail.com> <20070322173144.46C7D45047@ptavv.es.net>
next in thread | previous in thread | raw e-mail | index | archive | help
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@gmail.com> > > > > On 3/22/07, Kevin Oberman <oberman@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070323110315.GB19357>