rk: revert to v3.10
[firefly-linux-kernel-4.4.55.git] / drivers / net / wireless / mwifiex / sta_ioctl.c
index 0a9f59c5ab5afca5bc327a691e632964d2597abc..1a8a19dbd635df7b6b012533605cdde724c0d000 100644 (file)
@@ -104,14 +104,16 @@ int mwifiex_request_set_multicast_list(struct mwifiex_private *priv,
                } 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);
-                       /* Send multicast addresses to firmware */
-                       ret = mwifiex_send_cmd_async(priv,
-                               HostCmd_CMD_MAC_MULTICAST_ADR,
-                               HostCmd_ACT_GEN_SET, 0,
-                               mcast_list);
+                       if (mcast_list->num_multicast_addr) {
+                               dev_dbg(priv->adapter->dev,
+                                       "info: Set multicast list=%d\n",
+                                      mcast_list->num_multicast_addr);
+                               /* Send multicast addresses to firmware */
+                               ret = mwifiex_send_cmd_async(priv,
+                                       HostCmd_CMD_MAC_MULTICAST_ADR,
+                                       HostCmd_ACT_GEN_SET, 0,
+                                       mcast_list);
+                       }
                }
        }
        dev_dbg(priv->adapter->dev,
@@ -309,8 +311,8 @@ int mwifiex_bss_start(struct mwifiex_private *priv, struct cfg80211_bss *bss,
                if (bss_desc && bss_desc->ssid.ssid_len &&
                    (!mwifiex_ssid_cmp(&priv->curr_bss_params.bss_descriptor.
                                       ssid, &bss_desc->ssid))) {
-                       ret = 0;
-                       goto done;
+                       kfree(bss_desc);
+                       return 0;
                }
 
                /* Exit Adhoc mode first */