[PATCH 2/3] ath11k: add separate APIs for monitor mode

Seevalamuthu Mariappan seevalam at codeaurora.org
Wed Sep 22 08:53:32 PDT 2021


On 2021-09-21 21:25, Kalle Valo wrote:
> Kalle Valo <kvalo at codeaurora.org> writes:
> 
>>> +vdev_stop:
>>> +	reinit_completion(&ar->vdev_setup_done);
>>> +
>>> +	ret = ath11k_wmi_vdev_stop(ar, vdev_id);
>>> +	if (ret) {
>>> +		ath11k_warn(ar->ab, "failed to stop monitor vdev %i after start 
>>> failure: %d\n",
>>> +			    vdev_id, ret);
>>> +		return ret;
>>> +	}
>>> +
>>> +	ret = ath11k_mac_vdev_setup_sync(ar);
>>> +	if (ret)
>>> +		ath11k_warn(ar->ab, "failed to synchronize setup for vdev %i stop: 
>>> %d\n",
>>> +			    vdev_id, ret);
>> 
>> I added return ret here for consistency..
>> 
>>> +	return ret;
>> 
>> I don't thinks this is right, in an error path (vdev_stop label) we
>> return 0? I changed this to -EIO.
>> 
>>> +static int ath11k_mac_monitor_vdev_stop(struct ath11k *ar)
>>> +{
>>> +	int ret;
>>> +
>>> +	lockdep_assert_held(&ar->conf_mutex);
>>> +
>>> +	reinit_completion(&ar->vdev_setup_done);
>>> +
>>> +	ret = ath11k_wmi_vdev_stop(ar, ar->monitor_vdev_id);
>>> +	if (ret)
>>> +		ath11k_warn(ar->ab, "failed to request monitor vdev %i stop: 
>>> %d\n",
>>> +			    ar->monitor_vdev_id, ret);
>>> +
>>> +	ret = ath11k_mac_vdev_setup_sync(ar);
>>> +	if (ret)
>>> + ath11k_warn(ar->ab, "failed to synchronize monitor vdev %i stop:
>>> %d\n",
>>> +			    ar->monitor_vdev_id, ret);
>>> +
>>> +	ret = ath11k_wmi_vdev_down(ar, ar->monitor_vdev_id);
>>> +	if (ret)
>>> +		ath11k_warn(ar->ab, "failed to put down monitor vdev %i: %d\n",
>>> +			    ar->monitor_vdev_id, ret);
>>> +
>>> +	ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac monitor vdev %i stopped\n",
>>> +		   ar->monitor_vdev_id);
>>> +	return ret;
>>> +}
>> 
>> I was not sure what's the idea of error path handling here, we print
>> warnings but still continue the normal execution. I changed this so 
>> that
>> we bail out in the first error and if everything goes well we return 
>> 0.
> 
> I found quite a few missing error checks, too many to list here but
> fixed in the pending branch:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=8b2f8d11422e7909ff02db456cda41728f621de4
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git/commit/?h=pending&id=5ff318be206b3d2a0bfdcfaf0ac52cc3b4ecdeae
> 
> Please double check, compile tested only.

Thanks for the fixes Kalle. It looks fine and tested the same.

Regards,
Seevalamuthu M



More information about the ath11k mailing list