On Tue, 2013-07-16 at 08:23 +0900, Jingoo Han wrote:
> On Monday, July 15, 2013 9:10 PM, Joe Perches wrote:
> > On Mon, 2013-07-15 at 15:11 +0900, Jingoo Han wrote:
> > []
> > > diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
> > []
> > > @@ -338,8 +338,10 @@ static int acquire_dma(struct 
> > > s3c64xx_spi_driver_data *sdd)
> > []
> > > - sdd->rx_dma.ch = (void *)sdd->ops->request(sdd->rx_dma.dmach, &req, 
> > > dev, "rx");
> > > - sdd->tx_dma.ch = (void *)sdd->ops->request(sdd->tx_dma.dmach, &req, 
> > > dev, "tx");
> > > + sdd->rx_dma.ch = (void *)sdd->ops->request(sdd->rx_dma.dmach,
> > > +                                         &req, dev, "rx");
> > > + sdd->tx_dma.ch = (void *)sdd->ops->request(sdd->tx_dma.dmach,
> > > +                                         &req, dev, "tx");
> > 
> > There should be sparse errors here.
> > sdd->ops->request is unsigned int, not unsigned long.
> > Care to fix the cast of unsigned to pointer too?
> 
> OK, I will fix it as below:
> 
> sdd->rx_dma.ch = (unsigned long *)sdd->ops->request(sdd->rx_dma.dmach,
>                                                       &req, dev, "rx");
> sdd->tx_dma.ch = (unsigned long *)sdd->ops->request(sdd->tx_dma.dmach,
>                                                       &req, dev, "tx");

Which should give you a different error.

The canonical (Small C, not the Ubuntu company)
way to do this is to first cast to unsigned long
then cast to pointer type.

sdd->tx_dma.ch = (unsigned long *)(unsigned long)sdd->ops->request(etc...)

> > It seems unsigned to pointer conversions are pretty
> > rampant in this code.
> 
> It seems so.
> I will look into it, later.

No worries.  Whenever you get 'round to it.

--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to