From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=pass header.oldest-pass=0 smtp.remote-ip=52.101.70.51 ARC-Seal: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=pass; t=1794312490; b=xKmWH6QTHzc7+xMXBEQksEhtwP3wjcNk6lQORlUtDAXqKPYz/FQ9JpMZvRVnSUcxi5bi J6n/rlQLmxsb/UWPJ70enax7Og+In7vGYkgSLiDS1JEKQvJXndTxtx72QZ93rXhACfaxY W3lmfRs+w7gHvOgOw+/jB4XXV/D7Z58txMmfqPeqYLhBgfLdC2JXY4BXW6MDtSlEAArdb 0MrQFXZ8bwDku3wwzig6cQkDrVmhFX68IwaPR//P6v4jiW05DbyJdJAfLnHkc3gqgnPgZ d2ixMZRb0bHLafu6c37CVV2qXuEhP+85CxJ4UoOIusH7dM/192edbS+XkCVehKFe+Zw== ARC-Message-Signature: i=2; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794312490; h=DMARC-Filter:DKIM-Signature:Received:Received:From:To:Cc:Subject: Date:Message-Id:X-Mailer:In-Reply-To:References: Content-Transfer-Encoding:Content-Type:X-ClientProxiedBy:MIME-Version: X-MS-PublicTrafficType:X-MS-TrafficTypeDiagnostic: X-MS-Office365-Filtering-Correlation-Id:X-MS-Exchange-SenderADCheck: X-MS-Exchange-AntiSpam-Relay:X-Microsoft-Antispam: X-Microsoft-Antispam-Message-Info:X-Forefront-Antispam-Report: X-MS-Exchange-AntiSpam-MessageData-ChunkCount: X-MS-Exchange-AntiSpam-MessageData-0:X-OriginatorOrg: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-AuthSource:X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-OriginalArrivalTime: X-MS-Exchange-CrossTenant-FromEntityHeader: X-MS-Exchange-CrossTenant-Id:X-MS-Exchange-CrossTenant-MailboxType: X-MS-Exchange-CrossTenant-UserPrincipalName: X-MS-Exchange-Transport-CrossTenantHeadersStamped; bh=0gxdWHr0+mVgtPQQwdI2400x1FCK3nBQPNjwhtWTKu8=; b=SIJ/7telPAXKzSDQgX6J19HZl+A7g2u3AFB0QDgVw7hjXicP9L/d+aoJacE4hBQX5iw9 aHObMQvxJqwmA7nrBAY6gk15ThWMMgQUYIsgpsRbTTMV3D51xvGMITA37udP7gmNtSFYD 2MAOF8kKR5QNZZJLYF+uKjQFXi533t3BzxGGQLXJhZ7a4kJrkzAUP376yJ2yAHp7YCa1x FsS0roZOlT3VlNYoIdQymhuwOMaK3Ai3ATrwIKqLaFKa9yBY998uMBA4tMYsI3g1kIlIn +3QkDvg6maUi0aQJoDp8aHQ/Zw3ri9N/uMhU8pHFaRencPFrTp1fkV87te46L6b30cQ== ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=F01VqdAZ; arc=pass header.oldest-pass=0 smtp.remote-ip=52.101.70.51 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011051.outbound.protection.outlook.com [52.101.70.51]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11806606A33D; Tue, 10 Nov 2026 12:08:09 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.2 smtp.subspace.kernel.org 11806606A33D Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector1 header.b=F01VqdAZ ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IB1gSvL03ldMa/UTZRq8WSOPxI9xoWqOnJVOmfpjRaTx+OBYO3TG4JmFz0rP8HPT4dPsn7hxo4F7P+1NVpTgLUmjp+7JKVUpwxZuqsHSif8oJarTDqg1uMhIOPBjl0CNb0/DwRv/cMWkbvovuqEYq5edjiLUiSh0KFoLVk4h6ZRJ//tZrbaW2xW3nsD0M3Dc8fLK1PQO7K+ps/iI5oIAWc85K3otwfwWpLuX6+jyOQ45KCyLdU62aUY752NDPuPIV+frlgM6JHPgECqk7I+jM0aM+M5sMmdpEymwJ/aKXjkJovHBi1qNaqTZBMh8j9dsfQj2pgpusufQLXYu3Y2HGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=0gxdWHr0+mVgtPQQwdI2400x1FCK3nBQPNjwhtWTKu8=; b=q0VQzuCoLH51i8wHzm1uEe9J90NHgkVOUjAuQXH3cyyzqD1ZlcEhl57gjqMkn/UzXD37Oz879ZCGp4crWXNU55xcUJoBHOPNwLrhmt3S9iQITFW9qWH2xXDvYZYTIPGG+FR7rYLWiOwtS/Q/VwB6Qn8cxMtj5EKs80Laa0ooUMIf379gXZ4I9nykxqB4qWxytTUaq0f2NBRpq+zHJ5YI0c7aJMBcPSKHlA3XirT59pUhzmv9uiczP0gtsMDZMQZCkuR+tbV+fTKT8+lNBQbhgsyBXB1YgEELzOMn5sXCtM/LhDr1i2lMUakJkN8YgO7iRYQf88iTIlDq+tedxDZ3uw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0gxdWHr0+mVgtPQQwdI2400x1FCK3nBQPNjwhtWTKu8=; b=F01VqdAZeCR0S3o/jhf0BA9CPtt13+BddG+22xkmpYcmvxISs1bLI8+T1KdgkdSgTDu+85HjmZPfxp5AZEj+pVEvVX14Bxk79FD1TAjN8pfaU9kaLsz1jDU6tkaMEo92EL0UBnywBgJbVqp47aHJGhZxlg7Y5Z1AL1sKS52FxYI5pPoEyaLO+5Xn523JoU4AfXihTWoWEkZ8oLrdFz3leNTWN37aPFM9SadWqNilwjUCkibMe5TLLTNEim3cx2tFGKbS2b1lOr7e7FzfG57sX/UMJa5r4+iS8TTeQYKIrVq2nUPMW/Onn1jAFq7Ghr1YdwJi3/HAddYWEDNQhDRCEA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4472.eurprd04.prod.outlook.com (2603:10a6:20b:23::20) by PA6PR04MB11832.eurprd04.prod.outlook.com (2603:10a6:102:520::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.615.8; Tue, 10 Nov 2026 12:08:07 +0000 Received: from AM6PR04MB4472.eurprd04.prod.outlook.com ([fe80::aed9:e8b9:c352:9ba0]) by AM6PR04MB4472.eurprd04.prod.outlook.com ([fe80::aed9:e8b9:c352:9ba0%6]) with mapi id 15.21.0592.012; Tue, 10 Nov 2026 12:08:07 +0000 From: Stefan Ghetu To: Shengjiu Wang , Mark Brown , linux-sound@vger.kernel.org Cc: daniel.baluta@nxp.com, Stefan Ghetu , Xiubo Li , Fabio Estevam , Nicolin Chen , Liam Girdwood , Jaroslav Kysela , Takashi Iwai , linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/5] ASoC: fsl_easrc: fix context ownership on repeated Date: Tue, 10 Nov 2026 14:07:42 +0200 Message-Id: <20261110120743.6301-5-stefan.ghetu@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20261110120743.6301-1-stefan.ghetu@nxp.com> References: <20261110120743.6301-1-stefan.ghetu@nxp.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: AS4P191CA0045.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:657::28) To AM6PR04MB4472.eurprd04.prod.outlook.com (2603:10a6:20b:23::20) X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4472:EE_|PA6PR04MB11832:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e276dde-2723-4b96-1fe2-08df3f2347f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|19092799006|1800799024|376014|7416014|23010399003|56012099006|5023799004|11063799006|22082099003|18002099003|10067099003|261009223027099003|261028144727099003|261102123227099003|261021121427099003|261026121527099003|261026140227099003|261022105027099003; X-Microsoft-Antispam-Message-Info: mblX5qPnbw0QJFfyALEe2lPzhxYZ0YmiwNga2+dgPkfczmVePy+sdGHhQk1+Fo0yp/5XXwTloYvCZcqmwUuBOSTFl/zMkWc+bwz/AZfnipoQRwDKJ3JpyrdYO2xQ19aLrtluj59b2kUv1WlPHfxq8Ah3ts8HuZDYoswx2f7l+vcB4O/hT0SfVm6Hc85KiNHOSbZu/6ZFnXAFSCddmnvE8Rx3MzSF4Rf4INOcQg05OgDDQBQPfQ3UjTAl4nQzxK15IljMj5OdPo0ny538i/qS9XOEq6SphJ3XmZiizkDnRmL3eNua8cYZZIVB2n1xyccI7CeldctR5Ll1x6LueX6pJ0yZLop0yi4Zhvkl1OfMtwHtAUT7gjT18tQNK4JchgPd2XuPmXlbTIy81Uf/wrdZjTJc14gRwHa2qbg8Lx5tZjsLMbKPsuUdm+x7o2femn86SXmHvpfVl1p//jnUdOARu25igjufrNDXT0pEmYAVw2zTuf/tEvWnQl6LVUIEGqhJ6zMsWhjwXmfQQl0O0DECrZOFLvC9FWpi8v8DoWsYZmhjHWGIs3AZErA6U+SmUWR9CCfO6NZabbAvLCl+RQOG+7OWYDkZEgPgNB0HsmrMtPQp5Gag9ceybE6fK7zqpa50aKSHWQU6mth4XvsL/ku7kOKIp5fZcmy4uLSGexGxoQE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4472.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(19092799006)(1800799024)(376014)(7416014)(23010399003)(56012099006)(5023799004)(11063799006)(22082099003)(18002099003)(10067099003)(261009223027099003)(261028144727099003)(261102123227099003)(261021121427099003)(261026121527099003)(261026140227099003)(261022105027099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QgdU3jO8v57TmVLEiCv49MUieXrhqn5ebcw0hlBktB77uUbFS9ibeFW27Qs+?= =?us-ascii?Q?fFJMTk0DH26/ij6acbVNYkroAZ1mFUGpuWXf8X6xrZaRk8M900z1HkLr7SEF?= =?us-ascii?Q?0U6f/1+4YTN5D0ELPqK2Q8SspHyxJePHAimus9L2aX/NSFJjrm3h3+YplzVV?= =?us-ascii?Q?jP8/89JWJJH5nP3zq/dJ0BWZNNnRytH40feHsC1og7MiKtamLbVi9m6NFDrB?= =?us-ascii?Q?RpzzJKDIEhV8fRUvibDARxWv2uOTUwvfEae4k+2KLAdZqIoBRPaZPsyM7zH1?= =?us-ascii?Q?zGXhTrbAD8CQGyY5By4mmBu9qPn3pHtJL1yES6WKgoyKkfCv6GgkMPbupoK6?= =?us-ascii?Q?Umdj+3POgQ+hFLyPwliKcIur2trPzGmFZFDbpuhhw4hSH3pYSpz322t2tVMt?= =?us-ascii?Q?lSYN2CujnLIstD6+ltf5fNgzIJPl9kwQsemOZ0hyPRyLp2RRZk9irbqmL56g?= =?us-ascii?Q?ZhjwsVgE1V1CO7mzlzzn9hDFdIX4h7f41BYWHnX7yju+6StvctYbdSZGlLQn?= =?us-ascii?Q?eyBk4v+4e8IYG8KQLcS3subR0ujLVZ0vsBXK9UC5ANnMTpABsEyaaQWHZgxn?= =?us-ascii?Q?xWcQINxs8C3njapDiNoVUEXmkwPNQ9T66eniXY/y8BaJ3ID3QjufSLqz0/FB?= =?us-ascii?Q?OubFxvB2wGuj2CdZ1LKN/oN+c2CZiVHgcrRb7pSKNEFHWMqmfHTWSXn6FDMG?= =?us-ascii?Q?ZP54LGGY1V6u1n8t02I0mBb3mwpJVs+dgJSYI7dS74PdSOwDZ+Y88MM91Xxe?= =?us-ascii?Q?WOCxpVprCcAStsoGU8SRjvFe8K3/6voTQsWrtoo/LK/aLlfyTKCSoGwcIizr?= =?us-ascii?Q?YVkE5az2lI9zZ5DgW87SJWa5nSnHiRnVcUuB6bzngI/yrlBSg4ubV4GHT0kv?= =?us-ascii?Q?hyhSPItLk2LzVIbUhZeaxNiAamlGD+Z5bN5Lk79zAsUWsbBKGjjne9MqjwfH?= =?us-ascii?Q?TQQCI/Dy35FS0HzXDTXY5ZDo1kWmid2nfON6ccZfyiSN2n6ThragSUEpl4ho?= =?us-ascii?Q?Axqgplp4olL9VDdFFUu0P/gwxTqosgiZjPr/9QClHxzm4QpOa1XHXNx12gNp?= =?us-ascii?Q?GdeeRHbDZpd0VXw+mvQlhvx3U3ktY/08S9udoYfbJnssZ3QjlOvfjho0qRZ3?= =?us-ascii?Q?WlOHqnhX4qVCZENYDT+GRCZb+2ocVHIf0APIdcKBkPTBuqHGsVaphMp8owHZ?= =?us-ascii?Q?tc3qO26fFo4dyuW/QQe3Hwto3tgz4BnrvTW8C+4XO4ulVZoizkf6ScD3MnpZ?= =?us-ascii?Q?yB6XBePOSqWhbltEkRKFk1YSKTP5LE2ZOwukTYukydbH+V3RTaB97WkM4TJy?= =?us-ascii?Q?UxYXvkjb61cTFtPP7kfh3EnhoKyL2TtYvQtfsskSIV/Cco3prh8e2+VN19rz?= =?us-ascii?Q?jL7JXJBqNGD9r2z95+VXbo6PrKrgKxgIpqw9C7becAdqvaUE8XcKeMqJwVBT?= =?us-ascii?Q?g1NDxBFsf7Dc2YVLRh+zV3UV6+rPAJeM/OKOx5FO2e8mqzaEjVu0JQijPf+b?= =?us-ascii?Q?sl6cqObgd15ntkwlLFMAbTT+l4Y8KEE5sMPTGdPoAdxz2zTf1CroWBz2ckBH?= =?us-ascii?Q?58KKGB0Wix/Huu++puTUm3n0yACugQLhhRyAbgOWag/tHMotkYK2EtL5u9BI?= =?us-ascii?Q?NacFOF9t6nRr3YFbb+SSWEH23LWtCD2aUW/77MapefbFWsk2R8Ou4lGvD1Tp?= =?us-ascii?Q?+/1o0mw+feOwY13YR8nj9mCGm/s4kT8vk1C20ncTt0A4VackOQ3/+K04O4l+?= =?us-ascii?Q?RVuWmr2kfw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e276dde-2723-4b96-1fe2-08df3f2347f2 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4472.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2026 12:08:07.4772 (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: HTFpM485CVGWATI3VR+2u5dYd6UGpRK4PLdDfz3yPycuLDTiKkEHX4Dh8AK88mEKeJbfzTDf4I9PnAmFfVMptg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR04MB11832 hw_params() can be called again without hw_free() in between. fsl_easrc_hw_params() then requests a second context while the stream still owns the first one, which is never released. After close, that easrc->pair[] entry points to freed memory and is dereferenced by fsl_easrc_runtime_resume() on the next open. The EASRC slots depend on the number of channels, so release the owned context before requesting a new one, and make fsl_easrc_release_context() ignore a context it does not own. Fixes: 955ac624058f ("ASoC: fsl_easrc: Add EASRC ASoC CPU DAI drivers") Signed-off-by: Stefan Ghetu --- sound/soc/fsl/fsl_easrc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c index 5d715bc07357..ae0fbf6c316b 100644 --- a/sound/soc/fsl/fsl_easrc.c +++ b/sound/soc/fsl/fsl_easrc.c @@ -1347,6 +1347,10 @@ static void fsl_easrc_release_context(struct fsl_asrc_pair *ctx) guard(spinlock_irqsave)(&easrc->lock); + /* Nothing to release if the context is not owned by @ctx */ + if (easrc->pair[ctx->index] != ctx) + return; + fsl_easrc_release_slot(easrc, ctx->index); easrc->channel_avail += ctx->channels; @@ -1500,6 +1504,12 @@ static int fsl_easrc_hw_params(struct snd_pcm_substream *substream, snd_pcm_format_t format = params_format(params); int ret; + /* hw_params() may be called again without hw_free() in between */ + if (ctx_priv->ctx_streams & BIT(substream->stream)) { + ctx_priv->ctx_streams &= ~BIT(substream->stream); + fsl_easrc_release_context(ctx); + } + ret = fsl_easrc_request_context(channels, ctx); if (ret) { dev_err(dev, "failed to request context\n"); -- 2.53.0