From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3997D3B47C1; Wed, 20 May 2026 22:01:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314465; cv=fail; b=Kd0LKNH7Lc7r+esv1SdijrDoiLMvdZ5gcxcipkzEzPx+oKU7rIu+M/i8OphC5dlWMBPfvZzkk81wdfPx5GLJ9//ZCAxitT/QxL8Qlf36YQED2+7mX7Nx2lCgpi/kYjqJMp5OlvtD5k4o2AL8ICdkWFEYIiAWyeDOOUsDoFm2aTk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314465; c=relaxed/simple; bh=a9A53SM+VdFB2RLFWLugieOW5hEiFRT/j6jsWD40wPc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=OZ2VFnoMTQ2OLLloyDPTH3E2TgmGD1VFwHSnwIwUcNUBg5iz9U+sZI9WSao+cu1e5HPbYZ6V6J0lQuUjcqQnZhB2xLoex4rkQYHEAmGjxVJo8MagqD3QqtOvSUtU0oMGT2D26aOIXfLIRf4gXBixs7BZlt6mNm6IzHVQbYWqqvA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=qvFaWekP; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="qvFaWekP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JZfJEH+z/lEWxFjue+3CSNy4GbDZZrjFI8GS6JY10xWfAm+hqYVEOWI50jRWoyWmsgVaLvh3nqA1hEQ5d54J9hCqm7Ha4TiqSaLU7Qokws50ztP5JJA58VBNk+cjmiEQqrD4/pD+84MSy9/7KDXd1niZfjI7K3fa6sZk0JPmlTPPQBKeM/+uAxkyfwjCxKIAg5mzrvV9CM5sIGcp4Kn20V/bsU6Aii7meEPdHjmVYH0j07YIG0dP9FzJNnNYlo8V7xqKhAOvoDxdpEkpVy0Qf7trL3GmISGwa+0TfQtBo9dU2XrvEhD8HzRWtqc0HE9RuKD0n3u5vqNwqw6ERxCfkg== 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=+k+bZnLmJz+9qzRK6FRbQBZKkvK2YVJRWu1DVhIt6vY=; b=J39EbU9SX7aDI/C6cUiAK5I0GvqBBBvIQ6VgvihPn9IrYc9dHxxbmKgQgDE2ZTo+sPR1l6ZjIWYF5p3hGqEaP/5jtOHXLuB31vyf4QxtGZ6ir7K8qjwPluuzDUjU/ZWrGWp0k8tpknQxiHllbsvHzBumX1z1aVZMbqNIt4zJSrDm2IRaq+UjU24JEw0tj3H76zU/qh5UKrnZ/t6fXZcGFkjoG6U5Udlw7jnh1dCYhNrbGq/GSxlGUxWo6OTUmqSysktbeXrLKWizgwho5u6GPq1hGV2wQ4FojnRaWCIw5e6Dx7qnGVM/MuoQbp2eV/3+ejtrcTyolqX/MEMPmxyDhA== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+k+bZnLmJz+9qzRK6FRbQBZKkvK2YVJRWu1DVhIt6vY=; b=qvFaWekPtahcU0VX+ZwE07dkglR/Up7g2bwBj/8Aj9nB/Flt3+Gutr4m2mWhovyaPfLYQysejiJ3Dy9GmvmFT+/Tuj9K5chTfbu8P0mHWLuXH8i0a9uTtWi2OSyG/j0rC917QGhcKmVgPBCoIQeqymgZy2/UQ6TN5VgquQ1aGZgm1gLwu9FD8EoQ41aGPeaX+YbdzQykLIud1RecAlpt/9ad9YhRhcHAs3Al+Q44X9q53++TBivsGa0te4kKWPgSfmD36M2oVfU94tYMmoQMknDuSlvK0E3y+2tN73bm17EyVtA+6O1Bk9FsME0+G33NMNGuOYpKy+8e29GtWHDsbQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:00:55 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:00:55 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:42 -0400 Subject: [PATCH v6 1/9] dmaengine: Add API to combine configuration and preparation (sg and single) Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-1-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=7275; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=NXX3wZLVHLdMncF3RB/2/LEEAsVKc1piFcsNx8qgrf0=; b=odHe+BxhBCP6XqvwgHNFtrEPqaGDDpAgBFsbmxghyYU3q/ZdEFjmLgfyoeVnOk2+9MdJIkof1 bunfyzWci6RDoT/Rpq3UHqcZludGVh2ReCfQewP0VcovkrvEU1A3mdJ X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SN6PR05CA0031.namprd05.prod.outlook.com (2603:10b6:805:de::44) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: a0fcef8d-7e08-4b4e-385e-08deb6bb43f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|11062099010|18002099003|22082099003|11063799006|7136999003|6133799003; X-Microsoft-Antispam-Message-Info: 15oHdwxFd4MHPCo8As4Gg8Luzu1uynqkY3DKApqHSsFow3PGd8hqbJPI04Sldz17LtdKD9d56/nLNGFk9dIsahh4+SKDcHl/pdmupoaFBp65tTxWB7acgiMG1dXO3Ds7RrjCSH4nEPxFu16PDVNqC4i7ydCxMg16dUSt3ZvoS5IY6J9T5sVG+QV5lKvJ3u00RN3KJPkajhuALWmLePKrRmox97r387SfRWuI1mVBy1wfSX2hiJ1gFjdysKNhEoI116YiOn4iyIyNfUTJfnBDYo27JtB5gpTcbKoac8Ps5mlSSmPhx4uLQIVQdLHmd0Rji1rR6TKGCky3Hoh2tgkxhPS1v8cx/fbI1ViyAILtgp5WjI6O+myrvPO/tHDv+jys826ykbQMVctxbQmuK5GOmjlLaI2zEJPsG20QkbU7WEP/HYdLzVPNAVTzl88d6lyrzTE8PjKyieAGf19m2aX13lvvcA9tQdX+578YGxdO7HptmMK5GK6BhZbfHtDG0GFt2t3qUyqoNsTzPZG0vPkhWR6ju8LIxLLh0fY4/xr4Y4cZDKnoIJvemkwAJ4F8QCzAtKUb5fG2L6+Xw0dEwwVOnzMuuTBHUhPIiJ7Hx9p8ROM+coc95mQykdjn3IA+l+DeVTuHJJvNjZWxgFQaguKpGXJyKMGgYxx1m7mz42hNTOCnkmy1WcJcZ75Lz0ZtRXwmzWdAuS2hcMbdBfZhs11zZHCU2C+ymGQl2Vr8AuzAgMs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(11062099010)(18002099003)(22082099003)(11063799006)(7136999003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bCtjTXRXTjRQSmJqUEZrMVVXZXZBQjVvZlk3QUJlQkVGUXhVeExtK0ZkQUM5?= =?utf-8?B?Z0I2bnBuNVJydUJFRTRCMXBDMFhxQ1BEMDRnTUdwODNRVUJjWmt5S28veGRT?= =?utf-8?B?blhhM1JOVTg1NUVQMWVEU0d1YTRpZDFiVmJFTERYM1hWdEVQUC9iODF5Y2xo?= =?utf-8?B?VURKZEtwWHpUNldBZngrM29JcnEzYjE0eStGdEk5ViszeE4wWno0ZXVaR2No?= =?utf-8?B?L2ZvTWxmY0VoYkdoMmNmeHRkdVJnS1RnL2ZYYXo3LzNCMGpsUXZtY25vaGta?= =?utf-8?B?N1NOdW4rWEk3U1VkRDV3Vjduc3hFR1d4ZWdTRmFxMzdIU3FNWE0wOE00N3B6?= =?utf-8?B?VUhwNU5FSHo3b3lYR2ljUU05bmRUM2tPY2JtZVBKZVVCQnk2V0FNcmxVSlVZ?= =?utf-8?B?Y2VodWxWdktlcnF2U0xiSmk5NUhVOVFrRG8rVmVON1p3SGZQejJxS3RaNkFi?= =?utf-8?B?eUQ4V3B6ZDA3bG5VZlVkMWdvVmdSMkJKZExOTWpDdUlzQzRaVTRPaFhmS0sy?= =?utf-8?B?a2VsRWNuTDhQcG54cG1NV1l4ZS91TmJOWEpRc3JrZjFvZEdmZ0R1ZFduYTJv?= =?utf-8?B?NXIrcFJ6Uk5PeFAwcnZHV0l1NHBoSHNjSHNnM3Z6WWJlZW94K1JiTmxsZlZa?= =?utf-8?B?RXgxUk9SK2hxbW1ocjFoM2JCV0tYa3J4ZG9BYjFuVkpYUTBmeGNjS1BZdmlF?= =?utf-8?B?M21jWUNpSURaMlR3dEpLV0NiVkdrMksvUUNBWllSM2lMMXR6ZC9UTEx4TDFH?= =?utf-8?B?RVVPS25GcldpOEVuaE1WU2cyaWcwUjlpUHhDMnUySUpnYkhyUHNac3g2WE1Q?= =?utf-8?B?emZ6OHBBU2Z6N1RqOW9YMHQ5WFZ6Y0xJeTlRa0pxMDRjbHNSWmY3QmkzOXRO?= =?utf-8?B?VFR4eUxZMklOQ0ZHZm9KR0ZkN1YxNkFqR1I1eHExWUt5M08zWGxLOTM3bFRD?= =?utf-8?B?MTVZSXdQczFQQ1lKQ1VtdTFSSDBnUEgva1hCNlh1U3M2cWR4TEhhVEUyZ0lk?= =?utf-8?B?T2FUYWNqNURLNjN6QWVDbndub0NjOFcwaDFxNWIzdDhEVFZhNTVTdXVPLzlJ?= =?utf-8?B?Qk1PRHFoWUM0dzhxUkg2UFNkcVZnSG0wSHJDVUNjb0NXTEl0NDlSNmFxMXIz?= =?utf-8?B?NWJJZDZYLzFMcFBYb3JXaFdnTkVFaExPZjZvL0JZMUVPOXFwaHNIakpTbGdk?= =?utf-8?B?Ti9UV3RFNG5SNG9RK1pScUVPQjNZSkpXb2crM20wU2FhYU95ZFY3Szh5d2Ez?= =?utf-8?B?bVZXcEtSQnhzeXJnZkxwYjhkK2ttNWV4VVlRRXIwemY0V2J2OGV6dk43TlEy?= =?utf-8?B?RG9KMDVLbFVLajZvU0puM1JPdzVrQUNwTm1WQWJVN3BlR1BNZG5uZ2Y3SHdt?= =?utf-8?B?YjBTa3VjQW9LMHhHZy9yVHU5WklWY3JodEt4S09reEMrNVJLM3pqTE4xeExz?= =?utf-8?B?UDEzSmhITEpkaVYycEwyREozMFg4UVpHZFJ6cXg2R1RUaGdjcGlLRkhodjYw?= =?utf-8?B?ck9SQUdCUm1BVjB1NjE1bzBtc0cxcUNsSTRBaHRmOHErSW4remN4dW9laXA1?= =?utf-8?B?OW1TMHNma0VMSUVSSkQ2dUpXSUoxQVRjZzRoQXRVb251VkxibmpvbU82Nkpk?= =?utf-8?B?WVRnb29MV3hkTWJOeWVuenNHbDZVUmc4cUZQVmg4VGpJL0MyZ3JJMUZOby9G?= =?utf-8?B?a3U3MHptVFAxZ3N3VE9jOTRCUDJLbDNGYXdkdUhSWXYxLzZ4bUhpRThPemxF?= =?utf-8?B?dk9WWVhtbHBmZkFxVEZBSEJSaDMrZFlhZXpJQ24xT0dTZG9VQ1BybXZ1T2hQ?= =?utf-8?B?ZUF5MFV3UGQvdHpMd0k3MTJqZGRsZkFmem9ZUm14cFFjdEpEV0RZVWx4Qjc4?= =?utf-8?B?ZDUvM1g3d2UxekFZQVo4ZHo5blJvWUc5dkI0R0dlYXRBTW1GTFliejdpK0JI?= =?utf-8?B?VjdOelp5Nk1DMmI5NzNxeXJmczNjeWtpL2JmendPTURMM3IraHI0RTdtd2pI?= =?utf-8?B?WUw3c3VrNlpGMEVnWVdjUEtUNVlDT1U0QnBBTGgvbXFCTzg0S3dYWGxaY2h3?= =?utf-8?B?ZFdyWWpHZjRrbDRHYm1WYW1lR2o1NlA4MXFjUkpMeDdlMTBqci95cTB5T1dD?= =?utf-8?B?MmczOHhSNGJlSmkwK0trR2txSk45aVY3WFJPZys2NXQ3SmRkNWhsMVlaMjJz?= =?utf-8?B?ZHROc0plOE5uWnFzU3BMZ1c2TnVMV1RESkkyUHJrL0xJaHVUUEZjZk0xT01Y?= =?utf-8?B?Lzgvb1ZEZ2RmSDUxTDJERjVuYnpTQkNVaXRkSGxhck4zSXpDTmZ2UEJBbXcy?= =?utf-8?B?S2JHU3VMQTNtNXlHSXdNWE5PUnZKTWVqamhDNDB6VUoyRmlrMFVTeU80ZUd1?= =?utf-8?Q?K3AXs9en/jUywJkM6tvAQm4oeAkJFjW9Q5gqC?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0fcef8d-7e08-4b4e-385e-08deb6bb43f9 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:00:55.0564 (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: pp/ihCafiUZVaZPr6zkurDTbx1PfcS3375OTOa35dCEO4mt6ZMZfF6V00lUp9Yp8wyGvD837+PsVGN6xdUTDM6gZsSK/9KxUFYYy3wXVR1XrTBbbo0ULTxMmFHsbdTug X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Previously, configuration and preparation required two separate calls. This works well when configuration is done only once during initialization. However, in cases where the burst length or source/destination address must be adjusted for each transfer, calling two functions is verbose and requires additional locking to ensure both steps complete atomically. Add a new API dmaengine_prep_config_single() and dmaengine_prep_config_sg() and callback device_prep_config_sg() that combines configuration and preparation into a single operation. If the configuration argument is passed as NULL, fall back to the existing implementation. Tested-by: Niklas Cassel Acked-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- change in v4 - drop context in device_prep_config_sg() change in v3 - remove Deprecated for callback device_prep_slave_sg(). - Move condition check before sg init. - split function at return type. - move safe version to next patch change in v2 - add () for function - use short name device_prep_sg(), remove "slave" and "config". the 'slave' is reduntant. after remove slave, the function name is difference existed one, so remove _config suffix. --- Documentation/driver-api/dmaengine/client.rst | 9 ++++ include/linux/dmaengine.h | 63 +++++++++++++++++++++++= ---- 2 files changed, 64 insertions(+), 8 deletions(-) diff --git a/Documentation/driver-api/dmaengine/client.rst b/Documentation/= driver-api/dmaengine/client.rst index d491e385d61a9..5ee5d4a3596dd 100644 --- a/Documentation/driver-api/dmaengine/client.rst +++ b/Documentation/driver-api/dmaengine/client.rst @@ -80,6 +80,10 @@ The details of these operations are: =20 - slave_sg: DMA a list of scatter gather buffers from/to a peripheral =20 + - config_sg: Similar with slave_sg, just pass down dma_slave_config + struct to avoid calling dmaengine_slave_config() every time adjusting = the + burst length or the FIFO address is needed. + - peripheral_dma_vec: DMA an array of scatter gather buffers from/to a peripheral. Similar to slave_sg, but uses an array of dma_vec structures instead of a scatterlist. @@ -106,6 +110,11 @@ The details of these operations are: unsigned int sg_len, enum dma_data_direction direction, unsigned long flags); =20 + struct dma_async_tx_descriptor *dmaengine_prep_config_sg( + struct dma_chan *chan, struct scatterlist *sgl, + unsigned int sg_len, enum dma_transfer_direction dir, + unsigned long flags, struct dma_slave_config *config); + struct dma_async_tx_descriptor *dmaengine_prep_peripheral_dma_vec( struct dma_chan *chan, const struct dma_vec *vecs, size_t nents, enum dma_data_direction direction, diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index b3d251c9734e9..defa377d2ef54 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -835,6 +835,7 @@ struct dma_filter { * where the address and size of each segment is located in one entry of * the dma_vec array. * @device_prep_slave_sg: prepares a slave dma operation + * @device_prep_config_sg: prepares a slave DMA operation with dma_slave_c= onfig * @device_prep_dma_cyclic: prepare a cyclic dma operation suitable for au= dio. * The function takes a buffer of size buf_len. The callback function will * be called after period_len bytes have been transferred. @@ -934,6 +935,10 @@ struct dma_device { struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, enum dma_transfer_direction direction, unsigned long flags, void *context); + struct dma_async_tx_descriptor *(*device_prep_config_sg)( + struct dma_chan *chan, struct scatterlist *sgl, + unsigned int sg_len, enum dma_transfer_direction direction, + unsigned long flags, struct dma_slave_config *config); struct dma_async_tx_descriptor *(*device_prep_dma_cyclic)( struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len, size_t period_len, enum dma_transfer_direction direction, @@ -974,22 +979,44 @@ static inline bool is_slave_direction(enum dma_transf= er_direction direction) (direction =3D=3D DMA_DEV_TO_DEV); } =20 -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_single( - struct dma_chan *chan, dma_addr_t buf, size_t len, - enum dma_transfer_direction dir, unsigned long flags) +static inline struct dma_async_tx_descriptor * +dmaengine_prep_config_single(struct dma_chan *chan, dma_addr_t buf, size_t= len, + enum dma_transfer_direction dir, + unsigned long flags, + struct dma_slave_config *config) { struct scatterlist sg; + + if (!chan || !chan->device) + return NULL; + sg_init_table(&sg, 1); sg_dma_address(&sg) =3D buf; sg_dma_len(&sg) =3D len; =20 - if (!chan || !chan->device || !chan->device->device_prep_slave_sg) + if (chan->device->device_prep_config_sg) + return chan->device->device_prep_config_sg(chan, &sg, 1, dir, + flags, config); + + if (config) + if (dmaengine_slave_config(chan, config)) + return NULL; + + if (!chan->device->device_prep_slave_sg) return NULL; =20 return chan->device->device_prep_slave_sg(chan, &sg, 1, dir, flags, NULL); } =20 +static inline struct dma_async_tx_descriptor * +dmaengine_prep_slave_single(struct dma_chan *chan, dma_addr_t buf, size_t = len, + enum dma_transfer_direction dir, + unsigned long flags) +{ + return dmaengine_prep_config_single(chan, buf, len, dir, flags, NULL); +} + /** * dmaengine_prep_peripheral_dma_vec() - Prepare a DMA scatter-gather desc= riptor * @chan: The channel to be used for this descriptor @@ -1010,17 +1037,37 @@ static inline struct dma_async_tx_descriptor *dmaen= gine_prep_peripheral_dma_vec( dir, flags); } =20 -static inline struct dma_async_tx_descriptor *dmaengine_prep_slave_sg( - struct dma_chan *chan, struct scatterlist *sgl, unsigned int sg_len, - enum dma_transfer_direction dir, unsigned long flags) +static inline struct dma_async_tx_descriptor * +dmaengine_prep_config_sg(struct dma_chan *chan, struct scatterlist *sgl, + unsigned int sg_len, enum dma_transfer_direction dir, + unsigned long flags, struct dma_slave_config *config) { - if (!chan || !chan->device || !chan->device->device_prep_slave_sg) + if (!chan || !chan->device) + return NULL; + + if (chan->device->device_prep_config_sg) + return chan->device->device_prep_config_sg(chan, sgl, sg_len, + dir, flags, config); + + if (config) + if (dmaengine_slave_config(chan, config)) + return NULL; + + if (!chan->device->device_prep_slave_sg) return NULL; =20 return chan->device->device_prep_slave_sg(chan, sgl, sg_len, dir, flags, NULL); } =20 +static inline struct dma_async_tx_descriptor * +dmaengine_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl, + unsigned int sg_len, enum dma_transfer_direction dir, + unsigned long flags) +{ + return dmaengine_prep_config_sg(chan, sgl, sg_len, dir, flags, NULL); +} + #ifdef CONFIG_RAPIDIO_DMA_ENGINE struct rio_dma_ext; static inline struct dma_async_tx_descriptor *dmaengine_prep_rio_sg( --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9363B3B5826; Wed, 20 May 2026 22:01:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314470; cv=fail; b=n2vVK2w83vBBrq5eT3KLVvPAtfOX8KjEikAyiMTuppC2iaGkL53w8anr+DwDFTokh70UgUmrynQ0a43bxAmRP+b0M5TEQ1NaETrxLfDHcktDK44i12RYGId5nJyeyKWfL0aEVh79ju+Qe8qPUsR2gZotv/Z+YImtYg3UTKzb1Pk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314470; c=relaxed/simple; bh=IPs530ljxyZEklWA6fCKo4SPitNmyLEzet1kpmM0cyg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=kdr4EfghSMWnQ5CMyCgGZHsoLprgy8iSRWwaiWDixpiuzBV1rri4X5RQxyqToOIxqajGSMpQ6klKjChqH3XEelRrqC4S5saPgIjuujam+3KmzOD3Cw0q+2zWsTMZsneKawacn0DoCFF4Xz6AssVz06/N0c3IjRzUCoH3+U+1GPE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=V8ZfvM3K; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="V8ZfvM3K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b4Y1UKL4TF2knxKiyKK4uRNk2PYO7in6ler3XDrdUtEiCdZN+AykeM5K7SrI+QwHhT8QYsD4pRGIY1Hrdx2bnvD3IoiNI5GPv81h30Z1752JDGTKFd21ksErJXyaE2RT+ThCpZo0Kxyj2Ku7OxJEU1qdluSfoyDqsye3rJDmJF6tYBHdiIIboyCTBoW6+lOaRi+4LUxnrV52Jqgp45j1cGuyeDPef5vuPftIlyx2pQW7SxqluM9NfLippT6SBHmRfhZMfVCJ7FFNwC+llM5c+7N9BpGj3vrZhFpquSsdLh9MhEanzzwv+QZuKtY23JppSqyN63ecA3T0SsWosn50ig== 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=4ktn4yDDK+X3BcUkupV/7FBh4aTe/41UXRom1OC5H5c=; b=Li3fdwBfCLlDzTEFREOghnltZhHlkJf2Fadgh+nduQHkp+xeTNYNA/GHNyhB87G7L1vv4cm8dSKrtZaskUjq8NRgq2aTKhmVWxZlJYu+Iaj5mQeLoIFTnm2+Ai76qr5E+5mIBPTepv1C9XC2D5u7AGK/CCTtZtHaY7P2k05aF8wSYKxI/debUTnJJOrApR2m6YNJjRhX/YL0xMtwqy2gPI1YAKQWb7VtnsA0bWST93rWsB9qUA0t7UNvXwSApmvaBQqZoLTlDst4up25GNZJCWd2u1qgLujr/YcklnRazLBrnNrrtCRuUkm7uWryRV7eRZ/PAypAWPrUEfrPbl6REg== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4ktn4yDDK+X3BcUkupV/7FBh4aTe/41UXRom1OC5H5c=; b=V8ZfvM3K4ZjHZ/P+KquRWwuU/0f6p/ZtsbCjtEO8FELVVffxK5wWJuZcvp1r9VXYbeHFu16gvmKOx5ksYkX1D7gPCs3CUrXy09icBn8//UaS7J1jtE7z3cNiHpKOsUUtkb6f0gR91nH121ElsUL9EEnCpq+7XLnh5DdNXJikGBkcyA+06pt9cW5VA22SXdQKFY0tTxgcc3SkfSeHtHwlgmvwRyTrTX3+0CA4LRG7z+xWGZQKE5S6mX5yPuLwR29n6D4iDFXakW6RuD5NHzbwNKTpjQz7XoTeZ9UqZ4QrPDYILqmf6AFOt+ApUrqWuCrtgqW4UbsJbn79fVbirX1aFg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:00:58 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:00:58 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:43 -0400 Subject: [PATCH v6 2/9] dmaengine: Add safe API to combine configuration and preparation Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-2-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=6305; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=uyPouf7iyzCcucDvUuV8ZtysqANoCh3TR/YpsX4alSI=; b=ngtZq9I90mmbIdnupiXwC7GVOw4pdjdeubZzsnNM2COERXHnq7YmJm0nQKoxo5+le1tmklGip ZINGEdDTxvpAeNFuv2SDbzo8sB/zi3Y8fafSB2evT8CmBR/vubtOFKt X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SA9PR13CA0114.namprd13.prod.outlook.com (2603:10b6:806:24::29) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: cd160737-5b14-4139-cb59-08deb6bb4616 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: HlI0IevGY9AvhaRsJMO+ofVyC5oZOXNHqhaB23UZUpXUi7gzWNr/BKKjhikHxsTzUIgz+zmtPmcpggNbEXwxf3uNgJ442fc3NmercTlL7LqLQdRss0DGtYvnLkv7I7U2ldV2246n5uFChnq//ZruRVuQvaE6YJMhJMbnzfdzb2/yOS29czvGTiVF2j3AcGUkEUyfiU7we6W5Xksv5tgxdrXw/YcqKN1K1INTsvSz0lCOa76iy8f11dixRp5J05UJQPVL9+bMWggk61bogowR0Dc9S9cmeGhxfsF2uSjA1dC/M+zda7wB5jwoK9t7q4Yj5Bt+IhXhsMDlfh29oqool+e8VF07f4TkguuSkQ59eQ5SSGtBvBP56+v6p+dbZ9mrfiZsUeDpIsW674dDEiXDOtoG2SVmF3Rg4HGXFSDx3NNVu2PbcdC0MAQBq68fHoYMApbcwGIcTvwL6+K9ZFRANtIu9dHpN4STI0xIiE79Y7nDtEa8FUvFSwHy+HCS+58jQAz87HkqqbEJpm5K6Xso2825mgjsfPPE9XcjUC3kKBLMk/xww17/u9qazttJRwRy6i2I3GHIZPkjfkFOFcPTVsP4QtT9dlau5Y+cl1CiC0RDC4S6B0vDZoDeJcrg9RODElC8mqdPgJ1Tdj26eB69bH/DDiTmcfRv2JTc+udEA45tIQ/5j2sPtRFt4NoTonWUcup5QQsSEPZt3+q41HTpf1TC8kN5JBeFX0sukXG5xYg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?b0IwVWNnbExQKzZHYjZ0enVOU3A0S0tTUTFPVFBERVprYjRYSVptdFRGT1hj?= =?utf-8?B?ZlFTREdmbXJKVGJNcTRVQjRHSGhDajZHTGUwWE02RVlESTZLVEs4UGdlMWlV?= =?utf-8?B?M0tvWktWbHFxZHVlVVJ2cU5VSTBjUkp6K3A1ZGs3QVFQaUppSXFBaSt6K1ZL?= =?utf-8?B?cGYyOGEwSGdqQjZzMUlkcVA0RlpRQXFMbTBHdDg0ZTZUUlhQNUdGeHh4OEw3?= =?utf-8?B?NmNrMlFnZGhrWGpBOTIwdXVFMFVIOXhldkRvR1FNN0JUUnl1MDBJNHowcitt?= =?utf-8?B?WUNyd3ovb2tkQmwvcFBxY2VvTXBpcFFqY2ZpSHlxZE52QU5MbVVxVndzZnlG?= =?utf-8?B?Z1oya3I3WTRyeDlwQThDcnNweUxDakJjVDNaU2FqZmgvRjllM1ZCK1Y2MU53?= =?utf-8?B?V2pEa3NvcVpIK29CT1JKaFdQc1JhTU4zOXhLQXlHQ1ZuRkNCR3hnamNLaXo1?= =?utf-8?B?UFV2UmcyZndHa2tiZmdLWlZieFA1cGRUb01vWkFlYW8vZ1FVVUNTalBLMEFH?= =?utf-8?B?TEJ6Vzgza2E5QTJvVEdOazhZaVVtSlNxa3RCOGxObU9TNjZ0dFQzdWw1UHQ5?= =?utf-8?B?MXNXSU1KaTV3ZFR0THpYaHAyZFRsdnJqbk1xRGY5cnNDWkMzNnl3SHBQZXdm?= =?utf-8?B?ekhneEJFSk50aDdoMjk3QWVwajZxQStxTUU1RzVreis5YWgwYncrZ0gzbjJ4?= =?utf-8?B?NVFOMWs5V1FmRWJMTi9uVnBvZHluZEdIZ2VEY2ZWOCtUWG5yajcvVGJ3akFV?= =?utf-8?B?YmFMaVdYY1orU1JNbjhsZTBId3lMemljTFZoSTJ3Tmw3OEdpVFY5TGVwQjc2?= =?utf-8?B?a0Zpd2ovbTJsSmx1bmtEUnJzdUVhRi9oNGdUYkJaMVZPMG9EMXd6SjdPazZq?= =?utf-8?B?REJ4Vy9iUXgybUxscUVjdG05c1BVN3NMSTdMR2VhYjU1VjUrSFl3K0JxeHBl?= =?utf-8?B?Q3l0b1p5S2FidEJwL3g1Q1ZaWkdBMW5vTVMxRnBoWEUrMndDK3RKeDhqZHl2?= =?utf-8?B?eGFSUzEydVI5ZG9aczR3bWZmSE0reXNlQzg0cHVFU2ZPSG9vR1V5UzJ5Z0ps?= =?utf-8?B?dmZ1aVcyY1FFL282YnA3L3MxTlJ4eVpuL0YxSk5OMXoyOGJCUUdjMnJVODMz?= =?utf-8?B?OVc4cGJxRStEN0NJVENYV0t2SzlaY2Z1TWx5ZXpaR1R4N0tvQyt3RlJWaElJ?= =?utf-8?B?cXErWHp5eU9DdjdadDhKUXM5aU5HT1ZuQkUzbS9BVW81eWZCc2VjWGJyMDh6?= =?utf-8?B?aURIeG52ZndqZm5WUTB6bERkT1VDdGFvRlZRVTcyMWcxaFVqQll0L05CQVVG?= =?utf-8?B?OE1rcWpKdnJ0QUl3dm1nUDBZRWtBc3R1SE1oSTdiZ1lHTXU4NzJCd09QNlA2?= =?utf-8?B?VGltWnpPMU8yNmZHUFlWSm1BUFV6SkFKaTNHNFZyeUFkY1ZtWjNiUGJlNG1T?= =?utf-8?B?d0k5L1AxdWQ2YStpUVNKeHQrcUJoaDBDWGNwUitkVUp3TnAzVlM4L0NOek05?= =?utf-8?B?emtXdXBTdXdWd2x2SXJQZnRWMEFzUVlzU0l6UFlLbGQ5OXdCVFRjb2wyVVRU?= =?utf-8?B?cFZUcmlZVjV4SS9kaWZzSjZhRS9QcXNMVlJreEI1VktDM0FhWldmZG9xSG1o?= =?utf-8?B?Q05veXlSSGtVWHgwSHdPWFRGajJxQnRRenlJNjI3bHpHT21ya3RJcVo5YWhF?= =?utf-8?B?elNKK2IxeXFXbUxiQ3A4SVdaWmtKOFluNE9oRTZqQThCVnBwRmtidlp2QWxm?= =?utf-8?B?Q2NBTGE5UzVaMjhZLzUzbWFvVWNZdnRTQlhmTVdkT1NjRHR0cllNVDVpdHZn?= =?utf-8?B?b0RuQllCZWo5UklCdDdrT3dXOUJnVGpXUVpxNm5mMzFLdHFVb2FjWmQxOExh?= =?utf-8?B?Y0oydjFLZlZGOEE2aVR6MVRnQ0lhZ1J1Zjkvc3NQZis3czNoWUFNc2x0VUFG?= =?utf-8?B?VUczeERRWVV1UG5wQmdqQ0daSGJyMVBnMFdVeXZmcEtjZjgyY2wySXg3UEtI?= =?utf-8?B?UXlzZWRzTElkeTJEVytia09MWXIrd0ZSUGRkMzdEdkJDczhSd0JlMGIybmJz?= =?utf-8?B?VU93RnEwaU9ISzk2NVpWMXdSWkJxZ1VrNjRJbDdURnlBUUdUVFpWd2c5T1RI?= =?utf-8?B?OGwzK2VnVzNaby9QNHJ3ak9xd2dSSGZqOWRQNktpa21Mb0MzcTE5VDVxVEY4?= =?utf-8?B?RmRWVzRtYzBxWHZFSVBWOFhlMjVXRUxvNUZ6ZXBlOFo4bGh0aHdySXBNWkts?= =?utf-8?B?T1pHaEljZ1cyQWE3N0ZZcjJ4SVZ6cERwaE1FK3doM0tDSFJMNmpzVklXWG9t?= =?utf-8?B?TUVLS2JvNzU2cFVhNmFOaHcvR1BERnVvaGs3bVM2NzBpOExML2p1clVMRmhT?= =?utf-8?Q?7P961oubdMvUUtVIVQYA/JJWEOW55b3JDpqsY?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: cd160737-5b14-4139-cb59-08deb6bb4616 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:00:58.6102 (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: f88UsbjlGb8+214/FkyPtah/A0WMOH5uQvl2dTHnFpZ4vdAQxcdYDs4OdW+7pppqCNn2n8E+TBoYq+6XrmKldTKdaTqu2RgR6IDj4MV+o5ivWnleM++9Gn8WPQEatkrU X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Introduce dmaengine_prep_config_single_safe() and dmaengine_prep_config_sg_safe() to provide a reentrant-safe way to combine slave configuration and transfer preparation. Drivers may implement the new device_prep_config_sg() callback to perform both steps atomically. If the callback is not provided, the helpers fall back to calling dmaengine_slave_config() followed by dmaengine_prep_slave_sg() under per-channel spinlock protection. Tested-by: Niklas Cassel Signed-off-by: Frank Li --- change in v6 - replace mutex with spinlock in commit message - use spinlock_saveirq according to AI review results "The documentation in struct dma_chan notes that *_prep() may be called from a completion callback. Since completion callbacks often execute in softirq or hardirq contexts, if a thread calls this function from process context, local interrupts remain enabled. If a DMA interrupt fires on the same CPU while the lock is held, the completion callback could attempt to call this function again to queue the next transfer, leading it to wait on the already-held chan->lock. Does this fallback path need to use spin_lock_irqsave() and spin_unlock_irqrestore() to safely disable interrupts? " chagne in v5 - remove reduntant lock commments. - use kernel doc to descritp API chagne in v4 - use spinlock() to protect config() and prep() change in v3 - new patch --- drivers/dma/dmaengine.c | 2 ++ include/linux/dmaengine.h | 86 +++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 88 insertions(+) diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 405bd2fbb4a3b..ba29e60160c1a 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -1099,6 +1099,8 @@ static int __dma_async_device_channel_register(struct= dma_device *device, chan->dev->device.parent =3D device->dev; chan->dev->chan =3D chan; chan->dev->dev_id =3D device->dev_id; + spin_lock_init(&chan->lock); + if (!name) dev_set_name(&chan->dev->device, "dma%dchan%d", device->dev_id, chan->ch= an_id); else diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index defa377d2ef54..6fe46c0c94527 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h @@ -322,6 +322,8 @@ struct dma_router { * @slave: ptr to the device using this channel * @cookie: last cookie value returned to client * @completed_cookie: last completed cookie for this channel + * @lock: protect between config and prepare transfer when driver have not + * implemented callback device_prep_config_sg(). * @chan_id: channel ID for sysfs * @dev: class device for sysfs * @name: backlink name for sysfs @@ -341,6 +343,12 @@ struct dma_chan { dma_cookie_t cookie; dma_cookie_t completed_cookie; =20 + /* + * protect between config and prepare transfer because *_prep() may be + * called from complete callback, which is in GFP_NOSLEEP context. + */ + spinlock_t lock; + /* sysfs */ int chan_id; struct dma_chan_dev *dev; @@ -1068,6 +1076,84 @@ dmaengine_prep_slave_sg(struct dma_chan *chan, struc= t scatterlist *sgl, return dmaengine_prep_config_sg(chan, sgl, sg_len, dir, flags, NULL); } =20 +/** + * dmaengine_prep_config_sg_safe - prepare a scatter-gather DMA transfer + * with atomic slave configuration update + * @chan: DMA channel + * @sgl: scatterlist for the transfer + * @sg_len: number of entries in @sgl + * @dir: DMA transfer direction + * @flags: transfer preparation flags + * @config: DMA slave configuration for this transfer + * + * Prepare a DMA scatter-gather transfer together with a corresponding sla= ve + * configuration update in a re-entrant and race-safe manner. + * + * DMA engine drivers may implement the optional + * device_prep_config_sg() callback to perform both the slave configuration + * and descriptor preparation atomically. In this case, the operation is + * fully handled by the DMA engine driver. + * + * If the DMA engine driver does not implement device_prep_config_sg(), fa= lls + * back to calling dmaengine_slave_config() followed by dmaengine_prep_sla= ve_sg(). + * The fallback path is protected by a per-channel spinlock to ensure that + * concurrent callers cannot interleave configuration and descriptor prepa= ration + * on the same DMA channel. + * + * Return: Pointer to a prepared DMA async transaction descriptor on succe= ss, + * or %NULL if the transfer could not be prepared. + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_config_sg_safe(struct dma_chan *chan, struct scatterlist *s= gl, + unsigned int sg_len, + enum dma_transfer_direction dir, + unsigned long flags, + struct dma_slave_config *config) +{ + struct dma_async_tx_descriptor *tx; + unsigned long spinlock_flags; + + if (!chan || !chan->device) + return NULL; + + if (!chan->device->device_prep_config_sg) + spin_lock_irqsave(&chan->lock, spinlock_flags); + + tx =3D dmaengine_prep_config_sg(chan, sgl, sg_len, dir, flags, config); + + if (!chan->device->device_prep_config_sg) + spin_unlock_irqrestore(&chan->lock, spinlock_flags); + + return tx; +} + +/** + * dmaengine_prep_config_single_safe - prepare a single-buffer DMA transfer + * with atomic slave configuration upd= ate + * @chan: DMA channel + * @buf: DMA buffer address + * @len: length of the transfer in bytes + * @dir: DMA transfer direction + * @flags: transfer preparation flags + * @config: DMA slave configuration for this transfer + * + * Detail see dmaengine_prep_config_sg_safe(). + */ +static inline struct dma_async_tx_descriptor * +dmaengine_prep_config_single_safe(struct dma_chan *chan, dma_addr_t buf, + size_t len, enum dma_transfer_direction dir, + unsigned long flags, + struct dma_slave_config *config) +{ + struct scatterlist sg; + + sg_init_table(&sg, 1); + sg_dma_address(&sg) =3D buf; + sg_dma_len(&sg) =3D len; + + return dmaengine_prep_config_sg_safe(chan, &sg, 1, dir, flags, config); +} + #ifdef CONFIG_RAPIDIO_DMA_ENGINE struct rio_dma_ext; static inline struct dma_async_tx_descriptor *dmaengine_prep_rio_sg( --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8D6B3B38A2; Wed, 20 May 2026 22:01:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314473; cv=fail; b=GS75crUkS/e+tb2QF/vcj5Get59Pc81tWDu3UX6WN/smvo6migbHvcx419t+6pMIqQWY+sxmNUsH5lH5PXf2zu6tNg8/S3N0BPITCRm7+kNd4uXgdefjuVW1/16dpUQHhNuCXN95ZbyKF/0a7r1tkB4UjYPF50a8wUxTPwJGK9g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314473; c=relaxed/simple; bh=DuNybtpG/IsX8qkRt2lVc3IqI6FNh5BvmqWuspOXgu8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=A5cy6SRraqfvx8AQBmeWjYsj/s/l/8LJSt9Hbq4atqIZRTuV//xSD6EX5Mh/X3n8IOVedMwFNXXICcMK1dJ0Lv1jwaC/ie+KBUqGre5eM7rGi8E+5C+0zXviBQ0/LSTCguPh9HBeZm1/ElOY6/O/z96CUKdhKtVHwuZ0piU0vvs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=UETwVWi7; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="UETwVWi7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cUCAHG+aR/BQd7C/8/uqtK7yfQvsarGN3uWoEIwH+Cv9SoPU3G5Sxx51BWW9Mel0Mez6kpcsUglDMFWgyV8kshhGDtfa1Wny9i9WbmFc0GSwjuM3a3H0x5W6uViqqvF7/rckxyOrdGNfZP/oo/i9tn3OQhjYw85w+l57ikHJtQ4ovihKwKWUVsdL9qnKDYq3h+DkNlNi1vBhIHoFpFLCzhbUb1EgjdFYmBnRqZt4NfDb1aK45IIDcSkmJIlYu19wZpJC8WKafkfOhoUQ5rGBLxa4Jq6rS+d28+Np5K2LNUTs32WZR2JV8xl0EbdHdn9MXNp3qieORGalvLvQWafaTQ== 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=OCLQm9FMKtJMjBMaBxP7B2O2if8dRGJIhhVeRDVSeRY=; b=w7OS5jCLo46qQu5uqeHPYtU/KKfgE3ZGuzNIYAfc2Y9+b1xmKfcOMSxcn1h81dRtanTB/v3cPxZk7838esDlkBvQu94VnlGm4r88U9Lm7cTL4gqNwuBnCiZJHlfPMblh5a6TWvx8O1ieJ/EJ540fH85WtL4aZ79uC3yWXvokZE8mDubLJI7l6CDz6BzmxCyowo+OJy6cX5zjA0n2k1Gh2LAnXnIfkfE38nL319LxFRTzeNydTvQ+zsH24ydd1VuOcspWAub+3ZWpW9r+2GPErVTOssR5TgZ/QPEXC+Pl5Ai4LPHPla/sIXF8qhE3X87hZ/3F5abNu2677Nohh2Q3Ug== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OCLQm9FMKtJMjBMaBxP7B2O2if8dRGJIhhVeRDVSeRY=; b=UETwVWi7CGXqwXiPFIHhqX6sTvV0PfjNOcfY7QTyOut3dv3Ga3z+Tsx1EnAXzvIcTL1/X1UUjfyb0rWWpS+SeEtA3SiKeTGRvmuK9zKexFeFis0v2Pc50ydQv91ali3vafuMz9UVW3K5G7EXNJzBWMaRNOzAYg0ONgzTs51ngGHMkkKK/nY8Tdpb9itW72bLJY26NdsubQrBKnjhfVNbtPAzhh9dn4gmrLykoyOoyVYRXlcMvxE+ldrDKygVree9e8OLSjnsTEeX1uv57n860611c47u2HDDyjP6UYGsX5CL2Z2Hk6DSUMkZn0xRExQJYxkyt6II59tZAh9RFmgZCg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:02 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:02 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:44 -0400 Subject: [PATCH v6 3/9] PCI: endpoint: pci-epf-test: Use dmaenigne_prep_config_single() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-3-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li , Damien Le Moal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=1239; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=4g4bYv7hszCtOOju+tB1akaHeHJJOwC1TTsFpz2HVcY=; b=fc7m9kKimcY6B0VG8c0yUVKPV50cEk1ue69SeZd7Jmj+8/Dn+XfVUyeQCQW6U2x7AFEYW8JKW QfA2dWBuEgNBB0MqkCpDmnUZco81GVTQ4YEnPhF9TR1uu4wDlh4uNVT X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: SN6PR05CA0005.namprd05.prod.outlook.com (2603:10b6:805:de::18) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ca1a6b4-3fa7-41e2-1649-08deb6bb4855 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: Dlm4h8EArTiRoT30X4dztu5botP1aPyBZ6+iAglprFfF4eiRlENBVYzjMGaI6nDMAATu3HqLL9GVl10yLvWsocf6IItL497sivPClJjz3YyiebkznEGUer6zKL9TTCOyqvn3BtNcI2qT03j7a5eCGYDLoBo9x04QD0BJT4UNscHD26/u064Ykd56yIBBjDD/k/XenzaWuBslyNc+IT/DDYdOKgIj19+9PZqzsmcj8QgvkbQVtmzzi7DFLZyVSdfbHgghVHa58C4TB1ZfOSo0YMmO+ED4B9+HHbVNkgHlak1RRihRqN5HlfQ/4UUohQWtJZj7/wDaPCI3DouA7km9BYDVjC/5QD6YOjBqtcCvPU8BlBjaiKFsxifMpcR1rTaq8BQbwgwW71q3sUeMheiGoBUrfg4bry2CAnySHi9Wh6qFyczcRuGln+Dq72QhLFzOHs8Os15jncZ29DnXeGF46a58AeknJm4iTdQH3xzJfE0vGDAIbZuqy2pX3RttmHAlr2dY0kTiSiI1ahttn/eEPgKr7gO2KDIBdx5fBr4ycESd77kP83zVgvnqH2uvX94rrIbp3p1u8T6cVWFnCEhvSgFiVFoKhmByS0pyme6aQ+G07hAUqGW8VOT6s1A1iT0255B7vFVhObNfrW1LzlH0i6v+tXWK3k5pDY7yzEKSuoiAsYzNjx7ZIX1IU/BBUyyE7CYCoJ9TYUvzwU2/CjQNj63xnQpkOufzWB37eDoRlxc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Rnd1WWxlQVEzR0tIYk5PN1VsZ1A2Rkk0WmdRS0hmTUFibFhCenlZc01sMUxn?= =?utf-8?B?TjFJUmR2STF3bjV2QTZIT1VxdlRockhJM2ZLUXNNK0lDN0JkVDZiZmVGWTFp?= =?utf-8?B?dW0zdXpLUTQrd1pBZ3RHNXhDU2pIRi9yMkxtMWJqc3cyMHRmOWo0Z0xKL1ow?= =?utf-8?B?QVF3VXBBTWNqSW5SaDQ0VGVObVdldm1ybVFQbzNwRE1pNTNrT25OaTBOczdk?= =?utf-8?B?Zk9PVW9SN2hQVHZuR0xOYVZKU2RyVjR1ZEdMZDAycjdCYThocW1YcUczNHVU?= =?utf-8?B?TEZXVmdMbnlua2drRnVTVVBYT3czclVMVjVFaEsrdWhBYlBjdzNjakVEWnl0?= =?utf-8?B?eW5Sa0taZzFYYUc0elE3M0dVdXlTa2tDeTVmSEVEd2hGbFZZUEFYdFBUakZt?= =?utf-8?B?aFQrRmgvTFdJUGRwMFZCT3RUWWFOc0dWbDMrNWMwVGJseCtsQkpJNjI5KzlQ?= =?utf-8?B?dTgyV0dYUDNBYzQ1bHFQdjRmNnk3WlozSWtCUjB0djR3d2dUcHVseGkxVHpZ?= =?utf-8?B?MkdBNHBqQ3BZMzl6WFNlbUVhYldzU3dsaHZpOEltNVBvNTl3alU1a1NyZXRZ?= =?utf-8?B?ZzVQcEFYNWdwWWIrNW1QSHllRzVGREtzbUpZbWdSR1g1QllLOURnRlJ1c1d2?= =?utf-8?B?L2JNRkNuazlZOUlwWUNhdEZnZVJ2WFJEQUNkV29vWjVQTlJ3My8yMi9CQUp4?= =?utf-8?B?WFBCSlhicklxdzNiNHVLcllBWGlLMkNsQVh5SHAxRG5aaWl3cmFwcUVSQ21Z?= =?utf-8?B?Z1grOU1VaVk2alZWS05lSXpOVWdYQ05jNlhqMk44R3VLU2pNWDl2TmdZYkVr?= =?utf-8?B?M3lvN0x4ck1TdmVxK0g2MVpaaEZvWnVSM2k0MDMyMmZZbkZ5NmRlYXNBcHhD?= =?utf-8?B?citBV0ozUzdUMnROYi9QVFlZS2E2L2VtTHQvd2dSSVpDdC92OGE1Ulp3QkMr?= =?utf-8?B?K1IzZTJ2T1BtOTRaTXByUk1vRDFnQVV1SzBlMkliSmRDNFRKckkrM09uQ05O?= =?utf-8?B?dFFNOW5iRVNvNWNxbmVhdWlYdHZzNE5IYWdCZVE3K3VlSllHTFZrcHFBZVd2?= =?utf-8?B?Wm1XazBFSjNMM3ZCaGxJcGVPSGZXT3lrVm5FOUVqWjFRY0c5TkpCM0pBTGQ1?= =?utf-8?B?WGVrTjhucmw1TldRNmM3NFYyNXVJWGFGK2ZNVnpLT2RYa0NaNVVGQm1RYmhl?= =?utf-8?B?VmwwbGtIWm9EMWptbHh0UnZDZS9Ma1ZoL2QwakFNa21TUXYrMXpOWVNsbk1E?= =?utf-8?B?M2d4T25Od1ZtM3doSjF6MW56YkQ5RUVVcW5DeE5JNkg4T3ViRVFFQmlsdHov?= =?utf-8?B?QmtmaXFFV2xnQi9WWFRVUUh6S0ljV1EraG5tMUxwUUhnQVl0MDNpc2NVVHBx?= =?utf-8?B?TnhrMkhDWGF3azAxZXBZWWV4WkVPNjZXaEwrMGo4QUJndUdpS2R3ZGY5UzQy?= =?utf-8?B?Q3ZWQ0JOSXpJUzcvczA0ZjBoV3hLRk84bDdXOEM5TEFxdWhPS2k5ZHFYZXZN?= =?utf-8?B?TFF1V0JXSk5pdHFaUjRvVloxTFh2bis4VnlDbnlwM1Zrc2ZiUXlQU2VPK2VU?= =?utf-8?B?UWNFaEk5YUcwa1FGK3d2TVFSNmpKZHNUd1hqOFd4YmhNczdXZkJDVkR4dkdB?= =?utf-8?B?b09Ca3VCeXVBdXdhM2FvRlkweHlWMklYWXJjN0ozV0Z5UlFnL2lRSHV0ZTVj?= =?utf-8?B?T3RtaW56ZDZ6MHB0Nlcranc2KzMxMkd6OXI0Ykt4RFBLR1E3NzJGbHlYUENi?= =?utf-8?B?WXZxYWlCcWtZYnhwSlBPeW14TmxqUzVuS3RxVVNjcFhiRkZqbm9pRldnTTdM?= =?utf-8?B?QjQvbkNwcy9hTG9SczNIdmRlMjA2SVFNcTFqUFdTWHlCRFQ4Z0Zka3lYd0xC?= =?utf-8?B?OEQxb3ZVVkhLQk5lQXhsODR6Mnc4RFRILzZEcHM1SDlkUGNJZk5HUTFLWDBC?= =?utf-8?B?ZTdaYmJqbThzdDZZLzlCd2szN2xrWTF1YVdWNVdTb1Y1NHRtcjFVaXJ4dGx3?= =?utf-8?B?cWMrQjN5eUdLVGNMbTZhVzFjRHpmUUxuK3dTY0hYMzRHNW5XZE5OQWFHaHdF?= =?utf-8?B?ejFOMHkwcWgxazBORTZwbjRYd0JxNnRCVlE5T1BhZmdTM01SdFJDYmhsSjRI?= =?utf-8?B?Y2t2WTFSQlZobVRTR1NSUDFwaWhDWXljRnZ5QmMrS1JwWVl0WEhWakFEQmNp?= =?utf-8?B?TU1OUy9tVURtWm4rQTQxdVZIU2NlYzloRG41aUFjb3JvWEFJZDExcStuS3Iw?= =?utf-8?B?S3l4V3laNzNKWFVKYWtCSC94amZTZjBRUXh4cHpWQVpkaW1lR0dLQ1B4QWNt?= =?utf-8?B?Mjc4TE9yZGFPMko1RWJtNzZ0M1dDWHpPNXZPOHdMZFU0QzJSMnVYWWxBNncz?= =?utf-8?Q?K3hMTfqT6Twm1lWjjVEhWTLiL+iK8YfvNhhXs?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ca1a6b4-3fa7-41e2-1649-08deb6bb4855 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:02.3841 (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: pgveHYg8SRuWTgVYbl16EGN3AL2G/UaouX0BWzwUi5/zzecQuB5v3c3HpkL+MxQFMR9BBGoACaTfArDqtejJMWIaxuwXU9cLwmN6KcNUQ6yj/e+ZGe3QSr2uRDCuAkHm X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Use dmaenigne_prep_config_single() to simplify code. No functional change. Tested-by: Niklas Cassel Reviewed-by: Damien Le Moal Acked-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- change in v3 - add Damien Le Moal review tag --- drivers/pci/endpoint/functions/pci-epf-test.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/en= dpoint/functions/pci-epf-test.c index 591d301fa89d8..0f5cf2d795108 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -182,12 +182,8 @@ static int pci_epf_test_data_transfer(struct pci_epf_t= est *epf_test, else sconf.src_addr =3D dma_remote; =20 - if (dmaengine_slave_config(chan, &sconf)) { - dev_err(dev, "DMA slave config fail\n"); - return -EIO; - } - tx =3D dmaengine_prep_slave_single(chan, dma_local, len, dir, - flags); + tx =3D dmaengine_prep_config_single(chan, dma_local, len, + dir, flags, &sconf); } else { tx =3D dmaengine_prep_dma_memcpy(chan, dma_dst, dma_src, len, flags); --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A64033B4E9E; Wed, 20 May 2026 22:01:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314478; cv=fail; b=qGPplX3FII+4z1e3b9Hs9aZmUrVLaNsFElOkojeRqEiVZVU66cQHnMR6/MpzUH2xjO6IJNVcrEPqgJkVSrHP07WYKEVe9mqA+JsOU26WdrDsZWfNcW3hQIe9T30RSLCyenyBU/YAuNJckb+kaABVfeHYEx2UNfNhoaGHvQVAs2I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314478; c=relaxed/simple; bh=4oynAX7QP0LSKBL9MNdn2Qv38GBqghHuW6t+3Ylr9Bs=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rCLKtEYABtqvZrBOrIGy28m0yKR3s2NpXdGDckiXpNqAyN9Si53B9fKUwWz+yjLXhiopTWrQhAMVPKTw2onseMZGB6a5qv0gAxdoIJBsLGH+MFBiNlBGU2G1LUtR+fU1Pl6xR+ji4o7R1z6zDaZeMnLIOPmg4hUKHO6iqiMT1tA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=kNT8GzNT; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kNT8GzNT" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DaSeR4S/6b49e7bk8DVsbg3j2Y+CzQRh9Yipx7lAa/wO5o5/jFBxz16OG1CHJK9ntdDDNEMtkwzFbRwKzeAWCPRcvLSPba2GwKLyPqYbvmWdtluCyWXxfEd1TgjXF26ftkNt+jzlv/IN/KgpliLRik5aOucouXmxOj4PGZcRGhYKdBD0vBTwjCbMopmYxgjQEk4F0GBtApIz1saAoWxY/aJk2t71Yv9W6fLUyCvWZqgkJIO3fmE1swyAXARTMK2zGuFrmPzt2Sz8JFd9QpCc3732kI9ceIYIz2kpE40CaMJ3mosOQnH1rNyrVXC3X8RRbrHxmtj1AHJEqCvaSZjn/w== 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=qtGtmbxs22Dn6Sqp5hULlAlSENMMX8OuHSRQ3W0Zyq4=; b=Z4WxuqHqTjx1owljvq4ZPwhCJp1ybrXgv9Re8sW3F4mYPGg15YX0TCasZUvRS49TInpx5Svr9VyN0WW3W0GFWBVX5o2ss6jCTm02KMWNLN9sOV/B34I/hvUYgUUU85JnW7ZR151b5bBnGxW+s5X973iWOz9Hy5hR8ft1e85b2C0VOIn/dcrA0ey5+gCYH3ejsciUG2HrJezTQjMWAFwUEkmthX5NSGnYSUuBSpIkwiln4IP5GI28Chp8e8+pmxsBqevfZvSZAf9lP3Bci03ppjSOW+bFha9oHnszteu7tsfeDAZryZPpnaZOpMdclmftfjbyVgwowEOAID4BtbR19Q== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qtGtmbxs22Dn6Sqp5hULlAlSENMMX8OuHSRQ3W0Zyq4=; b=kNT8GzNTLI+wfTKWoOO4h7vG16KCKD5Z/IdLyU88UckGfX1p9+cbhluYACM9rAkqCP0Bd+fICppshc0iER12u7Ra04LcIEE//ZhDQ7beD4bba1KJcNFs5O/1I/Lw8OJv6Hywz3xmFEu7QFTJFCJIopM58w+92neHZ8AR3Azwi3jgOY6FFyRoBWDTdhTBnhdBHZqhGz6znp5s3cddjzTeyZIX2NIqZjKWwlyt0qki207PwgXZHtjjCvBkxZSIu6/FzCaJcXH680uNK8qMctLbrYjDKkEGWf/rgap+6dM8sNhRqhVKJa9bJUu+z0CSB0gk7XcJBuk/UAC/h8yN88ZgsA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:06 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:06 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:45 -0400 Subject: [PATCH v6 4/9] dmaengine: dw-edma: Use new .device_prep_config_sg() callback Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-4-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li , Damien Le Moal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=2281; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=0Ia3JYWUtUCQVv3nu0hL9dzhhqfNED3UBkrlVo7ppgA=; b=oCakWrVMeXa0fw0UT3qBvi++H9EoiD5XhuH5RV+QTihJVjQkqyCoewDvopY0QOghy1rP2f4jP W0NyeZ8NxYoAQBP9sarNK2Rqt0Rpzrm1xE/J443B/57hED0UoQzvE4N X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8P222CA0007.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:2d7::29) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f303641-7c19-4792-a1fb-08deb6bb4af5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|11062099010|18002099003|22082099003|11063799006|7136999003|6133799003; X-Microsoft-Antispam-Message-Info: f61v4+1sYYXMpL4lV/GdmmWsFMX3ZiHMqwerxZtTbOD9AXKelC8vf/AZvUVOVmUkGmDo0x/eDRcd2oa+gUHWl4jIZAvNNa2rha27MnIalpYce7XCMyh8s7tRfruvJKCuXld9KYIpx4Ts/CNd9sAvQoSmJKbmpVSvejuJB4YdrLUA7sQoLis2BOgGpCNeTg9adXztBH83DBcBSBXCrQ9sdbUzt20ZY8rD2+fDJEYm4Starv8iS2glrtbGHWQ+1ayhZU0FRFvSEizP3mffpHADtaaGZWbspeLdz2cWhOYJBLIzBZrsWNsE9qCL1SzQ5v4UMwVC3sizPFPxl3DauS8V5/Mi8YVT2wjZUQT4xKIGTNdmdLevLKNyc1JK7VRey7qOJQTRhJ/gONCqtpq2NPjZY7vQtF0Z8YMC3Zsq6MQFLoUU6M9ioaa6TvlMl4ioCITfUEgzudp05Jp1Lz3Ue/DM3YKl0RctG7UWLjP1uwJ+FZODAxmyZS8sU/PTYIojbgFwVLeiQO5uX/KXsXKJ1VyI7iA74baClzd9mfjqR848hs0HsrPBZYMbnKwtHjDw1I4dwEyqM/P4qDuQW5bA9ayus4spk7ROyX9SyTTnmL9XtDwX04RSiz42oUH9lXmEl21dRLRL5EToPlTRuSjcazvWop8qzX9MijuDEcNZ3r1IHXR8+ajvukTf29tDuv4vH8ytrteC761bXVkB553RBtI3Vd1sYdl+08sPvlWWythS23Y= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(11062099010)(18002099003)(22082099003)(11063799006)(7136999003)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UHlmVDVGeC9oVE1peHF0RkVQTHdHSDcxOWZ2VklLMW85QUs2N3Y4QTJSbGtV?= =?utf-8?B?c1BVcmZsV2NyQTRsUTNtMUlwQ0ExVDJmSEtSVmFZaEcvaTBqYUk1TERGTG9R?= =?utf-8?B?cFpyUk1JWWptTkRkbHZjd0F3UnBINVJBUmszaFl3RmlsUXEvV1o5WFVsazVP?= =?utf-8?B?T0xHL0tWN1pLTDEwUzliYmlTcnBDUWUvN2ZIaEFnYlArMGhJTkhVZDJtS280?= =?utf-8?B?aFlJL0pCS21UWWROY3dST2llZUsvVzNucWtHSkVwaG1WS3pwUUYrWDUwM05t?= =?utf-8?B?RnJIUk9ZdEo1eXdBNnI0VERTNWR3ZUxOekIyeW1rRTBtdzFoWUNHQkIrT05H?= =?utf-8?B?MysxMStkL1JzOWhPTmJmMUlCUHhIeit6b0wxN2pDMDdpdU9mblpyOUtwNnRF?= =?utf-8?B?MFJ4bUVpZTBGOURtTUhyeGo0RUk2aDAvTS9ycmpWWDZKMFpKbzhrT0ErWHJO?= =?utf-8?B?LzdPYVVkaDV1NkN1NjkxSlFrdlIxaWhTOExvSnBPWWZCOTVWT0t1MlVScXQr?= =?utf-8?B?TkgyNng0YitQVVhyU1FPT1BnTGhWcGRxaTVRODM2U2VPN3FZYSt6TXBnRDB0?= =?utf-8?B?WjlXMFJtaENYL2VQTDYvLzcxeGZmVFpPVTk5UzJDZE82RVFzQjRPdzN3UHBV?= =?utf-8?B?MG5zQVJqdDEwdDkzM2dUb0lDYnZNcDBVM2l3NU1aYlJ0eXlyWkFEZklCMnBY?= =?utf-8?B?YnBpT0VBMGNwN2ZYbUY2L295VnlQOWhhNlNZTzZBeWxQUnA0a1pwWWZ4cjN5?= =?utf-8?B?WXlYeERORHcyWmFLbVpwSDZEa3VtVlZPTEhxTlRVOEN5dGZ5LzhzaHJ0MzQy?= =?utf-8?B?VG56SDJsSlh2VVpRTkZpMUVQREgzVzdxUERJek5xMkJQb2JmaUtnY2dkcHZO?= =?utf-8?B?L1UxalBLWUJsR2VWM2FPMGdtNmlaaG1DV1NVZzZmUFZsK3FtVm5mYmFaUkQ5?= =?utf-8?B?TGo1V1dDdzF0U29qNEJmTHZYZkZHU3YwZEdURDlFVHJ3S3dQbksrenFBY2pL?= =?utf-8?B?YVZlNHhab2M2d0hNQnRvMmlzVkk0Qk02NUoxendyNXZ1Z21hNHFXQTJDT0Vu?= =?utf-8?B?OGY4TlZQOFo4T2tTYVRralppcXE4a05icHFjN0x0d2ZQbnJMOXo2S0pUWDFs?= =?utf-8?B?d2tMQXJiTHBrNE0rZU1YVHZsMEliczU0amxnL0lRcEZ3ZHFxenREVmJhSXI2?= =?utf-8?B?T2JLVkxESXhtQnV5cFZ3RGZhcVA1QVNqakN4Q3JtWXYzNnB6TlZObnF6QXBo?= =?utf-8?B?dFVRY1B0WnZzZTByQ1RIak81amR1MVQ5bDFPL2FiQXMyS2x1Q2RMZlJTNS81?= =?utf-8?B?M2toY3FyN2ZVS3ZPRlZWSVJZTEtObVIyWnpRTGNYVmxGb2xOZnB4NmlPUlht?= =?utf-8?B?dU1aQW1JcDlGME5PSTY5ZFczRmZvRlFjd1JTdGhZMnRBSTVjMURwV2t5Uy9J?= =?utf-8?B?TlZwNUN1bkNyL1RTelY5M1dVS1FKNDQ3NzdDQUxkR0JzMGRSMCs4eVJGR0l1?= =?utf-8?B?WHFGWUZCditlSVc4Y1Y0d3JtSlk1SGxvd3VKR2NGQm5OOWdvYXhpR1FDV0dD?= =?utf-8?B?K1ArRnhjT3pWM0xoRzFQdkVTR1ZBdnJHOElrY1oybmp4azhlNHFOSVhHUnNB?= =?utf-8?B?cVVkRTVrYTlwTkkxZ0RZS0haN3JVdFAxT3BHcWJXK1J5U0hibVpneGdMRkI0?= =?utf-8?B?NUs5Y2E0VDFZbit0R1B6SWZKNkEvaHFYVzE1VU53bkRmYnVzMG5ROEpPcFJx?= =?utf-8?B?ak9NMzRnajRuYUZZUlpSblh1ck1qUHg0akkzWks1S2hFMUlvVGZ6eWE4SlFo?= =?utf-8?B?cEFSb2s1a0xhQTRuQ0x6MnBnNG9FcFhxU05Cb2MxTjVPazV0WTh4cWRkbmdM?= =?utf-8?B?QUUwWHlXUzFzOHp2U0pWeU1kWXlIMWdPR0hSaDVaMXlTeDNyNndseWxRc0pk?= =?utf-8?B?ODJJNTNlRTFSMnQ3NFhNRk5jM0huSHBQTW9FcjZkYzlvRW1UblBJK2lyZkNx?= =?utf-8?B?V1ExRkdtcW40MitQcWZpWE9KVnlTZTdKVGVOZmM0Rm5UVTZyNDJaelhEaVlv?= =?utf-8?B?U2pkLzMvcVJYcFEwalA5OFlSWkptdENFNSt4Z2dBaG5zVDJ3cG1jUmo1Q1JV?= =?utf-8?B?TEsvbkNmVFV3ZGJtV1BRV0wrTkVTUVFXNjhvTjNMdVJFRCs1bEJ5eitUdGRz?= =?utf-8?B?UUxyeTI2TFZ1cDBpUkMzcGVZdGt3eW1mbHZHZkhiTlhtZC9nMzJObjNRL09x?= =?utf-8?B?d3BBSkVta0xmRmEvdkUzbU1ZNzlLY1Iza3NPRkxjWkNObjJVeXNrNU11Zmoy?= =?utf-8?B?aDU4Tm9SSGJuSk9WMzNCSUhuYkdXc1d2Q1VJS0lJdjlPWVhuclFXTEkvaE9I?= =?utf-8?Q?cWO3d+Gz78wpUThs=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f303641-7c19-4792-a1fb-08deb6bb4af5 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:06.7620 (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: WtD4jl3Yqn47+ZJBZPmmbdUZzeuN2MPObB/fO/nWDyGq/8rcuGMYMln3OvMxpYWGV4neF6i2ik+YxwPk2zd9QhuCT818TAeBEJ6kaWUPEfG+Wr5/hBdUo/wygbW/5b5a X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Use the new .device_prep_config_sg() callback to combine configuration and descriptor preparation. No functional changes. Tested-by: Niklas Cassel Reviewed-by: Damien Le Moal Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- change in v6 - check dw_edma_device_config() return value; find by sashiko AI. change in v4 - drop context in callback. change in v3 - add Damien Le Moal review tag --- drivers/dma/dw-edma/dw-edma-core.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index c2feb3adc79fa..92572dd8131e6 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -577,10 +577,11 @@ dw_edma_device_transfer(struct dw_edma_transfer *xfer) } =20 static struct dma_async_tx_descriptor * -dw_edma_device_prep_slave_sg(struct dma_chan *dchan, struct scatterlist *s= gl, - unsigned int len, - enum dma_transfer_direction direction, - unsigned long flags, void *context) +dw_edma_device_prep_config_sg(struct dma_chan *dchan, struct scatterlist *= sgl, + unsigned int len, + enum dma_transfer_direction direction, + unsigned long flags, + struct dma_slave_config *config) { struct dw_edma_transfer xfer; =20 @@ -591,6 +592,9 @@ dw_edma_device_prep_slave_sg(struct dma_chan *dchan, st= ruct scatterlist *sgl, xfer.flags =3D flags; xfer.type =3D EDMA_XFER_SCATTER_GATHER; =20 + if (config && dw_edma_device_config(dchan, config)) + return NULL; + return dw_edma_device_transfer(&xfer); } =20 @@ -970,7 +974,7 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u3= 2 wr_alloc, u32 rd_alloc) dma->device_terminate_all =3D dw_edma_device_terminate_all; dma->device_issue_pending =3D dw_edma_device_issue_pending; dma->device_tx_status =3D dw_edma_device_tx_status; - dma->device_prep_slave_sg =3D dw_edma_device_prep_slave_sg; + dma->device_prep_config_sg =3D dw_edma_device_prep_config_sg; dma->device_prep_dma_cyclic =3D dw_edma_device_prep_dma_cyclic; dma->device_prep_interleaved_dma =3D dw_edma_device_prep_interleaved_dma; =20 --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 70FAE3B530D; Wed, 20 May 2026 22:01:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314482; cv=fail; b=bIF7x3+ot6fy9FL0wx0HQXc+DMPfRR+JFIblnhqmqxL4Y7CWapFoIPOMvUj6FGwn79rtTbfqNJDm80NqyNfYdTbDnfoWOaOGIfYwqZKBYlK6y2a1q6J5rNa0ZotAOzTkDjAKf19nwgZHpcy4gSZzPBFQbTJWGH6NCSVM3dx1slg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314482; c=relaxed/simple; bh=iIX53NjUCPF1mDIkG5DU7PMIW0Upf2qtAbp2L7cxMh4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=rP4D+WrpvhVHgso/Hy4x/XAmP8R1/Q/T5qo9wMGVY8n3hqX9aXVt6tvUHkLTeu/inmBYm0bD/3CLSf3+pnb8XOhrjYWE7y7Q+TyHNkfi6dIfewNQketW5+NAT5CWNZWIF9EgitDPEz4Y2GL3N0MMizNrbTHGmvBKG7IwN6Y9SN4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=aOCmyHrK; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="aOCmyHrK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wE4EEMP2cJi1iI+FGKl/me071FkQRUigJpSl3h05lEtcgVQ8eFEIA4/h5RrIPdoVqOb6rLGdu1eFqS0J84nZqS9aSOIoCl8+V7xC19qmJpcRk4n2h0SpIskyuREy0Ec6l08NR3SBM3H0zm7KmJFEPLLs8rH3/4DCK+MlI7BdmSp8Idl66i9Ac4xAFBU5asJJhHmcrxm9OPtrjr7UZkJdI6GLYOMZYMgX0aO5ff6XElruNoh0jWxEBCXy9hkwje3zXChzuw7gDupyaLGsumE59iUi0ojGRm3/gyE/vFXRZGU08YmxlnHYJY6esWGX10qsPIbQVm7pxe1peCfbpfXgfA== 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=37bcc8TfgjTqfML06R1EwTBVyj48QWZJKxW9EQbmuWU=; b=tc80DvsvK9A4H8luuGHEjpyUH2aIgQHqpkas50eWnxjBTc5FfzWrNx7Ni3uBxCYvjvvzBnykge186oV6t1UI0d7EtbhMIXZdqCUCSKJ6uaMFq4aqp+lK79Jbtfbrn7nFedsRoGLVd4Y+nLRCF5gY37N6NgEFSY1NENGsXGquurLmgw6MbI19Fg0UZ1s3R7ATh/75Ilbi4kYGP3ZWXNXhBoC2MPjKAgKcEq7jfAyB+QHooxkKwxd5n8fswcCzAAZaCC3aDTRgiiVt5OVM5tmDtxOUldsORc02RcaErx5QTLlxYg/Zl2tQhK5zhp2gtK1sbmFO53O7fzubC6JX0N1TZQ== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=37bcc8TfgjTqfML06R1EwTBVyj48QWZJKxW9EQbmuWU=; b=aOCmyHrKsOQLAgt8AkYMCujRkagsMgO5iDAS3qYhM0EnzAlN/ccoXiww/HwhQpoCOKVF/bx4D8dUvg4E/2IAvIUGs2/AfP8ZmjMsg5/Gp1cbuBFsxrsIOHedgQ4UyoIo+yvjoC3XUsmjo9BcEsKuS2uo/LmAa1HlQbIe+xbELxTuemJg458RBrdIgjrBFBLLGpLIUOLNNubk7MFnE25R5ooWPb7Gclxh5J0+yL38xtqeThVLIOT6aR+7YOzfBcd6njZMsVPxZ1Rc0TiEsGsghMTj8OWC1mQkyRmgPQVyp99aQu+KuviPKP7yU6ehdS7o15HqzMZenlukydTn96GLew== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:12 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:12 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:46 -0400 Subject: [PATCH v6 5/9] dmaengine: dw-edma: Pass dma_slave_config to dw_edma_device_transfer() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-5-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=3048; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=Bn5aqmUeZY3ewFQKEdMEUfnmGy7LGfvlckh7nlENc4s=; b=F0KFii2Tc3R+5dTVy5UoTKU9p7MLoQOurXZT7Niu2tWJKrsSxPcV8ODOpwpwMMbh/4no2loFZ aLjdsU9GwzfBGEWFixLTCqqbFREAru0liqmZY78Q7KwB6KMagPAUafK X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7P222CA0002.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:33a::21) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: c3e4ef67-c8da-4fda-aad3-08deb6bb4e17 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: EAd2XDGNlKf76+nYEcM2YwCpLnG/0fZYDjsEA7Luzza80983USt1G15oYGH+igNZNAOMhcV5vtqniz6qj8GUkVX33AW/UvkXi1Dq0cUJO0UCwnA6j+kfJyFWmW1F57jlcLjD2v9Y58S8xjOC5y9/zNA74EewhF3nSC897qZ19kza0dxhwg5lPPnAmcv4TH9n5mgdZbjJZT8toy9NNKkRdAk2quYB8J8hi/sZ7IhGhTagx9T1lQHPBO+vcr33TlyvF+71j5o1XZ8R1sPwFqwFb0XpzPdoOyz+cVVSA5+ZUmoF8lu66FzHru/GC1/NWFESN0nKsDcbpE35YTZU713RABhnFmIXYhXV3mxZxVwDL/96U+LInFJUgojLUYYgeg3Lt8pzvSZc33Xl1LU7jggfk+3kCbslK7jMV9VOuy6juJZpW2pSbJuBcrRlJraiZZ3fSxqhoNPDc++szkQzk0cWnsTl9EbMHnQ9ZwBDus8vZ37IfOVEICQfSjcINi1lbf/d5VWvdaVrtMrGh7ilCNcG7Pphoa/LL8dJABy4zu5IHcWQXTdjYuyp9jXvrAvnO9GQ7Lpy/Gi5f6oI9t1gXVRmQuOMRojQkz9Ab00PsTQoYBK6PIp6msD7W8q+R1QYJExKmy9tCzCAYzbDqI6vXAX1wc+qDP6EhGrJevHBfMyIM7WgoHUX3fm6Qc6f4wlNJpfbZeIkKG37CXodPnY+pmpAKXAP+d2Dg4Xt7od/H2gpURw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QW1JYjBXamJpemV1SEpWbzdhQ3IzS0t0NzYrWnZEdVVuMUZzT2hDMUltYmto?= =?utf-8?B?WVdTSEp5dE5nd1FRc3NHS3NqUTRxUkExdkpmaWdpdFl6WHRXMm1XZUJvRnJR?= =?utf-8?B?OEZ6SnZMQitPQTNDczF0WDI4RmdBU0F1RzlnWVJsTUQ0NUUvc3hNUDJqVDZY?= =?utf-8?B?WUhYdXlDOXdWYXNZZTlxMENTaHJ6eVd3T0JPQkFHbDZ3T1VVYUxjUmdsS2Fi?= =?utf-8?B?d0xJcEp2OUxYd04xbUhORjV5TGhEN2FNaUpNVTloMTFjM3FpWXJBRHp1Y0lz?= =?utf-8?B?bFUrL2tKVmhiMS9rTVEwMWF5RzA0Tjh5dmZBeE1JLzVhS2htM0RUa0g5WFBE?= =?utf-8?B?eUEvOE45dWl5NWUxYzJyb2d3dGRoMVZJRW1mV2x5cWNJNkJKMWdtUEw5MkRS?= =?utf-8?B?VEFlSEtDeWpWYTBMSlE4WjlkTW1CUnpBMElsc0pWMzZwQVpESlo2cHNZMzVw?= =?utf-8?B?eVdsZW02d2NBOVFIRXExOElpTUVRVGorQTkySCtnQnhwVjNaN2h5SEZ6ckQ1?= =?utf-8?B?ZlZkWW9yZzZTNExXY2R5UFRHR3gwSjlJNW5GdDVmRVBlVFFobGhTTmdDSGVV?= =?utf-8?B?YUVCL00yM1pyd3dzdjEzcGdWM0lDMDQ3L3V5UHZjZG9OTkVYS0V2ellIVlJk?= =?utf-8?B?MnRpVFh2dkQ2U3pMTlpkZG1QTEl5U0ZwdFNrcVZzNFkvTzJNLzMzd0pvOGVt?= =?utf-8?B?YU1NeStmMk9MbzMzbnpOSHBkUEdqS0laKzNKQzc2a29xekw5aDI1ejNmckpv?= =?utf-8?B?T0REZlBFRWk0RnVWZjQrbEl2QkpreUhQSTJoY0RGV3ZtUE5DTzBYMWVpbkhX?= =?utf-8?B?YWN2d2xMR3FXUDFuWkNLVnRrWkFQeTF1L0xVS085WnBjbHNpSmtnSkFhanMw?= =?utf-8?B?Uys0VHIwMHVzVm8zejAzT2FEV081WElTMjlKZFZnUmtuSzEvT0tYMjZPdjVP?= =?utf-8?B?MmdLS0I5WDYxeDdMNHdoTkZHQVlVeU1HNzhVQVZRN2E2dXhrS2p4SnpMUElN?= =?utf-8?B?SURBYnlIUXRuSHVTZVVvWDFMcEtPSWloL3ZsNURibXg1L2kyMXViTFR2dHRX?= =?utf-8?B?UUZjcTdrT2JCTlhvUzNMaGN6QUhGcnZUQWRRK2lBNUc1Kzd0bjVkMEw1MGg1?= =?utf-8?B?dmdKUXJnUlpCdVU1bmcwc0ZVMVZpd3FqTm1Xckp1WlFTam9rOEVUeGRHV05t?= =?utf-8?B?R0R3UnlDVUJhVVN0c0UvQTBSa2dJOWdGd1A2NTB2S0FrcjRnL1dIK2JqWWpw?= =?utf-8?B?YlAzUDNSN3lqQzNqZHpLZktkaXdMVDVQM29XMVY1UzV5SFBETjZJeXlQSk8r?= =?utf-8?B?UEp3S3A5QTBLQVF4cElzS2ZNWVFyNXN0UnFLSFdacEFMalhEaEpWWC9BZTNk?= =?utf-8?B?QlBOZ1Qyd21oaXhFeFpab3phdG81VGNodUZmUmNkQnZxMEt0K2E4UVNDOUpY?= =?utf-8?B?OHhubVc2SzczMEJRcjBubjJYY0JHSjJQUG81TkRXTEoyYWkxVlpNVjlNV2p5?= =?utf-8?B?REJ2ZVhLSWppYzFkRFJPWDJTbU5PdFozcVBQaXFBQlJURksxZTgyTUx6MmdD?= =?utf-8?B?cXJWMkVXMVBoOFhjOFFOd3FRS0FnRkdBRi94cWRoMThCS3JHbG5lTG1HSm9Z?= =?utf-8?B?aDE1cElHMnB1UVkrRERaNGNUV1l0dlN5R0dGaUZyZkZ3b3FiLzRaVU16aGxY?= =?utf-8?B?Rms5WE9lSW5FdUV1TGZrWFJQRHB3WE1SN0xOb3J2RWhtMHBqT2IvTFJsRDZl?= =?utf-8?B?OGpncTk2WFBOdmVrekhKSVowZ3Rmc2pjeXdCa3ZxY0psaDJqTDh1L2t4cnFq?= =?utf-8?B?ZWtsVXZibVUvckNZUlZ2QlJQTTlmQmVwV1dzUFlaRGM3dlBZUDczcXo5Y1M4?= =?utf-8?B?M0tRRWFCeUgyczk5LzJDRTg5akY5Z1h6MllBQVFiVnJmcElJcEF2Y0c4ZXkz?= =?utf-8?B?L0ZMSTBEQWxtaVBYejZJeWdzSmo0azBuNlVzYXlPQmVnVHRDSURWMGIxNytw?= =?utf-8?B?Zm4wUXlmMmF5Ynh6V0t2alN3dzgyY0IwRlp5bVJ0dFBRamFiZTc3WUpiS2d1?= =?utf-8?B?dWhOOUNVR1VERVZZYmVXUURmM1lybWxUa1dHbHc2cjlEdjFkeXZzdlR4Q1lE?= =?utf-8?B?U0VZSHNVK0lML1VRMGdUb0hBNDlpQjRZUVJmUlNKbVhLb2puZGl2RldCOGRR?= =?utf-8?B?U1hCU3g4UEY3K3ZpeFhyWU9UWkZYSGN3VlB2R0dqWVRkeXZDM1ZLQmt3U2ZH?= =?utf-8?B?QW1Yd0RKV0RldHlteFJ4UDVvNzN6eFNUcGV5SWpCaXk4a2t6NlNNVTJqTGhT?= =?utf-8?B?MFZKVFV3Z1l4Qjc4eS9pS1dzME1YbEVsWk1lb2lrbURFYVovYkk2RTFGSDNq?= =?utf-8?Q?PztITvm6jCBdZu0wJHcbm9elG7C+EEro4FEby?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c3e4ef67-c8da-4fda-aad3-08deb6bb4e17 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:11.9638 (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: K1XkKhPkVbwnDWLaA6XkjURv8mVfze+fBukPDACap4SFtUXToZqtmbpki54/CGZkkq/dK12RW1GuYIUvB3EvHH0pe/GQmxngnaIU+p/6EZUiwV8Sqf7V2VwZTv2GTlHb X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Pass dma_slave_config to dw_edma_device_transfer() to support atomic configuration and descriptor preparation when a non-NULL config is provided to device_prep_config_sg(). Tested-by: Niklas Cassel Reviewed-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- change in v3 - rewrite dw_edma_device_slave_config() according to Damien's suggestion. --- drivers/dma/dw-edma/dw-edma-core.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index 92572dd8131e6..ba37bc983dcd2 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -267,6 +267,20 @@ static int dw_edma_device_config(struct dma_chan *dcha= n, return 0; } =20 +static struct dma_slave_config * +dw_edma_device_get_config(struct dma_chan *dchan, + struct dma_slave_config *config) +{ + struct dw_edma_chan *chan; + + if (config) + return config; + + chan =3D dchan2dw_edma_chan(dchan); + + return &chan->config; +} + static int dw_edma_device_pause(struct dma_chan *dchan) { struct dw_edma_chan *chan =3D dchan2dw_edma_chan(dchan); @@ -385,7 +399,8 @@ dw_edma_device_tx_status(struct dma_chan *dchan, dma_co= okie_t cookie, } =20 static struct dma_async_tx_descriptor * -dw_edma_device_transfer(struct dw_edma_transfer *xfer) +dw_edma_device_transfer(struct dw_edma_transfer *xfer, + struct dma_slave_config *config) { struct dw_edma_chan *chan =3D dchan2dw_edma_chan(xfer->dchan); enum dma_transfer_direction dir =3D xfer->direction; @@ -472,8 +487,8 @@ dw_edma_device_transfer(struct dw_edma_transfer *xfer) src_addr =3D xfer->xfer.il->src_start; dst_addr =3D xfer->xfer.il->dst_start; } else { - src_addr =3D chan->config.src_addr; - dst_addr =3D chan->config.dst_addr; + src_addr =3D config->src_addr; + dst_addr =3D config->dst_addr; } =20 if (dir =3D=3D DMA_DEV_TO_MEM) @@ -595,7 +610,7 @@ dw_edma_device_prep_config_sg(struct dma_chan *dchan, s= truct scatterlist *sgl, if (config && dw_edma_device_config(dchan, config)) return NULL; =20 - return dw_edma_device_transfer(&xfer); + return dw_edma_device_transfer(&xfer, dw_edma_device_get_config(dchan, co= nfig)); } =20 static struct dma_async_tx_descriptor * @@ -614,7 +629,7 @@ dw_edma_device_prep_dma_cyclic(struct dma_chan *dchan, = dma_addr_t paddr, xfer.flags =3D flags; xfer.type =3D EDMA_XFER_CYCLIC; =20 - return dw_edma_device_transfer(&xfer); + return dw_edma_device_transfer(&xfer, dw_edma_device_get_config(dchan, NU= LL)); } =20 static struct dma_async_tx_descriptor * @@ -630,7 +645,7 @@ dw_edma_device_prep_interleaved_dma(struct dma_chan *dc= han, xfer.flags =3D flags; xfer.type =3D EDMA_XFER_INTERLEAVED; =20 - return dw_edma_device_transfer(&xfer); + return dw_edma_device_transfer(&xfer, dw_edma_device_get_config(dchan, NU= LL)); } =20 static void dw_hdma_set_callback_result(struct virt_dma_desc *vd, --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F7B23BB9F8; Wed, 20 May 2026 22:01:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314486; cv=fail; b=OV9QmXh0HfOlDV5MRKoRv7K122eWOO/2g6tBy5SOOA3kcfgeamaEF2Hii+YNhnV5nD3n3UnmRMdaIQAM1pc/uvlFiSTmRgUvvIGK15T4ylpuqPKpaCmrqGDpEEarsnn9+UUmdYnvl1ETVMO+tUd6wpF4T2H0O+IMw44dJSjWpF0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314486; c=relaxed/simple; bh=+M2lx82T/SFuJPnO4V/KQr48tQ06j51TU6I9+la9R0o=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=Y5HqYxdvg6WBzFHGCFCvILAlIol55BHokBisFfdX1VjZYS6iQKk1DC2uCNgbAEZS8SkvAfoU22oJQXUEYYFtKF1NVeda1YS+qATortNlAImWXN+08cIjJGd2zHvR44z8Dh/eULlxaYHCAuAKFT9JK4zybyQbsF8Y3iex0iB0iJM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=ADZX3hva; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ADZX3hva" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qv/g4w1IOTINYG31DfdzhB5tPDab0AvCFDui8RoyDT6o6Fe1ctugwMvUA/B1Vu0QViBPySk5Fy9viRxUP23COjLTb1Urq7To+x+1fYwraoDJEkuXCpr8y0dk4U2iQkz5yOGtsf4HKAiH/jThtEbwzGDJhss4/RnOlK9k2pSyjKfq30+iyCfdqfPred8tOxKo8ojzjKd3tBiglHAxSxm81VJtj3ahkwKP3YHksLVO69qQb9jC6to3uNVdYEVExYoPis38AFEHrRVpTVA3MBT8/bLVVoniW4FJIn9i7byRAqlaSa/JohqQtqh4ASCt9x0rdWC7DzhPcoQtXUoTonB9Ug== 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=LXPk88HSDVKkbLLpzVW6jKOO4Jd50ksHFKn8+jGBYZw=; b=ex8Bfx7ypMlAdNxKD2JLsMzVvqwQVFOZRCNwFQND6kcpRRlJsOXNQhj21fKXXXr9NZJYP0UJIiwqv5zxJnHf6CGzjn5XphBHcyru6DdQjSK31J0CGTu0iikD/FdOulm7Yu1tFep45xq661Pon9rAaZrZPObk3ML7oYiuhxp4eLitxdJ3DyHIfxfJHV8Fkk0AfkVz3niO3y3d78WjtbDoLeHVtNg9rpIcvphlsMCXqDQw8rNmFZ4lNVwZn383jWx/SbFvgTahCHM/zxpY5++vhIP4Jc/CSDegUXy5Xaas7rR5Qbvv312pSOyrXiJiw8pyoK26WOC818o1Crky5HEJZQ== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LXPk88HSDVKkbLLpzVW6jKOO4Jd50ksHFKn8+jGBYZw=; b=ADZX3hvadGnGCMw9ybawv8eJ4XXR+Htp47WikVmJyyoYwYrumu7jp1gBkDNg73Atsn9jaWMBgrMFPvK+A3pz2rRY323wssN0FvPB+PhJDdGvNDa3j8vahbc3qT7WF1Uz6lBoDIn4ARbGeJJy7RL3Uhb2May9BdHOxaE0RN0YrrJgeUhYLM32l0BNnJm6zEUBT2YlEIaGXxr0OWS5hGK9Ot44FZKCpfWV7COdNSbyDh/Une2YwKKOxcOZ1AdLmOVJW3hzG6Wpv0nsaQplHbrlGAKUl+Ns1t4rdBgTVd3YBVxyq/jZQISKCZ4h8fsl55rbuja8m0AMtv5E1tH9mE+RRg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:16 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:16 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:47 -0400 Subject: [PATCH v6 6/9] nvmet: pci-epf: Remove unnecessary dmaengine_terminate_sync() on each DMA transfer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-6-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li , Damien Le Moal X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=1294; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=MtVHghBbP5ur9sdbIo7YfLXlw6DWbAENd28zNpiPwC0=; b=nl90l1r7TIZktCwHJsT87Xr9TyzS2aDjt1Ng+xZbvp7P/EXILbYAuPRpWdlPnoEBdtzy3AM27 PP0DLuHq/xnDPPPG31CtI6P/aCCBzTwuWXdbTPCJVwxpGR3Z6+G682Q X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7P220CA0058.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::9) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: 0a030a4c-5038-42f8-7d55-08deb6bb50bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006; X-Microsoft-Antispam-Message-Info: IHj2L1657XKZR7ccgEDReenP2zWkbwROt/vOq+Y0iFlP/yYBPse5hlR4rRwVzQF5cZ9tcypsACkM7hmeGazc6zWl1/tR95pku5i1gLE5ZI25lov/rx10gcHlmIqp9+lzf/DHUz4ZfyPi0luocbtOZyB1mpCxcRgvIxy4OEEBu6jnN1Fu9mCXyWUYARQmZtPENA/aAPCWgaP9mk5U9N4Ky1jxvIEcLA3PIg7tgAwe0aILDYdCy1bsTrokkfqGSi+9CDbLLoSryCndq6+xyUQuk1Mpw445fvAuvThZMa1/81xTKKniuoWZr4k0SrBuDknwJdF/cxkZCtny9gzkX1QMG9QfVz4adlta9VZ/VJ+4EgTkJQYS2DlGUMDB453emxRXa4DLCoZ5Wu5y8PDqqHWw/TC7OCn/LCtqDDvx8GsFXJZDMP71dUbaxXhCIbeyeUdaOtxif2l6JT4Ejxylap67A8x6CBIRPJ0/cwNDtpOgzFP4CBXlCZITEId6llAul2u43lbI+dxXv8qYK2evbLtZc19+89YiuQor0IRgorLWmEZgNPW+JAP3dvigOG3aUoJzEXbCuffITtrDPP36z+s09flnwfIyxNtjyO2EASasfET8HQYpPg/YKd+zwiVjG2Z68R1UHPu/FHVr69jw93Z4x94Pm1ehDlK8COmKIJqMds6C+lBqbUuqpLEKy/1yNFBaQOPLg3EO+UrcVLkpt5hjnqUoj8jZKTC1eiYfyHqEdXk= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T3BvaHdzYXNTVndOekt2RDc2b2dlbFlYSXBNZ203UGU0VWlZSDFrdzBxdkw0?= =?utf-8?B?UjBYU2NOdXRoL21YaWpEYWxHMXk4TGVERUFMaGpUUWFKVzVVK0UzZzVaUjMx?= =?utf-8?B?c1p3VmlxRmVQYkRBcGhzRlBkZTRvTWdYTTZwY0kvbUtGd0ZiMFRyUFJtU2s3?= =?utf-8?B?ZUl0MHg4QzNIdXI4Y2tJMHliUEJ0ZEhYd0E0ZjZQMG0vbThXcU1FZmQ1Ymh5?= =?utf-8?B?UWplMEx2N29RNnhpVFgzekFpYWx0Z0l4Uk1vTG5oU3duMm1IcjdUYlFSV2RV?= =?utf-8?B?bjhqTXY5dVcrdjBWQkRxbFhBNDFTaDJyRG9GTjNwNDFwQWJMVjBoRzZYL3g5?= =?utf-8?B?U3N2Q0FFZ01UaTN1T2JPUWtBdmNBUFZhamd1UnVtcFFtS0huNVZrcjJYR0Za?= =?utf-8?B?Qk5CTEdNQzhhUTF6cDhYTTlyQmdBUm8vUUdjL2pXUHRzOVJuL0RQVEV5Nnd5?= =?utf-8?B?S0UrY2Q1L2ZVSXFjWWptcFd2bjJxTXdjVVFSSktqYW16eXhhcWtzeWlZcEti?= =?utf-8?B?MVNOYWQvMmRyUFppSVdQOFMrK1ZXYVljRVJhR1pjMW5KWGVmZ29BQWEzT2lT?= =?utf-8?B?bmJlVkVMK0ZmT0gxUGpuYjNUY2VQYUNJdVZiRmVVWDlLN3hEZE8vTFlueEJr?= =?utf-8?B?eC9zcFMvUXo4blpLOFVRUWU4WVBqQksyS0xURWc2Q21KMWI5c2lYVkJwY1Ji?= =?utf-8?B?YmZKK0c5WmRteUlFZnl0b1JtVWRNd2RXQ2E5QVRXMEg4aUczV3hkby92TWZU?= =?utf-8?B?MkF3UlIrNW5rYnlLNzNVNG0yT3dVRUYyYS9nL3I2ZldkUGFPeW4yb2lJdzBn?= =?utf-8?B?WjFwd0drOW9iVFgvODlqQnhCTFdsbWo5Tmg2clRBMitSSjFnZEJvczkvTldq?= =?utf-8?B?dVJiaFpvSC9hV3IrZXJRQ21maU5RbmFTb2pEdzl4TWZqd0pqc2Z3Y0pnWHpi?= =?utf-8?B?ZDRyOVByYzA5cEwvbnZxV1J5dEZEWXpaQ2ZxSzAyL1RGN3dlRy9UNDRkb3JE?= =?utf-8?B?SC9HVXp1aXVBQUdJR1RyWUgwNmVnbG5kNE1sUkNxTzhzOVBTYWZqbDBsWm05?= =?utf-8?B?ZjRISWdNaDhpMU82MEpGOGlaTGszZUd5TUhldExNbzE1Rk1mYnByRHpUVTBZ?= =?utf-8?B?cUYyQXNoMlk1bk1RcElaUXVJRWxpcng5OFdnNlp6ZW9vcEc4dWdjR2VEbU1p?= =?utf-8?B?YjQreGlFUjFnTUhPc1hOalhLZGNLL2gwVjVoRm1jVVhueXhHdEhiZDZ6N1RB?= =?utf-8?B?S1IwM0JlREtxRER5SmZJNTdPNGlPK21rbzN6SzkvcTFnWVdTM0xETFppWjk4?= =?utf-8?B?WVhNbExVOG9uT1Jpc1hESi9mcmlPSkhnaFFBN044UGNwb3EyQXhGcTFtV1Q0?= =?utf-8?B?MHRKZ0MrcnNMSEFoOFAvNHcrMHhpays4T2pRZkIxWW9VeUQ0eW9HQlhwUVEv?= =?utf-8?B?eGcyUURHNEhobi81YkJWaFRUZUx0WHQwWFNiTFpuVStrZHFTbCtEdG1NL3Ri?= =?utf-8?B?N3lHOVhmckV5VXB0SHhhSFJQZnpWQ3BDTXYyNGwrZGxZaUsyMWNYL3c2RHhm?= =?utf-8?B?R0t6czJkcXczbTVlWDJLQnZYUmZ6dG8rUkVGZThwcUl2MG9LQUdzUEw4TFJl?= =?utf-8?B?NW0reUR6clhGOCtwNEpwNGdnYlF4V1FGY1d6eHBPdXkxbkxhOW1KWkpCVkNu?= =?utf-8?B?ekNkeU0ydHBmSUQ0NWN2UFcvdXR3cUpDdmhuOVl3cWRGR1E1UW5IWmI0VlVF?= =?utf-8?B?d2VMODlhczJIcmNlV0tid0praHkrc3N2cjNDbllPTGkzSFl3MlRxQUgxN0Fs?= =?utf-8?B?cm41WWVsYTZodFg4R2M4Zm5ZUUFLM2RJMEVEbzNNQkp1NjhtK0JhN0ZIRlVk?= =?utf-8?B?dkJCN2d5M2VJTGhYY1NNRmtrZ0xiZWg5ZUdDUGxLUFVwbHc5dk9HbXRLMUNK?= =?utf-8?B?ZWpHRDhEeUFPdTBHaWorNjJpZGtEajlOdm4yaXVYenFkUHM5eXVObmxhaG95?= =?utf-8?B?R0hKOUVkTzY2VWh4YXBJTkIzUHVSRWZkeVQ4cTVwNkpDNE41ZHlrdTcyLzVM?= =?utf-8?B?YVVmMGc3L2xhUUx2YlIyU1pkRWZEczFKYVBhNmg2TWpONnhWRVkzS2FFR3l0?= =?utf-8?B?czNXOXlVUEVQeVVPd1A4WjdFQ3NubDRyZW10UXNlaU0wSWQ2OG9mY1Y2dUgy?= =?utf-8?B?c3dDc3JTVFFuRGFxYUhsTStxdUVlbXVBN21jQ0twYTZrYnRBMzBuR25MWmY1?= =?utf-8?B?bFBsenFUZlJBWHpLb0xJZ3lheXUzclUxSldFRGovaU43MTQzd1dWZTlJeG03?= =?utf-8?B?TGx0VjJCK013SDlSNzJ3ZnNJb2dGTzJCVXNZSmh2anA1dUJjaHc2eHY4eTR2?= =?utf-8?Q?jBTTlCEbCbtq9eKI=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a030a4c-5038-42f8-7d55-08deb6bb50bc X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:16.4556 (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: jxWGOMJxSlLGKAlTA4NV1vJ0lOMJZd4+5q94Pj7r10+1Zu4AuD1mG9kOEYRjUhwZVseCvzk3FSDXgrz4IeUGrVRWlc8ocePgqoonbkKVKJYpHoTd6A6F3pC/C6HILy/e X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li dmaengine_terminate_sync() cancels all pending requests. Calling it for every DMA transfer is unnecessary and counterproductive. This function is generally intended for cleanup paths such as module removal, device close, or unbind operations. Remove the redundant calls for success path and keep it only at error path. Tested-by: Niklas Cassel Reviewed-by: Damien Le Moal Acked-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- This one also fix stress test failure after remove mutex and use new API dmaengine_prep_slave_sg_config(). --- drivers/nvme/target/pci-epf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/nvme/target/pci-epf.c b/drivers/nvme/target/pci-epf.c index 4e9db96ebfecd..2afe8f4d0e461 100644 --- a/drivers/nvme/target/pci-epf.c +++ b/drivers/nvme/target/pci-epf.c @@ -420,10 +420,9 @@ static int nvmet_pci_epf_dma_transfer(struct nvmet_pci= _epf *nvme_epf, if (dma_sync_wait(chan, cookie) !=3D DMA_COMPLETE) { dev_err(dev, "DMA transfer failed\n"); ret =3D -EIO; + dmaengine_terminate_sync(chan); } =20 - dmaengine_terminate_sync(chan); - unmap: dma_unmap_single(dma_dev, dma_addr, seg->length, dir); =20 --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B77853BCD12; Wed, 20 May 2026 22:01:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314490; cv=fail; b=dtOrC4F+1enUdh+HZcFUmpZzW/TCiPENDPO9Uw8xYL3k2voS4AWqywKk6Qb57LrQ5CAiAC1VWKV63+N+5Vjpcv3iXrR0ktL6PU9j0l8Q00Ryt/xLHBAL64hR3uTRWhdbjxq/72vlwmANsZX/rvqbk7Efll2R4ClAFKDejFzFAK4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314490; c=relaxed/simple; bh=NBCsd7MOzZIjGUdFJVELfXSD5nP2JwlHcJyr2IWu8Ww=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=iiVftaHV75ndbfe6CcOGKqW1UW6Zvty1dzC1ytxPa+W0oTfu0Q4lyP3aLewFIz7BuMqT/xIM6qKUXS7GBffneRFEdWRV7Y3hasbsr7SWC3B29/37PF97zsO1e04n8Mz0es7Kd4Q6SygnuuhlxOQtjsDgowf5Jpl8I82WyC2Xw9g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=Aiw46ZPq; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Aiw46ZPq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JE3go2zNs+hbUxyVL2bmL+SKWGQFcQVUCT/DwmCyX1QFHZzXipZ4gJuTudJQ524aQGKGFYbrslA5o3Ojl4H38ZghrPKq5uSfk3Hdml3Xo3+lRDBSYxr0EHbb2qe2G7h6PxD3RE1qNLv1PgxNqNAT/JkxHM+vzo78MMswjUvfsQ3Z0oEIped2+dDY3uo2gyljixjFQn8nw2cnRUzSUYaTrsFIqxnEUnN3/S3SCssphH99KouVxu2v+3j7mxOwbOZikv/RbautfteXyJhUNjxXHZLIp2mdrg+rWDc9QO6AwOZVrYXOCYBP+/T407Y9GSnykx8cKvlknOB6Y+qTgRsVzg== 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=StX1KYDn0Ke2D5FOaP4H7Cn1V67jnEpYFFCVgoHWH88=; b=U6Aj17WKsrBnikq3ru3OCHADj9sAVxwhgCA4DWH3+UhbUnS4/WmyIeEKhQJZSpo2IyvrPGA1Nm0375no/gGwvSRVvhZ9oA4uv4k4sOCpjz7Klb4IUjnbgzKrqzLxjhQdsBCi0dYXArSi1Mys683YIcGDG8m56ZEbK3jpYzRbGQrG4q5U3BRwqWCZLbr4B4FBuDbRWhYqGmDYedw9KMOzLsApV1hAZFj+k567n2+uUY+oN2rVVVodjg+RdCK6Z6NAs8+FB5GqJk5g8P018v9H1k3Aj3BOYZTCNiu9VZNBXzmJDLIMBlhN0049a2YZnRaPC5CUqMeJWh3asJK9SbdP0A== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=StX1KYDn0Ke2D5FOaP4H7Cn1V67jnEpYFFCVgoHWH88=; b=Aiw46ZPq0Ctwvq/kyMZ4u39/5CaO2FckUJwQtzGLPzfoKdskUzJn8ctLsWx3ChLo7t0mc+/RvOwTNJ9dRwiRrjnzKHsiT2m3X8OslvoT0aTJbe5kvduYNL4PKCvnKXE6sd68GpO8wtFdn/U+/C3vpKWSMKLXZTg+G/D6xU8JPSgCMnCgSFRI44Rn8q6AedDWzE/YWQ2gDLYob9f8oF85hAQf6e819uO76vijrsaGuhHEpY3SAQStZa4wwVZ82p323XeTWddLr4audFIC8X3Vh90EA6tTT3oL/z19XhzcE5Uq+XHSVH6EmgRpgec+SR7Fq9LmrHP/h2QspsmpmyPrqw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:21 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:21 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:48 -0400 Subject: [PATCH v6 7/9] nvmet: pci-epf: Use dmaengine_prep_config_single_safe() API Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-7-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=2393; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=0yP01YEXNo+TKZFooYpo3T4x17odVk3sXG11GGJCgSk=; b=jLe6fsrEVieBgAMQqAiUJhChEBfqpvwbhjZ7bKHarPX5lwTwKOH63Rr4hntdc9Xzb9J0qX5VS aXk8pP72YhdBStb+1NteiWpIvf3IdbGIzLtQh9HbOtnYOOa3R8++cK3 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH7P220CA0039.NAMP220.PROD.OUTLOOK.COM (2603:10b6:510:32b::26) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: 711bc4b4-0698-4591-d149-08deb6bb536f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: 02mjjIGXVMXLQT2jDW1O7CZVmvzHcCUqRBGsPcJ4/6a5kDeNs/hBqarg2tokgiiWk15RCtVAsc3FBQdUncYTmCqMRY3DAoQryyJ5PZcZOdXbslAnE+9TEMAdGSlEHIT3PGjwwLxn21V+5DRTqFPageWt9pU20PfXObjCfvD+aOYt3nfUu3BilbbW8nilYHyaBpLozYP79YUXiEI+bqtQErRflIxN/OaEQ/8W+QZ9JYUb+920wJT4DaV2v/DamVTE3YBmAXwXwqyqUtzmztbEZkxAwgB3QTNyIrP6CXHMtjkW6cz0NaiLWm9l0gAJFV4osPz618XZBgWBbkMKYnpUbRYaHg1RSJ+QixBUVzChsDkQMfeW7jWSOslQW0hv36F1ux5WReuG4i3qziWL2ioSBTMXO/OVK1SmvPGRevQt1QyU8+HyTMRAIyLpx6IJXZYQ8Ti3iYgwKB92CR46qMdwhxtTFz+KyuPFCGa5OXWeosoGxF/EHXc1tK///IZ2j2gnMkICVH4rT2HSEd3YIuCdwpjTlWgxSTg/FvNOSqJ6upappYRn5ZN6SF9d05XUWAJXZ6BC9A43sLgGXPnIfl8F4tUVw+goRcUqLoSY7qax8giL925Wcj5JFwVxvTL6/AXqV5tE0hvZcLrdXRT+hx2YiMK4YXPKYRmvYYShiCvA4NhyT0PwCA7hYNQMqwBGl7EOgInFvaJDMUp/KyqB7cEWCu3blHTXheFgL9fuIrhl6+4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y1NvZjBYM3RyMEE1OUkvUWhCUU04OUVLZHFVbStLd29mMnNRRnhHTmluTEF3?= =?utf-8?B?WTJ6TGRTbk5QZmZndEV5OGg4RlpNUDdyeFZWdkluSXJIN0pBdk44S1RLZW56?= =?utf-8?B?Y0VtUjlYYjZ3cFlUdWhlWFlqR2NTRDVORmliVVFWZWRIOXBmNmJEU0lXclYw?= =?utf-8?B?NFhZYjlUTVpTRlEzQzdjellIK1EraEh4clRnWkpxVVZxbFlnYW5IcFNFbm9w?= =?utf-8?B?d292QWtUSEppaGRlN29yMUpmQ0hRZjNHY2d3NksvTWFTUFkzcmhNK2xaN091?= =?utf-8?B?RmdjWDgzNVhLcEVWTjZGY2VDTHVVUE8rVUMvTVRnendlQ2xPNzk0VmpKREdO?= =?utf-8?B?ckJKR1VicjA2dFBYT2pWVHBBY2hqVUlUbnVibEw2WVZJNi9LdTdKdURLdTYr?= =?utf-8?B?clh2L1lOL1FKMmRFMXVKSXZYUmtZbkhPaWYxR1MrRDZ6c25vZGQ4YU5GMFFm?= =?utf-8?B?ZmpDM3V6Nm9XRmNzZTBKNkxUTjB6K1NlUHNmaGZNWEpkYUhScHFYbGs0b1g2?= =?utf-8?B?TmYvSzBza243UnR0NERhQVZYVWUxWllhUXgxL1pwQmE2Nlp5M0UzV1lwcVVN?= =?utf-8?B?a1VHenRSZlF5UWcwL1RRWjhoV0JhaXlNN0Y0c0JEYVVLejZDd2w2ZWlHbzdK?= =?utf-8?B?MUVlZzhIeHVkS2dLQm5ZV0xMU0h4M0NId1RyTkpEMERMa3dPUmFIVnVuVk9o?= =?utf-8?B?OXZpSWR2blA1czlkUTdPcU1tamYxZEh2QlRKaGR4a0JzM3BYK3N5eElxb3d6?= =?utf-8?B?emJZQ2hqZWRoTXk0cm0vMUhUM0dTK3VxTUU2ZWtIS2l5QUUrcy91WWdlVWhL?= =?utf-8?B?dTJoY2JWc2h6VGpacU9NMmpGeUJHMHQ0Q0ZmNkNpUU1xWUprdnR5RkYwYXN0?= =?utf-8?B?K3F3QkcvY3hDMTRQaDRjQlRYVEIxSkpNOHJVdm82MmVLUzJEem1PcEZJdE5Z?= =?utf-8?B?SWpKVzBBcG1TcmxmSkFIRVFmTk05QmI2T0Y5U0Z0NFR0b2FtbStUbFB3TlJM?= =?utf-8?B?RFI3N0dGWWVMOHhUb0pBQmhKcGFsYVFuS1NCbW9COWY3ZmRDaWRoQmRxVmJM?= =?utf-8?B?a3RSUEREYmFGNmFLR0tSbGNDV1VXNjBFalNiUFBTTXBKaHZWb1dEODZldGVw?= =?utf-8?B?bkEwQndnZkpYT2tyODI0WFpyUHRzdmkyL1BRaExHS1RpRUs5bmFaTTd4WGox?= =?utf-8?B?UVBPeHIvTUNHMjNNdTEvYmRSNE42NTVIY3BuSGhNUDRnYnlFcndhclAvRVVQ?= =?utf-8?B?R0ZnTVorNUNnaFVWeUtwKzhzcVhsTExKZmlpTHROdkF2QlN3SllERHdEb1FS?= =?utf-8?B?akxRZE5LREd2T1BRU3NVaUduMGFLSjYxWXlzbnRkYmJ0SGR3am5adm9kUGdx?= =?utf-8?B?TTRhaC9uNnJXMjN3MEhvOFFqRTA1ZWtmeDFyVnUxWGhENSsvTTVCeVFCYVlE?= =?utf-8?B?cTU5UzRuS05zeE45a0FsTk9CcDRwcTdycmR5VTgvNHZsV1puQUlLbyt5N3o0?= =?utf-8?B?L2FLb2ZNMkExcHFzczlTZzNkQ2ZsVkFOZVRrR0cvcjl0dnZrOHVjdUNoMlNn?= =?utf-8?B?YWxvVHduNlpLOXF3b0pnSzZXVzl5SUxuOVV1ZXlrZnhEMFBRb0JZL3N3N2Ja?= =?utf-8?B?d0lPUjMzdTJ4cVFQMDZkMExlWkdML0hGZXlFNXVmNXFheHRuK2xjNFZZMGE4?= =?utf-8?B?Wi8wSnRoNkZabU5ocGJyVis1RzQ3dkhuZjNoUTI3cHQybTA1REQ2Y0lwNHYz?= =?utf-8?B?Lzg5bmFZRHJER3h0dkk4UGF2TXFFdHR2U1NkTmhsUmErek53bnR0QXlBVnRp?= =?utf-8?B?dm1vdTBxQWRsVWhMbDJ6Q1JCL3NBMHZWMnhqQURuaGIvY0dLZFNjbXpWMFhl?= =?utf-8?B?ZCtScjIwSVUrMCtkeUY3ckt5M2RrTXNTa09zUzQ2WEh6dTlHVFJ4UmxQYzhQ?= =?utf-8?B?WWJSTnh3aVFBV0EwcWNVV1l4V3hQR0xsbG9EWkpZcDZsU2ZQUGl5MWRaYTRi?= =?utf-8?B?eVdLWFNBK1ZQbnV6aE02anJ0MStqd204Ky9VcmthaVQzWFRUMExGRWVvbjdH?= =?utf-8?B?d1EvNzZSeThiOFVOazdhazFPQlM4V3p0M2dVcnd5MnhzR0VlcENKZERENEJL?= =?utf-8?B?TmZROUI1N29LOFhWcXZ3c2syeEpmTkIzdmJCQi84N1ZuNVhkeVlLTkRPRXo3?= =?utf-8?B?Vy9kRmE1Z09HTXFsVmpjNXVsdVIzQWdpN0FCZ2syR3R3Ym9LeHV2cDNwT2VQ?= =?utf-8?B?dDVwTVpKNG9NYUpHbnZ3ZDlydGFTVjBPK0txUU91RzVyb0ZTeCtyVGFBZG5J?= =?utf-8?B?UnZrNHJQa3FZNE1zb3FaL1VtNFQ5QjFnRXc2Wlk3d0IzY3p1QStDQmVpK3ly?= =?utf-8?Q?NNKatGU2C055wzqHaCH704NiEaiJU1VO3As/D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 711bc4b4-0698-4591-d149-08deb6bb536f X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:20.9738 (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: 0AJ5nmtsj8oe8Z8Ic1ga9Bvm/4rlB/oU9DlJZo56oIuI+RrRmty6WInt/XqfQwVXw6K5ZufNQ5Jet4lvHroNHg5sJFa6J1N1R4uc0er34020O9BgCEL7JJERcYGLilZm X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Use the new dmaengine_prep_config_single_safe() API to combine the configuration and descriptor preparation into a single call. Since dmaengine_prep_config_single_safe() performs the configuration and preparation atomically and the mutex can be removed. Tested-by: Niklas Cassel Acked-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- change in v6 - remove local unused variable lock (sashika AI) --- drivers/nvme/target/pci-epf.c | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/drivers/nvme/target/pci-epf.c b/drivers/nvme/target/pci-epf.c index 2afe8f4d0e461..f917d6ec278b7 100644 --- a/drivers/nvme/target/pci-epf.c +++ b/drivers/nvme/target/pci-epf.c @@ -368,18 +368,15 @@ static int nvmet_pci_epf_dma_transfer(struct nvmet_pc= i_epf *nvme_epf, struct dma_chan *chan; dma_cookie_t cookie; dma_addr_t dma_addr; - struct mutex *lock; int ret; =20 switch (dir) { case DMA_FROM_DEVICE: - lock =3D &nvme_epf->dma_rx_lock; chan =3D nvme_epf->dma_rx_chan; sconf.direction =3D DMA_DEV_TO_MEM; sconf.src_addr =3D seg->pci_addr; break; case DMA_TO_DEVICE: - lock =3D &nvme_epf->dma_tx_lock; chan =3D nvme_epf->dma_tx_chan; sconf.direction =3D DMA_MEM_TO_DEV; sconf.dst_addr =3D seg->pci_addr; @@ -388,22 +385,15 @@ static int nvmet_pci_epf_dma_transfer(struct nvmet_pc= i_epf *nvme_epf, return -EINVAL; } =20 - mutex_lock(lock); - dma_dev =3D dmaengine_get_dma_device(chan); dma_addr =3D dma_map_single(dma_dev, seg->buf, seg->length, dir); ret =3D dma_mapping_error(dma_dev, dma_addr); if (ret) - goto unlock; - - ret =3D dmaengine_slave_config(chan, &sconf); - if (ret) { - dev_err(dev, "Failed to configure DMA channel\n"); - goto unmap; - } + return ret; =20 - desc =3D dmaengine_prep_slave_single(chan, dma_addr, seg->length, - sconf.direction, DMA_CTRL_ACK); + desc =3D dmaengine_prep_config_single_safe(chan, dma_addr, seg->length, + sconf.direction, + DMA_CTRL_ACK, &sconf); if (!desc) { dev_err(dev, "Failed to prepare DMA\n"); ret =3D -EIO; @@ -426,9 +416,6 @@ static int nvmet_pci_epf_dma_transfer(struct nvmet_pci_= epf *nvme_epf, unmap: dma_unmap_single(dma_dev, dma_addr, seg->length, dir); =20 -unlock: - mutex_unlock(lock); - return ret; } =20 --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6CAD83BCD38; Wed, 20 May 2026 22:01:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314496; cv=fail; b=ASt6YHHCn7Z9TYRVe61ndyGFr/3Ry/XldQ2KZmGCjSgsfI4YX/w7H2y3cPDkLh4ctzxsQ+fuDY/FViUuASNK5vHOMf+nUedKeQNE43RqWff/pjNx7XPOOHZFhwNj1m9kCguZ1ZVSXQYlYDECov+8Wn2pFmBaqqn73rSkfj340zc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314496; c=relaxed/simple; bh=DAkxgfNuePAWypf4R/V/s8chDsIy3838bvIVaup0Efw=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=KBqUBn9LiJGjgamXvcuOjYqXWq9wh1nlkZQVXDyIJr03VTqb9Vk+hLDDJrX+veGTrnGHPfeZhibXurgVcN/qM61z4wnDVhlTIrcBRYFSyTU2Ys/+69Hf0C14JlUQjAy2oYx1bHtIFel7OgJg8BN1NhAH4XQKjIFDmJ9tGMdFZfI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=gmASWly5; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="gmASWly5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qYDWN+Ik8+pfhm7iaq05Hpq2udRYUxCWUKtMr4cXyyiiOrw8ZAckN9Co3w0Rl/jODXScO7TE4r06/h9LEyBKsyFADMI7UUUvdt+x6kR5v3EbotSzzdSd5mJUlpOOyo/5WJ1vk6AKs+c03mkGaMLuqZsGB4SEW55wd4H+yys0eWx3LWoAwM9B64h3kkDpytZp3p1LCqxsqFLZpN8UwEC/huDGYSKaOLnpS9fs0+KYpjPmnBfqxgqNisA4AwysGa88OCgTC6eXXauC2KHciYvcXP8BtSayYoAjtRbeI4/nmMJC3Yk+ZEnBBZg3xePJGi9RuLVBx2qEv+o2C4fHutbJJg== 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=PPnfyCZcbul8/0bvvhgrj/9ZvSy5WxlXajFEC2wQWs8=; b=FkyZRMzY7o6s6I0zfTdoJ8eZAN/PCCDl229+w8z8NnGZq8tslig825HjWtwOwkeI9NOgo+sJqcHwVjgawLzFdng8BzvFd3vExrhTX8cbczWN8VIVBeP6LOhjrryvtt4IShu7Dj2Wyi9wvtKUWzDnlKfU0UpWylLJS0ZZhq47tlTGvK9IdXhvCI67xbDeooh4QXaaQD2DsNx6O1auT0qv65IqAE+svNRVTSUxSeRGZNWVlAdMGagvBF8XL2Q9ZWnLiGBi1ZgZjHTU74z5sVlPpgTx0wHPgsQrpej8HOBT3MKmpUFCoqhWIXVGScGm+7Gv/5fgpuEnqKI4P2KBjZDdxg== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PPnfyCZcbul8/0bvvhgrj/9ZvSy5WxlXajFEC2wQWs8=; b=gmASWly5kawtHwvBZjeoQMchonavAzaspatg6nwR7iRsJU6JeqxPSqNOSIcjNnm7i9QJOhxd+ufmHZuwcby4DWYr14LHJIsn23uP+qS1vNOC2cLAJKdtKtJ6mJC0MInAOsc2HUQ+9kRpbEdv3wdz+WCgr+Pyl0s5n0URDa0cF138m7sOp2mIEh8sN4UM2Fgo4u5czG7truuV+kZ/+54u9cJoLoz/UEMhpyYAVboi2g/UXZOIM5F4bNv5dwWbObDZ/F8AikKkfnsNRbVSN+CJK6yoXESkqXl+rt/oGCiiXg8V5D+hNOtQFHuWSIoT//9QX2DwvQCIBK+Uwmf9ANGglQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:25 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:25 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:49 -0400 Subject: [PATCH v6 8/9] PCI: epf-mhi: Use dmaengine_prep_config_single() to simplify code Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-8-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=4625; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=mxi7fNpqhewVwhRKTp8TaG2mZKrM6GhpOzyIZjOPKlw=; b=LjVhMKG8WU3w+jODP15nHcOZC7i3xaVdfBIIMLsKUeCPRMn4XeHe54abrvL8peRTJgS7mRvbH fXI5N8vDeOkBpBhX1L4tBxbDuik15C213nHBev0fQ99YXPP+JY9oFw8 X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8P222CA0026.NAMP222.PROD.OUTLOOK.COM (2603:10b6:510:2d7::10) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: 8092f91a-0602-4d77-7ec8-08deb6bb562b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: GWP1Mv348hM/hAhM7HfP8BtrOif0DMWpHSQL7ckDaGK/ckceZIWiGjFI8NERHqbRceQ5+foaJQXoPmxmCLdrdFmpVRoN8VFMpLAz6lkgtXd16X3j6XxiEqaNmykKFhMVYkubiihAtN96r0aNNAGEtoVZ0357FnIiGLydSyB9r5blF/hptWBOgGGgbE808AOKcSQ/8imDXS1JhJxl4UwaJnMNgnU+ySnzgCj+Eg5sBizXhq4McHMcpet65VlOjGNb+Q/JQdpF+SdRKChIZa8hRXjGkJw/JpLMFvJyNv9ugziFKCTJFFXxPmFHXVtS4aC9CGLC8oQ/ud22IfK5cx9kSMxiHe5lMl/VEt7q4fsq5PZa+1I8BI0+ybKPhhNPG52ZZdozu106+1DUMNBhgy7omeBh354U0gsh8Gu6Uu+KhSEixRbXuH55bF6DbI0dSzHM06cp6mI0/q/UAPF7JQe/XHfiIMUA4yBF5kwzJwr77rDKRhVGdPCkCS3JA2Se6hsabW1vlXX2a3Q7Rt9OZ8KDbXQfC84XeFaVbKSoXHLeOs0p/LHqSnhYaBEYpIDOPm1UXmXI2QAr79ViBfBZxq96cqlkxE61dpF2Rud9AsHcWntwufizskLAO/KZn8+rkowwGmQzV6UsswF1q3samPM5zu7GWpDnlsY9kRsGaaTz1euTkXu2SPO1vX3YxO9fN+h4j/zzaWsxNPF0zJL8ycZZD2NOo0Q9I55F5chdiXd+Tls= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OVZYVGpNRnlRQ3V5OVVSWHp2K1VHYm16TGVYVklsNzdEdmhvSmE4bkhnZ0Zm?= =?utf-8?B?OVJaRHpiVTZDZnZwMnpMaDVwSVRjQUFqYUoxblJ3TGttNnBydXlzaDE2U01R?= =?utf-8?B?NVlseFFIYVZTaFZjUG9mRFd6SjlDeHZxa09RbkhTa2hZQ1ErQXhlL3JlbFpJ?= =?utf-8?B?emROalM1eHgveDR2SmZQQ3psWDg2SmprdU9DM1BTVGQ3Ri9mNFJ4SWxJaDY2?= =?utf-8?B?R2dyUDZpRk9ZVmJudDVtc2hIVGFrNmRKTHVCUjBja1hCS2t5ZjNrWDRYQVJl?= =?utf-8?B?TDhhc3RqRndKbmh4d2ZLQW1peFg3QmM0YXdBeXlVNG5mSEErVHBaYzNCZWxu?= =?utf-8?B?SGx1M2tUQ3JVZE5UN0ZnNzlqL25qYVdpOVhoMmE2bmQ3VU9DVitUTEViODFX?= =?utf-8?B?aldkdlRteGJhT1lrSjZtMm1tUy9sN1RDUnRWbE9aVGc1NG8xdGJMVUw5aDVz?= =?utf-8?B?V085ZHp2SnVLRkRjZS9US3BGaDdYT29lSzdzNFQ5UFlsNm1mRFlqbzR4WDJE?= =?utf-8?B?N2JobG9wU0hDNVFZT3YyMndaTGRCb0oxaDZ0R2ZHajcyeUxGUkN1MFZtbjk5?= =?utf-8?B?ejdqOXh6RWFlM2hmOXAwWEx5N0xDdkxoeTcwamJkRGJzWlFvMkQwWGRiYWFo?= =?utf-8?B?K0hyRDhMN2RvOHJTZ2JLVTZWMnhQRUNKSUhYcFQ1alZXU0w1MW9VdURHWXMw?= =?utf-8?B?R01CU2dCV2syUW12S3FaSWpuWmhqTURpdDhEY0toVnlPUUdUMkZwV3dVTHRO?= =?utf-8?B?MlU5WXJISms1S284bURxT1k0UnRFeGlVWTQ5Z2pqL3pVbEgrb0J2NkljbVBt?= =?utf-8?B?TnpzQ2dhVmJUNmxNcW1oNVdsaldxam8rRlQ4KzJ0aDMwYnJwa2tGYmIyWmRo?= =?utf-8?B?M3JnUjNCTzVQcm5UUGtTM01QSEdUWXZGQm1jZXZCSCt2QWd1VXdiaHhKUTZS?= =?utf-8?B?MDR3Wkw1VDA3N01XZWEyYWx3a3UzOGNwbWo0RG5ldFhpZVNMZ2ZKUVpHcUgz?= =?utf-8?B?Y0paVmd2UklqSk9jZWRUblcxQjdrTzljbkNFUHNEeFVlaFpwNTZtMHhMVCtG?= =?utf-8?B?U0xpWnRlZmM2Y0w5RnpDWmdDTEFuNUE4RUFBcnFzOGJWd0dPRE5JaVFDUlNq?= =?utf-8?B?ZllLZzRjcWlKWnRVaVo2WkY4Z0I3di92VmJRTnVjbHZwMStRRGIzdzQxdFpk?= =?utf-8?B?aDRPSHp3aW8yc0tpUjU0eHJDbW1kakpxYlFzQXp0b3VPVFZZMHhhZDZkNTU3?= =?utf-8?B?Q0FXNTVQaGJxekJwVENDYS9KRnRGTG9ocFBqb0dwUjBjY1I3OGJINWVOb2F2?= =?utf-8?B?VitoYllYZ2FkSWE3eFR5TFVsWUpoY3ROMzM2eU80OGFnNTNPaXpObk5IaWww?= =?utf-8?B?M1FKZDNWSzQwME5ubU01WHRhLzd3eGM3TXFsejMvRE5WZG9CUnBEMzEzRHBt?= =?utf-8?B?b1gxZ3FhM0orNW4zcXNCSjhEUGRjQmNmZWdLRHF2aUlSRlRoL1JtaTIzUDhn?= =?utf-8?B?VnlrNVRnMzJPcERpdjB5bGR0YVhsT05sYVBxY1d5ak8vZHladE51bDBIVUZZ?= =?utf-8?B?SjlhcmZqVlU4Q1JWWldSWjh5V2dQdFpjRjQySWFRd3kxUUc2czA4WXhDUk1s?= =?utf-8?B?NTVOWDRHYjNxVEN6VTlvdnUzVG5qdzBwTGNrR0pNeGZGL0hPa05yUzNkUU5j?= =?utf-8?B?b09vUFMxS1NSM1NQSGtyMGFDUUlVdlN1REF6RmU3bHlOb2pZWE5tTlUxbnV1?= =?utf-8?B?UkRtRXg1YWVNV1htMWhlU0J4ZjIyNGdTUXoxQmoxU20wd0JkUVprRFRza0hL?= =?utf-8?B?enBncTRLZ21rVHM3L1FlZGhCT2FTNGxGd3l1SVNXa1BWMVpJL2ZZL0hOOUdy?= =?utf-8?B?cm9ycU5yRHMvd25TYS9JZGVwZWtZeHd4TnBHUFVMeDdnMXhjVlQxZWFUR25C?= =?utf-8?B?bXZJeXNXUWJBMnBOSktIZWxrangyYUJ2M0I3a0xjc2s1bEJJUEY1Y0EyRDVV?= =?utf-8?B?NnpvNUg2cVNPWXR3R0krVFFtR0kyLzJRL0p4OW9UUW9wUmZubmVIMVNXZEVr?= =?utf-8?B?bGpNb2FmeGR1blZhZGMwR0xZQm1RRlJvMmx1Qlg5SmZFelRZeDYyOTlKRFJF?= =?utf-8?B?VVM1KzdlRW0vdXpoekUwMitwSm5odDhiNzNROXdiVTJ4WjR5bVNDUkI3b3B4?= =?utf-8?B?cWo0RlAwK2JpZ3dTT215anhMYXVoN2IzWU95TERTYlRqUzdWcnpyME9WTm56?= =?utf-8?B?dkplSGpiWEZyQUxTcTRMYmVFRlo4NWJqMXR2Q2ZvWDFzN3ZVelMvTGdQMHE2?= =?utf-8?B?K3hzdU5wUGxpQjBqTUkzcUQ5a0JTTWxudlRmdFFRa2pNYXpWbDlrZVFUcFY3?= =?utf-8?Q?6xD9mj6GKxa/2JiLLBQJ4p82njhKfUXA+53Pe?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8092f91a-0602-4d77-7ec8-08deb6bb562b X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:25.5901 (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: 8DBO24sNbporOjSe9QTNVCw1azi3+ZTOZ9/OhoPP6jk/s+njse5ZQyaYJYWh84Dbv8vXcybJBeoVzMspkMOQ04unRq3kw2UxGWaSKjSOA7l5rNrMl1Cc0TWDxyPWZYHu X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Use dmaengine_prep_config_single() to simplify pci_epf_mhi_edma_read[_sync]() and pci_epf_mhi_edma_write[_sync](). No functional change. Tested-by: Niklas Cassel Acked-by: Manivannan Sadhasivam Signed-off-by: Frank Li --- Keep mutex lock because sync with other function. --- drivers/pci/endpoint/functions/pci-epf-mhi.c | 52 +++++++++---------------= ---- 1 file changed, 16 insertions(+), 36 deletions(-) diff --git a/drivers/pci/endpoint/functions/pci-epf-mhi.c b/drivers/pci/end= point/functions/pci-epf-mhi.c index 7f5326925ed54..c3e3b58fb86cd 100644 --- a/drivers/pci/endpoint/functions/pci-epf-mhi.c +++ b/drivers/pci/endpoint/functions/pci-epf-mhi.c @@ -328,12 +328,6 @@ static int pci_epf_mhi_edma_read(struct mhi_ep_cntrl *= mhi_cntrl, config.direction =3D DMA_DEV_TO_MEM; config.src_addr =3D buf_info->host_addr; =20 - ret =3D dmaengine_slave_config(chan, &config); - if (ret) { - dev_err(dev, "Failed to configure DMA channel\n"); - goto err_unlock; - } - dst_addr =3D dma_map_single(dma_dev, buf_info->dev_addr, buf_info->size, DMA_FROM_DEVICE); ret =3D dma_mapping_error(dma_dev, dst_addr); @@ -342,9 +336,10 @@ static int pci_epf_mhi_edma_read(struct mhi_ep_cntrl *= mhi_cntrl, goto err_unlock; } =20 - desc =3D dmaengine_prep_slave_single(chan, dst_addr, buf_info->size, - DMA_DEV_TO_MEM, - DMA_CTRL_ACK | DMA_PREP_INTERRUPT); + desc =3D dmaengine_prep_config_single(chan, dst_addr, buf_info->size, + DMA_DEV_TO_MEM, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT, + &config); if (!desc) { dev_err(dev, "Failed to prepare DMA\n"); ret =3D -EIO; @@ -401,12 +396,6 @@ static int pci_epf_mhi_edma_write(struct mhi_ep_cntrl = *mhi_cntrl, config.direction =3D DMA_MEM_TO_DEV; config.dst_addr =3D buf_info->host_addr; =20 - ret =3D dmaengine_slave_config(chan, &config); - if (ret) { - dev_err(dev, "Failed to configure DMA channel\n"); - goto err_unlock; - } - src_addr =3D dma_map_single(dma_dev, buf_info->dev_addr, buf_info->size, DMA_TO_DEVICE); ret =3D dma_mapping_error(dma_dev, src_addr); @@ -415,9 +404,10 @@ static int pci_epf_mhi_edma_write(struct mhi_ep_cntrl = *mhi_cntrl, goto err_unlock; } =20 - desc =3D dmaengine_prep_slave_single(chan, src_addr, buf_info->size, - DMA_MEM_TO_DEV, - DMA_CTRL_ACK | DMA_PREP_INTERRUPT); + desc =3D dmaengine_prep_config_single(chan, src_addr, buf_info->size, + DMA_MEM_TO_DEV, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT, + &config); if (!desc) { dev_err(dev, "Failed to prepare DMA\n"); ret =3D -EIO; @@ -506,12 +496,6 @@ static int pci_epf_mhi_edma_read_async(struct mhi_ep_c= ntrl *mhi_cntrl, config.direction =3D DMA_DEV_TO_MEM; config.src_addr =3D buf_info->host_addr; =20 - ret =3D dmaengine_slave_config(chan, &config); - if (ret) { - dev_err(dev, "Failed to configure DMA channel\n"); - goto err_unlock; - } - dst_addr =3D dma_map_single(dma_dev, buf_info->dev_addr, buf_info->size, DMA_FROM_DEVICE); ret =3D dma_mapping_error(dma_dev, dst_addr); @@ -520,9 +504,10 @@ static int pci_epf_mhi_edma_read_async(struct mhi_ep_c= ntrl *mhi_cntrl, goto err_unlock; } =20 - desc =3D dmaengine_prep_slave_single(chan, dst_addr, buf_info->size, - DMA_DEV_TO_MEM, - DMA_CTRL_ACK | DMA_PREP_INTERRUPT); + desc =3D dmaengine_prep_config_single(chan, dst_addr, buf_info->size, + DMA_DEV_TO_MEM, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT, + &config); if (!desc) { dev_err(dev, "Failed to prepare DMA\n"); ret =3D -EIO; @@ -585,12 +570,6 @@ static int pci_epf_mhi_edma_write_async(struct mhi_ep_= cntrl *mhi_cntrl, config.direction =3D DMA_MEM_TO_DEV; config.dst_addr =3D buf_info->host_addr; =20 - ret =3D dmaengine_slave_config(chan, &config); - if (ret) { - dev_err(dev, "Failed to configure DMA channel\n"); - goto err_unlock; - } - src_addr =3D dma_map_single(dma_dev, buf_info->dev_addr, buf_info->size, DMA_TO_DEVICE); ret =3D dma_mapping_error(dma_dev, src_addr); @@ -599,9 +578,10 @@ static int pci_epf_mhi_edma_write_async(struct mhi_ep_= cntrl *mhi_cntrl, goto err_unlock; } =20 - desc =3D dmaengine_prep_slave_single(chan, src_addr, buf_info->size, - DMA_MEM_TO_DEV, - DMA_CTRL_ACK | DMA_PREP_INTERRUPT); + desc =3D dmaengine_prep_config_single(chan, src_addr, buf_info->size, + DMA_MEM_TO_DEV, + DMA_CTRL_ACK | DMA_PREP_INTERRUPT, + &config); if (!desc) { dev_err(dev, "Failed to prepare DMA\n"); ret =3D -EIO; --=20 2.43.0 From nobody Sun May 24 22:45:50 2026 Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazon11013023.outbound.protection.outlook.com [40.107.159.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6F4B73BF684; Wed, 20 May 2026 22:01:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.159.23 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314499; cv=fail; b=LydwnifjiqN47CqMvZYKgXUChnCWYjl+l8Fc9E7mUIYaRjQmYP6DiyTA0DzxXGcw8Y4ZxJWUkVFwRHdtOhgNS685P5mcqA5jdb1itOB0VKhsHb0hl8uHgjmK5XOWBcAaCvlU9tKs6kxBHOHyxXhVsa4BFpV2hpwU5NrtpWASSE4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779314499; c=relaxed/simple; bh=Xxxb3WvNGrZnopGky0RMx4nHthEr92Nj/Z1vHabT314=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=D0HjkHvXULtROh0FTyeTCVQoXqp4awMCqu7krNLjmG0qr4f7pAhpZnGgNDMszCuUsvGGtAGnxR6OVKxf9idnNdncjkdYKnLbQrXm7B6Q+tc7MVq0DY5BijC7c7Q7UVkZiYgJVimxVfURN/cdBqAgYhmevXUUJGwSXZjlqSURgKM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=pVj8z0i8; arc=fail smtp.client-ip=40.107.159.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="pVj8z0i8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a+JC3JPI//wbgrkfwxIqMCyERt86+Rw75D8IEgyt6smb/kVor6PxoIf0dur9Fb34u8H6vcmIYfcP81hWn/9Twi/eYaj/f3UvVnHTHOHhQSNkOtClqrbXplMPNUQzn3V6pQBFkleilm4cmkWbdjU+eaCc6kr0SRthTfNz01tuodwMtVKZw9nwETSPkPAAYgS4aVjGDmbYa6uK3psZw0QXuetohdpPAoN62/fu/6d5gdVEZa13FuV/jhp0LSSQ6w4MZlPV7wGo2D784CIsv7s2hu9n5W8IvGpcC/ZVgK6oWvVdUTivQERO/Pcnd2HTFMRUFGMgno7syp+nZ2typ0IFkg== 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=i/ReP1rgqWrU4/sMzuwdfH3iluXexvaN58iUOEqpsAA=; b=RdAOGwYOVB5yVQlrIzcLp7Syr+57uo1wFiwHoU8bFOZTb/hxuFzNOg4m4PuTOLlC3XQoUdZdZtkUT7lZPGO6coHSwbd0jqqZIrhAud6H4BY9PP6AJQidSKlmrSNBr4mOCK9goczGkUt2YbUOIwkpFsQDD/iXjbhXkEY/XFnXEJurap/DoFbJNyLxRRspzoLRiPQMYm0GdEtb0U3SZVdHX9DfsUMbHcjGPwz7a9o1yDxvzBf3+VediHJYHVQj/UyypmAZGoolcdH0D+DWnviI8AbMEyHQf6RqWCXsh1Zxz5b7AIB1BjfxTexO8oGgHCxdse3IRVG/PYXO3cO5Xs8dtg== 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=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i/ReP1rgqWrU4/sMzuwdfH3iluXexvaN58iUOEqpsAA=; b=pVj8z0i8Jb6Q9JWZDF5bMAvYBcqlEV+w5rXsGUOXslYoNnyJybQlFARoXfwkGrOZaFMkPyIMljjslCL5Uxw/SRZLns1Ry+i9lWp3IPuM54CrC2Zl93y7XxmuDxKJcnzKcea8cSTHigpgSoi2t3MArBcS6HzO/Dx0eakyUGux6i4VbBeuSMnGHsDTvKtjRzg/DIHc4ywBzT4BzHUg/7UGogMhZFBxU1PAH8VDyK1o3XO9ZzSfjD9A0UCOnzon9aGWK1rFvbAG/gcaL/uvPtxcCdj76fokP2YJA/dcA08ygQucQWKLoU5v42sth02bn/aqH2+b9m8DtWvjPEL56WMG6w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) by PA4PR04MB8029.eurprd04.prod.outlook.com (2603:10a6:102:c9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Wed, 20 May 2026 22:01:30 +0000 Received: from GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c]) by GV2PR04MB11799.eurprd04.prod.outlook.com ([fe80::2146:83a2:5329:b7c%6]) with mapi id 15.21.0048.013; Wed, 20 May 2026 22:01:30 +0000 From: Frank.Li@oss.nxp.com Date: Wed, 20 May 2026 18:00:50 -0400 Subject: [PATCH v6 9/9] crypto: atmel: Use dmaengine_prep_config_sg() API Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260520-dma_prep_config-v6-9-06e49b7acb38@nxp.com> References: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> In-Reply-To: <20260520-dma_prep_config-v6-0-06e49b7acb38@nxp.com> To: Vinod Koul , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Kishon Vijay Abraham I , Bjorn Helgaas , Christoph Hellwig , Sagi Grimberg , Chaitanya Kulkarni , Herbert Xu , "David S. Miller" , Nicolas Ferre , Alexandre Belloni , Claudiu Beznea , Koichiro Den , Niklas Cassel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-nvme@lists.infradead.org, mhi@lists.linux.dev, linux-arm-msm@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, Frank Li X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779314446; l=1773; i=Frank.Li@nxp.com; s=20240130; h=from:subject:message-id; bh=erGKLaAZMNXPQALsbiq4uU1FrELcrAtTPXSGZhnyQ3o=; b=/Xyzy8RzK6dkLmE/eKI0VzHHc7C1CD2oir42Z7tjFQUJypShx9pOrLKm1h+fKtnpElmhuvfkS lIjR+9AroGyAZVQpayYbkHFyoPrRJ8UhgrEft5zXtUNpBXeuQXviM3p X-Developer-Key: i=Frank.Li@nxp.com; a=ed25519; pk=I0L1sDUfPxpAkRvPKy7MdauTuSENRq+DnA+G4qcS94Q= X-ClientProxiedBy: PH8P221CA0056.NAMP221.PROD.OUTLOOK.COM (2603:10b6:510:349::11) To GV2PR04MB11799.eurprd04.prod.outlook.com (2603:10a6:150:2cf::9) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11799:EE_|PA4PR04MB8029:EE_ X-MS-Office365-Filtering-Correlation-Id: a57588e0-419f-41f2-b018-08deb6bb58f7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|7416014|19092799006|921020|56012099003|18002099003|22082099003|11063799006|6133799003; X-Microsoft-Antispam-Message-Info: QwNEh13UvSusglFN+StZkU308E+KM8Yd/vRORw1T3mH5yu4Rp2sMxfcTvbwCWrroVROSCU/qgxVRr+lzfT2GE/GHhW8DGALYOg+D5tCWwxbFl6bTGhlYzp1GIlwN0/y/WrrQxx6QuqL2JVIbSLj+I/mir9+uEp6UTfc13pn+7Q5wDmAgFk0lLeorvQI8xtH8jliSmVg2bU6t6MAT60NvgUBc2XQnZ2jQExCn20PVmywa+f23bb3J50OfgvEPvsFK1qqYbMNCoNZjv7M+SS54coaa5Y4QRDvPazyaOY+YrXat9l/U5NQ4XrMj26/KIjmxj9l14RdXMKtfu3Z3Zlnjw+M9fVC0pzLHduB5swm+WRCU7/sqfXcZXPhFHTLLIQWqJsVsLxeTko3YodiK2sGs7OWX0jPNhqGP8oowvlIk8gblZlF0qEIGLZ3029/9oNaCZpVUPLmoIdIAi9aQX3Z/DGYUOqDIT3sB4AzJS0QpyQV0O87r3TfHYqn5keM+PiQi5moHHzdW36qgSPriy8/XDg1EXFU+hZHs6m7eNNxPHfwNhm7bhhr+hw3tRl3xmYh/ZvN8dFTR/hdM9sNbSozl8qlv9e1uQEyYJoWY6h2EZfapNY4P9KyoMCF07DbLGdN3k54tVepUHU/xFIB9zRXj5SJoh0J7A93iGgU3Mc5sAFKeckxMwuVBD553SzpjmwwqYIENq4sY7Bxx3Qkbg3DxYrvaeunJ2bNvqACJZUj7t1M= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:GV2PR04MB11799.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(7416014)(19092799006)(921020)(56012099003)(18002099003)(22082099003)(11063799006)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dW00SEM4QnBuSFFXWG81cklTS3h2WEY2T2QreWQ3Z1hkd1JhM0t1N3o3WmdF?= =?utf-8?B?SDhlcVkvNXNmVTRjVDVhNEdRNXpicDNMNzVRVDMwa1RpaVJNSkhTYm40Z3Vo?= =?utf-8?B?aWV4M3VLV0FhUWpTNWVmeStIcTdvTjJOQVo4TmJJQmdGK3U5QlBpaVBkTkRl?= =?utf-8?B?bUI2enJYdzhwc0ZBY24xZDMzaFhGK213WDRNUjkwOXozTzVxUkdPeWFGdC9R?= =?utf-8?B?U0NZbDhvM2hsd1RieXFlTTl0KzNmbTFXdmVqS2c0RWQyb1oxZXhPdGpuN1Fo?= =?utf-8?B?WlhMTGNQc2crcVFHYjRCd0VXSk5uRElEcFhYZFR1L1JqeUVrb0N1dk9HYVNT?= =?utf-8?B?bG9odE9VZkpqWWhzYjg0cGwvTVNxUi9CbERwdVVlMXRoQ0JaeGc2NWpRSkM3?= =?utf-8?B?bWJ5cUtBWG9CQmV0ZHQveFhvUWZDZDU4WUFSR3drOG05UXJDdE1WZFRRR2lV?= =?utf-8?B?K1ZWUTdWaE9IbU1wNk1la1RVUmpCeWNrYkd4U2hRbjRpVm5xVGd2bEwrOWc4?= =?utf-8?B?ZDQrQmNWWGVqTU8yOElnU0ZOZDc3MXYwQ3RiWVVPQU8rUmlERzQvQlVwZ2tW?= =?utf-8?B?bXZoNEZEYkZPV0pUVGZCYVFpd1pvbXhTRVZ4dVZZRTNrWERXRlRCQkRPdytW?= =?utf-8?B?SjJzc0VKSkFmYThsZ0lFRjVkZi95am1oSzFSV2NoZ3pjSUdQcUVpc0lPUUlr?= =?utf-8?B?dHI5L3psN1R6TnYzNlpzdWFISjJncnBBS0xDOWhINlBINVN4dU50N2poWldm?= =?utf-8?B?cWlrSXFzUndNZFNZcyt3Z2VMR2s5K3hrZGQrOEhqTmNzVStkMFF4ZDJ1ZG1O?= =?utf-8?B?UklUbXliL0ZEdXFKR3JEVnRHS055ZmpQemtXdWtZclRTZVdnTnVleVMyUVBv?= =?utf-8?B?TWdlY3ZFNlBkcmY5RWQ0UmpzRVZzM1JWNXJSZnh2czNZbDNsWjIxMmhZOUFP?= =?utf-8?B?MHcyajVHNjJzRWJjNWJPZ1dyZFp0cko1c1A0RW8wdnVnOGEzWG9vTTdsQmtJ?= =?utf-8?B?MzJ3WVEwN1RBUzZZNlZ4dytEaFFNWXFLTWF3Z1M5Z21iRmFyOHNWOEZMb3d4?= =?utf-8?B?cmRLRkowc3RVMHY0b3VyWDVHNGZJNWpJSkN0eDMraVRTQUJ1TSs3QlJvQ0tN?= =?utf-8?B?RkIvd241TjVrNGdZdlFaM1I4bEkzSGhRN2dzOGdvZy9KSjlzbitIM1BKTUJw?= =?utf-8?B?QW5FOVYzM2RxVnJMZGtodUxlRWxxNXBFMGVib1JIWmNucFRWWHF3K0I0dmRx?= =?utf-8?B?Z25qWmN4ek9JSXliZzhQNTF5YVc0S2RFZHNoSUtSQytkR3QycjlZTS96SllD?= =?utf-8?B?dGdWZjFrYTVwNUc4bVZ2SjBYKzdIVDhZaUZFM2orL0xBYi9BOGMwMDNuUjhj?= =?utf-8?B?YVpXTzdnbGEyTGN1c2NEYzNnbWNIZExCYjcrcjhzWUlSMlNkUDZVeDhLNEUy?= =?utf-8?B?S2o4bDBHdEY2WTV5TUVsWlZpd09YNjlTU3V5d2U5YlV3Z0NMamZCYm5OVjFY?= =?utf-8?B?aUw1SVhGcXpNbVpvRmNpVlJ5a0dXU0xaNnpvRnEzaGFuaWdubFB2RjZjb1ZU?= =?utf-8?B?dzAzblFVOXRsMi8rTWM1ODlLTjdNWS9DckVBdnBTUmZ5OC9NQ3NiUy9mQytz?= =?utf-8?B?YmNlVXcxODIrLzNWNlJHd3lKWlBONCtUdDRaR005M0sxL3lacGIzWWhsaHZk?= =?utf-8?B?enNBVzZqM1V5RXUxa0VVcDJmZGRZK0c0S1JLTXBCWlpKd2FXWDE5K05lSVRW?= =?utf-8?B?ZC8wbHZxL2xST3BXanhUSkhEMWVLZ1V6VTlkWlBQa0ZQM0ZZQ25aZ1gxcnFR?= =?utf-8?B?Rk5ZaEFtL1BOVmYvbzRCVEVIcEduUmZWUnBSamZIbE5WbWtwYlkyUWRYSCtv?= =?utf-8?B?bEdPSjEyZGwvazBVY2hHVXhQTCtUUUwvK0V2ZVQybDN3QlN1T2JoeE0yYmF6?= =?utf-8?B?aGNXTUVaa245QWJLWjJkK1JCZmxhQWlEU3lVbDJ0NDhGVHVjdndCa3FzUlJJ?= =?utf-8?B?UStVNGxNYVBLUUtET3BEbXptY1lTWlBuMVF6ZUsrTml1NklRTG9xdUJ1RExa?= =?utf-8?B?REE0dk9aZDFwRWJ4N2JuR3B2MFRZdjdob0YxaDlMYVp1cEkra0hpSHBkaFlZ?= =?utf-8?B?WTJWK3JGbzNQU0ZKMFhMbHY0aUplQ21YOWk3M0ExbGNVek9aN3VSUUYwR3lK?= =?utf-8?B?dWdTY0JxdEhhR1ZPUmJ1cFpaT1NoOUZEbEpBTnJWYTVPcEpMaEQ5bFZxUFRC?= =?utf-8?B?aHFUVkNZNUtrOGV3OVA0NzI2M3B3OGNFRzJZNWx5RHluWlRqd2w2eXVkZENP?= =?utf-8?B?ZGhWTnhvNGV3NU8rSTR2bXdFSEgzdUxkRmdNenAwWExGanBxMS83bjdPbEUw?= =?utf-8?Q?FFx/TtkqEldRjCfo=3D?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a57588e0-419f-41f2-b018-08deb6bb58f7 X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11799.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 May 2026 22:01:30.2940 (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: ct7NZG1BSRnaeO/xjkO86vp1QujXuZ/9agZ1ujghbdJOla0JvMvz0RshljmrO3usyaYOMAitq3XtLjsE6KMkzyss2zcZu3Kv4i373Oscjq+z4PivvGkyNokjTiMe7W+x X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB8029 From: Frank Li Using new API dmaengine_prep_config_sg() to simple code. dmaengine_prep_config_sg() does not distinguish between configuration failures and descriptor preparation failures, as both are reported through a NULL return value. Converting both cases to -ENOMEM is therefore acceptable and consistent with the helper's abstraction. In practice, most users only care whether the operation succeeds or fails, and do not depend on the exact errno value returned from this path. Tested-by: Niklas Cassel Acked-by: Nicolas Ferre Signed-off-by: Frank Li --- change in v6 - add commit message about error propagation (sashaki AI) --- drivers/crypto/atmel-aes.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/crypto/atmel-aes.c b/drivers/crypto/atmel-aes.c index b393689400b4c..d890b5a277b9c 100644 --- a/drivers/crypto/atmel-aes.c +++ b/drivers/crypto/atmel-aes.c @@ -795,7 +795,6 @@ static int atmel_aes_dma_transfer_start(struct atmel_ae= s_dev *dd, struct dma_slave_config config; dma_async_tx_callback callback; struct atmel_aes_dma *dma; - int err; =20 memset(&config, 0, sizeof(config)); config.src_addr_width =3D addr_width; @@ -820,12 +819,9 @@ static int atmel_aes_dma_transfer_start(struct atmel_a= es_dev *dd, return -EINVAL; } =20 - err =3D dmaengine_slave_config(dma->chan, &config); - if (err) - return err; - - desc =3D dmaengine_prep_slave_sg(dma->chan, dma->sg, dma->sg_len, dir, - DMA_PREP_INTERRUPT | DMA_CTRL_ACK); + desc =3D dmaengine_prep_config_sg(dma->chan, dma->sg, dma->sg_len, dir, + DMA_PREP_INTERRUPT | DMA_CTRL_ACK, + &config); if (!desc) return -ENOMEM; =20 --=20 2.43.0