From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AC21AC432C0 for ; Tue, 19 Nov 2019 05:46:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 79D762082F for ; Tue, 19 Nov 2019 05:46:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574142364; bh=RloCVusTu2nmMd+17/acGPUt6gZueL7/1blIIxEjGAg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=inA3YGjSXzKaqj5c7e81Iotbgc56K27MrF3jUlIhCJpf1EsvfLVBGupBXpWkVnrlZ K61UYrpUNWoK4khZN1zuQHxyq2PnElq9ejniihqbRYdRd93C1xx3ooZPFBkWaGESMZ XDmJttZM8nI/MGaQmIapFJAtRiVHIswdJstjgPyk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731052AbfKSFqD (ORCPT ); Tue, 19 Nov 2019 00:46:03 -0500 Received: from mail.kernel.org ([198.145.29.99]:41976 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730774AbfKSFqC (ORCPT ); Tue, 19 Nov 2019 00:46:02 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F3FFF2075E; Tue, 19 Nov 2019 05:46:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1574142361; bh=RloCVusTu2nmMd+17/acGPUt6gZueL7/1blIIxEjGAg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=vhcu/bIeyMVMXdpCmqYlfsTZu4/9GN0p4Z63787gvJodfezXhWjajORTN5MZJ3K6i z8kBh7Kb2lUxJbNWlwaGS+OmJokNHRa3an0KTyS2tR6enlBuqdVcK5i1sG6hR3df0h jcVUEFKFfkLmVb1HAH5/LsV/1THhh5ZghVBDYAvQ= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Sara Sharon , Luca Coelho , Sasha Levin Subject: [PATCH 4.14 056/239] iwlwifi: mvm: avoid sending too many BARs Date: Tue, 19 Nov 2019 06:17:36 +0100 Message-Id: <20191119051308.895668289@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191119051255.850204959@linuxfoundation.org> References: <20191119051255.850204959@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Sara Sharon [ Upstream commit 1a19c139be18ed4d6d681049cc48586fae070120 ] When we receive TX response, we may release a few packets due to a hole that was closed in the transmission window. However, if that frame failed, we will mark all the released frames as failed and will send multiple BARs. This affects statistics badly, and cause unnecessary frames transmission. Instead, mark all the following packets as success, with the desired result of sending a bar for the failed frame only. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Sasha Levin --- drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c index efef28012a6b9..ac1e05b93a9ad 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -1378,6 +1378,14 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm, break; } + /* + * If we are freeing multiple frames, mark all the frames + * but the first one as acked, since they were acknowledged + * before + * */ + if (skb_freed > 1) + info->flags |= IEEE80211_TX_STAT_ACK; + iwl_mvm_tx_status_check_trigger(mvm, status); info->status.rates[0].count = tx_resp->failure_frame + 1; -- 2.20.1