* [PATCH] ath10k: skip management frames in HTT path
@ 2014-02-25 6:56 ` Janusz Dziedzic
0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2014-02-25 6:56 UTC (permalink / raw)
To: ath10k; +Cc: linux-wireless, Janusz Dziedzic
After we pass frames with INV_PEER to upper layer in patch:
ath10k: pass frames with invalid peer status to upper layer
we could pass some management frames (in case INVALID_PEER
and MGMT_CTRL) twice to upper layer, once via WMI and once
via HTT. Next we could handle assoc request twice. This
patch remove such regression.
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
drivers/net/wireless/ath/ath10k/htt_rx.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index c7a5822..316433f 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -852,6 +852,20 @@ static bool ath10k_htt_rx_has_mic_err(struct sk_buff *skb)
return false;
}
+static bool ath10k_htt_rx_is_mgmt(struct sk_buff *skb)
+{
+ struct htt_rx_desc *rxd;
+ u32 flags;
+
+ rxd = (void *)skb->data - sizeof(*rxd);
+ flags = __le32_to_cpu(rxd->attention.flags);
+
+ if (flags & RX_ATTENTION_FLAGS_MGMT_TYPE)
+ return true;
+
+ return false;
+}
+
static int ath10k_htt_rx_get_csum_state(struct sk_buff *skb)
{
struct htt_rx_desc *rxd;
@@ -944,7 +958,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt,
status = info.status;
/* Skip mgmt frames while we handle this in WMI */
- if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL) {
+ if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL ||
+ ath10k_htt_rx_is_mgmt(msdu_head)) {
ath10k_htt_rx_free_msdu_chain(msdu_head);
continue;
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH] ath10k: skip management frames in HTT path
@ 2014-02-25 6:56 ` Janusz Dziedzic
0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2014-02-25 6:56 UTC (permalink / raw)
To: ath10k; +Cc: Janusz Dziedzic, linux-wireless
After we pass frames with INV_PEER to upper layer in patch:
ath10k: pass frames with invalid peer status to upper layer
we could pass some management frames (in case INVALID_PEER
and MGMT_CTRL) twice to upper layer, once via WMI and once
via HTT. Next we could handle assoc request twice. This
patch remove such regression.
Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
---
drivers/net/wireless/ath/ath10k/htt_rx.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath10k/htt_rx.c b/drivers/net/wireless/ath/ath10k/htt_rx.c
index c7a5822..316433f 100644
--- a/drivers/net/wireless/ath/ath10k/htt_rx.c
+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c
@@ -852,6 +852,20 @@ static bool ath10k_htt_rx_has_mic_err(struct sk_buff *skb)
return false;
}
+static bool ath10k_htt_rx_is_mgmt(struct sk_buff *skb)
+{
+ struct htt_rx_desc *rxd;
+ u32 flags;
+
+ rxd = (void *)skb->data - sizeof(*rxd);
+ flags = __le32_to_cpu(rxd->attention.flags);
+
+ if (flags & RX_ATTENTION_FLAGS_MGMT_TYPE)
+ return true;
+
+ return false;
+}
+
static int ath10k_htt_rx_get_csum_state(struct sk_buff *skb)
{
struct htt_rx_desc *rxd;
@@ -944,7 +958,8 @@ static void ath10k_htt_rx_handler(struct ath10k_htt *htt,
status = info.status;
/* Skip mgmt frames while we handle this in WMI */
- if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL) {
+ if (status == HTT_RX_IND_MPDU_STATUS_MGMT_CTRL ||
+ ath10k_htt_rx_is_mgmt(msdu_head)) {
ath10k_htt_rx_free_msdu_chain(msdu_head);
continue;
}
--
1.7.9.5
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
2014-02-25 6:56 ` Janusz Dziedzic
@ 2014-02-26 17:16 ` Kalle Valo
-1 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2014-02-26 17:16 UTC (permalink / raw)
To: Janusz Dziedzic; +Cc: ath10k, linux-wireless
Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
> After we pass frames with INV_PEER to upper layer in patch:
>
> ath10k: pass frames with invalid peer status to upper layer
>
> we could pass some management frames (in case INVALID_PEER
> and MGMT_CTRL) twice to upper layer, once via WMI and once
> via HTT. Next we could handle assoc request twice. This
> patch remove such regression.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
I saw a conflict and also did some commit log cleanup. Please check:
https://github.com/kvalo/ath/commit/dd0063fba4434d22fb8a6e6d79bf23cc36f6916a
--
Kalle Valo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
@ 2014-02-26 17:16 ` Kalle Valo
0 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2014-02-26 17:16 UTC (permalink / raw)
To: Janusz Dziedzic; +Cc: linux-wireless, ath10k
Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
> After we pass frames with INV_PEER to upper layer in patch:
>
> ath10k: pass frames with invalid peer status to upper layer
>
> we could pass some management frames (in case INVALID_PEER
> and MGMT_CTRL) twice to upper layer, once via WMI and once
> via HTT. Next we could handle assoc request twice. This
> patch remove such regression.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
I saw a conflict and also did some commit log cleanup. Please check:
https://github.com/kvalo/ath/commit/dd0063fba4434d22fb8a6e6d79bf23cc36f6916a
--
Kalle Valo
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
2014-02-26 17:16 ` Kalle Valo
@ 2014-02-27 6:52 ` Janusz Dziedzic
-1 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2014-02-27 6:52 UTC (permalink / raw)
To: Kalle Valo; +Cc: ath10k, linux-wireless
On 26 February 2014 18:16, Kalle Valo <kvalo@qca.qualcomm.com> wrote:
> Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
>
>> After we pass frames with INV_PEER to upper layer in patch:
>>
>> ath10k: pass frames with invalid peer status to upper layer
>>
>> we could pass some management frames (in case INVALID_PEER
>> and MGMT_CTRL) twice to upper layer, once via WMI and once
>> via HTT. Next we could handle assoc request twice. This
>> patch remove such regression.
>>
>> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
>
> I saw a conflict and also did some commit log cleanup. Please check:
>
> https://github.com/kvalo/ath/commit/dd0063fba4434d22fb8a6e6d79bf23cc36f6916a
>
looks good.
BR
Janusz
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
@ 2014-02-27 6:52 ` Janusz Dziedzic
0 siblings, 0 replies; 8+ messages in thread
From: Janusz Dziedzic @ 2014-02-27 6:52 UTC (permalink / raw)
To: Kalle Valo; +Cc: linux-wireless, ath10k
On 26 February 2014 18:16, Kalle Valo <kvalo@qca.qualcomm.com> wrote:
> Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
>
>> After we pass frames with INV_PEER to upper layer in patch:
>>
>> ath10k: pass frames with invalid peer status to upper layer
>>
>> we could pass some management frames (in case INVALID_PEER
>> and MGMT_CTRL) twice to upper layer, once via WMI and once
>> via HTT. Next we could handle assoc request twice. This
>> patch remove such regression.
>>
>> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
>
> I saw a conflict and also did some commit log cleanup. Please check:
>
> https://github.com/kvalo/ath/commit/dd0063fba4434d22fb8a6e6d79bf23cc36f6916a
>
looks good.
BR
Janusz
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
2014-02-25 6:56 ` Janusz Dziedzic
@ 2014-02-27 16:42 ` Kalle Valo
-1 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2014-02-27 16:42 UTC (permalink / raw)
To: Janusz Dziedzic; +Cc: ath10k, linux-wireless
Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
> After we pass frames with INV_PEER to upper layer in patch:
>
> ath10k: pass frames with invalid peer status to upper layer
>
> we could pass some management frames (in case INVALID_PEER
> and MGMT_CTRL) twice to upper layer, once via WMI and once
> via HTT. Next we could handle assoc request twice. This
> patch remove such regression.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Thanks, applied.
--
Kalle Valo
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] ath10k: skip management frames in HTT path
@ 2014-02-27 16:42 ` Kalle Valo
0 siblings, 0 replies; 8+ messages in thread
From: Kalle Valo @ 2014-02-27 16:42 UTC (permalink / raw)
To: Janusz Dziedzic; +Cc: linux-wireless, ath10k
Janusz Dziedzic <janusz.dziedzic@tieto.com> writes:
> After we pass frames with INV_PEER to upper layer in patch:
>
> ath10k: pass frames with invalid peer status to upper layer
>
> we could pass some management frames (in case INVALID_PEER
> and MGMT_CTRL) twice to upper layer, once via WMI and once
> via HTT. Next we could handle assoc request twice. This
> patch remove such regression.
>
> Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
Thanks, applied.
--
Kalle Valo
_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2014-02-27 16:43 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-02-25 6:56 [PATCH] ath10k: skip management frames in HTT path Janusz Dziedzic
2014-02-25 6:56 ` Janusz Dziedzic
2014-02-26 17:16 ` Kalle Valo
2014-02-26 17:16 ` Kalle Valo
2014-02-27 6:52 ` Janusz Dziedzic
2014-02-27 6:52 ` Janusz Dziedzic
2014-02-27 16:42 ` Kalle Valo
2014-02-27 16:42 ` Kalle Valo
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.