kern/110284: [if_ethersubr] Invalid Assumption in SIOCSIFADDR
in ether_ioctl()
Devon H. O'Dell
devon.odell at gmail.com
Thu May 17 02:40:07 UTC 2012
The following reply was made to PR kern/110284; it has been noted by GNATS.
From: "Devon H. O'Dell" <devon.odell at gmail.com>
To: bug-followup at FreeBSD.org, freebsd-net at freebsd.org, gavin at freebsd.org
Cc:
Subject: Re: kern/110284: [if_ethersubr] Invalid Assumption in SIOCSIFADDR in ether_ioctl()
Date: Wed, 16 May 2012 22:33:31 -0400
Hi Gavin, freebsd-net,
I submitted this PR when I worked at Coyote Point. I'm no longer
there, but I do remember this issue well. The discussion around this
patch happened on IRC and not the PR, which is unfortunate. If I
recall correctly, rwatson's stance was that the real fix was to fix
the heinous layer between ioctl and device. As far as I'm aware, this
is still an issue with current drivers, and this patch still solves
the issue. CP ran with it successfully for years. (And unsuccessfully
for a time before it was implemented :)).
The patch is basically (forgive formatting):
--- if_ethersubr.c 2011-09-22 20:51:37.000000000 -0400
+++ /home/dho/if_ethersubr.c 2012-05-16 22:27:17.000000000 -0400
@@ -1146,7 +1146,9 @@
switch (ifa->ifa_addr->sa_family) {
#ifdef INET
case AF_INET:
- ifp->if_init(ifp->if_softc); /* before arpwhohas */
+ if (ifp->if_flags & IFF_RUNNING == 0) {
+ ifp->if_init(ifp->if_softc); /*
before arpwhohas */
+ }
arp_ifinit(ifp, ifa);
break;
#endif
More information about the freebsd-net
mailing list