Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 May 2012 02:40:07 GMT
From:      "Devon H. O'Dell" <devon.odell@gmail.com>
To:        freebsd-net@FreeBSD.org
Subject:   Re: kern/110284: [if_ethersubr] Invalid Assumption in SIOCSIFADDR in ether_ioctl()
Message-ID:  <201205170240.q4H2e7Ml002571@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/110284; it has been noted by GNATS.

From: "Devon H. O'Dell" <devon.odell@gmail.com>
To: bug-followup@FreeBSD.org, freebsd-net@freebsd.org, gavin@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205170240.q4H2e7Ml002571>