Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Feb 2008 18:55:31 GMT
From:      Sam Leffler <sam@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 136178 for review
Message-ID:  <200802251855.m1PItV1G003789@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=136178

Change 136178 by sam@sam_ebb on 2008/02/25 18:55:23

	parent devices must handle [GS]IFMEDIA directly for ifconfig
	to report their status

Affected files ...

.. //depot/projects/vap/sys/dev/ipw/if_ipw.c#9 edit
.. //depot/projects/vap/sys/dev/iwi/if_iwi.c#14 edit
.. //depot/projects/vap/sys/dev/ral/rt2560.c#16 edit
.. //depot/projects/vap/sys/dev/ral/rt2661.c#13 edit
.. //depot/projects/vap/sys/dev/usb/if_rum.c#8 edit
.. //depot/projects/vap/sys/dev/usb/if_ural.c#10 edit
.. //depot/projects/vap/sys/dev/usb/if_zyd.c#9 edit
.. //depot/projects/vap/sys/dev/wpi/if_wpi.c#8 edit

Differences ...

==== //depot/projects/vap/sys/dev/ipw/if_ipw.c#9 (text+ko) ====

@@ -1727,6 +1727,8 @@
 ipw_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct ipw_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 	IPW_LOCK_DECL;
 
@@ -1742,7 +1744,10 @@
 				ipw_stop_locked(sc);
 		}
 		break;
-
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
 	}

==== //depot/projects/vap/sys/dev/iwi/if_iwi.c#14 (text+ko) ====

@@ -1978,6 +1978,8 @@
 iwi_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct iwi_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 	IWI_LOCK_DECL;
 
@@ -2008,7 +2010,10 @@
 			}
 		}
 		break;
-
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
 	}

==== //depot/projects/vap/sys/dev/ral/rt2560.c#16 (text) ====

@@ -2067,6 +2067,9 @@
 rt2560_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct rt2560_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
+	int error = 0;
 
 	switch (cmd) {
 	case SIOCSIFFLAGS:
@@ -2082,10 +2085,15 @@
 				rt2560_stop(sc);
 		}
 		break;
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
-		return ether_ioctl(ifp, cmd, data);
+		error = ether_ioctl(ifp, cmd, data);
+		break;
 	}
-	return 0;
+	return error;
 }
 
 static void

==== //depot/projects/vap/sys/dev/ral/rt2661.c#13 (text) ====

@@ -1905,6 +1905,9 @@
 rt2661_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct rt2661_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
+	int error = 0;
 
 	switch (cmd) {
 	case SIOCSIFFLAGS:
@@ -1918,9 +1921,13 @@
 				rt2661_stop(sc);
 		}
 		break;
-
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
-		return ether_ioctl(ifp, cmd, data);
+		error = ether_ioctl(ifp, cmd, data);
+		break;
 	}
 	return 0;
 }

==== //depot/projects/vap/sys/dev/usb/if_rum.c#8 (text+ko) ====

@@ -1432,6 +1432,8 @@
 rum_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct rum_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 
 	RUM_LOCK(sc);
@@ -1448,6 +1450,10 @@
 				rum_stop(sc);
 		}
 		break;
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
 	}

==== //depot/projects/vap/sys/dev/usb/if_ural.c#10 (text+ko) ====

@@ -1536,6 +1536,8 @@
 ural_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct ural_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 
 	RAL_LOCK(sc);
@@ -1552,9 +1554,13 @@
 				ural_stop(sc);
 		}
 		break;
-
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
+		break;
 	}
 
 	RAL_UNLOCK(sc);

==== //depot/projects/vap/sys/dev/usb/if_zyd.c#9 (text+ko) ====

@@ -2473,6 +2473,8 @@
 zyd_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct zyd_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 
 	ZYD_LOCK(sc);
@@ -2492,15 +2494,18 @@
 		}
 		sc->sc_if_flags = ifp->if_flags;
 		break;
-
 	case SIOCADDMULTI:
 	case SIOCDELMULTI:
 		if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 			zyd_set_multi(sc);
 		break;
-
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
+		break;
 	}
 
 	ZYD_UNLOCK(sc);

==== //depot/projects/vap/sys/dev/wpi/if_wpi.c#8 (text+ko) ====

@@ -2190,6 +2190,8 @@
 wpi_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
 {
 	struct wpi_softc *sc = ifp->if_softc;
+	struct ieee80211com *ic = &sc->sc_ic;
+	struct ifreq *ifr = (struct ifreq *) data;
 	int error = 0;
 	WPI_LOCK_DECL;
 
@@ -2203,6 +2205,10 @@
 		} else if (ifp->if_drv_flags & IFF_DRV_RUNNING)
 			wpi_stop_locked(sc);
 		break;
+	case SIOCGIFMEDIA:
+	case SIOCSIFMEDIA:
+		error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd);
+		break;
 	default:
 		error = ether_ioctl(ifp, cmd, data);
 		break;



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