From patchwork Fri May 15 08:33:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= X-Patchwork-Id: 1290949 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=silabs.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-silabs-onmicrosoft-com header.b=miUz132H; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 49NhZ36KnYz9sTM for ; Fri, 15 May 2020 18:35:39 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728512AbgEOIfg (ORCPT ); Fri, 15 May 2020 04:35:36 -0400 Received: from mail-dm6nam11on2086.outbound.protection.outlook.com ([40.107.223.86]:6138 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727933AbgEOIeV (ORCPT ); Fri, 15 May 2020 04:34:21 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JhN9UbX9rOv+zpZhoik9l5cXmWcHORVkkCAqbh+frcsZrGNoZAdeawnqjBjWmSb4Jh2/PqlUkVGkzWlVL7/FZ4uRTkLNRrblW88IX74CepJrCj8Kz3sAijb5y0gRaDu/gZsSmqf0EeW7dkYl8+z/bI3cUSoaCBE1TpiORXdG3d4EyOKOr7k1Lu5Qm5VSW5LogNocggIIN33Wi3np/A/vTIhTN68Lf90kLgCipt52wC+jlng7+nnzRvy/BGfJvEUm5EZcJaDoKWMjZPXoVpsRTo+A7pt9YIEI+cdxlNiCWOdyoGJcdhbd4FqlsUnGtoDPWz/wN+ctnldtSUMhGu4lyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OaB0UFVIoYEzFguJtxWqBX+2H/2ue9JH00Y1UEApzv0=; b=gaOkm64v2ZSUFkuJI1bbvwqhGTT6cxBYDyhEZpLQcnvqXHqzWtU3Z4umo1VYY1zeJD1ilBT9VAuoHuLVrKNL3e/0XJo3dpjQ31mIqYSnqvSZK+O3VRXyKM/ViEnnbtq/mLv8h2U+plP9n4x273L0Y0uyTdODPsXP8WdKjUT3STFGfHOOJeTkF6LglleydxeeDvV72/rAWMzhyZFruIA+hcMMaCeAnOJdyj5U8d60V6KhzC+OjfxzbC314YKNZceSWLWeRnQiSKyc4t59y/WeFV04hxq/shq/jkhwA1qfpO7Nv8zsRiKfR4aKSETaXSQmKooIvJ+PbXmPTSt7hPmNiA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=silabs.com; dmarc=pass action=none header.from=silabs.com; dkim=pass header.d=silabs.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=silabs.onmicrosoft.com; s=selector2-silabs-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OaB0UFVIoYEzFguJtxWqBX+2H/2ue9JH00Y1UEApzv0=; b=miUz132HXUBK9ZbvYlhWLjY9UT8zIoEFuaoy3z4enoYb5R/O5mMQDwxXE/9eVeBtMGAcXu3rDLwjNjkZQZRTAvQ9u8+IOlwxMyCotYX+x9TeIcsLQ+cvBaA2cvrsB3HcSCcPRe6pTISZF9lWR0VapzV5CagZiVSjHeS2I9k/T4k= Authentication-Results: driverdev.osuosl.org; dkim=none (message not signed) header.d=none;driverdev.osuosl.org; dmarc=none action=none header.from=silabs.com; Received: from MWHPR11MB1775.namprd11.prod.outlook.com (2603:10b6:300:10e::14) by MWHPR11MB1310.namprd11.prod.outlook.com (2603:10b6:300:28::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.26; Fri, 15 May 2020 08:34:03 +0000 Received: from MWHPR11MB1775.namprd11.prod.outlook.com ([fe80::e055:3e6d:ff4:56da]) by MWHPR11MB1775.namprd11.prod.outlook.com ([fe80::e055:3e6d:ff4:56da%5]) with mapi id 15.20.3000.022; Fri, 15 May 2020 08:34:03 +0000 From: Jerome Pouiller To: devel@driverdev.osuosl.org, linux-wireless@vger.kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Greg Kroah-Hartman , Kalle Valo , "David S . Miller" , =?utf-8?b?SsOpcsO0bWUgUG91aWxsZXI=?= Subject: [PATCH 08/19] staging: wfx: split out wfx_tx_fill_rates() from wfx_tx_confirm_cb() Date: Fri, 15 May 2020 10:33:14 +0200 Message-Id: <20200515083325.378539-9-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200515083325.378539-1-Jerome.Pouiller@silabs.com> References: <20200515083325.378539-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR0P264CA0076.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:18::16) To MWHPR11MB1775.namprd11.prod.outlook.com (2603:10b6:300:10e::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.home (82.67.86.106) by PR0P264CA0076.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:18::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.24 via Frontend Transport; Fri, 15 May 2020 08:34:02 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [82.67.86.106] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5d2077c5-c18c-4ec6-f5b4-08d7f8aab968 X-MS-TrafficTypeDiagnostic: MWHPR11MB1310: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1443; X-Forefront-PRVS: 04041A2886 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Gk9sYNxX8oco7y/0gXwNJxz6cwn+XeOCh3K2okCzgzGwAYk2otweCz3EyXbhW1QmuyUbUEbGjLHj7Ky/jaf3kIFkalOCB3ScLSYx5HoEIzNhGDJWHV1xzzJwQhPtEMqm5wLGc7xYksFGUdZzb8AQN38h81vxUTfW9LL3PdUFUbgBMXcEaw+uhC2ZOjIWHB7rN+zCP7zDM7MCsl2kvhxUX4Siyo+cn9mDg7IDJHQUfhNcxB/uoNHrDqIx4H9ORTxC4fZVFPSatpMy/hRvCx3/fCiNAFdVNnsS7BtWsRrYfgg0jyMzyAZHFMEu1dRNdSkOAWb3z4rfv0JKF2ThR4/01eMuQvMH6JWMx3erCK+Lx50YNEv+PWoS8Gw7oDqTlyPanSZucMCNK9FPKsyn2FuRqj8AfUPG77ixw0Zrs+rfToIqrEnndANxlx83F3iS/e6q X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1775.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(346002)(136003)(376002)(366004)(39850400004)(396003)(8886007)(66556008)(186003)(6512007)(66946007)(6506007)(36756003)(316002)(66476007)(26005)(52116002)(16526019)(6666004)(54906003)(2906002)(2616005)(478600001)(66574014)(107886003)(956004)(8936002)(86362001)(8676002)(6486002)(5660300002)(4326008)(1076003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: z6YYEb69G7SfCJzoaQXj9pu+msjJoa5k8BGPV0qSqbgkUgIrCdyjZGPivY1QbC+8HzxZp18OtGdBCBln/mf2KrVuG7mG9SPIp7Kk1zq30We1b2TuAqPtGcYLB/TctiBGD5qZ6CsYWZEzVgLrMN95BNYO3V3FQEuMmNR+9GoAm5FrWGYwQtbtmBajwlluGx9d3sEdXG4H7TOU8KTKbvy+TShssCxJ5S6DA99IggjEBtqskpO4BGx0ZLSt32ym13Xv/E8LJGwC1pzX3zqCJG/w9w5Dytg0OevVWJFgXjYx2A0GZS5XqLKpy7WyRWmY0X/Qou6C1QZwHh7O4p2UOBZU5UGhD+/imAO1yOUErmvM9LOFKvlIQkfgtzf27dpQXru0BH33k76ArOnk7mLtxqcBTQ6srI+1k/v/6WI8QDkPwLn3wrK8SNczEnge/8+rbGlYETxVi1x8Qb0mZ3B9M9Sx+vZpoQSaM0k3JiknnNhf0NQ= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d2077c5-c18c-4ec6-f5b4-08d7f8aab968 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 May 2020 08:34:03.6366 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 54dbd822-5231-4b20-944d-6f4abcd541fb X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cer+YkG+bkNDh6QhpNkTMz98D5PZmvAALlcp2P3QNVeCuj2ZPCRLzYPunQQZEyju+5VZ5Wf3DoevY96c65tJzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1310 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller wfx_tx_confirm_cb() is a big function. A big part of its body aims to fill the rates list. So, create a new function wfx_tx_fill_rates() and make wfx_tx_confirm_cb() smaller. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/data_tx.c | 63 ++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/drivers/staging/wfx/data_tx.c b/drivers/staging/wfx/data_tx.c index 5d029b0718e9..2ba3b5c3d1a7 100644 --- a/drivers/staging/wfx/data_tx.c +++ b/drivers/staging/wfx/data_tx.c @@ -496,30 +496,14 @@ static void wfx_skb_dtor(struct wfx_dev *wdev, ieee80211_tx_status_irqsafe(wdev->hw, skb); } -void wfx_tx_confirm_cb(struct wfx_vif *wvif, const struct hif_cnf_tx *arg) +static void wfx_tx_fill_rates(struct wfx_dev *wdev, + struct ieee80211_tx_info *tx_info, + const struct hif_cnf_tx *arg) { - int i; - int tx_count; - struct sk_buff *skb; struct ieee80211_tx_rate *rate; - struct ieee80211_tx_info *tx_info; - const struct wfx_tx_priv *tx_priv; - bool has_sta; + int tx_count; + int i; - skb = wfx_pending_get(wvif->wdev, arg->packet_id); - if (!skb) { - dev_warn(wvif->wdev->dev, - "received unknown packet_id (%#.8x) from chip\n", - arg->packet_id); - return; - } - tx_info = IEEE80211_SKB_CB(skb); - tx_priv = wfx_skb_tx_priv(skb); - has_sta = tx_priv->has_sta; - _trace_tx_stats(arg, skb, - wfx_pending_get_pkt_us_delay(wvif->wdev, skb)); - - // You can touch to tx_priv, but don't touch to tx_info->status. tx_count = arg->ack_failures; if (!arg->status || arg->ack_failures) tx_count += 1; // Also report success @@ -530,15 +514,12 @@ void wfx_tx_confirm_cb(struct wfx_vif *wvif, const struct hif_cnf_tx *arg) if (tx_count < rate->count && arg->status == HIF_STATUS_TX_FAIL_RETRIES && arg->ack_failures) - dev_dbg(wvif->wdev->dev, - "all retries were not consumed: %d != %d\n", + dev_dbg(wdev->dev, "all retries were not consumed: %d != %d\n", rate->count, tx_count); if (tx_count <= rate->count && tx_count && - arg->txed_rate != wfx_get_hw_rate(wvif->wdev, rate)) - dev_dbg(wvif->wdev->dev, - "inconsistent tx_info rates: %d != %d\n", - arg->txed_rate, - wfx_get_hw_rate(wvif->wdev, rate)); + arg->txed_rate != wfx_get_hw_rate(wdev, rate)) + dev_dbg(wdev->dev, "inconsistent tx_info rates: %d != %d\n", + arg->txed_rate, wfx_get_hw_rate(wdev, rate)); if (tx_count > rate->count) { tx_count -= rate->count; } else if (!tx_count) { @@ -550,8 +531,30 @@ void wfx_tx_confirm_cb(struct wfx_vif *wvif, const struct hif_cnf_tx *arg) } } if (tx_count) - dev_dbg(wvif->wdev->dev, "%d more retries than expected\n", - tx_count); + dev_dbg(wdev->dev, "%d more retries than expected\n", tx_count); +} + +void wfx_tx_confirm_cb(struct wfx_vif *wvif, const struct hif_cnf_tx *arg) +{ + struct ieee80211_tx_info *tx_info; + const struct wfx_tx_priv *tx_priv; + struct sk_buff *skb; + bool has_sta; + + skb = wfx_pending_get(wvif->wdev, arg->packet_id); + if (!skb) { + dev_warn(wvif->wdev->dev, "received unknown packet_id (%#.8x) from chip\n", + arg->packet_id); + return; + } + tx_info = IEEE80211_SKB_CB(skb); + tx_priv = wfx_skb_tx_priv(skb); + has_sta = tx_priv->has_sta; + _trace_tx_stats(arg, skb, + wfx_pending_get_pkt_us_delay(wvif->wdev, skb)); + + // You can touch to tx_priv, but don't touch to tx_info->status. + wfx_tx_fill_rates(wvif->wdev, tx_info, arg); skb_trim(skb, skb->len - wfx_tx_get_icv_len(tx_priv->hw_key)); // From now, you can touch to tx_info->status, but do not touch to