Re: [patch 2.6.29-rc2] palm_bk3710 buildfix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sunday 18 January 2009, Sergei Shtylyov wrote:
> Hello.
> 
> David Brownell wrote:
> 
> >   CC      drivers/ide/palm_bk3710.o
> > drivers/ide/palm_bk3710.c: In function 'palm_bk3710_probe':
> > drivers/ide/palm_bk3710.c:382: warning: assignment makes integer from pointer without a cast
> 
> > Someone should fix hw_regs_t to neither be a typedef, nor
> > use "unsigned long" where it should use "void __iomem *".
> 
>     It cannot use pointers of course -- as the addresses can be I/O ports.
> 
> > Signed-off-by: David Brownell <dbrownell@xxxxxxxxxxxxxxxxxxxxx>
> 
> > --- a/drivers/ide/palm_bk3710.c
> > +++ b/drivers/ide/palm_bk3710.c
> > @@ -346,7 +346,8 @@ static int __init palm_bk3710_probe(stru
> >  {
> >  	struct clk *clk;
> >  	struct resource *mem, *irq;
> > -	unsigned long base, rate;
> > +	void __iomem *base;
> > +	unsigned long rate;
> >  	int i, rc;
> >  	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
> >  
> > @@ -382,11 +383,13 @@ static int __init palm_bk3710_probe(stru
> >  	base = IO_ADDRESS(mem->start);
> >  
> >  	/* Configure the Palm Chip controller */
> > -	palm_bk3710_chipinit((void __iomem *)base);
> > +	palm_bk3710_chipinit(base);
> >  
> >  	for (i = 0; i < IDE_NR_PORTS - 2; i++)
> > -		hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;
> > -	hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;
> > +		hw.io_ports_array[i] = (unsigned long)
> > +				(base + IDE_PALM_ATA_PRI_REG_OFFSET + i);
> > +	hw.io_ports.ctl_addr = (unsigned long)
> > +			(base + IDE_PALM_ATA_PRI_CTL_OFFSET);
> 
>     Ugh. I suggest adding another variable...
> 
> --- a/drivers/ide/palm_bk3710.c
> +++ b/drivers/ide/palm_bk3710.c
> @@ -346,7 +346,8 @@ static int __init palm_bk3710_probe(stru
>   {
>   	struct clk *clk;
>   	struct resource *mem, *irq;
>   	unsigned long base, rate;
> +	void __iomem *regs;
>   	int i, rc;
>   	hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
> 
> @@ -379,11 +380,11 @@ static int __init palm_bk3710_probe(stru
>   		return -EBUSY;
>   	}
> 
> - 	base = IO_ADDRESS(mem->start);
> + 	regs = IO_ADDRESS(mem->start);
> 
>   	/* Configure the Palm Chip controller */
> -	palm_bk3710_chipinit((void __iomem *)base);
> +	palm_bk3710_chipinit(regs);
> 
> +	base = (unsigned long)regs;
>   	for (i = 0; i < IDE_NR_PORTS - 2; i++)
>   		hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;
>   	hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;

I applied original patch since having one additional cast has overally lower
complexity than having an additional variable...
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux