Remove disable_11b_rates() driver_ops
authorJouni Malinen <j@w1.fi>
Sat, 29 Oct 2011 19:25:28 +0000 (22:25 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 29 Oct 2011 19:25:28 +0000 (22:25 +0300)
This function was used unconditionally if wpa_supplicant build
includes CONFIG_P2P=y. Adding a separate driver_ops for such use
is not really useful since the driver wrappers can do the same
internally. Remove this driver_ops and move matching functionality
into driver_nl80211.c which was the only driver wrapper using
this driver_ops callback.

Signed-hostap: Jouni Malinen <j@w1.fi>

src/drivers/driver.h
src/drivers/driver_ndis.c
src/drivers/driver_nl80211.c
wpa_supplicant/driver_i.h
wpa_supplicant/p2p_supplicant.c

index 4a9be35..06f2db3 100644 (file)
@@ -1947,19 +1947,6 @@ struct wpa_driver_ops {
        int (*probe_req_report)(void *priv, int report);
 
        /**
-        * disable_11b_rates - Set whether IEEE 802.11b rates are used for TX
-        * @priv: Private driver interface data
-        * @disabled: Whether IEEE 802.11b rates are disabled
-        * Returns: 0 on success, -1 on failure (or if not supported)
-        *
-        * This command is used to disable IEEE 802.11b rates (1, 2, 5.5, and
-        * 11 Mbps) as TX rates for data and management frames. This can be
-        * used to optimize channel use when there is no need to support IEEE
-        * 802.11b-only devices.
-        */
-       int (*disable_11b_rates)(void *priv, int disabled);
-
-       /**
         * deinit_ap - Deinitialize AP mode
         * @priv: Private driver interface data
         * Returns: 0 on success, -1 on failure (or if not supported)
index 7e845b9..4825674 100644 (file)
@@ -3288,7 +3288,6 @@ const struct wpa_driver_ops wpa_driver_ndis_ops = {
        NULL /* remain_on_channel */,
        NULL /* cancel_remain_on_channel */,
        NULL /* probe_req_report */,
-       NULL /* disable_11b_rates */,
        NULL /* deinit_ap */,
        NULL /* suspend */,
        NULL /* resume */,
index be12c13..aa437aa 100644 (file)
@@ -2419,6 +2419,17 @@ wpa_driver_nl80211_finish_drv_init(struct wpa_driver_nl80211_data *drv)
                                       drv, drv->ctx);
        }
 
+#ifdef CONFIG_P2P
+       if (drv->capa.flags & WPA_DRIVER_FLAGS_P2P_CAPABLE) {
+               /*
+                * FIX: Do this conditionally on the interface type to avoid
+                * changing non-P2P use cases.
+                */
+               drv->disable_11b_rates = 1;
+               nl80211_disable_11b_rates(drv, drv->ifindex, 1);
+       }
+#endif /* CONFIG_P2P */
+
        return 0;
 }
 
@@ -7022,15 +7033,6 @@ nla_put_failure:
 }
 
 
-static int wpa_driver_nl80211_disable_11b_rates(void *priv, int disabled)
-{
-       struct i802_bss *bss = priv;
-       struct wpa_driver_nl80211_data *drv = bss->drv;
-       drv->disable_11b_rates = disabled;
-       return nl80211_disable_11b_rates(drv, drv->ifindex, disabled);
-}
-
-
 static int wpa_driver_nl80211_deinit_ap(void *priv)
 {
        struct i802_bss *bss = priv;
@@ -7530,7 +7532,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
        .cancel_remain_on_channel =
        wpa_driver_nl80211_cancel_remain_on_channel,
        .probe_req_report = wpa_driver_nl80211_probe_req_report,
-       .disable_11b_rates = wpa_driver_nl80211_disable_11b_rates,
        .deinit_ap = wpa_driver_nl80211_deinit_ap,
        .resume = wpa_driver_nl80211_resume,
        .send_ft_action = nl80211_send_ft_action,
index 0363f4d..b18f3fc 100644 (file)
@@ -426,15 +426,6 @@ static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s,
        return -1;
 }
 
-static inline int wpa_drv_disable_11b_rates(struct wpa_supplicant *wpa_s,
-                                           int disabled)
-{
-       if (wpa_s->driver->disable_11b_rates)
-               return wpa_s->driver->disable_11b_rates(wpa_s->drv_priv,
-                                                       disabled);
-       return -1;
-}
-
 static inline int wpa_drv_deinit_ap(struct wpa_supplicant *wpa_s)
 {
        if (wpa_s->driver->deinit_ap)
index 3eeb61e..3723c50 100644 (file)
@@ -2134,11 +2134,6 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s)
        if (!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_P2P_CAPABLE))
                return 0;
 
-       if (wpa_drv_disable_11b_rates(wpa_s, 1) < 0) {
-               wpa_printf(MSG_DEBUG, "P2P: Failed to disable 11b rates");
-               /* Continue anyway; this is not really a fatal error */
-       }
-
        if (global->p2p)
                return 0;