From nobody Thu Apr 9 21:54:13 2026 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 453783D1CAF for ; Thu, 5 Mar 2026 17:24:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772731478; cv=none; b=EL28asjfuroBAQdoYRZDsWo2rF14vRW/2D5P6xs49koPB9q9efx2TNvMhqZLcKLpm93cPgWSknnsLC7vjxbiwYrsUL9n7NHElJQ7ccITyA3Lklv4IGCvR4S1CGjotzOF8S3hP38LZ3aYVXDdXaU9hOYNGmgdwjK+yEBozEplMKM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772731478; c=relaxed/simple; bh=lomfZlVN07CiFEPEXh4wGx1EjgxUHi4bQLkDua2YS44=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:To:Cc; b=E54ue/LVwYQQwHiaDp59BpKTJH1AJOoNJxiHWe9U7uHu+/k/QQNf0xfNk6QyVxoIVJm22ZBOEALOs3L4/nmcj+uGGgO+gAAIzrqpXImGPpRub7icczIVtjwG5+D5ZcmFUn9znHADj3SfU8wx6o1CEeOYssRaeW4PEqFu6M6I3Zo= 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=JSDE6Ltp; arc=none smtp.client-ip=209.85.214.171 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="JSDE6Ltp" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2ad9516a653so34617865ad.0 for ; Thu, 05 Mar 2026 09:24:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772731477; x=1773336277; 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=JT0/L3hjO8bWyA1TdT+7Z0rwF+foYA9hR/6cSM0pLp8=; b=JSDE6LtpCZNhe3fiPz9D5sbSci2B34/zpp4WkJvaqUoZ4IFBbxf+LVibUmqXK8j4kc q8q5mJKJ8eVshtE9F2NsRl1DBw3TUDMMJh+jFQFio3DKtmhWPWi4n0p1R33waatmJ/XL BTaohMMgFPRJZrI2m7t8CNCQZ/rXktx3CkWd5U0IFeSY1jsr8JSVyul4nmM1Fx9X8nIc QAownT5Rf0UVyzyPsVvjTo6gyDfP46R5QzIEg1oQpEA5qNT8wg1hYUb48Zbu73EMFb9h MiSmR/UPYktpINylenxLb+VVhyXtmADRAYh5HGeh0omx4QpcfhGtoC4fV263c9Cpa1SB KLlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772731477; x=1773336277; 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=JT0/L3hjO8bWyA1TdT+7Z0rwF+foYA9hR/6cSM0pLp8=; b=xJ+ZGA/TnlCusGFuGvS9XI0cf/cxu7Rdqb4WbMODmf2XcTu9cqaQbnTp+oPVEVynAB dJ9wSgap6QTP+arin2sH8boQFF0iuYC7BsMMItp3la6BckE72jJelPH4ljRz+O/Ym7jo kDvt7SbK0kx6w8pb43GZGrDUGEqFHUb7NOz8x6Oz537jUuQnnkjTWwFXEG3gReye/gNs n+OnnU5afQ3hQ4eecvgYetqWZ/9/LlfNtFq8q7EWNaYZZMaGuoUAFt5SnEbpz0JX8Pis vzYm67I/qgKsW6hU6SGjIMBCpguWq1/sHNrT75p/nNr7hDbuqVmzeTk5m6NsBFyzzXq5 Hyyw== X-Forwarded-Encrypted: i=1; AJvYcCXCAoTRBToKW82weLVmJx3A6iYJSuZ4loC/r+hMNrHCZzl37/dEfMTIKS8hw35aNhSUh7ZJZInROgiNAIU=@vger.kernel.org X-Gm-Message-State: AOJu0YxQEejtaNh+ewx2Hc1mqe947ikOgjYS2aFTKzGi/E2rYlXmBlHW yYSYlrBOh/fJKn0ZqqMr3tHqeqBPcSyM1AAksDTx/kHH8vekE74Jdxog X-Gm-Gg: ATEYQzxWigJuO3ldDSwelxtPvw1q7N6XFa7h3ZiM22VUfj4Td0eHixphrQRAfI1KweL qJ829H3d/Kw8f22kqjcOlo0b8NPlBRvr499+oXZ041ql8FaVeJavAo6/cgxJRln9QHw+4nMv2qi KKne2S893K7smiTdPLa7C9EV6Ush2h8Xs3BByZrGvRO6Z4V62X0RS1qwcK+4/5wsSFs0YltR8eZ MB12RyB6qlvryMGwNZHFBurNmE+9dz2ATSyNoXjFl2suedWxw9xiqgAwmDtgB9pmpTZH7BdMXVH e/gObaLHjB6icmi9j+eV6zO8dG3BQ1rfMwGv2hu00tCRkSDV8iAe69iY2YDC5pdnoxHYC+yzfP8 i/0PExnJAttuPc9enY49Db+GP2HU4X7AMCVybIPZ2i9FYUBWoLSamKbU1Zxwh4Ed117b9DSYunf avoeFct+jAL8PNGU/6Ir4fxDzLxK2N X-Received: by 2002:a17:902:ea04:b0:2ae:805d:e0b5 with SMTP id d9443c01a7336-2ae805de2famr2542615ad.56.1772731476543; Thu, 05 Mar 2026 09:24:36 -0800 (PST) Received: from junjungu-PC.localdomain ([2408:820c:9009:3f2::3a87]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2adfb5c183bsm237542815ad.24.2026.03.05.09.24.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 05 Mar 2026 09:24:36 -0800 (PST) From: Felix Gu Date: Fri, 06 Mar 2026 01:24:32 +0800 Subject: [PATCH] spi: amlogic: spifc-a4: Fix DMA mapping error handling 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: <20260306-spifc-a4-v1-1-f22c9965f64a@gmail.com> X-B4-Tracking: v=1; b=H4sIAE+8qWkC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE vPSU3UzU4B8JSMDIzMDYwMz3eKCzLRk3UQT3RQTgzQLE1MDsxSzRCWg8oKi1LTMCrBR0bG1tQB 9ctMmWgAAAA== X-Change-ID: 20260306-spifc-a4-d40f84506d6a To: Liang Yang , Feng Chen , Xianwei Zhao , Mark Brown Cc: linux-amlogic@lists.infradead.org, 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=1772731474; l=2039; i=ustc.gu@gmail.com; h=from:subject:message-id; bh=lomfZlVN07CiFEPEXh4wGx1EjgxUHi4bQLkDua2YS44=; b=S9kHCyJh41+jIjlilWGWaLPlUEG9e/sEjLAOxgkA0n5AD0EuxwfMPMZi1EaMxSNXIMWAHsQBz XiOqxcgGzLOBpmiqgyRAtLQI5uw0ExZAEVIEBMtoTyfHl6wV8GLDmfQ X-Developer-Key: i=ustc.gu@gmail.com; a=ed25519; pk=fjUXwmjchVN7Ja6KGP55IXOzFeCl9edaHoQIEUA+/hw= Fix three bugs in aml_sfc_dma_buffer_setup() error paths: 1. Unnecessary goto: When the first DMA mapping (sfc->daddr) fails, nothing needs cleanup. Use direct return instead of goto. 2. Double-unmap bug: When info DMA mapping failed, the code would unmap sfc->daddr inline, then fall through to out_map_data which would unmap it again, causing a double-unmap. 3. Wrong unmap size: The out_map_info label used datalen instead of infolen when unmapping sfc->iaddr, which could lead to incorrect DMA sync behavior. Fixes: 4670db6f32e9 ("spi: amlogic: add driver for Amlogic SPI Flash Contro= ller") Signed-off-by: Felix Gu Reviewed-by: Xianwei Zhao --- drivers/spi/spi-amlogic-spifc-a4.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-amlogic-spifc-a4.c b/drivers/spi/spi-amlogic-s= pifc-a4.c index 2aef528cfc1b..3956869cfec1 100644 --- a/drivers/spi/spi-amlogic-spifc-a4.c +++ b/drivers/spi/spi-amlogic-spifc-a4.c @@ -411,7 +411,7 @@ static int aml_sfc_dma_buffer_setup(struct aml_sfc *sfc= , void *databuf, ret =3D dma_mapping_error(sfc->dev, sfc->daddr); if (ret) { dev_err(sfc->dev, "DMA mapping error\n"); - goto out_map_data; + return ret; } =20 cmd =3D CMD_DATA_ADDRL(sfc->daddr); @@ -429,7 +429,6 @@ static int aml_sfc_dma_buffer_setup(struct aml_sfc *sfc= , void *databuf, ret =3D dma_mapping_error(sfc->dev, sfc->iaddr); if (ret) { dev_err(sfc->dev, "DMA mapping error\n"); - dma_unmap_single(sfc->dev, sfc->daddr, datalen, dir); goto out_map_data; } =20 @@ -448,7 +447,7 @@ static int aml_sfc_dma_buffer_setup(struct aml_sfc *sfc= , void *databuf, return 0; =20 out_map_info: - dma_unmap_single(sfc->dev, sfc->iaddr, datalen, dir); + dma_unmap_single(sfc->dev, sfc->iaddr, infolen, dir); out_map_data: dma_unmap_single(sfc->dev, sfc->daddr, datalen, dir); =20 --- base-commit: 3f9cd19e764b782706dbaacc69e502099cb014ba change-id: 20260306-spifc-a4-d40f84506d6a Best regards, --=20 Felix Gu