From: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com>
To: Kalle Valo <kvalo@qca.qualcomm.com>
Cc: <linux-wireless@vger.kernel.org>, <ath6kl-devel@qualcomm.com>
Subject: Re: [PATCH] ath6kl: Fix target assert in p2p bringup with multi vif
Date: Fri, 6 Apr 2012 15:40:31 +0530 [thread overview]
Message-ID: <4F7EC117.7070500@qca.qualcomm.com> (raw)
In-Reply-To: <4F7EBF71.7070802@qca.qualcomm.com>
On Friday 06 April 2012 03:33 PM, Kalle Valo wrote:
> On 04/05/2012 09:46 AM, Vasanthakumar Thiagarajan wrote:
>> Using interface 0 for p2p causes target assert. This is because
>> interface 0 is always initialized to non-p2p operations. Fix this
>> issue by initializing all the interfaces for p2p when fw is capable
>> of dynamic interface switching. When fw is not capable of dynamic
>> switching, make sure p2p is not brought up on interface which is
>> not initialized for this purpose.
>>
>> Reported-by: Naveen Singh navesing@qca.qualcomm.com
>> Signed-off-by: Vasanthakumar Thiagarajan<vthiagar@qca.qualcomm.com>
>> ---
>> drivers/net/wireless/ath/ath6kl/cfg80211.c | 26 +++++++++++++++++++++++
>> drivers/net/wireless/ath/ath6kl/init.c | 31 ++++++++++++++++++----------
>> 2 files changed, 46 insertions(+), 11 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
>> index 1272508..26fb3d7 100644
>> --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
>> +++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
>> @@ -1451,9 +1451,35 @@ static int ath6kl_cfg80211_change_iface(struct wiphy *wiphy,
>> struct vif_params *params)
>> {
>> struct ath6kl_vif *vif = netdev_priv(ndev);
>> + int i;
>>
>> ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s: type %u\n", __func__, type);
>>
>> + /*
>> + * Don't bring up p2p on an interface which is not initialized
>> + * for p2p operation where fw does not have capability to switch
>> + * dynamically between non-p2p and p2p type interface.
>> + */
>> + if (!test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
>> + vif->ar->fw_capabilities)) {
>> + if (type == NL80211_IFTYPE_P2P_CLIENT ||
>> + type == NL80211_IFTYPE_P2P_GO) {
>> + if (vif->ar->vif_max> 1) {
>> + for (i = vif->ar->max_norm_iface;
>> + i< vif->ar->vif_max; i++) {
>> + if (i == vif->fw_vif_idx)
>> + break;
>> + }
>> + if (i == vif->ar->vif_max) {
>> + ath6kl_err("Invalid interface to bring up P2P\n");
>> + return -EINVAL;
>> + }
>> + } else
>> + if (vif->fw_vif_idx != 0)
>> + return -EINVAL;
>> + }
>> + }
>
> IMHO this is difficult to read. Could it be simplified by reducing the
> unnecessary indentation:
>
> if (!test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
> vif->ar->fw_capabilities)&&
> (type == NL80211_IFTYPE_P2P_CLIENT ||
> type == NL80211_IFTYPE_P2P_GO)) {
>
> if (vif->ar->vif_max == 0) {
> if (vif->fw_vif_idx != 0)
> return -EINVAL;
> else
> goto foo;
> }
>
> for (i = vif->ar->max_norm_iface;
> i< vif->ar->vif_max; i++) {
> if (i == vif->fw_vif_idx)
> break;
> }
> }
>
> if (i == vif->ar->vif_max) {
> ath6kl_err("Invalid interface to bring up P2P\n");
> return -EINVAL;
> }
> }
>
> foo:
>
> I'm sure I added bugs above but hopefully it still shows my idea. At
> least you can combine the first two if statements and get rid of one
> indentation level.
I get your idea, i'll change it. Thanks!
Vasanth
prev parent reply other threads:[~2012-04-06 10:10 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-05 6:46 [PATCH] ath6kl: Fix target assert in p2p bringup with multi vif Vasanthakumar Thiagarajan
2012-04-06 10:03 ` Kalle Valo
2012-04-06 10:10 ` Vasanthakumar Thiagarajan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F7EC117.7070500@qca.qualcomm.com \
--to=vthiagar@qca.qualcomm.com \
--cc=ath6kl-devel@qualcomm.com \
--cc=kvalo@qca.qualcomm.com \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.