From patchwork Sat Mar 23 12:15:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 13600601 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 99EEBC54E58 for ; Sat, 23 Mar 2024 12:08:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To:In-Reply-To: References:Message-Id:Subject:Date:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=tOafxq2pcJxBKhqf/S3S3gPGC2+bN17DMqGq3iQQm3A=; b=W9dhlPih5DaRfkKQfJHAolOcU+ lpuImCBjjPaGmBjEBgpfQ7lv1YTTgFYP3vtyDDT1ocZi7bBu5fS5o5LeCjQtXpNyigqYvcSvfLpbj wNCrSgfS8Xopgz5aEGCHQz5/EillD440PGVk6Hf8PWcUfxQw34uS7VpGpF8RNUX0aMnna//LUa+tt 70MPaenzTc7uu0fG5zLAdJi7yrmj03PXkfDx4JJxa/unVJrPSK5CwAlkAEjKr0n9llUOZzkD5jWxP f644Q3YRfJY06HgWqAoqRhumPM+3oJPtI/m+eaUI2cNoJC7DYkjUqnOms2h1V5JPBAgrvbCLiVd0G AcDoM1ng==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1ro0AB-0000000AJTq-2NBK; Sat, 23 Mar 2024 12:07:51 +0000 Received: from mail-db3eur04on062a.outbound.protection.outlook.com ([2a01:111:f400:fe0c::62a] helo=EUR04-DB3-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1ro0A3-0000000AJPj-2kLM for linux-arm-kernel@lists.infradead.org; Sat, 23 Mar 2024 12:07:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OWC8998d4/pI5kq4SLBi89Fowcqov7SDx290PK1xRJ+ubxWFoB/yWbH9QLZWRorGtqlHyLJYABqD5FXD/XkDKsQgUDYKimfXBAXlalPvZAIJrYvPNkCFsKXUdWEVWoDBKM3wNAukmLUfm9oTiU//Kl4flp/DqtwYr/5arhR3xf66KX4Y1KkFGf9DibP9ri2T7fikKVlOWZUJkGH9AHSh5DpCPwxGgje4ejTcw4BOhyGxvjXY2iFwAFSSw9TQ/RKxmtGJTP0vTSDvxapNhqC4fxf2YZ+DZh6tGkEnmqmxciRPzBTQ7wK/71kj2Cj1U6dqbwdU/8biTynWwJOA3vNDMg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DkhFzy347CReKh8Y/3De5x5m9e7u839I/9k6SdaIf8U=; b=fysKkYRANQSw3cjTQ08aC23Horpog23LBV8n7PGmAFCHsl3uSn/8s40/VpzWQBPqPzXVOiX4aE6T13oTPZq5XO3PmQd614qdkyjGJO2G5Y9yPH6pDLxbAUupXI2uTYIVJFmGRQ2E939Ow1AzPQl5i1AlQOtEOkxi9XCu6k5d2Fp72E/NOEPLxM3CcRy8xl3JDTavP+1DNCzbEQio8UQU2ShMgY7cEeTlL5+qfm5Hpp2cOpZMcN34S23bbPOgCD8v3jFyzpGMq3gnAUwI6E5QrUkvBW9rJlsszR9lUdeedizlob9OhfNLhBIph9sgf9NRtotNisX4S+Iv/T+J9VvhwA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DkhFzy347CReKh8Y/3De5x5m9e7u839I/9k6SdaIf8U=; b=EpaWgE1ax3yjyWdWeWjxGXD+Z1A8d+a06yy7Up25D72VYNqFBnx28vsqvkAiM4WYT2kEEuNq+E+mcGtUfuphf5B4z2/0p8j+bNPACrDV4/fMVxD9PjvYe40pohCdJikqZqrk68889as2DOMqeF2JuBKn23SPGGlYJyyDDADDLSQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by DU0PR04MB9585.eurprd04.prod.outlook.com (2603:10a6:10:316::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.26; Sat, 23 Mar 2024 12:07:30 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d%4]) with mapi id 15.20.7386.017; Sat, 23 Mar 2024 12:07:30 +0000 From: "Peng Fan (OSS)" Date: Sat, 23 Mar 2024 20:15:14 +0800 Subject: [PATCH v6 1/4] firmware: arm_scmi: introduce helper get_max_msg_size Message-Id: <20240323-pinctrl-scmi-v6-1-a895243257c0@nxp.com> References: <20240323-pinctrl-scmi-v6-0-a895243257c0@nxp.com> In-Reply-To: <20240323-pinctrl-scmi-v6-0-a895243257c0@nxp.com> To: Sudeep Holla , Cristian Marussi , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Linus Walleij , Dan Carpenter Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-gpio@vger.kernel.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1711196144; l=2653; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=dKDsMHnM+cuvfvX6K6tAU3ADCasBJe+OHaz6qBQ1Tuc=; b=YCMLoesvvEksAchrZiSgtAE6+ph9Er9HhKtwRJucNf2NYbKuXTtNL5fw03vZ1EUKko+Dj5oF9 68c+d636v0yB4NTZRKEkdkYAxtLIs/XfPY6xpneKjzqpHkKhh/k4oh2 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR06CA0016.apcprd06.prod.outlook.com (2603:1096:4:186::22) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|DU0PR04MB9585:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a1593e5-55f2-44ae-9d65-08dc4b31d0a2 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Gy8CVQWIGLPp+K5HqbgaT9+ZowM1+AiyJWp18+tQBA1SClBtvHab2OknIQ+IzYNupCzj6riOq+C4ktWfHNicbeHsU+G/b5v4Bp8Afn+Ra7dqvSYCBkrxfPxZwVg0sYy4O/WySCIxHtfmmVLKDhSZcE7JrSDswDSJZ6NtwUHzHOW540JS+baZgSvnCBF4yxOsgkM3mQw9qsLgU7peynatI2GbwJJBKIXfo5u3DKoEzLmqwm87AoP7drT/yPa7BXb0ny+hFCXRkFqVa1eMXSzoYVyrpzCUc3ishRVbNo8SPTUQXhRrlcDmXr66usDvCtjuA2ycgUZmIPQneoyOxY1R2z2jvNI+89JINcZJu2hKTA7GKuSQoKDzeAoT2Oi/Rp6h45GN2/W7e98l78OBdANC20R9yUW/N+Kyj6W7v21+pW5unvJ0y9DW1lE+l97VPOmk+hRc/Y6nhEGQ4vg1HjClBkXlEv50XHtvIxYyQaw2Kcr7m4vJgOo6azUjqjIXgtZjeHb8669aT6KNN6Im9tDj1+KDMFzQxIrQ17WQqLKKGvpfTLbl8gtRclfGYjCPQiDtHBbupbFRm0bsn5EbqytBssWo3OXHLRTfHJLoqc3m366I3GBOLKZUWhuHfCLrUAe8OE3WTS14FELYmRJIClD86sS6qt9lZ6cYjk1NlkvcbPuZeOxWfQ4TNVprVXjqCl2jEgVMLDNaqtS2I9thg+GfI6nrwPo9eRfCobQHb7WHxVk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366007)(52116005)(7416005)(1800799015)(376005)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?FAJWMlb9K2dgRqWN4GKLUE9lLOEa?= =?utf-8?q?blm0xH2Al8DSOkewdp5H+Jp3KKzkI1DMZXSw6e8d9uzFQVMest3K95Vuq+Bis2Qb8?= =?utf-8?q?Z0p0FYtdJwgs7dma62VRArlUd69cKp0R/9wVuMxDIAfMVVBuFVHCcZwEue9rpKb7M?= =?utf-8?q?W82l3jXV4b2hvGJ0UnK1Mx4wTlFWd+VIGlkN/iJ7KIuo5irXcSzkilhG8JIDRM9Ik?= =?utf-8?q?i1SvTgDIYD2hTQtFE05AVTD+W0naDxIodQiLiZaKTO1HEYY8wbQpC0u+qF+8zJIm+?= =?utf-8?q?fY3RYEXLCog6poC+5rvEuI6JfpclcgXQL/cLZ1xFUbQRpBXlC/ePxP5HobuovE7gj?= =?utf-8?q?fTDCJg9/B/C3FTxz+zUiwpAErc/0f92q+Bom2FEJKTZeCduhHvWpKMi7CD+Ou+98y?= =?utf-8?q?9QlUs0+/wPipuDrF/7jpsrDJHfJnOACqF6n91GCngqcQNqw1z1qMVojBwOmIsIChG?= =?utf-8?q?lvJhOrO7k1JzWjoNCtT2aPgqecIECSiov4lQmacZUpb1k9diz2MAitKqiapqkDyIP?= =?utf-8?q?iq1t20aGKPrjejjHHUbG8Z6/btbDl8ryTd++Cx+oZZTVpB6B9qHPsfwl3FHWzmGLV?= =?utf-8?q?/FfG7TCqVl/ZIsLsvgctwzb/DPJ5To4zDxfAAlwBIakF8JhEPaZRh/nRtQo18gz/7?= =?utf-8?q?kUeGFh2KJb4E4BaJd2o2FMl/Opgig/EnO7euNKgbN3yB6DXTLoR64rKkMJKKSUjoG?= =?utf-8?q?s7eejpdyqcDOoJ8ybG38IHr9N0tJjpljZG4m0m3Dw3yVeTu+13KuGgnroMD+g8Tgm?= =?utf-8?q?6wERLiEewa+uhzV1T/DOj4StqjucGBY66uGBXiGVj8z50M5gW35EX+eq8yctFjANd?= =?utf-8?q?hjL3s64MftSTfaiF8WJLwgyJqoP4jUfIwNL32E6ES8gSXKXQCADrh8/tCKIpggDNL?= =?utf-8?q?TVyqdn41asiYjsrIba5XVsIlmSGUGq17mgEoVVzVMBep42WOpLcBJMBhvRpPuqBOB?= =?utf-8?q?q0zJVjuzbY15dYUlLHUM/f39+3yKk0fJGZsc1pEGTHf+ka89faRipFC0CH77A5IVu?= =?utf-8?q?LnMnCP1v6NjHVmJGbiv7WA8mBs2EJRlNVVeY+wjJluefGsaDGEcJLaW+wLatKge5g?= =?utf-8?q?B0icl+ig1/LwG9e3WL+dQ/vmPycB7IE4Mi9UvU2Az++zO3gV6pCE2onGAOwmBEXE0?= =?utf-8?q?gfVLytSxQ+HdDquNJp/FzX9f6PV4hRQ5xXrOSFztk4LIiltnqPdpIWpji9MWJTzJ6?= =?utf-8?q?UTi9L2dXvHkt/rI9QIu3xyHdxjdisNqw04w06s/5S22zRc6yvrj90+t7b5OtkKiHO?= =?utf-8?q?9cwSA6Xm0Er2JT4ntkX7TMHZON3fK/dXgOzGYrXhd00le/1KU62aHi4HZHYQ1FxR5?= =?utf-8?q?NfrIjxXl2NINenD1WkhmhaRhqW2FtEZmU51RlHcOOcvUd6VJ3/JQOh4DaAwwEuB/j?= =?utf-8?q?jbw47PKnsuDHw41jqJXRk+pQmsQQWp2WXyfnVLrPvC4s16qG9MtvkEIo37lJ+aMem?= =?utf-8?q?ISj8u3mU5++1NwN89SOkyMH1D9ECRtZypQw1LmfBNCr0jsc1gZcsiLpNK45N6cXsu?= =?utf-8?q?2KQ6W+wFGVKW?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a1593e5-55f2-44ae-9d65-08dc4b31d0a2 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Mar 2024 12:07:30.6439 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7ZuPV+Bz+eYK+f54PpwXR8xbVhMFaNBJ4YRpv5U84XZFM6RgtYYiz4nHvyGhQsy+oyo28PqPX+zqumoiHWiH3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR04MB9585 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240323_050743_740785_149EC083 X-CRM114-Status: GOOD ( 11.35 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Peng Fan When Agent sending data to SCMI server, the Agent driver could check the size to avoid protocol buffer overflow. So introduce the helper get_max_msg_size. Reviewed-by: Cristian Marussi Signed-off-by: Peng Fan --- drivers/firmware/arm_scmi/driver.c | 15 +++++++++++++++ drivers/firmware/arm_scmi/protocols.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index 2709598f3008..415e6f510057 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -1488,6 +1488,20 @@ static int scmi_common_extended_name_get(const struct scmi_protocol_handle *ph, return ret; } +/** + * scmi_common_get_max_msg_size - Get maximum message size + * @ph: A protocol handle reference. + * + * Return: Maximum message size for the current protocol. + */ +static int scmi_common_get_max_msg_size(const struct scmi_protocol_handle *ph) +{ + const struct scmi_protocol_instance *pi = ph_to_pi(ph); + struct scmi_info *info = handle_to_scmi_info(pi->handle); + + return info->desc->max_msg_size; +} + /** * struct scmi_iterator - Iterator descriptor * @msg: A reference to the message TX buffer; filled by @prepare_message with @@ -1799,6 +1813,7 @@ static int scmi_protocol_msg_check(const struct scmi_protocol_handle *ph, static const struct scmi_proto_helpers_ops helpers_ops = { .extended_name_get = scmi_common_extended_name_get, + .get_max_msg_size = scmi_common_get_max_msg_size, .iter_response_init = scmi_iterator_init, .iter_response_run = scmi_iterator_run, .protocol_msg_check = scmi_protocol_msg_check, diff --git a/drivers/firmware/arm_scmi/protocols.h b/drivers/firmware/arm_scmi/protocols.h index 317d3fb32676..3e91536a77a3 100644 --- a/drivers/firmware/arm_scmi/protocols.h +++ b/drivers/firmware/arm_scmi/protocols.h @@ -258,6 +258,7 @@ struct scmi_fc_info { * @fastchannel_init: A common helper used to initialize FC descriptors by * gathering FC descriptions from the SCMI platform server. * @fastchannel_db_ring: A common helper to ring a FC doorbell. + * @get_max_msg_size: A common helper to get the maximum message size. */ struct scmi_proto_helpers_ops { int (*extended_name_get)(const struct scmi_protocol_handle *ph, @@ -277,6 +278,7 @@ struct scmi_proto_helpers_ops { struct scmi_fc_db_info **p_db, u32 *rate_limit); void (*fastchannel_db_ring)(struct scmi_fc_db_info *db); + int (*get_max_msg_size)(const struct scmi_protocol_handle *ph); }; /**