These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / net / wireless / mwifiex / sta_ioctl.c
index 0599e41..a6c8a4f 100644 (file)
@@ -64,7 +64,10 @@ int mwifiex_wait_queue_complete(struct mwifiex_adapter *adapter,
                                                  *(cmd_queued->condition),
                                                  (12 * HZ));
        if (status <= 0) {
-               dev_err(adapter->dev, "cmd_wait_q terminated: %d\n", status);
+               if (status == 0)
+                       status = -ETIMEDOUT;
+               mwifiex_dbg(adapter, ERROR, "cmd_wait_q terminated: %d\n",
+                           status);
                mwifiex_cancel_all_pending_cmd(adapter);
                return status;
        }
@@ -91,7 +94,8 @@ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
        old_pkt_filter = priv->curr_pkt_filter;
 
        if (mcast_list->mode == MWIFIEX_PROMISC_MODE) {
-               dev_dbg(priv->adapter->dev, "info: Enable Promiscuous mode\n");
+               mwifiex_dbg(priv->adapter, INFO,
+                           "info: Enable Promiscuous mode\n");
                priv->curr_pkt_filter |= HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
                priv->curr_pkt_filter &=
                        ~HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
@@ -99,16 +103,16 @@ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
                /* Multicast */
                priv->curr_pkt_filter &= ~HostCmd_ACT_MAC_PROMISCUOUS_ENABLE;
                if (mcast_list->mode == MWIFIEX_ALL_MULTI_MODE) {
-                       dev_dbg(priv->adapter->dev,
-                               "info: Enabling All Multicast!\n");
+                       mwifiex_dbg(priv->adapter, INFO,
+                                   "info: Enabling All Multicast!\n");
                        priv->curr_pkt_filter |=
                                HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
                } else {
                        priv->curr_pkt_filter &=
                                ~HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE;
-                       dev_dbg(priv->adapter->dev,
-                               "info: Set multicast list=%d\n",
-                               mcast_list->num_multicast_addr);
+                       mwifiex_dbg(priv->adapter, INFO,
+                                   "info: Set multicast list=%d\n",
+                                   mcast_list->num_multicast_addr);
                        /* Send multicast addresses to firmware */
                        ret = mwifiex_send_cmd(priv,
                                               HostCmd_CMD_MAC_MULTICAST_ADR,
@@ -116,9 +120,9 @@ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
                                               mcast_list, false);
                }
        }
