X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=ath%2Fif_ath.c;h=412711535c14194392fb4a95b5ba24a3e076adc3;hb=b1a451321f3165c3beccf5e11aa7a438b535c409;hp=604aff9db6c1a4fcbc4e4bdde07d5fbb51f9361b;hpb=d72a04fc2e9ee0396155ad2a3bd46415d2a05cdb;p=madwifi%2F.git diff --git a/ath/if_ath.c b/ath/if_ath.c index 604aff9..4127115 100644 --- a/ath/if_ath.c +++ b/ath/if_ath.c @@ -10348,6 +10348,7 @@ ath_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { struct ath_softc *sc = dev->priv; struct ieee80211com *ic = &sc->sc_ic; + struct ath_diag ad; int error; ATH_LOCK(sc); @@ -10363,10 +10364,15 @@ ath_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) error = 0; break; case SIOCGATHDIAG: + return -EOPNOTSUPP; + break; + case SIOCGATHHALDIAG: if (!capable(CAP_NET_ADMIN)) error = -EPERM; + else if (copy_from_user(&ad, ifr->ifr_data, sizeof(ad))) + error = -EFAULT; else - error = ath_ioctl_diag(sc, (struct ath_diag *)ifr); + error = ath_ioctl_diag(sc, &ad); break; case SIOCETHTOOL: if (copy_from_user(&cmd, ifr->ifr_data, sizeof(cmd))) @@ -10378,7 +10384,7 @@ ath_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) error = ieee80211_ioctl_create_vap(ic, ifr, dev); break; default: - error = -EINVAL; + error = -EOPNOTSUPP; break; } ATH_UNLOCK(sc);