iwlwifi: mvm: don't allow sched scans without matches to be started
authorSasha Levin <sasha.levin@oracle.com>
Mon, 7 Mar 2016 17:23:04 +0000 (12:23 -0500)
committerSasha Levin <sasha.levin@oracle.com>
Tue, 8 Mar 2016 02:14:56 +0000 (21:14 -0500)
[ Upstream commit 5e56276e7555b34550d51459a801ff75eca8b907 ]

The firmware can perform a scheduled scan with not matchsets passed,
but it can't send notification that results were found.  Since the
userspace then cannot know when we got new results and the firmware
wouldn't trigger a wake in case we are sleeping, it's better not to
allow scans without matchsets.

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=110831

Cc: <stable@vger.kernel.org> [3.17+]
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
[SL: Backport to 4.1]
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/net/wireless/iwlwifi/mvm/mac80211.c

index f71c22f8beeaefe59172bfb465e72ffdda9a97f6..1e2b5af502b8060707698c3c80b5352b97b87a4f 100644 (file)
@@ -2144,6 +2144,10 @@ static int iwl_mvm_mac_sched_scan_start(struct ieee80211_hw *hw,
        struct iwl_mvm *mvm = IWL_MAC80211_GET_MVM(hw);
        int ret;
 
+       /* we don't support "match all" in the firmware */
+       if (!req->n_match_sets)
+               return -EOPNOTSUPP;
+
        ret = iwl_mvm_cancel_scan_wait_notif(mvm, IWL_MVM_SCAN_OS);
        if (ret)
                return ret;