Author: rpokala
Date: Thu Feb 22 19:40:03 2018
New Revision: 329834
URL: https://svnweb.freebsd.org/changeset/base/329834

Log:
  MFC r329295:
  
  Panasas discovered that ioctl(SIOCGLAGGPORT) returns ENOTTY for mxge(4) when
  the NIC is not a member of a lagg. This came as a surprise, because the
  SIOCGLAGGPORT handler in if_lagg.c only returns ENOENT (if run against the
  laggX interface, rather than a physical port) or EINVAL (if run against a
  non-member physical port). This behavior was not seen with other drivers,
  such as bge(4), igb(4), and cxl(4). When I compared their respective ioctl
  handlers, I found that they all called ether_ioctl() for the default (i.e.
  unhandled) case; by contrast, mxge(4) only calls ether_ioctl() for two
  specific cases, and returns ENOTTY for the default case.
  
  Remove the two cases which explicitly call ether_ioctl(), and let the
  default case call it instead. This matches what the vast majority of the NIC
  drivers do.

Modified:
  stable/10/sys/dev/mxge/if_mxge.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/mxge/if_mxge.c
==============================================================================
--- stable/10/sys/dev/mxge/if_mxge.c    Thu Feb 22 19:39:44 2018        
(r329833)
+++ stable/10/sys/dev/mxge/if_mxge.c    Thu Feb 22 19:40:03 2018        
(r329834)
@@ -4168,11 +4168,6 @@ mxge_ioctl(struct ifnet *ifp, u_long command, caddr_t 
 
        err = 0;
        switch (command) {
-       case SIOCSIFADDR:
-       case SIOCGIFADDR:
-               err = ether_ioctl(ifp, command, data);
-               break;
-
        case SIOCSIFMTU:
                err = mxge_change_mtu(sc, ifr->ifr_mtu);
                break;
@@ -4296,7 +4291,8 @@ mxge_ioctl(struct ifnet *ifp, u_long command, caddr_t 
                 break;
 
        default:
-               err = ENOTTY;
+               err = ether_ioctl(ifp, command, data);
+               break;
         }
        return err;
 }
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to