Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0ed00eea authored by Michal Kazior's avatar Michal Kazior Committed by Kalle Valo
Browse files

ath10k: add sanity checks for monitor management



Add a few checks and warnings to make it easier to
track any kind of monitor vdev mismanagement.

Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
parent afd0922e
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -516,6 +516,11 @@ static int ath10k_monitor_start(struct ath10k *ar, int vdev_id)

	lockdep_assert_held(&ar->conf_mutex);

	if (!ar->monitor_present) {
		ath10k_warn("mac montor stop -- monitor is not present\n");
		return -EINVAL;
	}

	arg.vdev_id = vdev_id;
	arg.channel.freq = channel->center_freq;
	arg.channel.band_center_freq1 = ar->hw->conf.chandef.center_freq1;
@@ -566,6 +571,16 @@ static int ath10k_monitor_stop(struct ath10k *ar)

	lockdep_assert_held(&ar->conf_mutex);

	if (!ar->monitor_present) {
		ath10k_warn("mac montor stop -- monitor is not present\n");
		return -EINVAL;
	}

	if (!ar->monitor_enabled) {
		ath10k_warn("mac montor stop -- monitor is not enabled\n");
		return -EINVAL;
	}

	ret = ath10k_wmi_vdev_down(ar, ar->monitor_vdev_id);
	if (ret)
		ath10k_warn("Monitor vdev down failed: %d\n", ret);