diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
index a7c1290..bf9020f 100644
--- a/drivers/net/wireless/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/mwifiex/cfg80211.c
@@ -1278,20 +1278,13 @@
 			      int idx, u8 *mac, struct station_info *sinfo)
 {
 	struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev);
-	struct mwifiex_sta_node *node;
-	unsigned long flags;
-	int ret = -ENOENT;
 
-	spin_lock_irqsave(&priv->sta_list_spinlock, flags);
-	node = mwifiex_get_sta_entry_by_idx(priv, idx);
-	spin_unlock_irqrestore(&priv->sta_list_spinlock, flags);
-	if (node) {
-		memcpy(mac, node->mac_addr, ETH_ALEN);
-		sinfo->filled = 0;
-		ret = 0;
-	}
+	if (!priv->media_connected || idx)
+		return -ENOENT;
 
-	return ret;
+	memcpy(mac, priv->cfg_bssid, ETH_ALEN);
+
+	return mwifiex_dump_station_info(priv, sinfo);
 }
 
 static int
diff --git a/drivers/net/wireless/mwifiex/main.h b/drivers/net/wireless/mwifiex/main.h
index c63e29c..fe12560 100644
--- a/drivers/net/wireless/mwifiex/main.h
+++ b/drivers/net/wireless/mwifiex/main.h
@@ -1378,8 +1378,6 @@
 mwifiex_add_sta_entry(struct mwifiex_private *priv, const u8 *mac);
 struct mwifiex_sta_node *
 mwifiex_get_sta_entry(struct mwifiex_private *priv, const u8 *mac);
-struct mwifiex_sta_node *
-mwifiex_get_sta_entry_by_idx(struct mwifiex_private *priv, int idx);
 int mwifiex_send_tdls_data_frame(struct mwifiex_private *priv, const u8 *peer,
 				 u8 action_code, u8 dialog_token,
 				 u16 status_code, const u8 *extra_ies,
diff --git a/drivers/net/wireless/mwifiex/util.c b/drivers/net/wireless/mwifiex/util.c
index 7405d96..9482d95 100644
--- a/drivers/net/wireless/mwifiex/util.c
+++ b/drivers/net/wireless/mwifiex/util.c
@@ -498,28 +498,6 @@
 	return NULL;
 }
 
-/* This function will return the pointer to station entry in station list
- * table by index.
- * This function should be called after acquiring RA list spinlock.
- * NULL is returned if station entry is not found in associated STA list.
- */
-struct mwifiex_sta_node *
-mwifiex_get_sta_entry_by_idx(struct mwifiex_private *priv, int idx)
-{
-	struct mwifiex_sta_node *node;
-	int i = 0;
-
-	list_for_each_entry(node, &priv->sta_list, list) {
-		if (i < idx) {
-			++i;
-			continue;
-		}
-		return node;
-	}
-
-	return NULL;
-}
-
 /* This function will add a sta_node entry to associated station list
  * table with the given mac address.
  * If entry exist already, existing entry is returned.
