Commit 5ac15be8 authored by Assaf Krauss's avatar Assaf Krauss Committed by Luca Coelho
Browse files

iwlwifi: mvm: Improve debugfs tof robustness



Return a proper error when wrong parameters are passed to debugfs
tof_range_request.

Signed-off-by: default avatarAssaf Krauss <assaf.krauss@intel.com>
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
parent 9ef2b8be
Loading
Loading
Loading
Loading
+9 −7
Original line number Original line Diff line number Diff line
@@ -892,6 +892,7 @@ static ssize_t iwl_dbgfs_tof_range_request_write(struct ieee80211_vif *vif,
			goto out;
			goto out;
		}
		}
		memcpy(mvm->tof_data.range_req.macaddr_template, mac, ETH_ALEN);
		memcpy(mvm->tof_data.range_req.macaddr_template, mac, ETH_ALEN);
		goto out;
	}
	}


	data = iwl_dbgfs_is_match("macaddr_mask=", buf);
	data = iwl_dbgfs_is_match("macaddr_mask=", buf);
@@ -903,11 +904,12 @@ static ssize_t iwl_dbgfs_tof_range_request_write(struct ieee80211_vif *vif,
			goto out;
			goto out;
		}
		}
		memcpy(mvm->tof_data.range_req.macaddr_mask, mac, ETH_ALEN);
		memcpy(mvm->tof_data.range_req.macaddr_mask, mac, ETH_ALEN);
		goto out;
	}
	}


	data = iwl_dbgfs_is_match("ap=", buf);
	data = iwl_dbgfs_is_match("ap=", buf);
	if (data) {
	if (data) {
		struct iwl_tof_range_req_ap_entry ap;
		struct iwl_tof_range_req_ap_entry ap = {};
		int size = sizeof(struct iwl_tof_range_req_ap_entry);
		int size = sizeof(struct iwl_tof_range_req_ap_entry);
		u16 burst_period;
		u16 burst_period;
		u8 *mac = ap.bssid;
		u8 *mac = ap.bssid;
@@ -944,12 +946,12 @@ static ssize_t iwl_dbgfs_tof_range_request_write(struct ieee80211_vif *vif,
	data = iwl_dbgfs_is_match("send_range_request=", buf);
	data = iwl_dbgfs_is_match("send_range_request=", buf);
	if (data) {
	if (data) {
		ret = kstrtou32(data, 10, &value);
		ret = kstrtou32(data, 10, &value);
		if (ret == 0 && value) {
		if (ret == 0 && value)
			ret = iwl_mvm_tof_range_request_cmd(mvm, vif);
			ret = iwl_mvm_tof_range_request_cmd(mvm, vif);
		goto out;
		goto out;
	}
	}
	}


	ret = -EINVAL;
out:
out:
	mutex_unlock(&mvm->mutex);
	mutex_unlock(&mvm->mutex);
	return ret ?: count;
	return ret ?: count;
@@ -1073,12 +1075,12 @@ static ssize_t iwl_dbgfs_tof_range_req_ext_write(struct ieee80211_vif *vif,
	data = iwl_dbgfs_is_match("send_range_req_ext=", buf);
	data = iwl_dbgfs_is_match("send_range_req_ext=", buf);
	if (data) {
	if (data) {
		ret = kstrtou32(data, 10, &value);
		ret = kstrtou32(data, 10, &value);
		if (ret == 0 && value) {
		if (ret == 0 && value)
			ret = iwl_mvm_tof_range_request_ext_cmd(mvm, vif);
			ret = iwl_mvm_tof_range_request_ext_cmd(mvm, vif);
		goto out;
		goto out;
	}
	}
	}


	ret = -EINVAL;
out:
out:
	mutex_unlock(&mvm->mutex);
	mutex_unlock(&mvm->mutex);
	return ret ?: count;
	return ret ?: count;