Commit 638b2665 authored by Karthikeyan Periyasamy's avatar Karthikeyan Periyasamy Committed by Kalle Valo
Browse files

wifi: ath11k: suppress add interface error



In the VIF (other than monitor type) creation request, we should not
throw the error code when the monitor VIF creation fails, since the
actual VIF creation succeeds. If we throw the error code from driver
then the actual VIF creation get fail. So suppress the monitor VIF
creation error by throwing warning message instead of error code.

Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.6.0.1-00760-QCAHKSWPL_SILICONZ-1

Signed-off-by: default avatarKarthikeyan Periyasamy <quic_periyasa@quicinc.com>
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20221006005842.8599-1-quic_periyasa@quicinc.com
parent 3ff51d74
Loading
Loading
Loading
Loading
+3 −6
Original line number Original line Diff line number Diff line
@@ -6420,17 +6420,15 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw,


	ath11k_dp_vdev_tx_attach(ar, arvif);
	ath11k_dp_vdev_tx_attach(ar, arvif);


	ath11k_debugfs_add_interface(arvif);

	if (vif->type != NL80211_IFTYPE_MONITOR &&
	if (vif->type != NL80211_IFTYPE_MONITOR &&
	    test_bit(ATH11K_FLAG_MONITOR_CONF_ENABLED, &ar->monitor_flags)) {
	    test_bit(ATH11K_FLAG_MONITOR_CONF_ENABLED, &ar->monitor_flags)) {
		ret = ath11k_mac_monitor_vdev_create(ar);
		ret = ath11k_mac_monitor_vdev_create(ar);
		if (ret) {
		if (ret)
			ath11k_warn(ar->ab, "failed to create monitor vdev during add interface: %d",
			ath11k_warn(ar->ab, "failed to create monitor vdev during add interface: %d",
				    ret);
				    ret);
			goto err_peer_del;
	}
	}
	}

	ath11k_debugfs_add_interface(arvif);


	mutex_unlock(&ar->conf_mutex);
	mutex_unlock(&ar->conf_mutex);


@@ -6456,7 +6454,6 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw,
	spin_unlock_bh(&ar->data_lock);
	spin_unlock_bh(&ar->data_lock);


err:
err:
	ath11k_debugfs_remove_interface(arvif);
	mutex_unlock(&ar->conf_mutex);
	mutex_unlock(&ar->conf_mutex);


	return ret;
	return ret;