From nobody Sat Jul 25 07:01:44 2026 Received: from mail-oa1-f50.google.com (mail-oa1-f50.google.com [209.85.160.50]) (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 F3C1944E679 for ; Fri, 24 Jul 2026 23:00:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784934009; cv=none; b=bh1yXmBv4COR+a142Ss0LuRWqQm1hGS1EBH8ldeUy5ZUyPoSZRjIEFYW3npFK8mDU4JdNzqjRbnRdrcG3HlqU721H06sVYlYpFE6OQCtDUnqtaV67VtexEvkJJjOws6IERD5tSzN015+KLiLLGxQECS3AYY68Mglp1NWI20teHI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784934009; c=relaxed/simple; bh=4pBlsWm+5sbUVQxH31HUjiphsO651Ia0DfjKkHUNPI4=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=lNC01RAw0m2tRYeXjj4/qmC1h+aZYDoUJp5Vd8wVG+kcN3kMA+j3bIhEWb7x6LTaiNludOqeeTwMJoL/JkiUFGyLgwPpRHHPDNcAL7SdN8fTGJeH36MJPKsfcKwCZjhO/XSbIzj6Z8x3Pyidhqxu3FbM1a0bzUUiKcmIx34OYao= 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=Q6NLzddS; arc=none smtp.client-ip=209.85.160.50 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="Q6NLzddS" Received: by mail-oa1-f50.google.com with SMTP id 586e51a60fabf-456395f4e7bso503007fac.0 for ; Fri, 24 Jul 2026 16:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1784934003; x=1785538803; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=ESTD8fjQr67xhujYSv9nCY2fZpeH0iTV4/0hUbjiKHU=; b=Q6NLzddSrRbfRK4Vg1WXduY4cAb/+Gl+1kfE7FJSrfmUiPQ+OVyt+eX8yI4v918muZ TvgCUXXLQuHz3xHj6L5fNncaQSuUmru/kd65tbhlouzvfC5s8vRWtaMnCeGfQt3MnWUv x0BNaZEWskZTWBzMSKo0jLZLQ1AdaPQZV478xDiDzzsWDA7L3YYSaDvL8QtwW07LOEmF 9W1hd3lV3LOwybWfA/I2R1oFpTDP8+ZaY5kvvb6Rnvflr/M7Q4HRzePhbDc/n87I8weB c0fQDeo/kHqC3z+9Hl5kNd4Kg1YlXmHuBfVsHlNUhdVawmib4BlHKHUIECGyJ9rJUx+o Gn7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784934003; x=1785538803; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=ESTD8fjQr67xhujYSv9nCY2fZpeH0iTV4/0hUbjiKHU=; b=G8KM0rKRG9Ww/7YTXFnUBtDJ4DNIKV+a8iuKRowdvK0LXhfhfqlA/AzIioZUMeHGFV KOwDN7Xj0TjaghdAGQywkmBjUaEgGCTbyBPVqepAunKbD9N02dpNc2qD7yE1Yld5DsJ/ QzN2uWjSZ6fT0kMlL6dEoRsH/TYLNwbO5SqtlCgdQDOPxfenN86RiZPSSUhSLHFIuWDc tItGsKllbMZCCr96oBoIew1skUoUOyDRyX+8J7SNyd37fgHtWGRbgk7q3EIpAzcVVelj cZBFoDjYlkk4oOMFmXGQ8/p13NVg+WingaMAPeQ2RXVNRgA5215wCwC/lgaJYAeRFJjT FX9A== X-Forwarded-Encrypted: i=1; AHgh+RqEcU6MLC8qJj33q2FPu6dxvgiVrk3ddCAsaCWl3zxl93v05mKZ5BroLS02FzQA4mNQDdoCBOsfDsdN6HQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzKc7imdbzOEOcWFagI6rFVDCzPq40ZIgO+2vrlvMIUBF7sRm6v XDbSqsKirLqYEFyda8e8+bL37oNGuoRmInDnZj1486evNXtj5drBxJ5X X-Gm-Gg: AR+sD12zR4BIXXahPepCe7FhjyYeGgCCgZ899WZQjULKgCTrNLOJHoaX8kJT7S9Ej6z 4x3PcjOMvzDVoR9SSg7z/6MvHhBUQgv+Gk77xusQ5MP8zFZhb+zHtwBGUgtYqv52hGE/NIly1lN aqm0uosT/7f+/2dKJb8D2rlQfX3II7EiA3Owi+xR87U+AVnS8njMdAwWKPnYgSYznX/ZW49b47Q WLHFgJNVd5MLjubX7l+m6lViJid3i2qSrYdmq5vefU4BJ27FizTYUuKsKziiecNaXaEsxbIOC0Q /2arSiU9tLPPWkidGdE+z3xl4cjOgjwRVmao+nt8jwxBdhHpwI7NtkV3z3qmhi8AXC9+scvuHR7 BP9CZH4amxXQd5LMFnZww0GiKCrA2AxLo5iiJDZ0iYLP6I4G6FJuDymlBugNwJhWyLYpxDor7os G20syWkdgPGQRikUBJyYUwF4jlMfTFJ6RicQtAcYvvqOPd3BzHkO3ObsxAeko0k4SGoIDN5a/aE xIj/hYkNyxFMwn6pqjzchVvwdxnlYV6kdxq2RhrNyfmpEYbgq21kTAjR8DCCTbJwA== X-Received: by 2002:a05:6871:7817:b0:448:558c:d833 with SMTP id 586e51a60fabf-457f280d0fdmr441239fac.34.1784934003379; Fri, 24 Jul 2026 16:00:03 -0700 (PDT) Received: from ryzen.lan ([2601:644:8000:7a86::e35]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-457a07c9427sm5974953fac.9.2026.07.24.16.00.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Jul 2026 16:00:02 -0700 (PDT) From: Rosen Penev To: dmaengine@vger.kernel.org Cc: Ludovic Desroches , Vinod Koul , Frank Li , Rosen Penev , Eugen Hristev , linux-arm-kernel@lists.infradead.org (moderated list:MICROCHIP AT91 DMA DRIVERS), linux-kernel@vger.kernel.org (open list) Subject: [PATCHv2] dmaengine: at_hdmac: fix sparse '__iomem' cast warning in memset helpers Date: Fri, 24 Jul 2026 15:59:58 -0700 Message-ID: <20260724225958.43925-1-rosenp@gmail.com> X-Mailer: git-send-email 2.55.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" Both atc_prep_dma_memset() and atc_prep_dma_memset_sg() declare vaddr as 'void __iomem *' but assign the return of dma_pool_alloc(), which returns 'void *' (not iomem memory). This causes sparse to warn about a cast removing the __iomem address space at the dereference site. The struct field memset_vaddr is also typed as 'int *', which is neither the type returned by dma_pool_alloc() nor the type used for the actual writes. Fix by declaring vaddr as 'u32 *' in both functions and changing memset_vaddr in struct at_desc from 'int *' to 'u32 *'. This matches the actual usage and eliminates the need for the (u32 *) cast. Fixes: 5d8c5bea0da9 ("dmaengine: at_hdmac: add COMPILE_TEST support") Reported-by: kernel test robot Closes: https://lore.kernel.org/oe-kbuild-all/202607231110.8MqNRj0Q-lkp@int= el.com/ Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- v2: remove extra cast drivers/dma/at_hdmac.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index 7b6aa9bbc3c8..f24e64219fb5 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -244,7 +244,7 @@ struct at_desc { /* Memset temporary buffer */ bool memset_buffer; dma_addr_t memset_paddr; - int *memset_vaddr; + u32 *memset_vaddr; struct atdma_sg sg[] __counted_by(sglen); }; =20 @@ -1097,7 +1097,7 @@ atc_prep_dma_memset(struct dma_chan *chan, dma_addr_t= dest, int value, struct at_dma_chan *atchan =3D to_at_dma_chan(chan); struct at_dma *atdma =3D to_at_dma(chan->device); struct at_desc *desc; - void __iomem *vaddr; + u32 *vaddr; dma_addr_t paddr; char fill_pattern; int ret; @@ -1126,10 +1126,10 @@ atc_prep_dma_memset(struct dma_chan *chan, dma_addr= _t dest, int value, /* Only the first byte of value is to be used according to dmaengine */ fill_pattern =3D (char)value; =20 - *(u32*)vaddr =3D (fill_pattern << 24) | - (fill_pattern << 16) | - (fill_pattern << 8) | - fill_pattern; + *vaddr =3D (fill_pattern << 24) | + (fill_pattern << 16) | + (fill_pattern << 8) | + fill_pattern; =20 desc =3D kzalloc_flex(*desc, sg, 1, GFP_ATOMIC); if (!desc) @@ -1168,7 +1168,7 @@ atc_prep_dma_memset_sg(struct dma_chan *chan, struct at_dma *atdma =3D to_at_dma(chan->device); struct at_desc *desc; struct scatterlist *sg; - void __iomem *vaddr; + u32 *vaddr; dma_addr_t paddr; size_t total_len =3D 0; int i; @@ -1189,7 +1189,7 @@ atc_prep_dma_memset_sg(struct dma_chan *chan, __func__); return NULL; } - *(u32*)vaddr =3D value; + *vaddr =3D value; =20 desc =3D kzalloc_flex(*desc, sg, sg_len, GFP_ATOMIC); if (!desc) --=20 2.55.0