diff options
| author | Andrew Thompson <thompsa@FreeBSD.org> | 2008-05-01 04:55:00 +0000 |
|---|---|---|
| committer | Andrew Thompson <thompsa@FreeBSD.org> | 2008-05-01 04:55:00 +0000 |
| commit | 31a8c1edd8f4ee9047bd21e764e6109aa38cd07e (patch) | |
| tree | b983721c7e7ac121297fd8475a3fd70e7cdc0166 /sys/dev/iwi | |
| parent | a239061a54621d7856951e2161a55baf5824922a (diff) | |
Notes
Diffstat (limited to 'sys/dev/iwi')
| -rw-r--r-- | sys/dev/iwi/if_iwi.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/sys/dev/iwi/if_iwi.c b/sys/dev/iwi/if_iwi.c index 1ddb59b19a6f..ed9bcff52da5 100644 --- a/sys/dev/iwi/if_iwi.c +++ b/sys/dev/iwi/if_iwi.c @@ -2052,9 +2052,9 @@ iwi_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) int error = 0, startall = 0; IWI_LOCK_DECL; - IWI_LOCK(sc); switch (cmd) { case SIOCSIFFLAGS: + IWI_LOCK(sc); if (ifp->if_flags & IFF_UP) { if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) { iwi_init_locked(sc); @@ -2064,19 +2064,20 @@ iwi_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if (ifp->if_drv_flags & IFF_DRV_RUNNING) iwi_stop_locked(sc); } + IWI_UNLOCK(sc); + if (startall) + ieee80211_start_all(ic); break; case SIOCGIFMEDIA: - case SIOCSIFMEDIA: error = ifmedia_ioctl(ifp, ifr, &ic->ic_media, cmd); break; - default: + case SIOCGIFADDR: error = ether_ioctl(ifp, cmd, data); break; + default: + error = EINVAL; + break; } - IWI_UNLOCK(sc); - - if (startall) - ieee80211_start_all(ic); return error; } |
