Re: [Patch 09/16] Remove unnecessary kmalloc casts in the pcisubsystem.

From: Satyam Sharma
Date: Tue Jul 31 2007 - 10:18:15 EST




On Tue, 31 Jul 2007, Christian Borntraeger wrote:

> Am Dienstag, 31. Juli 2007 schrieb jack@xxxxxxxxxxxxxxxxxxxxxxx:
> > --- a/drivers/pci/rom.c
> > +++ b/drivers/pci/rom.c
> > @@ -185,7 +185,7 @@ void __iomem *pci_map_rom_copy(struct pc
> > IORESOURCE_ROM_BIOS_COPY))
> > return rom;
> >
> > - res->start = (unsigned long)kmalloc(*size, GFP_KERNEL);
> > + res->start = kmalloc(*size, GFP_KERNEL);
>
> This looks wrong.

Yup, a warning at the very least.

> void * doesnt need a cast to a pointer, but res->start is an
> integer u32 type,

It better not be, else we have a bug already anyway. Pointers are 64-bit
on 64-bit archs. [ it turns out res->start is resource_size_t which is
set properly as per CONFIG_RESOURCES_64BIT which itself is set properly
as per CONFIG_64BIT, so everything is healthy and fine :-) ]

> and therefore we need a cast, no?

Yes, void * -> unsigned long cast is always ok, and what we need here.


Satyam
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/