From nobody Thu Apr 9 21:50:49 2026 Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CC903793CA for ; Thu, 5 Mar 2026 12:22:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772713367; cv=none; b=X7dfc6vQEfbaDkkV3GwGHYRXAPnfzTnmaR0onL/hpdlcfTdy2dx1JcO+hvNA4q1su+cKiWSNotGYE53zrVfMwnvJAkqRnxV5oE6ep9rOK2kzzTWng59mkR6qBTloNFq158x85dBE/XeJxkUAduunr/JQOh8I0LvjH5fMzdJUiLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772713367; c=relaxed/simple; bh=8iORgatfmVP5UgG6g/BlL+aXI02Kvp/zHKVDzC4+mnQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=Hd1XSKhX6Q5uBxKN4HjNuFGY0Xua2+og85wwMbh+DlNMp+Easr2SrvleyKiT4fCLeSnf3f8gA4pGToo+ANmPd/GNOPwW+SDZ5oR2lxskx4olpobmvXQMBCDZNbp5poN30vn9MgJxf8V6qOHvM0FgPTYB4WtWysJYAYxM/LB0yuU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=eCtJMVlg; arc=none smtp.client-ip=209.85.216.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="eCtJMVlg" Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-356337f058aso4022535a91.2 for ; Thu, 05 Mar 2026 04:22:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772713363; x=1773318163; darn=vger.kernel.org; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:from:to:cc:subject:date:message-id:reply-to; bh=DwncuHxUK8rN3Qk5GxAhA3CfVLVPC2HWFVZLds7JF8E=; b=eCtJMVlgAKQ4fHqcQVLUND5dOWjJXtlDItjpWgxycL2Q88btEVnRqMGTTD57QauEzl n/Whkx1yrMaEFCpWMrLCtkJouhhqyvRr5KY2G2S6zOZmI9YRImT/Cg/eCrvSM75XjbVK ur1h842FDxFMAklwxMFZJYwAZwTXgZjN7Te6Ny2cbIVLuVWTHQ0VP3jqRppJOQkW8jaJ a6Tv7EDmzFD1qcgf5yeV4wE/+urBrOqYKYLYrEuWc0ZL6ITxbLlSSh+KbXKULN2HI6Kp TGCkpz0CLz6/yl2/gOoUMfdI87X0SS9279sOfCNDJKIgllwk/fwPhyRCoDZTok0DdMgH Z6Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772713363; x=1773318163; h=cc:to:message-id:content-transfer-encoding:mime-version:subject :date:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DwncuHxUK8rN3Qk5GxAhA3CfVLVPC2HWFVZLds7JF8E=; b=jDk93kHOPVSgsR0AS8PNaULwNQ98ufoKfFrlPNyLDAb7R+8rv/vKW7zHBxUSWdCjnA bTwsr3lXbWgEkNwzrd4xjE0/CHqUyqqVvc/5xwbZgvxl6wjzBbwsQr+L34Zp994cv1PI v+///6hpu6RxSLbDRcgVl0CLXFs7tRGTI4SBQ3x+qtw36WIwmBsQZo7DnvcqunRoPifp 1/qqzPOJbBmAm37B80eQBUoJ+oLHSX2Zrt0StYuo7uOrohaDjHNGgPeL5k0k3/fdQEAs orFla8DWfjKeyCA09HAeoxUrE1a+YkAo+SEozUjQQ75xW4kxyGKGH7JGPXhaRGV6i5wk M4JA== X-Forwarded-Encrypted: i=1; AJvYcCWYuR5bMc+QQV+/XzCWaslqoSV9ojcRjB3J4Uzfiz2RencdnSmbtQjR7PpMhrNmQ+/HurJX1sQwsj+teX4=@vger.kernel.org X-Gm-Message-State: AOJu0YyeKtnD5+/pnJYizYjDmTWqQh1TSDTpRn2/3AnkntWmDj6k8+Sk gqHUVea5aSvQlj9qavRxeqpx7Gh1uLvbCnCjLO7zHfLXyBK8WiVaoFuP X-Gm-Gg: ATEYQzx8agdsA+5oNc54Aj6AMRbyYb0tVVazJcJZfzATqxid6c8CT9N+MCbC7fhe1yT AKS1PrluXRWUAkkQ+DFPRtzzL9txH0xB/dWu99H+iYIcPwLOqrXfuGWlHcpyhkGSNJHC42vCwdg ChH9ywBz/DJde91rQUz/MceljmYhViylV2o14B6od68PrCGY/9U/T7e2UM0bQ3rdBoV5eBSa/kl MyDgq18tD1PPAQPhmamTBFpXtvyQaMz0QFqfwtE3ezAq3Tev41PZbWj/KnWy2ATu56GVNFSV16d l6fGgv5L0vMNLgo1hKBS9v1IVofcTsI0jdQTtnKjBbxskAp8ppfHAEo3zlDYTsIpYYBh9HbLTs4 +KUufbvWl/14CPRI6KRs7ZXPjj5JWUlmNS2/AbgIhIugoDnnyLECyGjEfIrDmFsOAhsRMRIDdOv Lchz4EvIV0HYgvdrpSUw== X-Received: by 2002:a17:90b:3f86:b0:356:2fc5:30d9 with SMTP id 98e67ed59e1d1-359a69ca6aemr5100049a91.10.1772713362487; Thu, 05 Mar 2026 04:22:42 -0800 (PST) Received: from junjungu-PC.localdomain ([2408:820c:9009:3f2::3a87]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-359b2d407fcsm1880943a91.8.2026.03.05.04.22.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 04:22:42 -0800 (PST) From: Felix Gu Date: Thu, 05 Mar 2026 20:22:38 +0800 Subject: [PATCH] spi: atcspi200: Fix double-free in atcspi_configure_dma() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260305-atcspi2000-v1-1-eafe08dcca60@gmail.com> X-B4-Tracking: v=1; b=H4sIAI11qWkC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDYwNT3cSS5OKCTCMDAwPdlFRTCwtLE0tji+QUJaCGgqLUtMwKsGHRsbW 1AH2S1QNcAAAA X-Change-ID: 20260305-atcspi2000-de58894938cd To: CL Wang , Mark Brown Cc: linux-spi@vger.kernel.org, linux-kernel@vger.kernel.org, Felix Gu X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1772713361; l=2038; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=8iORgatfmVP5UgG6g/BlL+aXI02Kvp/zHKVDzC4+mnQ=; b=vMRyfx3/zILQoCMjgQ3ELPlDxIylxxeiaXj0qqP+KYsGEDh6wjysxWva4RQul+SFvZCNnI1lB EKiXOwIupqXBMz/5t0cn1Ca9lIqWfqDm+WJa6NNCM3RqHFdJ+PQ1KYD X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= The driver uses devm_dma_request_chan() which registers automatic cleanup via devm_add_action_or_reset(). Calling dma_release_channel() manually on the RX channel when TX channel request fails causes a double-free when the devm cleanup runs. Remove the unnecessary manual cleanup and simplify the error handling since devm will properly release channels on probe failure or driver detach. Fixes: 34e3815ea459 ("spi: atcspi200: Add ATCSPI200 SPI controller driver") Signed-off-by: Felix Gu --- drivers/spi/spi-atcspi200.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/drivers/spi/spi-atcspi200.c b/drivers/spi/spi-atcspi200.c index 2075058387f3..dd19fe9f9ee7 100644 --- a/drivers/spi/spi-atcspi200.c +++ b/drivers/spi/spi-atcspi200.c @@ -497,31 +497,17 @@ static int atcspi_init_resources(struct platform_devi= ce *pdev, =20 static int atcspi_configure_dma(struct atcspi_dev *spi) { - struct dma_chan *dma_chan; - int ret =3D 0; + spi->host->dma_rx =3D devm_dma_request_chan(spi->dev, "rx"); + if (IS_ERR(spi->host->dma_rx)) + return PTR_ERR(spi->host->dma_rx); =20 - dma_chan =3D devm_dma_request_chan(spi->dev, "rx"); - if (IS_ERR(dma_chan)) { - ret =3D PTR_ERR(dma_chan); - goto err_exit; - } - spi->host->dma_rx =3D dma_chan; + spi->host->dma_tx =3D devm_dma_request_chan(spi->dev, "tx"); + if (IS_ERR(spi->host->dma_tx)) + return PTR_ERR(spi->host->dma_tx); =20 - dma_chan =3D devm_dma_request_chan(spi->dev, "tx"); - if (IS_ERR(dma_chan)) { - ret =3D PTR_ERR(dma_chan); - goto free_rx; - } - spi->host->dma_tx =3D dma_chan; init_completion(&spi->dma_completion); =20 - return ret; - -free_rx: - dma_release_channel(spi->host->dma_rx); - spi->host->dma_rx =3D NULL; -err_exit: - return ret; + return 0; } =20 static int atcspi_enable_clk(struct atcspi_dev *spi) --- base-commit: fc7b1a72c6cd5cbbd989c6c32a6486e3e4e3594d change-id: 20260305-atcspi2000-de58894938cd Best regards, --=20 Felix Gu