Workaround automatic re-loading of network drivers
Doug Barton
dougb at FreeBSD.org
Mon May 3 23:37:35 UTC 2010
Seems reasonable to me.
Doug
On 05/03/10 12:27, John Baldwin wrote:
> While testing some changes with vlans and the new vlan_<if> syntax in rc.conf
> I've noticed the following behavior:
>
> ifconfig foo0.100 destroy
>
> Will actually try to kldload the 'foo' driver. This can prove very non-
> intuitive. In general I think we shouldn't try to kldload anything when
> destroying an interface period. What I've done locally is to pass '-n' to
> ifconfig when destroying an interface.
>
> We should possibly fix some other bugs however. For example, ifmaybeload() in
> ifconfig should probably stop at the first non-digit it finds (e.g. ".")
> rather than trimming from the first digit on. Also, perhaps 'ifconfig <foo>
> destroy' should imply -n without requiring it to be explicit.
>
> I also moved the ifconfig destroy of wlan and vlan devices up before running
> ifn_stop to prevent running 'ifconfig <foo> down' which would also reload the
> driver due to the first bug in ifconfig.
>
> Index: network.subr
> ===================================================================
> --- network.subr (revision 207329)
> +++ network.subr (working copy)
> @@ -915,7 +915,7 @@
> _list=
>
> for ifn in ${cloned_interfaces}; do
> - ifconfig ${ifn} destroy
> + ifconfig -n ${ifn} destroy
> if [ $? -eq 0 ]; then
> _list="${_list}${_prefix}${ifn}"
> [ -z "$_prefix" ] && _prefix=' '
> @@ -1000,10 +1000,10 @@
> if ! ifexists $child; then
> continue
> fi
> + ifconfig -n $child destroy && cfg=0
> if autoif $child; then
> ifn_stop $child
> fi
> - ifconfig $child destroy && cfg=0
> done
>
> child_vlans=`get_if_var $ifn vlans_IF`
> @@ -1014,10 +1014,10 @@
> if ! ifexists $child; then
> continue
> fi
> + ifconfig -n $child destroy && cfg=0
> if autoif $child; then
> ifn_stop $child
> fi
> - ifconfig $child destroy && cfg=0
> done
>
> return ${cfg}
>
>
--
... and that's just a little bit of history repeating.
-- Propellerheads
Improve the effectiveness of your Internet presence with
a domain name makeover! http://SupersetSolutions.com/
More information about the freebsd-net
mailing list