From patchwork Mon Apr 6 11:17:56 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: 1266820 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=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; 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=bHn5ON2G; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 48wp2Y2xrdz9sQx for ; Mon, 6 Apr 2020 21:19:01 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727982AbgDFLS7 (ORCPT ); Mon, 6 Apr 2020 07:18:59 -0400 Received: from mail-dm6nam11on2071.outbound.protection.outlook.com ([40.107.223.71]:6126 "EHLO NAM11-DM6-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727933AbgDFLS6 (ORCPT ); Mon, 6 Apr 2020 07:18:58 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Z9aG6EOReCa8weinrwp5Kr22wZEf6bplHpGiIrTGuR/gPMAwFM1a1MdmlwVsz/CHSCgsTieeDo/M2W1otMJd7ylqbpQrRhPRzFg8HTalgb/GkgNWpSkPvrIlKER+0r9Mv6RC1kmdz+DPoUWIEuXbcXhEjo4rBLR4xj+LVQDblTqbWftjYuFyYBcoLRKxWMgOJszjKZNdqY096WDw5CWav5GRmhY0IX+3xxIBEcj37dPyI73XB7Rl0I8QY8IH/PJtLXySNjOH28UFoLBVVPXF3rdAZWZ9tzxI4Km2vx1AA2wiSNFm9iZMTu3u4FSc+qQrEHmWJjQIpDBYnKaU0EWYiA== 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=PJLNYy1rUZM3cmqcCe5LvFcQmcQ1AXYnN8pNj8m62Gc=; b=OcQJUaKdAdAJWUMPSymBoE94A0AibyYb9JjMwH4ZSrX/1ewzujODxva2pBUpbJXV41WQFpBbe+Kbb/AMp9zAsSeZMKXO91aFkhOgaiO3WMq9fwu+EMliqTwjF9oPVX/smHaEFyiJ72ah2g8HyEMeBlwAt4ba3ek4tySTOhwEzhcKPrFBz6eCSyG4ZvRPmJiVACpwmLe2fKGCNqsMZB+fOEy2EL2GImD2DOGq4jMWGLkFOL92oFYfBACEtFrMwjfSPLdhAXMiafDv6ZTklByOoq2JnWMHVieJiXPjF1hb9PvhKnA+/7OKN1OUlKEYG5D1qfz42NKUcUjNyRQLrd8jJw== 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=PJLNYy1rUZM3cmqcCe5LvFcQmcQ1AXYnN8pNj8m62Gc=; b=bHn5ON2GessS8mffq4VqskH7PxrgyA7xm7whpfU0Uz3cwpkGfhH7GA9QZXrDJ8T7QWIsC3hLN933YTk0jz+z/pke4tNdXQCVjx2AT+hHRXluxbkEea29V414zK19UTzbdKigSX3PvS28ZNyIALv58hM/d6tOlmDWdFGyDqirUgM= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerome.Pouiller@silabs.com; Received: from BN6PR11MB4052.namprd11.prod.outlook.com (2603:10b6:405:7a::37) by BN6PR11MB3860.namprd11.prod.outlook.com (2603:10b6:405:77::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.15; Mon, 6 Apr 2020 11:18:36 +0000 Received: from BN6PR11MB4052.namprd11.prod.outlook.com ([fe80::e0af:e9de:ffce:7376]) by BN6PR11MB4052.namprd11.prod.outlook.com ([fe80::e0af:e9de:ffce:7376%3]) with mapi id 15.20.2878.018; Mon, 6 Apr 2020 11:18:36 +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 11/11] staging: wfx: send just necessary bytes Date: Mon, 6 Apr 2020 13:17:56 +0200 Message-Id: <20200406111756.154086-12-Jerome.Pouiller@silabs.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200406111756.154086-1-Jerome.Pouiller@silabs.com> References: <20200406111756.154086-1-Jerome.Pouiller@silabs.com> X-ClientProxiedBy: DM5PR05CA0010.namprd05.prod.outlook.com (2603:10b6:3:d4::20) To BN6PR11MB4052.namprd11.prod.outlook.com (2603:10b6:405:7a::37) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from pc-42.silabs.com (2a01:e35:2435:66a0:544b:f17b:7ae8:fb7) by DM5PR05CA0010.namprd05.prod.outlook.com (2603:10b6:3:d4::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2900.13 via Frontend Transport; Mon, 6 Apr 2020 11:18:35 +0000 X-Mailer: git-send-email 2.25.1 X-Originating-IP: [2a01:e35:2435:66a0:544b:f17b:7ae8:fb7] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8600d4e7-2485-4403-8390-08d7da1c4009 X-MS-TrafficTypeDiagnostic: BN6PR11MB3860: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1728; X-Forefront-PRVS: 0365C0E14B X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR11MB4052.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(396003)(39850400004)(346002)(366004)(136003)(376002)(186003)(16526019)(7696005)(52116002)(36756003)(5660300002)(107886003)(316002)(54906003)(66946007)(66476007)(4326008)(2616005)(66556008)(1076003)(66574012)(81166006)(6666004)(6486002)(8936002)(2906002)(86362001)(81156014)(8676002)(478600001); DIR:OUT; SFP:1101; Received-SPF: None (protection.outlook.com: silabs.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: twD7Sm0d81MLD46BIYHnwz1mBBoaWJ1B4HfWsL7Td3a+IwhVH+HGbNoJ1pUn2QTg8PX9QaxZandlMCUMhpmi5e5CLwdFMhW3PljnKeaqZE3rpn9qaehjY5YKH1RnStxqCflyovk0nIYeghl3cafEeTPTr09qj/7LHxZ1RdQLZCsKDd8ObkjMc61ilY2ct7xu8Tv5SqQoRcKBFK2qlbcNvoZf774unXj+euGrXM49tpNB7bjAlndWn8CL3okdPwmJp/kNKN+YrYBf4uNVCrzcbV4BAd2JNfoWWvO+RZm2Wu+bp4sPYc9rycAsdCsFRQtxJ9n1vOd5YzPWf2xZrQYY0Xi7qg44cnLebr1up8Ox9e0hJLUrwscqAc7QJN3z/IZhnSadduvkJLzdOT9BZTDFLLQiu1dBpHZccPzW4iV+N2BROihA33VGbj5UFNjBvQEM X-MS-Exchange-AntiSpam-MessageData: jCPWiybbNhgMMcgyXQr/d0QZyjQCCLW/+9CF+YThD23GMDApfASQl+VltRuryO3jRuPz3oB8LbDZczxH8XMg6GmzJvzHVV6vXP99m/9BlJrLXliYhyILQ1vWPK0oAwOQpNkra1VT9Is9vbQzrkRzFLUkstz/kHUXEPcwcgCcjqhbjbX/tdoBw51qx9p6ktqhJKH3eIctlkBJRdn1lwsbgQ== X-OriginatorOrg: silabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8600d4e7-2485-4403-8390-08d7da1c4009 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Apr 2020 11:18:36.7517 (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: AQdWU98AR1BjT3cIm19B47eHjgYWEVTVhb7MCIrZV3N/iWiN+jo7ZclUmuAk882Y30mu3DHJfy28QpJEbsQAWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3860 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Jérôme Pouiller Size of hif_mib_template_frame must be sufficient to contains bytes declared by frame_length and cannot exceed 700bytes. Change the API to reflect that. Signed-off-by: Jérôme Pouiller --- drivers/staging/wfx/hif_api_mib.h | 4 +++- drivers/staging/wfx/hif_tx_mib.c | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wfx/hif_api_mib.h b/drivers/staging/wfx/hif_api_mib.h index 0490157b4f3b..9f30cf503ad5 100644 --- a/drivers/staging/wfx/hif_api_mib.h +++ b/drivers/staging/wfx/hif_api_mib.h @@ -270,12 +270,14 @@ enum hif_tmplt { HIF_TMPLT_NA = 0x7 }; +#define HIF_API_MAX_TEMPLATE_FRAME_SIZE 700 + struct hif_mib_template_frame { u8 frame_type; u8 init_rate:7; u8 mode:1; __le16 frame_length; - u8 frame[700]; + u8 frame[]; } __packed; struct hif_mib_beacon_wake_up_period { diff --git a/drivers/staging/wfx/hif_tx_mib.c b/drivers/staging/wfx/hif_tx_mib.c index ac534406144c..41f3090d29be 100644 --- a/drivers/staging/wfx/hif_tx_mib.c +++ b/drivers/staging/wfx/hif_tx_mib.c @@ -148,6 +148,7 @@ int hif_set_template_frame(struct wfx_vif *wvif, struct sk_buff *skb, { struct hif_mib_template_frame *arg; + WARN(skb->len > HIF_API_MAX_TEMPLATE_FRAME_SIZE, "frame is too big"); skb_push(skb, 4); arg = (struct hif_mib_template_frame *)skb->data; skb_pull(skb, 4); @@ -155,7 +156,7 @@ int hif_set_template_frame(struct wfx_vif *wvif, struct sk_buff *skb, arg->frame_type = frame_type; arg->frame_length = cpu_to_le16(skb->len); return hif_write_mib(wvif->wdev, wvif->id, HIF_MIB_ID_TEMPLATE_FRAME, - arg, sizeof(*arg)); + arg, sizeof(*arg) + skb->len); } int hif_set_mfp(struct wfx_vif *wvif, bool capable, bool required)