From nobody Fri Dec 19 13:29:07 2025 Received: from smtp.smtpout.orange.fr (smtp-26.smtpout.orange.fr [80.12.242.26]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C0B051EE7DC for ; Sat, 6 Dec 2025 07:18:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=80.12.242.26 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765005497; cv=none; b=sJwBRvTO7HuC4KwbZ4r2nfzJhNNY0INEaslhJsde8JPASaaZZLbaqTs2Vdq2cb1DEcRRszGnd2M3FrrlfiXzEKo67unqsa12sAp4KXBMhg5ZpKtLzhigWDYixx00XHF4HXypCxwJ7ELCrrz0hcbkAfBeQXtesjOM40kOqRN/XXY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765005497; c=relaxed/simple; bh=stfioGmUs1ZhVtq8QNOmxk2R4LbbiQ5+8qUVwVZYscs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=MuV7aQXnc30IVmk1UEq/vrZm/+IoSBfqs73Ip0F/dMo5YXC6tHaM3YzzonomTapbbqgBPJdXamW2PnhKCKwJLLGOSeezhmJKKKhIWw+XccNnYWN+Af9Y07BEssrn5eKiBTAkbXRVDY1HtWbFNPvFedmnVEU7Xg3KLMF4A8V9nj8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=wanadoo.fr; spf=pass smtp.mailfrom=wanadoo.fr; dkim=pass (2048-bit key) header.d=wanadoo.fr header.i=@wanadoo.fr header.b=kem8hJVv; arc=none smtp.client-ip=80.12.242.26 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=wanadoo.fr Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=wanadoo.fr Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=wanadoo.fr header.i=@wanadoo.fr header.b="kem8hJVv" Received: from fedora.home ([IPv6:2a01:cb10:785:b00:8347:f260:7456:7662]) by smtp.orange.fr with ESMTPA id RmPXvzLmS5RZgRmPYv7HRi; Sat, 06 Dec 2025 08:08:56 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wanadoo.fr; s=t20230301; t=1765004936; bh=uArb2xwIvBEfMxd5lGqAD8yvq3B86ljlyalO1SXl21Y=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=kem8hJVvFlG0ZMPpau1QVBa8vi2FdPRyAluKksXdUPVWI8YLM3T/GnykKo4DcTain DEKmMCaMV9j+a8n6VC7eBVxeEYOg9BbSuVNi5ALOS6eCmMzM9WIHpUdezMtNBasP4R fwmKOictTO6DrfmxbutA7lGGGCE5x+ADxNaoxhtDMM/r8OHh6yo2cGzI1GSktiXTl/ QjQEt91mBCm5rohYDRYThX+XRAutMKhj36NsuV4g4rSQgNjmTzFwLTt+Lbt5K52sOp 77CQtFyDZ3bE22aX8O7o23hOQ+MBjd/e3TQWbdMnxxOgbVVBNm9qAaXHA3cREFwllG KoQx0rAicta+g== X-ME-Helo: fedora.home X-ME-Auth: Y2hyaXN0b3BoZS5qYWlsbGV0QHdhbmFkb28uZnI= X-ME-Date: Sat, 06 Dec 2025 08:08:56 +0100 X-ME-IP: 2a01:cb10:785:b00:8347:f260:7456:7662 From: Christophe JAILLET To: Dave Penkler , Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org, Christophe JAILLET Subject: [PATCH] gpib: fluke: Add some missing dma_unmap_single() Date: Sat, 6 Dec 2025 08:08:52 +0100 Message-ID: <6bfe7399c41d8b50a05b050832c6061d3fc04762.1765004907.git.christophe.jaillet@wanadoo.fr> X-Mailer: git-send-email 2.52.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In some error handling paths, a dma_unmap_single() is missing. Add it to avoid a leak. Fixes: 55936779f496 ("staging: gpib: Add Fluke cda based cards GPIB driver") Signed-off-by: Christophe JAILLET --- This patch is compile tested only. --- drivers/gpib/eastwood/fluke_gpib.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/gpib/eastwood/fluke_gpib.c b/drivers/gpib/eastwood/flu= ke_gpib.c index 61eca22dc2b0..1ef5c16a81ba 100644 --- a/drivers/gpib/eastwood/fluke_gpib.c +++ b/drivers/gpib/eastwood/fluke_gpib.c @@ -454,8 +454,10 @@ static int fluke_dma_write(struct gpib_board *board, u= 8 *buffer, size_t length, retval =3D wait_for_sids_or_sgns(board); =20 *bytes_written =3D readl(e_priv->write_transfer_counter) & write_transfer= _counter_mask; - if (WARN_ON_ONCE(*bytes_written > length)) - return -EFAULT; + if (WARN_ON_ONCE(*bytes_written > length)) { + retval =3D -EFAULT; + goto cleanup; + } =20 cleanup: dma_unmap_single(board->dev, address, length, DMA_TO_DEVICE); @@ -641,8 +643,10 @@ static int fluke_dma_read(struct gpib_board *board, u8= *buffer, */ usleep_range(10, 15); residue =3D fluke_get_dma_residue(e_priv->dma_channel, dma_cookie); - if (WARN_ON_ONCE(residue > length || residue < 0)) + if (WARN_ON_ONCE(residue > length || residue < 0)) { + dma_unmap_single(board->dev, bus_address, length, DMA_FROM_DEVICE); return -EFAULT; + } *bytes_read +=3D length - residue; dmaengine_terminate_all(e_priv->dma_channel); // make sure fluke_dma_callback got called --=20 2.52.0