From nobody Sun May 24 20:36:24 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020089.outbound.protection.outlook.com [52.101.228.89]) (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 453A931AF07; Thu, 21 May 2026 14:22:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.89 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373325; cv=fail; b=dsAjHkN4Y7MpYrqeZXgAAyOOxbs+UJxdpLYh3S9qQWNtwx7hoyLC06NX14Ik21aUgbMTuNzfuS+Ytuu6kvy8HT6WpHkBPJkAhwIjCuJdFVn4GzxQty6G0hJF/NtJ9IPW/L5vmM9uFmd2PXE5QGgb9DGk1YmpVsXYYJRuZqXbNy4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373325; c=relaxed/simple; bh=zUnQ7PkhuI98hMQpybD1evRI0hiy6uBeye6R362wBXk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=pvhZ3fDP3AUXb0TVDDDRgozkcK+uGdHMdyXQJ4HA4YeY1i8j2L0xF+T0urakRF806yz/z6vx/4H7JbfSCjIqzo1jM/1pF/0P8F75m4EFJybD0lrmexAt2qIsD2KNWZs/2LaISwIQDtRlU5DPmCYg7BozmavzadC4uZ6vMjK1/cM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=dNyleVXr; arc=fail smtp.client-ip=52.101.228.89 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="dNyleVXr" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YwkkhnG7OcTesHTgOMQ9G8vsXgruJbT1oLYnwiTF5goJhohvFMwMlQkZxsEFIh3Oe0lrZuTn+tpCdVyimaJWBMHv1XLL3sgkhh5gt0J93a6hYeBDxQmDZzc3KZUHz1L4zJztzCRa1Ai733rGDIO1V/euy2RJSVZqyL+4atpve7dBkSneZXyRHdh18G1GbVm9gh49PaVjULSpf4BL6AqDtc+ptideidFkYJdMV4/bIT2A51og2nUXsPG4Z48nMaaAxRBqDSSWuz0S3o3QU3u3kHezwD/SxGXyWNiOdjKlbzQcG3YG7KOb9VyNIfqYReEB7HNnZTBXgDPHpnKq2vbyuA== 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=uomBw89kLDme2Lf/R8yzJFPwhB9xhJ80lsVMzZQ7bzw=; b=GfND/YdchRbtF2LXYJ9vouh4cEiQOGDKXQkPbSHBFLpzt4OjYJk8JCIY1cEnmRKqohy+62d5MT+0A/1RfmbSoLbRATrlCslieM69z5y5YYL2bmKnLDo9MNBERvoQmIfnI8xr3Ud23W1KamDegerjbgd2/EPwacrhnXLeohIsiWRnxhCqac/wQlRbjNvt0XFu88ghd8hToVzN5/fgaTClWKs5okFEI4RBVQ0dgykewotmmiD1OCZGFvrTGgBRYx4BRHg0H5GsOSIi6kk4Ve8Z4dmjqjWBSytvhea5PprB/c4uF6qSGmDlJNrxVdtfK4vJ8ZEmPVvOiUu8vIgT7RW32w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uomBw89kLDme2Lf/R8yzJFPwhB9xhJ80lsVMzZQ7bzw=; b=dNyleVXrKjQdJ1RBpFkrhonaBQvjTSTcoTERnQHbYZamp4QUYuld0LYiD8n2bg7x2zzEQZGKr4xw2Q2AO1YO6BCjirjzn2nJUp9rRCIzQlrS7aARuXOK2lQUQL8tYrnR2HJV4FKO7VjSQMBly6LXUY8OBrkybodyO58VT8tvV9E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6259.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:32c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 14:22:00 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 14:22:00 +0000 From: Koichiro Den To: Manivannan Sadhasivam , Vinod Koul , Frank Li , Gustavo Pimentel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] dmaengine: dw-edma-pcie: Free IRQ vectors on probe failures Date: Thu, 21 May 2026 23:21:50 +0900 Message-ID: <20260521142153.2957432-2-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521142153.2957432-1-den@valinux.co.jp> References: <20260521142153.2957432-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY6P286CA0013.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:3b8::14) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6259:EE_ X-MS-Office365-Filtering-Correlation-Id: e42bfeda-2277-4b19-c19f-08deb7445262 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: pJqDlDFKiI9WJySp4Pe2dfiJKhCASq3XgAMV9KUekvUOzRLdj4vBm20Ghito1WaevFXNfa93Qqi2GnyPlzOS9m1piVkcw2vte3AEJ6TFKF+XzI44K+3Jbw5gIflLQfI86l2ck1sI6Ls8D+Iu3YioRLYdMkrKNfTcFb1LrvE+2cy/MRJ2x6zc7Rp58RrPNyoXzuuLIIDCNOmZPwL2x3+OWbsu+hlgaEbzSa3iOARNS/9iSA+wxRjZuvqKBfA04BrLolLU1LvDnCS8cKaocA0Af4fxRnj3+ZQPouKsd5C5mHO+k09m+F03yELCrLeSQ0GUA0FenPtN6UcTL74ZCvBYgFX7NxDr0mAV8iM3Wom3Z4mKuuIFHRgETvgT0/CaOpeicEHcVLboC27zwFUbyuL0mCaM1q8hWOwEuGNFTHu5d4FtLP6SefVSvJZth+JZp38zsmfvOMxA5rJmTHs9EzMC1s2atlE5kvfWV4LPSo6MC5IktbsewRs4JVPhq1ack41rsCjXSLBcyXyFdkHn5zB6AUTgW7FtKU3dnkmUZhDf3iMIkISniiy6TloUJoJPnwIdbyfXN8uIo+c3ZQaQGMEvJ7ITfkxwtTOlZkYtn1DRWI4Ivj+I0p84w+pHTK3gxi4m9go3S5DZ+mhXlB/1S3Lx0u6yrbklQ1Ryp8UAvw0S8oQ7iZfKgafCJAhZauixhb0p X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YFnaMQMcDyRiH7G6SMJ0G6CkTXHMhs4jJs2bHvRCZVTEMbiMRiLc+Q3PuEvC?= =?us-ascii?Q?y2jNMsdeMHpNgJySBAjaUE5ar3k0R4e7Ke7YhqvxozbU+MrN2WRjc/3YEUkT?= =?us-ascii?Q?xLTBxH6G6vM9GIGZSC9d2nMKoRSVVoi7SyGES/QRsZ5P7O+r/d0I0wvJUKbb?= =?us-ascii?Q?WlPYlu3Kuwrx/a18xIu+Xf9mSXt/+KEbUKKpnuvffexwKyJ37RwzY49UMXEd?= =?us-ascii?Q?e/NTmkOtGvYgB/FjkyiKokYwiZMqsZ8YPg5RQ4yKS4CHXnJ9XbvrXpcFZPsW?= =?us-ascii?Q?9KpgCl1TDVsPrWl/x7vnSTrAOUhRQNInKBACUic6AvF/v6TE4Uj7dRnydP8u?= =?us-ascii?Q?kS05zyF12iKS+du4kDdNw1uWf3eaXbCcqoaoxNDjBnI71H6egDpBj084Iop8?= =?us-ascii?Q?PwIJzrZCKXjGK0SSa05B5YZGBFt+yA5/K/Y0fog+5uW6vLcnl0h+wj1KilR6?= =?us-ascii?Q?rOwv/jYkxFDLZ6BYcku/s+Qfg7EFqZiXPO+0u0ipLRO0ikhX/Et6AZQlk+5Q?= =?us-ascii?Q?C8dMPo5k/hvKT72+uw3Ur+6zlMVIcT0ezW3T2fx/J5SJf4FBGqCembeTPQam?= =?us-ascii?Q?9NQuzgj0bYesfb2Sw1izHVryLplnuyV9teaHponiBOjebYZ2S+c4OtaTgXUP?= =?us-ascii?Q?1nt7D9N4wgdtkxrBYVO5Tuy7KBt2Bsauvxtv2ip4ZYcsIlI5rFa6w+JFs/qU?= =?us-ascii?Q?On8leQ5f0mD67+WNOSKGnL3W2E9v0pu7P+1+31WW95qyUPddrtharpHu/NBN?= =?us-ascii?Q?dEGModMaNO5uwxezgwzrll8RR9BKdbJYRKK8gZ/He5FG73pEODYhAGxmEVlu?= =?us-ascii?Q?p0FK24AydsSjSXwny8qGplVq4aK+B2fKRhFGILzgJnI+7qbPpK70nPlzm8Mh?= =?us-ascii?Q?j4bamVjMXdiJ+Oxy+5LPi064Rnh9+bhGzV1FfBH3Hh38eVGAFkFtTPZex/wp?= =?us-ascii?Q?nTQ6afHkjDiM2ljO8OM9fXqBAkRQrNORGoUkAhoOZiIF0D37PEMVDhcPLxJf?= =?us-ascii?Q?VfjovY92LTdOA+3W7yrPlaN5Co/fTfxexuzvWnqL4YJ0HPANJ9xjUI5FGAS0?= =?us-ascii?Q?f3IOoGaADJf3qu86Lmj7iHsR0XtNRjMKsgV2zEnZqyvVFasjT/RykAI4df0/?= =?us-ascii?Q?J/63Vz6Irv9Fc2DmI2gJ3FvgU8vfH+6sWkJeR0fSs4GlqP9141NXl4jrQxo5?= =?us-ascii?Q?870ui5PI0jLBeXP4JmiSLlCm1gaAk54SkoFy5fKTg8kQWLBak56jm0f0vYcS?= =?us-ascii?Q?ZdCQ6QxfiZTuB9CYDy/kzqeO5tm3eJxx+S/qCsbXbJk1ScjeCq5bLyAxINNJ?= =?us-ascii?Q?12PXMkWAgMCWlIb0lp9CMou2+iMyWrfxhrQqt4otoJGW8U3PaqDQrNiP61qx?= =?us-ascii?Q?HY3sycgQvXElIt8QYegJz102cr0cCyJJVTgroil+5qNp3cobugzl2pbv6MRY?= =?us-ascii?Q?uR+YEqVx9HFCq25LQ+uJwVUAmM+66cxmbxRfSx22Pe5RkWhnJ9ngV2AypV+s?= =?us-ascii?Q?FV3EABeGkHJ4WjimxkX4bRFSwR5sMHvn8YTEZWExIePLZrXqzAKmVamDdG/6?= =?us-ascii?Q?ChbTnw5vr1VfCwu8w+mZ7qa3lgSQu8t1TY31IerzggVgXj5gu8MVpWKSEnt7?= =?us-ascii?Q?YFio8J3rNGrhgCSy6PU/CcjtwGZOQS+ujbp3bXjMT34JNjDrZBy9hCra+y7+?= =?us-ascii?Q?EFiB4aM6CqkXqG8mI2b6f0hoTm4tPIuBMtPfxRW0I7brJ9ArBPWdnLmyvgxT?= =?us-ascii?Q?OvgJNi54bolyI0Te5shG1n9Em9Ql3HWLEkVug1XLXaVKFW5fF5V0?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: e42bfeda-2277-4b19-c19f-08deb7445262 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 14:22:00.1699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZWgNIb40llXBAeTwY/Vfe9Yd3zhGOzjdVQAUuN8tVWUT8mlowpKT7ola0Ktj3RtpIjA0vbQQPh3dgySpz/TdVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6259 Content-Type: text/plain; charset="utf-8" dw_edma_pcie_probe() leaks IRQ vectors by returning without calling pci_free_irq_vectors() in error paths after pci_alloc_irq_vectors() succeeds. Route the post-allocation failures through a common cleanup path so the vectors are released before probe returns. Fixes: 41aaff2a2ac0 ("dmaengine: Add Synopsys eDMA IP PCIe glue-logic") Cc: stable@vger.kernel.org Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-pcie.c | 39 +++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 0b30ce138503..87c31d01fb10 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -410,8 +410,10 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, chip->ll_rd_cnt =3D vsec_data->rd_ch_cnt; =20 chip->reg_base =3D pcim_iomap_table(pdev)[vsec_data->rg.bar]; - if (!chip->reg_base) - return -ENOMEM; + if (!chip->reg_base) { + err =3D -ENOMEM; + goto err_free_irq_vectors; + } =20 for (i =3D 0; i < chip->ll_wr_cnt && !non_ll; i++) { struct dw_edma_region *ll_region =3D &chip->ll_region_wr[i]; @@ -420,8 +422,10 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, struct dw_edma_block *dt_block =3D &vsec_data->dt_wr[i]; =20 ll_region->vaddr.io =3D pcim_iomap_table(pdev)[ll_block->bar]; - if (!ll_region->vaddr.io) - return -ENOMEM; + if (!ll_region->vaddr.io) { + err =3D -ENOMEM; + goto err_free_irq_vectors; + } =20 ll_region->vaddr.io +=3D ll_block->off; ll_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, @@ -430,8 +434,10 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, ll_region->sz =3D ll_block->sz; =20 dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; - if (!dt_region->vaddr.io) - return -ENOMEM; + if (!dt_region->vaddr.io) { + err =3D -ENOMEM; + goto err_free_irq_vectors; + } =20 dt_region->vaddr.io +=3D dt_block->off; dt_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, @@ -447,8 +453,10 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, struct dw_edma_block *dt_block =3D &vsec_data->dt_rd[i]; =20 ll_region->vaddr.io =3D pcim_iomap_table(pdev)[ll_block->bar]; - if (!ll_region->vaddr.io) - return -ENOMEM; + if (!ll_region->vaddr.io) { + err =3D -ENOMEM; + goto err_free_irq_vectors; + } =20 ll_region->vaddr.io +=3D ll_block->off; ll_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, @@ -457,8 +465,10 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, ll_region->sz =3D ll_block->sz; =20 dt_region->vaddr.io =3D pcim_iomap_table(pdev)[dt_block->bar]; - if (!dt_region->vaddr.io) - return -ENOMEM; + if (!dt_region->vaddr.io) { + err =3D -ENOMEM; + goto err_free_irq_vectors; + } =20 dt_region->vaddr.io +=3D dt_block->off; dt_region->paddr =3D dw_edma_get_phys_addr(pdev, vsec_data, @@ -513,20 +523,25 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, /* Validating if PCI interrupts were enabled */ if (!pci_dev_msi_enabled(pdev)) { pci_err(pdev, "enable interrupt failed\n"); - return -EPERM; + err =3D -EPERM; + goto err_free_irq_vectors; } =20 /* Starting eDMA driver */ err =3D dw_edma_probe(chip); if (err) { pci_err(pdev, "eDMA probe failed\n"); - return err; + goto err_free_irq_vectors; } =20 /* Saving data structure reference */ pci_set_drvdata(pdev, chip); =20 return 0; + +err_free_irq_vectors: + pci_free_irq_vectors(pdev); + return err; } =20 static void dw_edma_pcie_remove(struct pci_dev *pdev) --=20 2.51.0 From nobody Sun May 24 20:36:24 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020089.outbound.protection.outlook.com [52.101.228.89]) (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 3E1103C583A; Thu, 21 May 2026 14:22:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.89 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373328; cv=fail; b=Escp4hfZ+Z/uAqbZ7bE8KYKJwfN9xzu/luwHrPl2MeGu22XSUY4MB2OtJGIEZ6TMV4TBKUe/4UnAkr+IOrB/RDSc/GhHzjdk4sxYyZE49xYCJvRnQGN2wohFX6ASsT/2kI/g2WeLK6UrIzH2lQKh8cm9BstYLYAZlMz6ad/sXf8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373328; c=relaxed/simple; bh=qjtk5WgK9XIBW4jlbb+Ed92akwt1Zc2W2rwqGxwtGeI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lKZa4jyu4mB9tE6mMNm8+it7DjbPrlEMxmtpRC5ftGb0HkqWmiDkH9JZFzQ7F+gmoD34SKLz7OYyeKY81cKVevZWQrngwULMDCRq+3VVaVftERBd2f7wJ+9gyfzmeLfyVQGpr91Swr8p8TTGHoUd/2/hMgLxCLGgUAAVr5PcoCk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=b+GpMC7z; arc=fail smtp.client-ip=52.101.228.89 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="b+GpMC7z" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=idi1lU1cxJz7xRhbbJ2BC5PMXKEX3tALPwLZ+mcy1BqRsTMbpHsXZ/wbWnjFFleMYMA+59T3QdzD/LVPMjApkesf4owTg7YzGPEZ43tZTi55GJ/FfF03Lic6a1oeT9JaFvRUnbgX0oU05i4V6tVHmJvrvkhbBPUDTdnctlxnjY3seTI+7BVaVIb8Rn7x0MRDjWhAhZ+cEFkoxds7L8N3zD473UOvg1ici7ZjgkPECLU+PUaMTrVAor0LIn/lJc/T4GA4jCQK/jyCvqndysRQYtGrN9+zfjq0am6Ok6LWstuqUC3XSO0SgxBPjy9fzFn6HHgoVlUFouPU61BXYQQk4Q== 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=Pgi2f5L8ZKKxotxELzSGmd3CYUw5kc/8blGTzKAO0+0=; b=dA/brlHYK83KRdM2qOrbwsaS4ldT/itlQQf2Eeb4CJJfmW5tygo1prD1bStZ30s3jTPdekHIhDbE/bgl5W7av0CFPaGUu54WU5J95fPR/F6WL5D7rLgkLmd1BicopdExhE0WbPXdpdSShQEiyljsA2FCqI8K93CqG2iNEAqUTxocYG/P0OYxK3JpYf13IgcqiFzhLSfQV99I/EB6HXn3YdamB4OxmbTsbADBHq0ba59fC9o4Yhkr60DVyJMKlKbwI/oYiB1iCsybIAQWeSlbOskv60eVKDH2L4v4c90SRaihG90AWnpPcGQgemwlu7R/dG8KyY8VEynQ2w0aX5dfEQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Pgi2f5L8ZKKxotxELzSGmd3CYUw5kc/8blGTzKAO0+0=; b=b+GpMC7zcyaO1rNlSfB63XfuxzOEA2u3TWO2tmMf3+zau6uYeeM7l6/zFLL4O3/GtqBebw/RZRhPpncOShTRRVO1hyi1NkBfc4s5kyrVdnDjZa7Tn7IsvJrBAvrvgqwVjBYpjphx1EK1yDNVhWUvCGQAE8aujuwkrkTcVDkPZX8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6259.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:32c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 14:22:01 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 14:22:01 +0000 From: Koichiro Den To: Manivannan Sadhasivam , Vinod Koul , Frank Li , Gustavo Pimentel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/4] dmaengine: dw-edma-pcie: Reject devices without driver data Date: Thu, 21 May 2026 23:21:51 +0900 Message-ID: <20260521142153.2957432-3-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521142153.2957432-1-den@valinux.co.jp> References: <20260521142153.2957432-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY6P286CA0010.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:3b8::10) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6259:EE_ X-MS-Office365-Filtering-Correlation-Id: 04592c05-183c-4e71-9b44-08deb74452e1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: qlVlGGnj2YHxack/2b9dSxxvhljarvYEKDzs6IFHmszRJF/HGSfovZr+otixdtETkf/Q6ZamjI5VGZHQ7PwLRsRB/72oB+WV6kYz8fdurQUCXWZj+LCjBh5Zy4ib/kvchfrXT46InhTdl3TcJkB9Ck+KkAFPXkKmCZo5j/mpT/miY4o3cLPPGzJr4KdMAKtVn09TJKGXC7hDpIj2jH7wtiz5pIXdYqfkL0TF2oPsPXjq97q/hWFxKnVpFcHKEVd3J3hWDqk+iRyIoNVHp/9RTA5dH+jPXm/obY1heATRQUM+uHpc4ghqk3cafEO01cls7JcXIRwc+IxU4u/fOkyU6uByQgmaSX2wyeskkJG60CzkWYbV86cZbKMwl7LestfgJ8Lj+fOPQivgwkH2gdQiuzo2ODGEreilswzgeXuWqx8LXurrQO3+sPCdApMJ+Cw7exzgeIgEZ+RbxwlSyDGeQE993UHPpXOrCLuX/lUoYmoszmeYrRgKsRkx9Av0X7GO/pt2qJ3ARHt7MmEkgJpSs7inN4zdRAH5LcOIP0webRCrZJTwacV5dZO7zhr04Tgs/YMp/1NXgD8E6yOm9oAMid/HbfXS+9+/P5yCJ95C41ovjLH9K5IqOYmJ1roMLwi1jXFBmsMIPzcXkTTgGlJov1rhhmLhdkWTBRXFUqsvGYK1Ji035A6KhKSSBK5EB73u X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OHt71pOZK9kPBbaS+Xy3hcCiAg1RDN6enWFUs4OLb8q+rXij7deA/dAkpfnP?= =?us-ascii?Q?RkdtyZHJ5oH9UFvYWSupyIXlPY8hZliWH4YJ3vvS0qX6n2rcvPgk6TAnbt/3?= =?us-ascii?Q?llL/+LD/muEmggu2/cYy5hzWEA6GKg/ecGUm7bHn/3sfTe7ip6ZzKVwGMbU3?= =?us-ascii?Q?ikH6zz06/iGFaJVbGRuLYRxHG23CL/+oriWdTxmEvKzisXCuoEbUMX7UiybR?= =?us-ascii?Q?HDdnmazKvKq8Hwh1r1RLrufCjE7k2ksy9t5h6dyv0lCze3L1o271g6EQC8ay?= =?us-ascii?Q?ZXgKNAS9L522bd1FbByTwEtTMr8QYncWcPKFGYUfT2TOrbs5lQLFzMYiopiK?= =?us-ascii?Q?COJSUdBec6saufpbydmwjsm55dlHMjDxcoiy99jx1NGwA8B5WleRkUv/1SzD?= =?us-ascii?Q?lnT6Y1Ple3RdsgAWpYB19+j50DkRkrLfW7/DvqXGWGkA0Ltn1hOWrIpxAO9o?= =?us-ascii?Q?ONsEj+Rtu/Vfu0nJyGr1ttWXOMMFFhxImCmoY+Mc1B/39yvOqKJ5Siw4k5c9?= =?us-ascii?Q?i9rUMreMNeqJR/ZuamIdOAKHC4DS8IxCnET7vVuCr3U4geMaW0n3qvyp16la?= =?us-ascii?Q?1L6Cw7+oM0sLGgDTvpLbA8EHbRhDGY7eN9u+yk17BpoVWsX14EdRoUJh+Vso?= =?us-ascii?Q?4WF0MASZOHWWXF7TiM5BiGvx+5AqzQZlqRfNewfT7ImdyExlBYsHKubDHqFp?= =?us-ascii?Q?5pk0sZB1BJuaAFZOoA26cO8v0U8XaJoXZrMWQnPqchV60W0Hb+SO9BGSloI5?= =?us-ascii?Q?U3vufj3Q9NGMU2geNI5Mc+FIKL8QUjJ2LLKorqUI+KfkdIJQD2XxFOwQ3bRs?= =?us-ascii?Q?Yft9tkuYI+Dx6l5KRYnJzjox8Xh96eUt+Kyv4USAO7sZti0omq1GPk6jRkmJ?= =?us-ascii?Q?frASU60uoPtftuS5xekuIceG0sI9gvC1heZT+1VihDvIBwC8Xa5/wZ/5kbXi?= =?us-ascii?Q?+iayH7J94LYHDeEqyGP9QhI92qGPOQ9LuFGU78ZCyOpvOM4ceFM2Zg46hFpZ?= =?us-ascii?Q?1wT/0MCz3xoebKXEi2tv2tAvL1I4AEAmyujjRw9mwtmYhiGubIMCIxeGpNfi?= =?us-ascii?Q?iTHa/XsfOvmJqhq+Zz1ckJH9MggI1kuf9lAjaCBCfM0FJM4e18Vqf3p9k72y?= =?us-ascii?Q?Y5VyqKg4Jq5PUFvPrdzf3RXSbtbK4zYr9gd/tru81FN6nFTNXmbZwAAB3FqM?= =?us-ascii?Q?/4y8o3U/XJyFLV441cC8ulFQMUeyUyRK8Xw8NGDvBbzIu79fA/yT00jgfIeB?= =?us-ascii?Q?Ultq1TJdZhajIYYWPunhs4Ow9LrU1XmWplp107tyF36SpFw3IlSaQLYnd4CS?= =?us-ascii?Q?3QBEYYKvu4Gdy9z1NVG/NH5z7/IEnBSo2HYg4N0keHjsdybN/T4tcxB6okA2?= =?us-ascii?Q?TRvcs+q5tZva9HAhZg49Pe0Sn7dEb2Cpq31zCxUqZP4tFEI3rY27hcVWaASm?= =?us-ascii?Q?Og6kmfyFWNCjBhKprqAmNGbCumEH45TgyGlvQb5Z6ujERO8g3c8NUAUCYhSY?= =?us-ascii?Q?SR5xGMbz+lXNmFqdwoG2mXOncMYWvhkOm85ZiyjA/1TtHZ64nGWmiq8UMLiB?= =?us-ascii?Q?0m9k74++bxErE2xIkdVVKw7vJY9WIBpaijanu9esSO/hr1UscQsuOcOeT9l4?= =?us-ascii?Q?7zBCWCGstCt5x431yRn77j5cyAc/pgOnNo6BQ81/8rbw4l3jvmdOVSFv+RZx?= =?us-ascii?Q?+zZIw0Q0BEUr0KhS8w1EhebqXdZ15QNN6lHQb8HCaRPqjZatDy9nRBqWgfaa?= =?us-ascii?Q?s92breDx4RnTc0PnjKWilXxjPSd2fazHhpMRf68mAHMXCbtgV1JD?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 04592c05-183c-4e71-9b44-08deb74452e1 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 14:22:00.9893 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ccH0P+vndvu9KAnwKDlUloEdWFRGQmTbb74mAQ21gFgcy55gBlSfWsYXlvjer5uD8Uqqw2f5X5dnG7La7LOrdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6259 Content-Type: text/plain; charset="utf-8" dw_edma_pcie_probe() treats the PCI device ID driver_data as the template for the controller layout and copies it unconditionally. A device bound dynamically via sysfs can match the driver without that data, which leads to a NULL pointer dereference. Reject such matches before enabling the device. Fixes: 41aaff2a2ac0 ("dmaengine: Add Synopsys eDMA IP PCIe glue-logic") Cc: stable@vger.kernel.org Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-pcie.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma/dw-edma/dw-edma-pcie.c b/drivers/dma/dw-edma/dw-ed= ma-pcie.c index 87c31d01fb10..c2024fa824e0 100644 --- a/drivers/dma/dw-edma/dw-edma-pcie.c +++ b/drivers/dma/dw-edma/dw-edma-pcie.c @@ -314,6 +314,9 @@ static int dw_edma_pcie_probe(struct pci_dev *pdev, int i, mask; bool non_ll =3D false; =20 + if (!pdata) + return -ENODEV; + struct dw_edma_pcie_data *vsec_data __free(kfree) =3D kmalloc_obj(*vsec_data); if (!vsec_data) --=20 2.51.0 From nobody Sun May 24 20:36:24 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020089.outbound.protection.outlook.com [52.101.228.89]) (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 C86803D7D86; Thu, 21 May 2026 14:22:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.89 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373330; cv=fail; b=UjsoFGjVkm4OexcwhUCJVC2W4ZVIp15yyDLf7F7AIIgCQgkZ3yBotl6nqnHDF0RAp2nHO5VSU9gNKMiP22RnoH6av36GhF1RsbtP2f+LRU5NBTv0QklN+yNJ0/LUlv363Ypsim6Ql8MsoUBka86/GYpdmE/MTZWcg0tZg5M+hz8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373330; c=relaxed/simple; bh=IfV77kaTHYhEOXohwqmCqCzmLh15+b02Y1oUYHlfndw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=joV5N7lFic5MKOsMtK3Li6eZ8UkI4jM15Hg9Pi2Lt4DbXfJkP4fDti8Yt9Ni6bGlCIyVH7IlhZQ8qKwLVzW+aNsDhYRHeC4utCeUreF8j0B634dmM/ef509h+WZPCRI5/W5LlHL4XlNknCs8JwaSDbti9pnTRJFg3HDJu3wclB0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=sG8QPxwQ; arc=fail smtp.client-ip=52.101.228.89 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="sG8QPxwQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VYsQBPn97dDiFkBirqwVVZkMB08abEzRGCEhrTvtc/+KlOMCmD1dKuXQASGxO7yajnjzzWQOgT7LMGMdGiQ5dj4YwfMOd3uwOqgVmvSymYjk8rarnaL2U9EWjcXFp7JGREk0WTCb71o6JA4OMJ4U2FiaP5OMVnwCThKxkkvcBoF8yylo1qCJpkZrBVRoYSi85UbgKMxLuXhMhWBzXMa5sCQNShtQeDWLEjyYnC7CZ67GYQXNgdZUvetyaXHo1ppt1Weu68VAUPCVtSsc5Lr+Z69qgwIp3uxPEhA1YlDEMlfqqhEywYeNCePk2gy1cVrH/S9cJoi8xN+j730kNFqsTA== 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=Duk7u+HzWbeJV8dfD6UEQUP4J1+kwn8fFOc66vBlmhY=; b=e4Xjlqwj3Olm7tpfCpFprc7qNcvAoGwuYcVTj9E8GVlCX7apSFjSYTPaYFIe7V9+I23g8YfEDiJ46k++Hsfi0lzKzejU5qlrUp9i0nL0AiZLHFHUkRWk4TquHKw2Ulia6oiG56VlwoMwvu67Q7rEXSd4/2xd/Bq6EpQC5XnRoXOvj+H7MBPNPdJB8gyeENcTCHVrGejb6RKuvnCPW2NvpkYI1S3wP9Lc2oqnkFp6agOsFuIj4K7TO+Hh9aLNwT00V1BDOIs9onRTcOBmvosNrH9lBZDe+nHXo/N5pGDL6qhK54ogZ15toZmTTK1CQKPv6tdq7pdxES+FP3ADUalj0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Duk7u+HzWbeJV8dfD6UEQUP4J1+kwn8fFOc66vBlmhY=; b=sG8QPxwQqcrUZAH1R3j0TrGj8kNzQUF0yROqMnKyLWyAkHaAmSD4gTZqE/gi+qUO/ClYXdmUsUrTvSAq4rvZV/spS2TN1inGSqDJXYMn4Y4VqCPXSD90USoqYExdzrLVP8hNjZEyneb0SkqPvMCu77CMDNN3F/iBMBejxdY0olU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6259.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:32c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 14:22:01 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 14:22:01 +0000 From: Koichiro Den To: Manivannan Sadhasivam , Vinod Koul , Frank Li , Gustavo Pimentel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/4] dmaengine: dw-edma: Initialize IRQ data before requesting IRQs Date: Thu, 21 May 2026 23:21:52 +0900 Message-ID: <20260521142153.2957432-4-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521142153.2957432-1-den@valinux.co.jp> References: <20260521142153.2957432-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TY6P286CA0002.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:3b8::16) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6259:EE_ X-MS-Office365-Filtering-Correlation-Id: 634aee4d-9a49-4cec-9e68-08deb7445355 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: hYUoyf7Ek2TPmhn9CAjS/q3noW2J9Kqk8desx6nHwhjBGxE1bK5WZsQX1V0G8ac4Q1dprgZp7NDOBXMdEEwlx05wS33/c9Kzc7VP04dNSVBadJNADLJU+2+aEd4sBGiW9c9u058O8dbz3miKDB3byWpw92Z9QKPvIUXKdqD1KkTpT1fLiDzI0kN4WC2GaofyPAyRuhUkRfsW+w8k+N8ZBqklLi1KBJ35poasmv7V6nk8xj616Zmt+dfSSgLFqg+4vSXyC+npxdly94mNvWdhahoibu3i48CB5gFEYZ8Dj6BAg0B6tssKIRnA9ZhP61Ud0Rk/6RzcT1y7+f3dfIoS+j1EACkikHDPVkAaJ6Oqsx0T+Em+IfwPPIbZCyNnMruZBjrJPUviOGndcJIUAMj+5EDv3qOt/rqPSTPnJStXkFqDh4JfbrDnQTYors7W5aTlYr0s0ffIfbCuBl0P02SINS49BbNh+SeQVCXrgkcq8QTuyviCSUM6JErJGntSKuWamhBBpfrUImW9c32b4FKO63KDxSgakKn777UsZpGDWaOMGtLX6DPDjiqwOAN3IZ8YUlFNmDDaaHNmQnN11hji1cET8bZePm1+eCX5jh5DD+uLFk7T9IE2UY6HzRKxoRwnSNMH0OyvdbwSvJNDARKmUOB93lPxWDw1v7CsJG0FILPnxrtwx73UUKPar3TwQeEV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T4YQV+w784saE/c4x1b34N0oGEkotg5whzS2E7ECoXAsfbVcv+JFbfoivOCl?= =?us-ascii?Q?By+Y+nj/GDPDK6yJuHu7aRATxKuNESAeIztICvx1rH+7uIqY0SbMObiD2+SY?= =?us-ascii?Q?TYWNIr34pvCjaUfa52vQ9xvQK3yGBnqOprs+NO7bJ1k7TVtpRpLQf0LF3J3D?= =?us-ascii?Q?8Un6NRAUCKbNpT75whDlj2W6fs4+80VEheXPhAf0ZngrDm3bCZ9AmQMzDBbg?= =?us-ascii?Q?/x8CS6e8wDfRVtqueuLm9yHw6K4lLWtEvGLGyxHhRyAhVHUuqonODx0D6K6E?= =?us-ascii?Q?XYX1YvvYY966KoQtm3zb6nw2Ou4YapATII8l13G7F+kgI63+qogoKL8gtkEA?= =?us-ascii?Q?RHpZcnenQmT1ZYapZWRl9TgxZmQELsy1NuXIsNX+gf6DqRW9VfCt59vDosCM?= =?us-ascii?Q?4vEebmDmJuYDgNZSqfBMDTRbBQwki4uMemPpd/biWUSB2FbL3p+LeZ5n5+bA?= =?us-ascii?Q?XPV/s0cZevemetBueJ6dJp44qdvFvzysV+yRgduikFygYmpCY/AWx4Sk5Cip?= =?us-ascii?Q?ufO7MKjM9sPDMSV/hiAcnjoUv7LEUcuRP/Dy5zq7K/JsZJC2NnNjT6QnK0Fc?= =?us-ascii?Q?cBpvOF/Vf20HvbwV33T1+6kiZ+JSewR/e3Ji5K0f17a1+XOEAi0A/wA4Yy2+?= =?us-ascii?Q?MrJsAtsabTKLgSqNGMjydc2AL23DfPxJPPq3M7yoS+XzPy2SP7DXUFBCdhq6?= =?us-ascii?Q?ZzeaL3daUofuvvHUDbm8+w4wa4pKE41Jfc63arxOVDn56EEWmVBAUWkFA6+2?= =?us-ascii?Q?nK6PScgWOn5fCGe10+1fZ041bBNgCeN3CDxAjYN15zG6QpTf+TvtOxbEM/Nv?= =?us-ascii?Q?ohcqbFRUSsJQaUM3pIYTsmNOVp+vwZ1zDO9fn95rAGME0/f5rJ3w55Q2RkN2?= =?us-ascii?Q?ZVrisTv8Blr13Tcj215n8xut+TlN3Ayp6qwVjvZDidARX2aNvUHHZe7j9Qt3?= =?us-ascii?Q?g9uaAzVmVi/yOPfPUAcd9S/bj8648W+l1EFenSxlSds9SgmcwNyx+anPMhu7?= =?us-ascii?Q?toz3XqFTdeZKGzPjTQ61Dqvx4E3qWMDNdEUJdD+Bq0na704l0mDTbKggL+4A?= =?us-ascii?Q?tCT+qCFNheWvuxlis3hg3iUeaZF1BM97o40PP/Qy/UUSeDkwbLk5+qSu+EoN?= =?us-ascii?Q?nprDOrPY2GtgWUA1vWYBL4BfxjxFI+mBNqwoaZ9xV5IyPjJs0uYqzVqWa3wu?= =?us-ascii?Q?4sBViDSz+MOg96SMuULttzp96gU3TGkh5Pk1xOJPWVstqTMJmY/tRCJ/hBuF?= =?us-ascii?Q?bfQJLQrimHW5XzhIk0hfmubhuYNq4835cV6YRi+Ymn8n0IzDUCFRF4NpMOeF?= =?us-ascii?Q?AjAcaLyIkaTFWs7e1gr+PgoRdnJMojvgTAkLoCbqgmn1q7GdckLWAcNPakJ8?= =?us-ascii?Q?rJKpoGrVete8UDsOxaUi39uqtJOExvnR4+I97cQMzEH8ih1db9nVVB1jobf6?= =?us-ascii?Q?UjmTXrsk+ZmZNJH1Y//uP9w1y99Qxe2BP75T3aLOSyMO42kZE7geneAI2CKN?= =?us-ascii?Q?h2J535kkQw85Z00j3qCP27YuImJJHaN9++rNzj23PHN4HC7e0FYov5oPSjgR?= =?us-ascii?Q?DXtoOwwyMVP9h96EhQiZuTbfP5IBIexbhLYOjpGHrmd8qIxdYuI+5NeQY+aX?= =?us-ascii?Q?bAqtO6BFWJ2zykkLJ2vrTuzc2vU5EtxRYuBDWSDmuA37AYuXLKT6OJNRp1rs?= =?us-ascii?Q?Gs6ift1trVfW1aJjKQP+6GJmM1kL1ofQmqr+sy2WOy1AqJCe3LMaR4l7c+SG?= =?us-ascii?Q?l7XyJXnyudcdli4AHCXr07XWp6iIg97N4agdAd7GERGOHE9MlIDE?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 634aee4d-9a49-4cec-9e68-08deb7445355 X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 14:22:01.7567 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LUHDwM1nIyqWh/EVL68qnZBmTYvYTk5mxtrA8P5n3qK+QRF0PSk8HaDoBON4h1pTEqBHk39of/6kW8GZ/XabGg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6259 Content-Type: text/plain; charset="utf-8" dw_edma_irq_request() passes struct dw_edma_irq to request_irq() before dw_edma_channel_setup() fills the back pointer. A shared interrupt can therefore enter the handler with dw_irq->dw still NULL, leading to a NULL pointer dereference. Set the back pointer before installing each handler. Fixes: e63d79d1ffcd ("dmaengine: Add Synopsys eDMA IP core driver") Cc: stable@vger.kernel.org Signed-off-by: Koichiro Den Reviewed-by: Frank Li --- drivers/dma/dw-edma/dw-edma-core.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.c b/drivers/dma/dw-edma/dw-ed= ma-core.c index c2feb3adc79f..d221e3efcb36 100644 --- a/drivers/dma/dw-edma/dw-edma-core.c +++ b/drivers/dma/dw-edma/dw-edma-core.c @@ -929,7 +929,6 @@ static int dw_edma_channel_setup(struct dw_edma *dw, u3= 2 wr_alloc, u32 rd_alloc) else irq->rd_mask |=3D BIT(chan->id); =20 - irq->dw =3D dw; memcpy(&chan->msi, &irq->msi, sizeof(chan->msi)); =20 dev_vdbg(dev, "MSI:\t\tChannel %s[%u] addr=3D0x%.8x%.8x, data=3D0x%.8x\n= ", @@ -1018,6 +1017,7 @@ static int dw_edma_irq_request(struct dw_edma *dw, if (chip->nr_irqs =3D=3D 1) { /* Common IRQ shared among all channels */ irq =3D chip->ops->irq_vector(dev, 0); + dw->irq[0].dw =3D dw; err =3D request_irq(irq, dw_edma_interrupt_common, IRQF_SHARED, dw->name, &dw->irq[0]); if (err) { @@ -1043,6 +1043,7 @@ static int dw_edma_irq_request(struct dw_edma *dw, =20 for (i =3D 0; i < (*wr_alloc + *rd_alloc); i++) { irq =3D chip->ops->irq_vector(dev, i); + dw->irq[i].dw =3D dw; err =3D request_irq(irq, i < *wr_alloc ? dw_edma_interrupt_write : --=20 2.51.0 From nobody Sun May 24 20:36:24 2026 Received: from OS0P286CU011.outbound.protection.outlook.com (mail-japanwestazon11020089.outbound.protection.outlook.com [52.101.228.89]) (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 7ADFC3DC4D9; Thu, 21 May 2026 14:22:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.228.89 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373332; cv=fail; b=dmr1USf6zv5uEfuBCSnSEEnmtK3c50LCDHGCZbfwiF6H+xKR6w3lq6fjO16ERU192hcuJdzdK90ErSiH1BfWHhbitPpAkFNTiAglh+S0wcM+8wDRhewHDl/mF9Kgg9K2ZOs/mqVbdhCAaBpag7JVHjFvnRSXAZ4DCIgN0fUHubQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779373332; c=relaxed/simple; bh=oRkagc8aFOo1+CJm7NDXMt8SySAmrqcM9O/n/bBChxU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=j6Pl8Bx89j/zfiI7JCzxQWmkHr+sYmaDZRsuS6YKIY8rQiViWDHGOjmTR6f+jO0vbkYQDqPtOpn/zCye+7ftZjHovwRuOqHzzpNYDC6d6/rXQLpX8FSgOLvPp76m88uWrfEDDMgtYOq8cp6en2HtrraIsGK/6R+Ey3FCC5iuIY0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp; spf=pass smtp.mailfrom=valinux.co.jp; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b=qAMmbo+J; arc=fail smtp.client-ip=52.101.228.89 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=valinux.co.jp Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=valinux.co.jp header.i=@valinux.co.jp header.b="qAMmbo+J" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z8z5/hWmfBABB1Th+0iTYS7PnFN9jtKlFfdFTsCkUSuCK7MyHFgkJJ1wJp/6647YNZxw55eXex6K0CUN2659i2sAPNu0OExEkixGbAEV3XGBvKr8C4laYeA7wy/s2n9qg7ZRiYZIMvYSqg7vkNngywAFq18BdYVAIwRtOBgEOqrGpZqWcHK/iKLCzsh2GvxOi0P/n1eO6Zu/lJBgpVNuSlP65oXTwm4c51Lz4cVemJTp2RJGAOQbqsAsPeRv1sl7RkD/VmQxjUvSoyw7AFJuoE+WPF/UyElgIKGzlyHHuf/V6RdrcVgmzv7Tmoz1KTaa2MVPbMCyydiuDq6veMFGfw== 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=zTNTx4x9ZOqI/1aVuecFs6ey9HTxleqC6NhZo9jWifQ=; b=NBmTQbwOMtXV5F6mbofY2QtzqUy5FSwrtw68tFGpWWeDAbeyPZz8nYf/KV6jfxcu8xWW5zK3azNQHsUAiRGIy/DbqsqK9/yTYmXfuLruZfqvkpKVAdi+E5YU0HGR0vMF4OWnOU5s80FuC41n79PAfEkUwerzz0ZXwdyNfVIklbqIrH9j0B/ky7UGau9fO+oViMgXGJCLjxRPWTozucbrCxji9/bDe97jy48CCn8ry7SUd0XyP5APc5Kksn3kvfwmKBHHzLfPlDJ7qmyOHn4LnOCa19kAZ/7hzyUaz0Ii11vSVNiUN/7Z1+ziDHr1JDxTBEhzdIyEp9ENhowUpacODA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=valinux.co.jp; dmarc=pass action=none header.from=valinux.co.jp; dkim=pass header.d=valinux.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=valinux.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zTNTx4x9ZOqI/1aVuecFs6ey9HTxleqC6NhZo9jWifQ=; b=qAMmbo+J1Mj0Z/Ib6d3h3Acr9kkxZwGa6+PAOu3tJGyHPzlnmHJ0Th3CqDspA6Id4JSg6wD5fQtJrs60UmR52p+4nQzNKQKQZ5HSRgBxcFe+PMNx5hy0I6nmGYiFCkS0Na2AAGrSLygI4ZlJ6JeiePHyfQSnh732ZXWGbHiCiqw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=valinux.co.jp; Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) by TY7P286MB6259.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:32c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.48.14; Thu, 21 May 2026 14:22:02 +0000 Received: from TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32]) by TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM ([fe80::2305:327c:28ec:9b32%5]) with mapi id 15.21.0048.016; Thu, 21 May 2026 14:22:02 +0000 From: Koichiro Den To: Manivannan Sadhasivam , Vinod Koul , Frank Li , Gustavo Pimentel Cc: dmaengine@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/4] dmaengine: dw-edma: Add spinlock to protect DONE_INT_MASK and ABORT_INT_MASK Date: Thu, 21 May 2026 23:21:53 +0900 Message-ID: <20260521142153.2957432-5-den@valinux.co.jp> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260521142153.2957432-1-den@valinux.co.jp> References: <20260521142153.2957432-1-den@valinux.co.jp> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYCP286CA0164.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:383::16) To TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:38f::10) 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: TY7P286MB7722:EE_|TY7P286MB6259:EE_ X-MS-Office365-Filtering-Correlation-Id: 45a838a8-a16e-4657-619a-08deb74453cb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|10070799003|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 2BmcL5BhxRF4Zxh8bN5IMf/MLWX716glpwRTe/TOT4ybQ6pEFrNu+5+JfXQLhdU/ULlul9G13h7SMnjgEN+qvReIuGIcEUqmqUxl+l2phtaBDqXUjGQ3usciYE7X0C7Ow8E4Ol4S4AWQxT6WnRhPDgTHDaFA+ttsvb3tDTwWgf1Bc9YmpJxH4yrZ7gN3xeauPc48Byjk/Rrrms/Omu2r7r3Ggr3I0JIuaLrr9i4SpkifV6vShwugDIiEjVhW2M/PBKWHyH6cBJky/Ock1ZhR3rI1uUaWHMGFmsfcA1f9VN+1P8Scv/0NWfIsmSF/ja4qpkgQVEK4RXIXvG8MbiJMnI9RYOqrLtEHEGbHdzVA86VNXuR6QwDj0lySH/y7QDrA39Wkw/44Ci5z5xvDbNTQPwSQzGCMlJZPoHZS/170As5ao4a6gCCYxOGb8l3zO/R3qHMy4FULs8erXudc98TJiUpJXtITxQoRDl+PkIOHiS6YonVvzWpsBIE6gXgrN22l5TNAGeYXN1qDa5OIWfFz7wrepF2fkxW0DkserWt7sEag7XrUOOaJgMzA6GtG2Aiud/zsLScv00RwpFnxrUuF3QW9qYTsZJK8y0huPnIdVnrXzVE4BYr7vmlEsmivc99Es23ZGmQucxybq+hl7wn8WdwMxbSOXsD45ciw4vjKNUGRM3QrcMZegzkqSX2pkKf9N2UkEUVUKYAFYoOU+IWMcw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(10070799003)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FqOEtedeDDNCWiKRB37f4xigJbAIvNpq0vspiNcOE/8i9C9XvFWSRzO8hpmo?= =?us-ascii?Q?lyZyBINH0OCsU4n/+zt/YCa5Xvk4GEEwvDUeS3UsOXzwJKgPgeAL6bmnoMID?= =?us-ascii?Q?cRz4Rl5hMrSQAlb7STGyuNfObNtxIJ6330qcGac+BkLVI3rzIXSu1V9RPUin?= =?us-ascii?Q?WkiU7laybyiOiba9ETl58k1Gr5+n8iDYsPO0PvATe9cDxcbcpko/GEGku+Pf?= =?us-ascii?Q?eGrCPhpQ4R+nHVlOQyjDAYVUlfON8ggwdJ0PjFjqTFOAg/0a/53RxkvfjWn7?= =?us-ascii?Q?o2hDgE0ANxIrhJqx0JxsdIpiW2+6y9AFQMDovO+6qQ175JYV4gSgyNvi1TkL?= =?us-ascii?Q?g6T6sTLGvawq/XjPLoNP8X8vQuT5RGzPmMtRWrc3uLLM3gk7Dg2SqO54/9/j?= =?us-ascii?Q?8S1PEGJL1IovnnCQaW28l5I8gkK6lmbz2Oxa1YR/ZASBWbrLCQ6hnc5hHgSv?= =?us-ascii?Q?gGG3g0pMHWip7aIPs+vKmTronJd4tFEN4xU0ie109ehfnRMd5INDUYOey1yx?= =?us-ascii?Q?F5yHBA+g5WgkGGcNc7O/izJ78QYj4m0zJSodIoq63ofo/m60rmGSpTeDspDl?= =?us-ascii?Q?hf0I/xKdLNQl4vuEueKnpWqkmbs6xzQ8A/DAUKxAGvYoWEr2aWqssYF8bgEV?= =?us-ascii?Q?DBav8bj3FsQRFgMdJxgb2bS9rrUj55v5kjInuX6IN686jSiI+Cow3RK32q8N?= =?us-ascii?Q?x4eP7XmC3lKL1oWPcSr9rAWb8IoI3ck4yf3Wd11BruekP5QboG4k0MkcWnt3?= =?us-ascii?Q?zmYblLKAXkSYxX2Nt2nuVhXHqwIAJB6KfsyRrciVpPYntfy94bhI0irxLtMq?= =?us-ascii?Q?ZJ1LGEs8tjCzZ6tyIi17SFfwJKfKtssilwO78IuqMjzYWxbFomw/sKsdx7Fk?= =?us-ascii?Q?iLKHBlpUrSPttk/unsVk4E0U8zdVGnTVds6nejDCwMcEDGI4MellAqrBJwOT?= =?us-ascii?Q?3/Vih0/fNV533mPeLBmjHbXOAyuBmSpPVTa5GoGaE6gxlYEJvxxLoEjOVLKc?= =?us-ascii?Q?wOSFnmDr9sZinyCZCz+gpCz4xC8VvFtlsDpHE3VLpCHJkyeFrt8xeXeHkj/B?= =?us-ascii?Q?8AX/deKJzX64TDVPVO5TowfXuPYhs3b6EM/UDzVoO+IfUsXacI0ouTfdTnzs?= =?us-ascii?Q?jwRkKb4XYvcHnMVoyu57YeMp/3UOX49yVWdqbUSruq+wgEaOw00N2Pfwu8GT?= =?us-ascii?Q?EgfEWrAWRQHrQL9YKZwYZFuZuqkgVldFGTHb5J9J8BxTCsc3L7dxSMCxbQgt?= =?us-ascii?Q?8OLEEt6grID5ngtyttME8JT6UzaeknJ6oakUAwFQR14pdovTqWmIiRluOB/u?= =?us-ascii?Q?SMd9MwRYVYRovDXgYu2KwZiqZJ23MSkagRtbM6JYKqgroU4BzTqfOAxZ1hmG?= =?us-ascii?Q?HCWNSifNSStaHCJYyZY1AHsad8Pl/duaj0UkppHBd7NWIpAhxxKEF+C6BbFn?= =?us-ascii?Q?/ZUqkTZFDVhxaLWfQ/DofiwF8CTfInGUIHUrG1qChTON0IwNdMZgBX1OgquX?= =?us-ascii?Q?8s/Wo2g+NxEPnhndElSWM9GXSHCT+f2WjguZeiutlZEoVDAlsICxQQVHyzpq?= =?us-ascii?Q?B6IQBgLnlf6+PCj5x9HC2UjhDWyc0OYl83t5DpT0pRjL72nVBXmhFFCE18pE?= =?us-ascii?Q?eaKHO4aZ0dFi6s9NhmKUnZy95hWH5Iao40a8q8qRkg3Y3m5ogl0ulmNWKoDI?= =?us-ascii?Q?98wG/FVDeDJAPZMqC/VveymPl7zg7WgVAyknK7ws8fINhvPPxVi/rI/d0k8B?= =?us-ascii?Q?tAcy7Qy3K+BZSJpC+Jvw1fr3rpf8eU6k2oMfzZfYfqmCpe8ybNI1?= X-OriginatorOrg: valinux.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 45a838a8-a16e-4657-619a-08deb74453cb X-MS-Exchange-CrossTenant-AuthSource: TY7P286MB7722.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2026 14:22:02.5197 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 7a57bee8-f73d-4c5f-a4f7-d72c91c8c111 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FvUnQR9wiIE3mWU/BHXK4yvUHHiU9DMZT3tL58mOd4B1bQ4vme0//cOgyGK4y43AUckNh/I2TLP16DecpL3rVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TY7P286MB6259 Content-Type: text/plain; charset="utf-8" From: Frank Li The DONE_INT_MASK and ABORT_INT_MASK registers are shared by all DMA channels, and modifying them requires a read-modify-write sequence. Because this operation is not atomic, concurrent calls to dw_edma_v0_core_start() can introduce race conditions if two channels update these registers simultaneously. Add a spinlock to serialize access to these registers and prevent race conditions. Fixes: 7e4b8a4fbe2c ("dmaengine: Add Synopsys eDMA IP version 0 support") Cc: stable@vger.kernel.org Signed-off-by: Frank Li [den: update dw_edma.lock comment] Link: https://lore.kernel.org/dmaengine/20260109-edma_ll-v2-1-5c0b27b2c664@= nxp.com/ Signed-off-by: Koichiro Den --- drivers/dma/dw-edma/dw-edma-core.h | 2 +- drivers/dma/dw-edma/dw-edma-v0-core.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/dma/dw-edma/dw-edma-core.h b/drivers/dma/dw-edma/dw-ed= ma-core.h index 902574b1ba86..6474cacf7195 100644 --- a/drivers/dma/dw-edma/dw-edma-core.h +++ b/drivers/dma/dw-edma/dw-edma-core.h @@ -109,7 +109,7 @@ struct dw_edma { =20 struct dw_edma_chan *chan; =20 - raw_spinlock_t lock; /* Only for legacy */ + raw_spinlock_t lock; /* Protect v0 shared registers */ =20 struct dw_edma_chip *chip; =20 diff --git a/drivers/dma/dw-edma/dw-edma-v0-core.c b/drivers/dma/dw-edma/dw= -edma-v0-core.c index 69e8279adec8..cfdd6463252e 100644 --- a/drivers/dma/dw-edma/dw-edma-v0-core.c +++ b/drivers/dma/dw-edma/dw-edma-v0-core.c @@ -364,6 +364,7 @@ static void dw_edma_v0_core_start(struct dw_edma_chunk = *chunk, bool first) { struct dw_edma_chan *chan =3D chunk->chan; struct dw_edma *dw =3D chan->dw; + unsigned long flags; u32 tmp; =20 dw_edma_v0_core_write_chunk(chunk); @@ -408,6 +409,8 @@ static void dw_edma_v0_core_start(struct dw_edma_chunk = *chunk, bool first) } } /* Interrupt unmask - done, abort */ + raw_spin_lock_irqsave(&dw->lock, flags); + tmp =3D GET_RW_32(dw, chan->dir, int_mask); tmp &=3D ~FIELD_PREP(EDMA_V0_DONE_INT_MASK, BIT(chan->id)); tmp &=3D ~FIELD_PREP(EDMA_V0_ABORT_INT_MASK, BIT(chan->id)); @@ -416,6 +419,9 @@ static void dw_edma_v0_core_start(struct dw_edma_chunk = *chunk, bool first) tmp =3D GET_RW_32(dw, chan->dir, linked_list_err_en); tmp |=3D FIELD_PREP(EDMA_V0_LINKED_LIST_ERR_MASK, BIT(chan->id)); SET_RW_32(dw, chan->dir, linked_list_err_en, tmp); + + raw_spin_unlock_irqrestore(&dw->lock, flags); + /* Channel control */ SET_CH_32(dw, chan->dir, chan->id, ch_control1, (DW_EDMA_V0_CCS | DW_EDMA_V0_LLE)); --=20 2.51.0