From patchwork Tue Mar 11 14:22:38 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Helmut Schaa X-Patchwork-Id: 3812721 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id B6A5D9F1CD for ; Tue, 11 Mar 2014 14:22:44 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C45B1202A1 for ; Tue, 11 Mar 2014 14:22:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C1BF82022A for ; Tue, 11 Mar 2014 14:22:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752741AbaCKOWk (ORCPT ); Tue, 11 Mar 2014 10:22:40 -0400 Received: from mail-ig0-f182.google.com ([209.85.213.182]:40362 "EHLO mail-ig0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752582AbaCKOWj (ORCPT ); Tue, 11 Mar 2014 10:22:39 -0400 Received: by mail-ig0-f182.google.com with SMTP id uy17so11338856igb.3 for ; Tue, 11 Mar 2014 07:22:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=e7aJmx3zc/XdA3gwh+mJG+k8PRwfY+wJ/zaPSDZjbt8=; b=HA4HNt/nrnXphZ8xuJqgZpFHUOYQD4j1dQn5hk9EGBv5/9nxl8DqCd8YZTWhaLKwOK sNLZ6aQyX/f5GJRNWA1fqtxi7pE6m0Nhd19VG0kaiytuvb23cTzlNDtbB9f8tIn0poEU lcx28wlgxZGgB3AcosyNpUcwNrtQVbH8J1fQQqaVkr1zMkqRIDsebGwX4c49Z79LIvs7 /ngDUCXJXOkO91OwQswqhWxnyron1vj6WInFnobUOHEDnp2PS3c4vpmI/MJFJ/uqVKi0 f0lhnmBEbbzVtrnuz9aOO5iVfN8ZXMbnLXFJD0iwB3Sljm6tUO378zHpAwcuV+8MKlo1 eVtg== MIME-Version: 1.0 X-Received: by 10.50.143.69 with SMTP id sc5mr24528492igb.2.1394547758992; Tue, 11 Mar 2014 07:22:38 -0700 (PDT) Received: by 10.64.87.164 with HTTP; Tue, 11 Mar 2014 07:22:38 -0700 (PDT) In-Reply-To: <531ED921.5040601@openwrt.org> References: <1393073299-4831-1-git-send-email-nbd@openwrt.org> <531ED921.5040601@openwrt.org> Date: Tue, 11 Mar 2014 15:22:38 +0100 Message-ID: Subject: Re: [PATCH 3.14] ath9k: fix ps-poll responses under a-mpdu sessions From: Helmut Schaa To: Felix Fietkau Cc: linux-wireless , John Linville Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP On Tue, Mar 11, 2014 at 10:36 AM, Felix Fietkau wrote: > On 2014-03-11 10:28, Helmut Schaa wrote: >> On Sat, Feb 22, 2014 at 1:48 PM, Felix Fietkau wrote: >>> When passing tx frames to the U-APSD queue for powersave poll responses, >>> the ath_atx_tid pointer needs to be passed to ath_tx_setup_buffer for >>> proper sequence number accounting. >>> >>> This fixes high latency and connection stability issues with ath9k >>> running as AP and a few kinds of mobile phones as client, when PS-Poll >>> is heavily used >>> >>> Cc: stable@vger.kernel.org >>> Signed-off-by: Felix Fietkau >>> --- >> >> Hi Felix, >> >> this commit introduced a regression for me when using Intel Win7 >> clients on a ath9k AP. >> >> I was not able to track the exact issue down yet :( but it seems to be >> related to the Intel >> client constantly tearing down the BA session and entering/leaving PS mode. >> >> Any idea? > Please make some packet captures and describe more clearly what the > regression is. Do you see connections stalling, big latencies, etc? From what I can see with this patch action frames (like ADDBA and DELBA) get sequence numbers from TID 0 assigned instead of a seq number from the global counter. And that seems to "confuse" the client. The following patch solves the issue for me and seems to still keep Felix original intention ... Thoughts? From 67282f91e649d946617276b94ee9d48c25fe1521 Mon Sep 17 00:00:00 2001 From: Helmut Schaa Date: Tue, 11 Mar 2014 15:11:49 +0100 Subject: [PATCH] ath9k: Fix sequence number assignment for non-data frames Signed-off-by: Helmut Schaa --- drivers/net/wireless/ath/ath9k/xmit.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) if (info->flags & IEEE80211_TX_CTL_PS_RESPONSE) { diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index fafacfe..bda3432 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c @@ -2187,7 +2187,8 @@ int ath_tx_start(struct ieee80211_hw *hw, struct sk_buff *skb, txq->stopped = true; } - if (txctl->an) + if (txctl->an && + ieee80211_is_data_present(hdr->frame_control)) tid = ath_get_skb_tid(sc, txctl->an, skb);