2010-11-20 21:48:29

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH 6/6] atmel_spi: fix warning In function 'atmel_spi_dma_map_xfer'

Hello,

[adding spi-devel-general and lkml to Cc:]

On Sat, Nov 20, 2010 at 11:08:53AM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> passing argument 2 of 'dma_map_single' discards qualifiers from pointer target type
>
> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
> ---
> drivers/spi/atmel_spi.c | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/spi/atmel_spi.c b/drivers/spi/atmel_spi.c
> index 154529a..2cf6abd 100644
> --- a/drivers/spi/atmel_spi.c
> +++ b/drivers/spi/atmel_spi.c
> @@ -352,8 +352,10 @@ atmel_spi_dma_map_xfer(struct atmel_spi *as, struct spi_transfer *xfer)
>
> xfer->tx_dma = xfer->rx_dma = INVALID_DMA_ADDRESS;
> if (xfer->tx_buf) {
> + void *nonconst_tx = (void *)xfer->tx_buf; /* shut up gcc */
> +
> xfer->tx_dma = dma_map_single(dev,
> - (void *) xfer->tx_buf, xfer->len,
> + nonconst_tx, xfer->len,
> DMA_TO_DEVICE);
Hmm, I wonder if this is the right approach to do this. I'd prefer to
have something like:

dma_map_single_to_device(struct device *, const void *, ...)

don't know if that's sensible though.

And I wonder about gcc that your patch makes a difference.

Best regards
Uwe

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |


2010-11-20 22:59:30

by David Brownell

[permalink] [raw]
Subject: Re: [PATCH 6/6] atmel_spi: fix warning In function 'atmel_spi_dma_map_xfer'



--- On Sat, 11/20/10, Uwe Kleine-K?nig <[email protected]> wrote:

> > +??? ??? void
> *nonconst_tx = (void *)xfer->tx_buf; /* shut up gcc */

Reads like a bad patch to me. Fix the bug,
don't just silence GCC. Or at least use
a better comment mentioning a constness
cast problems).

- Dave

Subject: Re: [PATCH 6/6] atmel_spi: fix warning In function 'atmel_spi_dma_map_xfer'

On 14:59 Sat 20 Nov , David Brownell wrote:
>
>
> --- On Sat, 11/20/10, Uwe Kleine-K?nig <[email protected]> wrote:
>
> > > +??? ??? void
> > *nonconst_tx = (void *)xfer->tx_buf; /* shut up gcc */
>
> Reads like a bad patch to me. Fix the bug,
> don't just silence GCC. Or at least use
> a better comment mentioning a constness
> cast problems).

ok I change the comment

Best Regards,
J.