* [PATCH] iio: adc: nxp-sar-adc: zero-initialize dma_slave_config
@ 2026-04-06 9:53 Shuvam Pandey
2026-04-06 13:59 ` David Lechner
0 siblings, 1 reply; 3+ messages in thread
From: Shuvam Pandey @ 2026-04-06 9:53 UTC (permalink / raw)
To: Jonathan Cameron, David Lechner
Cc: Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel,
Shuvam Pandey
nxp_sar_adc_start_cyclic_dma() only fills the RX-side members of
dma_slave_config before passing it to dmaengine_slave_config().
Zero-initialize the structure so unused members do not contain stack
garbage. Some DMA engines consult optional dma_slave_config fields, so
leaving them uninitialized can cause DMA setup failures.
Fixes: 4434072a893e ("iio: adc: Add the NXP SAR ADC support for the s32g2/3 platforms")
Signed-off-by: Shuvam Pandey <shuvampandey1@gmail.com>
---
drivers/iio/adc/nxp-sar-adc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iio/adc/nxp-sar-adc.c b/drivers/iio/adc/nxp-sar-adc.c
index 9efa883c277d..7d7b5a580167 100644
--- a/drivers/iio/adc/nxp-sar-adc.c
+++ b/drivers/iio/adc/nxp-sar-adc.c
@@ -659,7 +659,7 @@ static void nxp_sar_adc_dma_cb(void *data)
static int nxp_sar_adc_start_cyclic_dma(struct iio_dev *indio_dev)
{
struct nxp_sar_adc *info = iio_priv(indio_dev);
- struct dma_slave_config config;
+ struct dma_slave_config config = {};
struct dma_async_tx_descriptor *desc;
int ret;
--
2.50.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] iio: adc: nxp-sar-adc: zero-initialize dma_slave_config
2026-04-06 9:53 [PATCH] iio: adc: nxp-sar-adc: zero-initialize dma_slave_config Shuvam Pandey
@ 2026-04-06 13:59 ` David Lechner
2026-04-20 18:07 ` Jonathan Cameron
0 siblings, 1 reply; 3+ messages in thread
From: David Lechner @ 2026-04-06 13:59 UTC (permalink / raw)
To: Shuvam Pandey, Jonathan Cameron
Cc: Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel
On 4/6/26 4:53 AM, Shuvam Pandey wrote:
> nxp_sar_adc_start_cyclic_dma() only fills the RX-side members of
> dma_slave_config before passing it to dmaengine_slave_config().
>
> Zero-initialize the structure so unused members do not contain stack
> garbage. Some DMA engines consult optional dma_slave_config fields, so
> leaving them uninitialized can cause DMA setup failures.
>
> Fixes: 4434072a893e ("iio: adc: Add the NXP SAR ADC support for the s32g2/3 platforms")
> Signed-off-by: Shuvam Pandey <shuvampandey1@gmail.com>
> ---
> drivers/iio/adc/nxp-sar-adc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/nxp-sar-adc.c b/drivers/iio/adc/nxp-sar-adc.c
> index 9efa883c277d..7d7b5a580167 100644
> --- a/drivers/iio/adc/nxp-sar-adc.c
> +++ b/drivers/iio/adc/nxp-sar-adc.c
> @@ -659,7 +659,7 @@ static void nxp_sar_adc_dma_cb(void *data)
> static int nxp_sar_adc_start_cyclic_dma(struct iio_dev *indio_dev)
> {
> struct nxp_sar_adc *info = iio_priv(indio_dev);
> - struct dma_slave_config config;
> + struct dma_slave_config config = {};
IIO style is to have space between braces.
Wait and see if Jonathan asks for a new version first though
before sending one for trivial changes like that.
> struct dma_async_tx_descriptor *desc;
> int ret;
>
Reviewed-by: David Lechner <dlechner@baylibre.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] iio: adc: nxp-sar-adc: zero-initialize dma_slave_config
2026-04-06 13:59 ` David Lechner
@ 2026-04-20 18:07 ` Jonathan Cameron
0 siblings, 0 replies; 3+ messages in thread
From: Jonathan Cameron @ 2026-04-20 18:07 UTC (permalink / raw)
To: David Lechner
Cc: Shuvam Pandey, Nuno Sá, Andy Shevchenko, linux-iio,
linux-kernel
On Mon, 6 Apr 2026 08:59:34 -0500
David Lechner <dlechner@baylibre.com> wrote:
> On 4/6/26 4:53 AM, Shuvam Pandey wrote:
> > nxp_sar_adc_start_cyclic_dma() only fills the RX-side members of
> > dma_slave_config before passing it to dmaengine_slave_config().
> >
> > Zero-initialize the structure so unused members do not contain stack
> > garbage. Some DMA engines consult optional dma_slave_config fields, so
> > leaving them uninitialized can cause DMA setup failures.
> >
> > Fixes: 4434072a893e ("iio: adc: Add the NXP SAR ADC support for the s32g2/3 platforms")
> > Signed-off-by: Shuvam Pandey <shuvampandey1@gmail.com>
> > ---
> > drivers/iio/adc/nxp-sar-adc.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/adc/nxp-sar-adc.c b/drivers/iio/adc/nxp-sar-adc.c
> > index 9efa883c277d..7d7b5a580167 100644
> > --- a/drivers/iio/adc/nxp-sar-adc.c
> > +++ b/drivers/iio/adc/nxp-sar-adc.c
> > @@ -659,7 +659,7 @@ static void nxp_sar_adc_dma_cb(void *data)
> > static int nxp_sar_adc_start_cyclic_dma(struct iio_dev *indio_dev)
> > {
> > struct nxp_sar_adc *info = iio_priv(indio_dev);
> > - struct dma_slave_config config;
> > + struct dma_slave_config config = {};
>
> IIO style is to have space between braces.
>
> Wait and see if Jonathan asks for a new version first though
> before sending one for trivial changes like that.
>
> > struct dma_async_tx_descriptor *desc;
> > int ret;
> >
>
> Reviewed-by: David Lechner <dlechner@baylibre.com>
>
Note I picked this up and tweaked as above, so the following is
just thoughts on how we might do similar in future.
It is a bigger change but maybe it's worth
struct dma_slave_config config;
...
config = (struct dma_slave_config) {
.direction = DMA_DEV_TO_MEM,
.src_addr_width = NXP_SAR_ADC_DMA_SAMPLE_SZ,
.src_addr = NXP_SAR_ADC_CDR(info->regs_phys, info->buffered_chan[0]),
.src_port_window_size = info->channels_used,
.src_maxburst = info->channels_used,
};
Which will ensure whole thing is set at the point of use rather than clear
and then fill stuff in later as this patch does.
Given this has been sat a while, lets go for good enough and it's a more
minimal patch which is always nice for a fix.
Applied to the fixes-togreg branch of iio.git and marked for
stable.
Thanks,
Jonathan
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-04-20 18:07 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-06 9:53 [PATCH] iio: adc: nxp-sar-adc: zero-initialize dma_slave_config Shuvam Pandey
2026-04-06 13:59 ` David Lechner
2026-04-20 18:07 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox