From patchwork Tue Aug 25 08:58:18 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: 1350908 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=h61vMFCs; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4BbNJ71Pnvz9sTd for ; Tue, 25 Aug 2020 19:00:55 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729685AbgHYI7o (ORCPT ); Tue, 25 Aug 2020 04:59:44 -0400 Received: from mail-bn8nam11on2079.outbound.protection.outlook.com ([40.107.236.79]:20448 "EHLO NAM11-BN8-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1729051AbgHYI7j (ORCPT ); Tue, 25 Aug 2020 04:59:39 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OCgapgpsMb4e5M1A/p7sVSLsANMj4zLu4LNVltCyUmZ4VfklZhYH0xuhWZH0XHUxcNhZZCtwIrGzC6T/TXCy/0VQhuutbHSUnXB9PbkwLM3TQToyrH/05zsfvvLP0bxPzF9JYejoGZEV27pEJZ+WsNdXYACqSVlfhnye/UAYoU2Wz1zcfzK6ExVNQc93rf9zfdaQRrxo9QzimoCrKXdRotpPsWkiQwUczfBgJQnKgy7rBOF+U4bczjCri0eCWSYjfTA6V2KcpatPkEObw642jsCkjp5GkM07obpbRIUrV20xPFtgmWk9/NTDki3ANM/fr8KWmNj3YmJZwGJvbhKUvA== 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=B0v0NTeVO8a5ZoHPuayBgPRqg+JDLyTRDjtM91NRk3k=; b=EysgKOUJ1xSOm7ZMB1HpQZIb1hUY3FhQci4NNUPLwFzd0ZYjewydFhU3c5oQI61FG8Ko2Ac7nQbx83IXQriA8FpOwX7EFQngnqpW7LuxOP4F0aoROVxOpGPhqsC7rqKBUwrdJkKfNY9/0R0yQhBCSuCxKIpBAWpcM5ldcs2t30mBmuCa9lj3bRiRqcM/H+cF0/uzBYSrKu1ASOnpsuTEoht4MawjkXj58aktiMxijPMmWbEIPKY3wtQKpxvCgSpc4eBtGVDTOkj2MLsmVeSc1B04rujeqXNb7XH5qGqvLms1tCTp85tRsZF3nOUiUO1OqOfUlnLO0j3QvpkLt5QdMg== 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=B0v0NTeVO8a5ZoHPuayBgPRqg+JDLyTRDjtM91NRk3k=; b=h61vMFCszT4q5hwyUVKAbEnryPsGDEEPJSJHmd1BZWnagV6QGY8FFZC9Vwb5oKhJGbQ7Z3UDjUogH9tOL80YJdWLWilEkTN5j94ZOcgdoIVYhe5WRHY0yNoMYl8eR7NnB5MlnebEzwtqhiSocAntIh3u2m1FI6HmYD8EleqwpRA= 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 SN6PR11MB3501.namprd11.prod.outlook.com (2603:10b6:805:d4::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3305.26; Tue, 25 Aug 2020 08:58:57 +0000 Received: from SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::85c9:1aa9:aeab:3fa6]) by SN6PR11MB2718.namprd11.prod.outlook.com ([fe80::85c9:1aa9:aeab:3fa6%4]) with mapi id 15.20.3305.026; Tue, 25 Aug 2020 08:58:57 +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 v2 02/12] staging: wfx: improve usage of hif_map_link() Date: Tue, 25 Aug 2020 10:58:18 +0200 Message-Id: <20200825085828.399505-2-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200825085828.399505-1-Jerome.Pouiller@silabs.com> References: <20200825085828.399505-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: PR3P192CA0002.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::7) To SN6PR11MB2718.namprd11.prod.outlook.com (2603:10b6:805:63::18) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from 255.255.255.255 (255.255.255.255) by PR3P192CA0002.EURP192.PROD.OUTLOOK.COM (2603:10a6:102:56::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3326.19 via Frontend Transport; Tue, 25 Aug 2020 08:58:55 +0000 X-Mailer: git-send-email 2.28.0 X-Originating-IP: [37.71.187.125] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 80639ebb-f9f7-4e62-43e7-08d848d51979 X-MS-TrafficTypeDiagnostic: SN6PR11MB3501: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5236; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OrLni9KdMAuJJdZX33ga51UXqLyLPFuAdHGzb+PbHPaEfxwJfv2TCXylMrvTjtPy8cFDIW/JrR2jV08TF2nMzlqpwJOiyZuZAnOPmjTBqdCxTVPJy3gtlDwqESnuXn/9mxHQRWl3rNMun62J59jVVD68XplnH6+KP0oPNqZ9hrVSGRJV2OYE5Z9cP6r44sDUsLeieEvsrNzyVhXTwbR6Can5QSKhZIcluvfjO10aT/a3L8HDTxoRFeWDcyClQe2ejd+OvJKTa1AsxLsy4LCSoVkVK5cw1rKIkoOhlYPImMYaYO3hYLl+l2AkuKUNjPS+ 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;SFS:(136003)(39830400003)(396003)(346002)(376002)(366004)(316002)(5660300002)(478600001)(107886003)(1076003)(8936002)(83380400001)(16576012)(956004)(66556008)(66476007)(26005)(2616005)(186003)(8676002)(86362001)(66946007)(6486002)(54906003)(6666004)(36756003)(4326008)(66574015)(2906002)(52116002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData: RYptpOpL42f037M1W6LTEcLo7g1hpC9QTYNx1H0JViT3wvStRVu20rs8V4szaDhTFc9wDEBZBbyg6Bv0SfmaEwNAVgBlsYzi3+qAiNSXVr6tOsL0mqSKcZVSv7R13ubuCOfAMo6LMw93sBnLcLDieOdgx/yAo66bmutp5vDa/NrVIyGd8oTRQoRz6GJ/FbK2N2J9depUWs2BFeu+N7obCuEyGmE05/4xn97BvYfForxF29h82JQuzzm/Rk5db2IzQsYA9b2Iq98T9KGDll5htlFN2qz8AWVkCSIHEVSkLRLErJh5OkIhiOyEzIfTvLjCQg3aIZbN/HpOZSxumOFfZZFgukAMPqhRye66k0AcJsDTGGIVXbb4S7TbU+WZZSexxW9eEPWPWSXw9rn3g8aBq8pi43akmXAzhtnz6wfR1DQ2KLIIr/nNuqvrFip/Vk+vJ8+vmxPAyiiGLTCMrzfcw/QE8hbiysMu+HeS5iHskmdVDTXphjm11KMiXFykB5/aBEgXjBRZIyZL7xNcX9y7dFpO2OxK1VBoIhhIeA1awR6dxDmkPnZa1zNw9SZiViuAI6KJwgXDgWBkVGRWvn/5V1ujND+aa6xsKPS6J3GxGhbXqpvfYyOyqqxq0hIO+DV95zk/3lcmhQW3TV71N7U2hQ== X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80639ebb-f9f7-4e62-43e7-08d848d51979 X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB2718.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Aug 2020 08:58:56.7535 (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: X1S7My9oiJT6XiqMhgqkEhsGwdpMWOnzC1LVPFQV21WNKuUaFFR0LPWTfmeXc2WlAfPwwI0WE1i2RD1Vt+E+lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB3501 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller Until now, hif_map_link() get as argument the raw value for map_link_flags when map_link_flags is defined as a bitfield. It was error prone. Now hif_map_link() takes explicit value for every flags of the struct map_link_flags. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_tx.c | 5 +++-- drivers/staging/wfx/hif_tx.h | 3 ++- drivers/staging/wfx/sta.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/staging/wfx/hif_tx.c b/drivers/staging/wfx/hif_tx.c index 3b5f4dcc469c..6b89e55f03f4 100644 --- a/drivers/staging/wfx/hif_tx.c +++ b/drivers/staging/wfx/hif_tx.c @@ -499,7 +499,7 @@ int hif_beacon_transmit(struct wfx_vif *wvif, bool enable) return ret; } -int hif_map_link(struct wfx_vif *wvif, u8 *mac_addr, int flags, int sta_id) +int hif_map_link(struct wfx_vif *wvif, bool unmap, u8 *mac_addr, int sta_id, bool mfp) { int ret; struct hif_msg *hif; @@ -509,7 +509,8 @@ int hif_map_link(struct wfx_vif *wvif, u8 *mac_addr, int flags, int sta_id) return -ENOMEM; if (mac_addr) ether_addr_copy(body->mac_addr, mac_addr); - body->map_link_flags = *(struct hif_map_link_flags *)&flags; + body->map_link_flags.mfpc = mfp ? 1 : 0; + body->map_link_flags.map_direction = unmap ? 1 : 0; body->peer_sta_id = sta_id; wfx_fill_header(hif, wvif->id, HIF_REQ_ID_MAP_LINK, sizeof(*body)); ret = wfx_cmd_send(wvif->wdev, hif, NULL, 0, false); diff --git a/drivers/staging/wfx/hif_tx.h b/drivers/staging/wfx/hif_tx.h index e1da28aef706..b371b3777a31 100644 --- a/drivers/staging/wfx/hif_tx.h +++ b/drivers/staging/wfx/hif_tx.h @@ -55,7 +55,8 @@ int hif_set_edca_queue_params(struct wfx_vif *wvif, u16 queue, int hif_start(struct wfx_vif *wvif, const struct ieee80211_bss_conf *conf, const struct ieee80211_channel *channel); int hif_beacon_transmit(struct wfx_vif *wvif, bool enable); -int hif_map_link(struct wfx_vif *wvif, u8 *mac_addr, int flags, int sta_id); +int hif_map_link(struct wfx_vif *wvif, + bool unmap, u8 *mac_addr, int sta_id, bool mfp); int hif_update_ie_beacon(struct wfx_vif *wvif, const u8 *ies, size_t ies_len); int hif_sl_set_mac_key(struct wfx_dev *wdev, const u8 *slk_key, int destination); diff --git a/drivers/staging/wfx/sta.c b/drivers/staging/wfx/sta.c index c31e302d05c9..b6ccb04f308a 100644 --- a/drivers/staging/wfx/sta.c +++ b/drivers/staging/wfx/sta.c @@ -434,7 +434,7 @@ int wfx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif, wvif->link_id_map |= BIT(sta_priv->link_id); WARN_ON(!sta_priv->link_id); WARN_ON(sta_priv->link_id >= HIF_LINK_ID_MAX); - hif_map_link(wvif, sta->addr, sta->mfp ? 2 : 0, sta_priv->link_id); + hif_map_link(wvif, false, sta->addr, sta_priv->link_id, sta->mfp); return 0; } @@ -449,7 +449,7 @@ int wfx_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif, if (!sta_priv->link_id) return 0; // FIXME add a mutex? - hif_map_link(wvif, sta->addr, 1, sta_priv->link_id); + hif_map_link(wvif, true, sta->addr, sta_priv->link_id, false); wvif->link_id_map &= ~BIT(sta_priv->link_id); return 0; }