summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/ic/athn.c4
-rw-r--r--sys/dev/ic/bwfm.c5
-rw-r--r--sys/dev/pci/if_ipw.c5
-rw-r--r--sys/dev/pci/if_iwi.c5
-rw-r--r--sys/dev/pci/if_iwm.c5
-rw-r--r--sys/dev/pci/if_iwn.c7
-rw-r--r--sys/dev/pci/if_wpi.c5
-rw-r--r--sys/dev/usb/if_rsu.c5
-rw-r--r--sys/net80211/ieee80211.c3
-rw-r--r--sys/net80211/ieee80211_ioctl.c45
-rw-r--r--sys/net80211/ieee80211_node.c34
-rw-r--r--sys/net80211/ieee80211_var.h3
12 files changed, 26 insertions, 100 deletions
diff --git a/sys/dev/ic/athn.c b/sys/dev/ic/athn.c
index 54f1e668f7d..9e8b2924c70 100644
--- a/sys/dev/ic/athn.c
+++ b/sys/dev/ic/athn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: athn.c,v 1.98 2017/07/03 09:21:09 kevlo Exp $ */
+/* $OpenBSD: athn.c,v 1.99 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2009 Damien Bergamini <damien.bergamini@free.fr>
@@ -2917,8 +2917,6 @@ athn_stop(struct ifnet *ifp, int disable)
ifq_clr_oactive(&ifp->if_snd);
timeout_del(&sc->scan_to);
- /* In case we were scanning, release the scan "lock". */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
diff --git a/sys/dev/ic/bwfm.c b/sys/dev/ic/bwfm.c
index 8a2f1beaddd..b7dabd17743 100644
--- a/sys/dev/ic/bwfm.c
+++ b/sys/dev/ic/bwfm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bwfm.c,v 1.41 2018/02/11 05:33:12 patrick Exp $ */
+/* $OpenBSD: bwfm.c,v 1.42 2018/04/26 12:50:07 pirofti Exp $ */
/*
* Copyright (c) 2010-2016 Broadcom Corporation
* Copyright (c) 2016,2017 Patrick Wildt <patrick@blueri.se>
@@ -463,9 +463,6 @@ bwfm_stop(struct ifnet *ifp)
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
- /* In case we were scanning, release the scan "lock". */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
bwfm_fwvar_cmd_set_int(sc, BWFM_C_DOWN, 1);
diff --git a/sys/dev/pci/if_ipw.c b/sys/dev/pci/if_ipw.c
index 57532466efd..9897738a8a8 100644
--- a/sys/dev/pci/if_ipw.c
+++ b/sys/dev/pci/if_ipw.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_ipw.c,v 1.121 2017/10/26 15:00:28 mpi Exp $ */
+/* $OpenBSD: if_ipw.c,v 1.122 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2004-2008
@@ -2024,9 +2024,6 @@ ipw_stop(struct ifnet *ifp, int disable)
for (i = 0; i < IPW_NTBD; i++)
ipw_release_sbd(sc, &sc->stbd_list[i]);
- /* in case we were scanning, release the scan "lock" */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
}
diff --git a/sys/dev/pci/if_iwi.c b/sys/dev/pci/if_iwi.c
index f60f9113333..2652cd5df5b 100644
--- a/sys/dev/pci/if_iwi.c
+++ b/sys/dev/pci/if_iwi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwi.c,v 1.137 2017/10/26 15:00:28 mpi Exp $ */
+/* $OpenBSD: if_iwi.c,v 1.138 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2004-2008
@@ -2291,9 +2291,6 @@ iwi_stop(struct ifnet *ifp, int disable)
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
- /* in case we were scanning, release the scan "lock" */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
iwi_stop_master(sc);
diff --git a/sys/dev/pci/if_iwm.c b/sys/dev/pci/if_iwm.c
index fa3c1c82cc8..150cb4dcef6 100644
--- a/sys/dev/pci/if_iwm.c
+++ b/sys/dev/pci/if_iwm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwm.c,v 1.226 2018/02/28 14:39:35 stsp Exp $ */
+/* $OpenBSD: if_iwm.c,v 1.227 2018/04/26 12:50:07 pirofti Exp $ */
/*
* Copyright (c) 2014, 2016 genua gmbh <info@genua.de>
@@ -6708,9 +6708,6 @@ iwm_stop(struct ifnet *ifp)
sc->sc_cmd_resp_pkt[i] = NULL;
sc->sc_cmd_resp_len[i] = 0;
}
- if (ic->ic_scan_lock & IEEE80211_SCAN_REQUEST)
- wakeup(&ic->ic_scan_lock);
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
diff --git a/sys/dev/pci/if_iwn.c b/sys/dev/pci/if_iwn.c
index d26fb6a5e64..fb9ac9434b8 100644
--- a/sys/dev/pci/if_iwn.c
+++ b/sys/dev/pci/if_iwn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_iwn.c,v 1.201 2018/02/25 12:40:06 stsp Exp $ */
+/* $OpenBSD: if_iwn.c,v 1.202 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2007-2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -6633,11 +6633,6 @@ iwn_stop(struct ifnet *ifp, int disable)
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
- /* In case we were scanning, release the scan "lock". */
- if (ic->ic_scan_lock & IEEE80211_SCAN_REQUEST)
- wakeup(&ic->ic_scan_lock);
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
/* Power OFF hardware. */
diff --git a/sys/dev/pci/if_wpi.c b/sys/dev/pci/if_wpi.c
index 214f1944ca3..e6b6330d717 100644
--- a/sys/dev/pci/if_wpi.c
+++ b/sys/dev/pci/if_wpi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_wpi.c,v 1.142 2018/01/31 12:36:13 stsp Exp $ */
+/* $OpenBSD: if_wpi.c,v 1.143 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2006-2008
@@ -3319,9 +3319,6 @@ wpi_stop(struct ifnet *ifp, int disable)
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
- /* In case we were scanning, release the scan "lock". */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
/* Power OFF hardware. */
diff --git a/sys/dev/usb/if_rsu.c b/sys/dev/usb/if_rsu.c
index fb70699874e..de65aaa91f5 100644
--- a/sys/dev/usb/if_rsu.c
+++ b/sys/dev/usb/if_rsu.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_rsu.c,v 1.42 2018/01/31 12:36:13 stsp Exp $ */
+/* $OpenBSD: if_rsu.c,v 1.43 2018/04/26 12:50:07 pirofti Exp $ */
/*-
* Copyright (c) 2010 Damien Bergamini <damien.bergamini@free.fr>
@@ -2313,9 +2313,6 @@ rsu_stop(struct ifnet *ifp)
ifp->if_flags &= ~IFF_RUNNING;
ifq_clr_oactive(&ifp->if_snd);
- /* In case we were scanning, release the scan "lock". */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
-
s = splusb();
ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
/* Wait for all async commands to complete. */
diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c
index da43082d70c..6a00e5a0a22 100644
--- a/sys/net80211/ieee80211.c
+++ b/sys/net80211/ieee80211.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211.c,v 1.66 2018/04/20 09:40:36 jmatthew Exp $ */
+/* $OpenBSD: ieee80211.c,v 1.67 2018/04/26 12:50:07 pirofti Exp $ */
/* $NetBSD: ieee80211.c,v 1.19 2004/06/06 05:45:29 dyoung Exp $ */
/*-
@@ -143,7 +143,6 @@ ieee80211_channel_init(struct ifnet *ifp)
if ((ic->ic_modecaps & (1<<ic->ic_curmode)) == 0)
ic->ic_curmode = IEEE80211_MODE_AUTO;
ic->ic_des_chan = IEEE80211_CHAN_ANYC; /* any channel is ok */
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
}
void
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 4c8fb30f2b0..d934bb49a62 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_ioctl.c,v 1.59 2018/02/19 08:59:52 mpi Exp $ */
+/* $OpenBSD: ieee80211_ioctl.c,v 1.60 2018/04/26 12:50:07 pirofti Exp $ */
/* $NetBSD: ieee80211_ioctl.c,v 1.15 2004/05/06 02:58:16 dyoung Exp $ */
/*-
@@ -670,42 +670,7 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
ifp->if_mtu = ifr->ifr_mtu;
break;
case SIOCS80211SCAN:
- if ((error = suser(curproc)) != 0)
- break;
-#ifndef IEEE80211_STA_ONLY
- if (ic->ic_opmode == IEEE80211_M_HOSTAP)
- break;
-#endif
- if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) !=
- (IFF_UP | IFF_RUNNING)) {
- error = ENETDOWN;
- break;
- }
- if ((ic->ic_scan_lock & IEEE80211_SCAN_REQUEST) == 0) {
- if (ic->ic_scan_lock & IEEE80211_SCAN_LOCKED)
- ic->ic_scan_lock |= IEEE80211_SCAN_RESUME;
- ic->ic_scan_lock |= IEEE80211_SCAN_REQUEST;
- if (ic->ic_state != IEEE80211_S_SCAN) {
- ieee80211_clean_cached(ic);
- if (ic->ic_opmode == IEEE80211_M_STA &&
- ic->ic_state == IEEE80211_S_RUN &&
- IFM_MODE(ic->ic_media.ifm_cur->ifm_media)
- == IFM_AUTO) {
- /*
- * We're already associated to an AP.
- * Make the scanning loop start off in
- * auto mode so all supported bands
- * get scanned.
- */
- ieee80211_setmode(ic,
- IEEE80211_MODE_AUTO);
- }
- ieee80211_new_state(ic, IEEE80211_S_SCAN, -1);
- }
- }
- /* Let the userspace process wait for completion */
- error = tsleep(&ic->ic_scan_lock, PCATCH, "80211scan",
- hz * IEEE80211_SCAN_TIMEOUT);
+ /* Disabled. SIOCG80211ALLNODES is enough. */
break;
case SIOCG80211NODE:
nr = (struct ieee80211_nodereq *)data;
@@ -769,6 +734,12 @@ ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
break;
#endif
case SIOCG80211ALLNODES:
+ if ((ifp->if_flags & (IFF_UP | IFF_RUNNING)) !=
+ (IFF_UP | IFF_RUNNING)) {
+ error = ENETDOWN;
+ break;
+ }
+
na = (struct ieee80211_nodereq_all *)data;
na->na_nodes = i = 0;
ni = RBT_MIN(ieee80211_tree, &ic->ic_tree);
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
index ae923d5beef..2f911dc5325 100644
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_node.c,v 1.126 2018/02/06 22:14:52 phessler Exp $ */
+/* $OpenBSD: ieee80211_node.c,v 1.127 2018/04/26 12:50:07 pirofti Exp $ */
/* $NetBSD: ieee80211_node.c,v 1.14 2004/05/09 09:18:47 dyoung Exp $ */
/*-
@@ -245,10 +245,6 @@ ieee80211_begin_scan(struct ifnet *ifp)
{
struct ieee80211com *ic = (void *)ifp;
- if (ic->ic_scan_lock & IEEE80211_SCAN_LOCKED)
- return;
- ic->ic_scan_lock |= IEEE80211_SCAN_LOCKED;
-
/*
* In all but hostap mode scanning starts off in
* an active mode before switching to passive.
@@ -709,7 +705,7 @@ ieee80211_end_scan(struct ifnet *ifp)
break;
}
ieee80211_create_ibss(ic, &ic->ic_channels[i]);
- goto wakeup;
+ return;
}
#endif
if (ni == NULL) {
@@ -721,7 +717,7 @@ ieee80211_end_scan(struct ifnet *ifp)
(ic->ic_flags & IEEE80211_F_IBSSON) &&
ic->ic_des_esslen != 0) {
ieee80211_create_ibss(ic, ic->ic_ibss_chan);
- goto wakeup;
+ return;
}
#endif
/*
@@ -735,14 +731,8 @@ ieee80211_end_scan(struct ifnet *ifp)
*/
if (ieee80211_next_mode(ifp) == IEEE80211_MODE_AUTO ||
(ic->ic_caps & IEEE80211_C_SCANALLBAND)) {
- if (ic->ic_scan_lock & IEEE80211_SCAN_REQUEST &&
- ic->ic_scan_lock & IEEE80211_SCAN_RESUME) {
- ic->ic_scan_lock = IEEE80211_SCAN_LOCKED;
- /* Return from a user-initiated scan. */
- wakeup(&ic->ic_scan_lock);
- } else if (ic->ic_scan_lock & IEEE80211_SCAN_REQUEST)
- goto wakeup;
ic->ic_scan_count++;
+ return;
}
/*
@@ -819,13 +809,13 @@ ieee80211_end_scan(struct ifnet *ifp)
if (ic->ic_bgscan_fail < IEEE80211_BGSCAN_FAIL_MAX)
ic->ic_bgscan_fail++;
ic->ic_flags &= ~IEEE80211_F_BGSCAN;
- goto wakeup;
+ return;
}
arg = malloc(sizeof(*arg), M_DEVBUF, M_NOWAIT | M_ZERO);
if (arg == NULL) {
ic->ic_flags &= ~IEEE80211_F_BGSCAN;
- goto wakeup;
+ return;
}
ic->ic_bgscan_fail = 0;
@@ -838,7 +828,7 @@ ieee80211_end_scan(struct ifnet *ifp)
IEEE80211_FC0_SUBTYPE_DEAUTH,
IEEE80211_REASON_AUTH_LEAVE) != 0) {
ic->ic_flags &= ~IEEE80211_F_BGSCAN;
- goto wakeup;
+ return;
}
/* Prevent dispatch of additional data frames to hardware. */
@@ -854,19 +844,11 @@ ieee80211_end_scan(struct ifnet *ifp)
ic->ic_bss->ni_unref_arg_size = sizeof(*arg);
ic->ic_bss->ni_unref_cb = ieee80211_node_switch_bss;
/* F_BGSCAN flag gets cleared in ieee80211_node_join_bss(). */
- goto wakeup;
+ return;
} else if (selbs == NULL)
goto notfound;
ieee80211_node_join_bss(ic, selbs);
-
- wakeup:
- if (ic->ic_scan_lock & IEEE80211_SCAN_REQUEST) {
- /* Return from a user-initiated scan. */
- wakeup(&ic->ic_scan_lock);
- }
-
- ic->ic_scan_lock = IEEE80211_SCAN_UNLOCKED;
}
/*
diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h
index 5b9e11179dd..63bedcef508 100644
--- a/sys/net80211/ieee80211_var.h
+++ b/sys/net80211/ieee80211_var.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_var.h,v 1.84 2018/02/05 08:44:13 stsp Exp $ */
+/* $OpenBSD: ieee80211_var.h,v 1.85 2018/04/26 12:50:07 pirofti Exp $ */
/* $NetBSD: ieee80211_var.h,v 1.7 2004/05/06 03:07:10 dyoung Exp $ */
/*-
@@ -240,7 +240,6 @@ struct ieee80211com {
u_char ic_chan_scan[howmany(IEEE80211_CHAN_MAX,NBBY)];
struct mbuf_queue ic_mgtq;
struct mbuf_queue ic_pwrsaveq;
- u_int ic_scan_lock; /* user-initiated scan */
u_int8_t ic_scan_count; /* count scans */
u_int32_t ic_flags; /* state flags */
u_int32_t ic_xflags; /* more flags */