aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Roskin <proski@gnu.org>2007-06-04 21:04:07 -0400
committerGuido Guenther <agx@sigxcpu.org>2007-06-05 08:59:34 +0200
commitbd67ac3e316fdc4c38ffff54215fc13c2125ef03 (patch)
treeed3e91b3593d0cd7ef82de985372752ffc15f86c
parente6039cdebd9c680500c20fda8f043686a412076f (diff)
[PATCH] Call at76_set_monitor_mode() from at76_startup_device()
at76_set_monitor_mode() is always called after at76_startup_device(), and other at76_set functions are called from at76_startup_device() directly. Move at76_set_monitor_mode() closer to the other at76_set functions. Signed-off-by: Pavel Roskin <proski@gnu.org>
-rw-r--r--at76_usb.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/at76_usb.c b/at76_usb.c
index cf684ac..ab062d8 100644
--- a/at76_usb.c
+++ b/at76_usb.c
@@ -1061,6 +1061,21 @@ static int at76_set_autorate_fallback(struct at76_priv *priv, int onoff)
}
+/* set network device type for the current mode */
+static void at76_set_monitor_mode(struct at76_priv *priv)
+{
+ if (priv->iw_mode == IW_MODE_MONITOR) {
+ at76_dbg(DBG_MONITOR_MODE, "%s: MONITOR MODE ON",
+ priv->netdev->name);
+ priv->netdev->type = ARPHRD_IEEE80211_RADIOTAP;
+ } else {
+ at76_dbg(DBG_MONITOR_MODE, "%s: MONITOR MODE OFF",
+ priv->netdev->name);
+ priv->netdev->type = ARPHRD_ETHER;
+ }
+}
+
+
static int at76_add_mac_address(struct at76_priv *priv, void *addr)
{
int ret = 0;
@@ -4672,6 +4687,8 @@ static int at76_startup_device(struct at76_priv *priv)
if ((ret = at76_set_iroaming(priv, priv->international_roaming)) < 0)
return ret;
+ at76_set_monitor_mode(priv);
+
if (at76_debug & DBG_MIB) {
at76_dump_mib_mac(priv);
at76_dump_mib_mac_addr(priv);
@@ -4686,23 +4703,6 @@ static int at76_startup_device(struct at76_priv *priv)
}
-/**
- * set_monitor_mode - sets priv->netdev->type
- */
-static void at76_set_monitor_mode(struct at76_priv *priv)
-{
- if (priv->iw_mode == IW_MODE_MONITOR) {
- at76_dbg(DBG_MONITOR_MODE, "%s: MONITOR MODE ON",
- priv->netdev->name);
- priv->netdev->type = ARPHRD_IEEE80211_RADIOTAP;
- } else {
- at76_dbg(DBG_MONITOR_MODE, "%s: MONITOR MODE OFF",
- priv->netdev->name);
- priv->netdev->type = ARPHRD_ETHER;
- }
-}
-
-
static void at76_work_restart(struct work_struct *work)
{
struct at76_priv *priv = container_of(work, struct at76_priv,
@@ -4711,10 +4711,9 @@ static void at76_work_restart(struct work_struct *work)
mutex_lock(&priv->mtx);
at76_startup_device(priv);
- at76_set_monitor_mode(priv);
-
netif_carrier_off(priv->netdev); /* disable running netdev watchdog */
netif_stop_queue(priv->netdev); /* stop tx data packets */
+
if (priv->iw_mode != IW_MODE_MONITOR) {
priv->istate = SCANNING;
schedule_work(&priv->work_scan);