svn commit: r331829 - in head/sys/dev: ex ixgb nxge vxge

Brooks Davis brooks at FreeBSD.org
Fri Mar 30 20:24:30 UTC 2018


Author: brooks
Date: Fri Mar 30 20:24:29 2018
New Revision: 331829
URL: https://svnweb.freebsd.org/changeset/base/331829

Log:
  Fall back to ether_ioctl() by default.
  
  The common pratice in ethernet device drivers is to fall back to
  ether_ioctl() to implement generic ioctls not implemented by the driver
  and to fail if no handler exists.
  
  Convert these drivers to follow that practice rather than calling
  ether_ioctl() for specific cases.
  
  vxge(4) aready had the default case, but it was only called on failure
  to match.
  
  Reviewed by:	imp
  Obtained from:	CheriBSD
  Sponsored by:	DARPA, AFRL
  Differential Revision:	https://reviews.freebsd.org/D14895

Modified:
  head/sys/dev/ex/if_ex.c
  head/sys/dev/ixgb/if_ixgb.c
  head/sys/dev/nxge/if_nxge.c
  head/sys/dev/vxge/vxge.c

Modified: head/sys/dev/ex/if_ex.c
==============================================================================
--- head/sys/dev/ex/if_ex.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/ex/if_ex.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -823,12 +823,6 @@ ex_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 	DODEBUG(Start_End, printf("%s: ex_ioctl: start ", ifp->if_xname););
 
 	switch(cmd) {
-		case SIOCSIFADDR:
-		case SIOCGIFADDR:
-		case SIOCSIFMTU:
-			error = ether_ioctl(ifp, cmd, data);
-			break;
-
 		case SIOCSIFFLAGS:
 			DODEBUG(Start_End, printf("SIOCSIFFLAGS"););
 			EX_LOCK(sc);
@@ -850,8 +844,8 @@ ex_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 			error = ifmedia_ioctl(ifp, ifr, &sc->ifmedia, cmd);
 			break;
 		default:
-			DODEBUG(Start_End, printf("unknown"););
-			error = EINVAL;
+			error = ether_ioctl(ifp, cmd, data);
+			break;
 	}
 
 	DODEBUG(Start_End, printf("\n%s: ex_ioctl: finish\n", ifp->if_xname););

Modified: head/sys/dev/ixgb/if_ixgb.c
==============================================================================
--- head/sys/dev/ixgb/if_ixgb.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/ixgb/if_ixgb.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -525,11 +525,6 @@ ixgb_ioctl(struct ifnet * ifp, IOCTL_CMD_TYPE command,
 		goto out;
 
 	switch (command) {
-	case SIOCSIFADDR:
-	case SIOCGIFADDR:
-		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCxIFADDR (Get/Set Interface Addr)");
-		ether_ioctl(ifp, command, data);
-		break;
 	case SIOCSIFMTU:
 		IOCTL_DEBUGOUT("ioctl rcv'd: SIOCSIFMTU (Set Interface MTU)");
 		if (ifr->ifr_mtu > IXGB_MAX_JUMBO_FRAME_SIZE - ETHER_HDR_LEN) {
@@ -610,8 +605,8 @@ ixgb_ioctl(struct ifnet * ifp, IOCTL_CMD_TYPE command,
 		}
 		break;
 	default:
-		IOCTL_DEBUGOUT1("ioctl received: UNKNOWN (0x%X)\n", (int)command);
-		error = EINVAL;
+		error = ether_ioctl(ifp, command, data);
+		break;
 	}
 
 out:

Modified: head/sys/dev/nxge/if_nxge.c
==============================================================================
--- head/sys/dev/nxge/if_nxge.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/nxge/if_nxge.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -1623,12 +1623,6 @@ xge_ioctl(struct ifnet *ifnetp, unsigned long command,
 	}
 
 	switch(command) {
-	    /* Set/Get ifnet address */
-	    case SIOCSIFADDR:
-	    case SIOCGIFADDR:
-	        ether_ioctl(ifnetp, command, data);
-	        break;
-
 	    /* Set ifnet MTU */
 	    case SIOCSIFMTU:
 	        retValue = xge_change_mtu(lldev, ifreqp->ifr_mtu);
@@ -1713,7 +1707,7 @@ xge_ioctl(struct ifnet *ifnetp, unsigned long command,
 	        break;
 
 	    default:
-	        retValue = EINVAL;
+	        retValue = ether_ioctl(ifnetp, command, data);
 	        break;
 	}
 	return retValue;

Modified: head/sys/dev/vxge/vxge.c
==============================================================================
--- head/sys/dev/vxge/vxge.c	Fri Mar 30 20:11:12 2018	(r331828)
+++ head/sys/dev/vxge/vxge.c	Fri Mar 30 20:24:29 2018	(r331829)
@@ -3573,12 +3573,6 @@ vxge_ioctl(ifnet_t ifp, u_long command, caddr_t data)
 		return (EBUSY);
 
 	switch (command) {
-		/* Set/Get ifnet address */
-	case SIOCSIFADDR:
-	case SIOCGIFADDR:
-		ether_ioctl(ifp, command, data);
-		break;
-
 		/* Set Interface MTU */
 	case SIOCSIFMTU:
 		err = vxge_change_mtu(vdev, (unsigned long)ifr->ifr_mtu);


More information about the svn-src-all mailing list