-       dev_dbg(priv->adapter->dev,
-               "info: old_pkt_filter=%#x, curr_pkt_filter=%#x\n",
-              old_pkt_filter, priv->curr_pkt_filter);
+       mwifiex_dbg(priv->adapter, INFO,
+                   "info: old_pkt_filter=%#x, curr_pkt_filter=%#x\n",
+                   old_pkt_filter, priv->curr_pkt_filter);
        if (old_pkt_filter != priv->curr_pkt_filter) {
                ret = mwifiex_send_cmd(priv, HostCmd_CMD_MAC_CONTROL,
                                       HostCmd_ACT_GEN_SET,
@@ -151,7 +155,8 @@ int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
        rcu_read_unlock();
 
        if (!beacon_ie) {
-               dev_err(priv->adapter->dev, " failed to alloc beacon_ie\n");
+               mwifiex_dbg(priv->adapter, ERROR,
+                           " failed to alloc beacon_ie\n");
                return -ENOMEM;
        }
 
@@ -165,7 +170,8 @@ int mwifiex_fill_new_bss_desc(struct mwifiex_private *priv,
        bss_desc->bss_band = bss_priv->band;
        bss_desc->fw_tsf = bss_priv->fw_tsf;
        if (bss_desc->cap_info_bitmap & WLAN_CAPABILITY_PRIVACY) {
-               dev_dbg(priv->adapter->dev, "info: InterpretIE: AP WEP enabled\n");
+               mwifiex_dbg(priv->adapter, INFO,
+                           "info: InterpretIE: AP WEP enabled\n");
                bss_desc->privacy = MWIFIEX_802_11_PRIV_FILTER_8021X_WEP;
        } else {
                bss_desc->privacy = MWIFIEX_802_11_PRIV_FILTER_ACCEPT_ALL;
@@ -219,8 +225,8 @@ static int mwifiex_process_country_ie(struct mwifiex_private *priv,
 
        if (!strncmp(priv->adapter->country_code, &country_ie[2], 2)) {
                rcu_read_unlock();
-               wiphy_dbg(priv->wdev.wiphy,
-                         "11D: skip setting domain info in FW\n");
+               mwifiex_dbg(priv->adapter, INFO,
+                           "11D: skip setting domain info in FW\n");
                return 0;
        }
        memcpy(priv->adapter->country_code, &country_ie[2], 2);
@@ -241,8 +247,8 @@ static int mwifiex_process_country_ie(struct mwifiex_private *priv,
 
        if (mwifiex_send_cmd(priv, HostCmd_CMD_802_11D_DOMAIN_INFO,
                             HostCmd_ACT_GEN_SET, 0, NULL, false)) {
-               wiphy_err(priv->adapter->wiphy,
-                         "11D: setting domain info in FW\n");
+               mwifiex_dbg(priv->adapter, ERROR,
+                           "11D: setting domain info in FW fail\n");
                return -1;
        }
 
@@ -304,14 +310,15 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
 
                if (mwifiex_11h_get_csa_closed_channel(priv) ==
                                                        (u8)bss_desc->channel) {
-                       dev_err(adapter->dev,
-                               "Attempt to reconnect on csa closed chan(%d)\n",
-                               bss_desc->channel);
+                       mwifiex_dbg(adapter, ERROR,
+                                   "Attempt to reconnect on csa closed chan(%d)\n",
+                                   bss_desc->channel);
                        goto done;
                }
 
-               dev_dbg(adapter->dev, "info: SSID found in scan list ... "
-                                     "associating...\n");
+               mwifiex_dbg(adapter, INFO,
+                           "info: SSID found in scan list ...\t"
+                           "associating...\n");
 
                mwifiex_stop_net_dev_queue(priv->netdev, adapter);
                if (netif_carrier_ok(priv->netdev))
@@ -353,15 +360,17 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
                        netif_carrier_off(priv->netdev);
 
                if (!ret) {
-                       dev_dbg(adapter->dev, "info: network found in scan"
-                                                       " list. Joining...\n");
+                       mwifiex_dbg(adapter, INFO,
+                                   "info: network found in scan\t"
+                                   " list. Joining...\n");
                        ret = mwifiex_adhoc_join(priv, bss_desc);
                        if (bss)
                                cfg80211_put_bss(priv->adapter->wiphy, bss);
                } else {
-                       dev_dbg(adapter->dev, "info: Network not found in "
-                               "the list, creating adhoc with ssid = %s\n",
-                               req_ssid->ssid);
+                       mwifiex_dbg(adapter, INFO,
+                                   "info: Network not found in\t"
+                                   "the list, creating adhoc with ssid = %s\n",
+                                   req_ssid->ssid);
                        ret = mwifiex_adhoc_start(priv, req_ssid);
                }
        }
@@ -396,8 +405,9 @@ int mwifiex_set_hs_params(struct mwifiex_private *priv, u16 action,
        switch (action) {
        case HostCmd_ACT_GEN_SET:
                if (adapter->pps_uapsd_mode) {
-                       dev_dbg(adapter->dev, "info: Host Sleep IOCTL"
-                               " is blocked in UAPSD/PPS mode\n");
+                       mwifiex_dbg(adapter, INFO,
+                                   "info: Host Sleep IOCTL\t"
+                                   "is blocked in UAPSD/PPS mode\n");
                        status = -1;
                        break;
                }
@@ -494,7 +504,8 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)
        }
 
        if (adapter->hs_activated) {
-               dev_dbg(adapter->dev, "cmd: HS Already activated\n");
+               mwifiex_dbg(adapter, CMD,
+                           "cmd: HS Already activated\n");
                return true;
        }
 
@@ -510,14 +521,16 @@ int mwifiex_enable_hs(struct mwifiex_adapter *adapter)
                                                   MWIFIEX_BSS_ROLE_STA),
                                  HostCmd_ACT_GEN_SET, MWIFIEX_SYNC_CMD,
                                  &hscfg)) {
-               dev_err(adapter->dev, "IOCTL request HS enable failed\n");
+               mwifiex_dbg(adapter, ERROR,
+                           "IOCTL request HS enable failed\n");
                return false;
        }
 
        if (wait_event_interruptible_timeout(adapter->hs_activate_wait_q,
                                             adapter->hs_activate_wait_q_woken,
                                             (10 * HZ)) <= 0) {
-               dev_err(adapter->dev, "hs_activate_wait_q terminated\n");
+               mwifiex_dbg(adapter, ERROR,
+                           "hs_activate_wait_q terminated\n");
                return false;
        }
 
@@ -637,10 +650,11 @@ int mwifiex_set_tx_power(struct mwifiex_private *priv,
                dbm = (u16) power_cfg->power_level;
                if ((dbm < priv->min_tx_power_level) ||
                    (dbm > priv->max_tx_power_level)) {
-                       dev_err(priv->adapter->dev, "txpower value %d dBm"
-                               " is out of range (%d dBm-%d dBm)\n",
-                               dbm, priv->min_tx_power_level,
-                               priv->max_tx_power_level);
+                       mwifiex_dbg(priv->adapter, ERROR,
+                                   "txpower value %d dBm\t"
+                                   "is out of range (%d dBm-%d dBm)\n",
+                                   dbm, priv->min_tx_power_level,
+                                   priv->max_tx_power_level);
                        return -1;
                }
        }
@@ -739,14 +753,15 @@ static int mwifiex_set_wpa_ie_helper(struct mwifiex_private *priv,
 {
        if (ie_len) {
                if (ie_len > sizeof(priv->wpa_ie)) {
-                       dev_err(priv->adapter->dev,
-                               "failed to copy WPA IE, too big\n");
+                       mwifiex_dbg(priv->adapter, ERROR,
+                                   "failed to copy WPA IE, too big\n");
                        return -1;
                }
                memcpy(priv->wpa_ie, ie_data_ptr, ie_len);
                priv->wpa_ie_len = (u8) ie_len;
-               dev_dbg(priv->adapter->dev, "cmd: Set Wpa_ie_len=%d IE=%#x\n",
-                       priv->wpa_ie_len, priv->wpa_ie[0]);
+               mwifiex_dbg(priv->adapter, CMD,
+                           "cmd: Set Wpa_ie_len=%d IE=%#x\n",
+                           priv->wpa_ie_len, priv->wpa_ie[0]);
 
                if (priv->wpa_ie[0] == WLAN_EID_VENDOR_SPECIFIC) {
                        priv->sec_info.wpa_enabled = true;
@@ -759,8 +774,9 @@ static int mwifiex_set_wpa_ie_helper(struct mwifiex_private *priv,
        } else {
                memset(priv->wpa_ie, 0, sizeof(priv->wpa_ie));
                priv->wpa_ie_len = 0;
-               dev_dbg(priv->adapter->dev, "info: reset wpa_ie_len=%d IE=%#x\n",
-                       priv->wpa_ie_len, priv->wpa_ie[0]);
+               mwifiex_dbg(priv->adapter, INFO,
+                           "info: reset wpa_ie_len=%d IE=%#x\n",
+                           priv->wpa_ie_len, priv->wpa_ie[0]);
                priv->sec_info.wpa_enabled = false;
                priv->sec_info.wpa2_enabled = false;
        }
@@ -780,23 +796,24 @@ static int mwifiex_set_wapi_ie(struct mwifiex_private *priv,
 {
        if (ie_len) {
                if (ie_len > sizeof(priv->wapi_ie)) {
-                       dev_dbg(priv->adapter->dev,
-                               "info: failed to copy WAPI IE, too big\n");
+                       mwifiex_dbg(priv->adapter, ERROR,
+                                   "info: failed to copy WAPI IE, too big\n");
                        return -1;
                }
                memcpy(priv->wapi_ie, ie_data_ptr, ie_len);
                priv->wapi_ie_len = ie_len;
-               dev_dbg(priv->adapter->dev, "cmd: Set wapi_ie_len=%d IE=%#x\n",
-                       priv->wapi_ie_len, priv->wapi_ie[0]);
+               mwifiex_dbg(priv->adapter, CMD,
+                           "cmd: Set wapi_ie_len=%d IE=%#x\n",
+                           priv->wapi_ie_len, priv->wapi_ie[0]);
 
                if (priv->wapi_ie[0] == WLAN_EID_BSS_AC_ACCESS_DELAY)
                        priv->sec_info.wapi_enabled = true;
        } else {
                memset(priv->wapi_ie, 0, sizeof(priv->wapi_ie));
                priv->wapi_ie_len = ie_len;
-               dev_dbg(priv->adapter->dev,
-                       "info: Reset wapi_ie_len=%d IE=%#x\n",
-                      priv->wapi_ie_len, priv->wapi_ie[0]);
+               mwifiex_dbg(priv->adapter, INFO,
+                           "info: Reset wapi_ie_len=%d IE=%#x\n",
+                           priv->wapi_ie_len, priv->wapi_ie[0]);
                priv->sec_info.wapi_enabled = false;
        }
        return 0;
@@ -814,8 +831,8 @@ static int mwifiex_set_wps_ie(struct mwifiex_private *priv,
 {
        if (ie_len) {
                if (ie_len > MWIFIEX_MAX_VSIE_LEN) {
-                       dev_dbg(priv->adapter->dev,
-                               "info: failed to copy WPS IE, too big\n");
+                       mwifiex_dbg(priv->adapter, ERROR,
+                                   "info: failed to copy WPS IE, too big\n");
                        return -1;
                }
 
@@ -825,13 +842,14 @@ static int mwifiex_set_wps_ie(struct mwifiex_private *priv,
 
                memcpy(priv->wps_ie, ie_data_ptr, ie_len);
                priv->wps_ie_len = ie_len;
-               dev_dbg(priv->adapter->dev, "cmd: Set wps_ie_len=%d IE=%#x\n",
-                       priv->wps_ie_len, priv->wps_ie[0]);
+               mwifiex_dbg(priv->adapter, CMD,
+                           "cmd: Set wps_ie_len=%d IE=%#x\n",
+                           priv->wps_ie_len, priv->wps_ie[0]);
        } else {
                kfree(priv->wps_ie);
                priv->wps_ie_len = ie_len;
-               dev_dbg(priv->adapter->dev,
-                       "info: Reset wps_ie_len=%d\n", priv->wps_ie_len);
+               mwifiex_dbg(priv->adapter, INFO,
+                           "info: Reset wps_ie_len=%d\n", priv->wps_ie_len);
        }
        return 0;
 }
@@ -875,8 +893,8 @@ static int mwifiex_sec_ioctl_set_wep_key(struct mwifiex_private *priv,
                /* Copy the required key as the current key */
                wep_key = &priv->wep_key[index];
                if (!wep_key->key_length) {
-                       dev_err(adapter->dev,
-                               "key not set, so cannot enable it\n");
+                       mwifiex_dbg(adapter, ERROR,
+                                   "key not set, so cannot enable it\n");
                        return -1;
                }
 
@@ -953,7 +971,8 @@ static int mwifiex_sec_ioctl_set_wpa_key(struct mwifiex_private *priv,
 
        /* Current driver only supports key length of up to 32 bytes */
        if (encrypt_key->key_len > WLAN_MAX_KEY_LEN) {
-               dev_err(priv->adapter->dev, "key length too long\n");
+               mwifiex_dbg(priv->adapter, ERROR,
+                           "key length too long\n");
                return -1;
        }
 
@@ -1040,7 +1059,7 @@ mwifiex_drv_get_driver_version(struct mwifiex_adapter *adapter, char *version,
 
        snprintf(version, max_len, driver_version, fw_ver);
 
-       dev_dbg(adapter->dev, "info: MWIFIEX VERSION: %s\n", version);
+       mwifiex_dbg(adapter, MSG, "info: MWIFIEX VERSION: %s\n", version);
 
        return 0;
 }
@@ -1128,7 +1147,8 @@ mwifiex_remain_on_chan_cfg(struct mwifiex_private *priv, u16 action,
        }
        if (mwifiex_send_cmd(priv, HostCmd_CMD_REMAIN_ON_CHAN,
                             action, 0, &roc_cfg, true)) {
-               dev_err(priv->adapter->dev, "failed to remain on channel\n");
+               mwifiex_dbg(priv->adapter, ERROR,
+                           "failed to remain on channel\n");
                return -1;
        }
 
@@ -1313,8 +1333,8 @@ mwifiex_set_gen_ie_helper(struct mwifiex_private *priv, u8 *ie_data_ptr,
                if ((pvendor_ie->element_id == WLAN_EID_VENDOR_SPECIFIC) &&
                    (!memcmp(pvendor_ie->oui, wps_oui, sizeof(wps_oui)))) {
                        priv->wps.session_enable = true;
-                       dev_dbg(priv->adapter->dev,
-                               "info: WPS Session Enabled.\n");
+                       mwifiex_dbg(priv->adapter, INFO,
+                                   "info: WPS Session Enabled.\n");
                        ret = mwifiex_set_wps_ie(priv, ie_data_ptr, ie_len);
                }
 
@@ -1361,7 +1381,8 @@ static int mwifiex_misc_ioctl_gen_ie(struct mwifiex_private *priv,
                memset(adapter->arp_filter, 0, sizeof(adapter->arp_filter));
                if (gen_ie->len > ARP_FILTER_MAX_BUF_SIZE) {
                        adapter->arp_filter_size = 0;
-                       dev_err(adapter->dev, "invalid ARP filter size\n");
+                       mwifiex_dbg(adapter, ERROR,
+                                   "invalid ARP filter size\n");
                        return -1;
                } else {
                        memcpy(adapter->arp_filter, gen_ie->ie_data,
@@ -1370,7 +1391,7 @@ static int mwifiex_misc_ioctl_gen_ie(struct mwifiex_private *priv,
                }
                break;
        default:
-               dev_err(adapter->dev, "invalid IE type\n");
+               mwifiex_dbg(adapter, ERROR, "invalid IE type\n");
                return -1;
        }
        return 0;