From patchwork Fri May 29 12:16:02 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: 218204 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.7 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MSGID_FROM_MTA_HEADER, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable 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 1FE57C433DF for ; Fri, 29 May 2020 12:16:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EF10D2100A for ; Fri, 29 May 2020 12:16:23 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=silabs.onmicrosoft.com header.i=@silabs.onmicrosoft.com header.b="HaktJG9y" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726916AbgE2MQV (ORCPT ); Fri, 29 May 2020 08:16:21 -0400 Received: from mail-co1nam11on2066.outbound.protection.outlook.com ([40.107.220.66]:32481 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726161AbgE2MQU (ORCPT ); Fri, 29 May 2020 08:16:20 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YGGo7Np+e6XvgbXPZyJyPGlUqI0G4xhHCPWd+TihVG5tdXZXV2oG9NHD4jOGESTueDg5uVVUjaNnp/IkmgubMWG1637tTUDwX4BMwGYypo48ssKWY7rSd5slbu9J+chJoct7k2TEMJcdzfA91l/+ondqoZHw6O4DMCCLdJrhco7Z7ExQOgAQH3VeXkXnBG3PFmi28O3FsRMkcAaa0/es9mhpWX0SwRzTNFRPYEfst1KAIz7JV6iRjn5DNP9SsCVfcB1LyySfAom3fRt+88FX1IALVFXQFpvzXAy2/sMNUZFPH5Jeb74AJkVLY2ZFQvensLHE6YkLIEkCUq/rmQYSeQ== 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=pS6GwXPH+vI9+rcmnrxh4DWXzvL4ueY89feeSX+FW1U=; b=O+m8daUTuMkiM1YLGjUk8wDlHIfdNzrqgRz/qjrt399qhGmgowIyOtqfOd/3e6Fv2x6k4EeXaq7T1XGosjmY/Af5jNjjO2FL80i+5iVbFGlp3PqV5PdWF6u+AjFfVDMcOLMahw6OU/PpgWz3woW9sbV8+Io2TfwCd4t3poXD8cTZJixO1M/BdDLsq6eo8njWPWhT7gefZr6lXqXEDNq821LhWOxwkPJE+pHKOsO1L+ivmzK776xXJBVdj+9QVNPteU0xNrIVHt4leKCRSzBtiSYwoHpdAI8TRC+ZGPxRE+TSTJG2GXwO3mm5PEIv01eAsYWfPhrIiLTTnishQGDQRA== 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=pS6GwXPH+vI9+rcmnrxh4DWXzvL4ueY89feeSX+FW1U=; b=HaktJG9yiehg82oXrfBPpUFMkDezls5x1NySyI7BuMzlJ0kHDvH/6mWHyunmR7LRsFari05WC0tRmFcLRAseTLErGLa4pOAe/hXya48gvCDIGeG6FHO7gQ535Kb+KreKWrlpt//7wSlkQzFDF72aa52NVrq5k2b660vM7UH4cmE= 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 SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) by SN6PR11MB2781.namprd11.prod.outlook.com (2603:10b6:805:62::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.19; Fri, 29 May 2020 12:16:17 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::c504:2d66:a8f7:2336%7]) with mapi id 15.20.3045.018; Fri, 29 May 2020 12:16:17 +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 1/2] staging: wfx: fix AC priority Date: Fri, 29 May 2020 14:16:02 +0200 Message-Id: <20200529121603.1050891-1-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.26.2 X-ClientProxiedBy: DM6PR06CA0051.namprd06.prod.outlook.com (2603:10b6:5:54::28) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by DM6PR06CA0051.namprd06.prod.outlook.com (2603:10b6:5:54::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3045.19 via Frontend Transport; Fri, 29 May 2020 12:16:16 +0000 X-Mailer: git-send-email 2.26.2 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d54ee20d-937c-4c34-9c64-08d803ca16f6 X-MS-TrafficTypeDiagnostic: SN6PR11MB2781: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-Forefront-PRVS: 04180B6720 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GkU4NvpcvSuhD1so5+0bjiudCBXJrvJpaUkY4caTUweTFzRt94UahjwPjJ+vJ1s+CNHXkAdF+qAXuhq0PFvTCbg4TMvSto/KccBa5u2zZ8scirYhDgZIqTiSETDhUSfrpWdgi2OrR6lvdrQuCAOkhmIXX4ce67a2FaOpBvlJGGrVBgUrJCRCEuc+LUc9gSsBKWiNKcL+YdylAqj465dkIS3Ij0tbuR470b0lcee3Tmr9OoUs4TkPw5mQA1TUYb+wiDWBs9irZ2EEVEw2rq4SgEW3e76Ro3yq7YOpfoYteqtPTSokk5FmiKyDC/fWwABz X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB2718.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(136003)(396003)(346002)(39850400004)(366004)(376002)(478600001)(186003)(5660300002)(8936002)(7696005)(16526019)(52116002)(2616005)(8676002)(1076003)(86362001)(6486002)(66476007)(66556008)(66946007)(316002)(66574014)(83380400001)(6666004)(107886003)(54906003)(2906002)(4326008)(36756003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: FSB6aFwIK7JUrfF8IECnQ1hCuoE42SNUilskzmD9OQXCy1+AuO/fM9MurC0OyVpgzn7HsdLLeiDSRV3i6yJL+K1uPVEYBc6Fad8UHVrJ2RFpxq/lcnwr/E77TisO3TwGqHbWVIuJyS93fbELF0A3PHCK8cmR3Fx/GumCYFw6pQ3KyqJejAW7KreRP5VC6nSz5hNgdWj8JugsGIgSh1+gFPt1PfZ37w+NNSie6PyZcA3GjDqr6vuSch+5YS7Xkatv/ZGzW87aZeGkhoGctl0rm9Ep7eKLdCrQ2bbaOlajxOsgRZ+nLCIFa9R5s1/LxB0skUIXHbtl/uA7n/vLRTJLhx8zvF7RQAUITCIV0lRKXV6Dtd1hqhXxfX/Ynewm1e+rlgWJjYcr5YlcriVadPtTuHA0FIG9CKf9SYhkXHcu3bedb1rZ7zOOb4UDta6tLv981cJ//4i++dNapSeNqEMaj1xHoIyqYWhIxQC3ct+jaJTurTymkScu27L2MMoZWO2HByVjz6dPBs96VoZwYjeYom31PyQZ2RJuRyQhmFXN5sY= X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: d54ee20d-937c-4c34-9c64-08d803ca16f6 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 May 2020 12:16:17.8811 (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: kwbS4F6vmxHLcuaKjw/C+FQ0YL/fE3HIdqmpfIV87Bw/hOgFdlhntSqX1qQQStWnu4IHHblR/OCozyKqP9CqLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2781 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller In order to work properly all the queues of the device must be filled (the device chooses itself the queue to use depending of AC parameters and other things). It is the job of wfx_tx_queues_get_skb() to choose which queue must be filled. However, the sorting algorithm was inverted, so it prioritized the already filled queue! Consequently, the AC priorities was badly broken. Fixes: 6bf418c50f98a ("staging: wfx: change the way to choose frame to send") Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/queue.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/staging/wfx/queue.c b/drivers/staging/wfx/queue.c index 3248ecefda564..75df4aca29ac3 100644 --- a/drivers/staging/wfx/queue.c +++ b/drivers/staging/wfx/queue.c @@ -246,7 +246,7 @@ static struct sk_buff *wfx_tx_queues_get_skb(struct wfx_dev *wdev) for (i = 0; i < IEEE80211_NUM_ACS; i++) { sorted_queues[i] = &wdev->tx_queue[i]; for (j = i; j > 0; j--) - if (atomic_read(&sorted_queues[j]->pending_frames) > + if (atomic_read(&sorted_queues[j]->pending_frames) < atomic_read(&sorted_queues[j - 1]->pending_frames)) swap(sorted_queues[j - 1], sorted_queues[j]); }