[PATCH] mtd: nand: pxa3xx: fix build on ARM64
Ezequiel Garcia
ezequiel.garcia at free-electrons.com
Fri Feb 6 10:57:22 PST 2015
On 02/06/2015 03:43 PM, Brian Norris wrote:
> On Fri, Feb 06, 2015 at 03:32:26PM -0300, Ezequiel Garcia wrote:
>> On 02/03/2015 08:06 PM, Rob Herring wrote:
>> [..]
>>> @@ -1580,7 +1580,7 @@ static int alloc_nand_resource(struct platform_device *pdev)
>>> info->pdev = pdev;
>>> info->variant = pxa3xx_nand_get_variant(pdev);
>>> for (cs = 0; cs < pdata->num_cs; cs++) {
>>> - mtd = (struct mtd_info *)((unsigned int)&info[1] +
>>> + mtd = (struct mtd_info *)((void *)&info[1] +
>>> (sizeof(*mtd) + sizeof(*host)) * cs);
>>> chip = (struct nand_chip *)(&mtd[1]);
>>> host = (struct pxa3xx_nand_host *)chip;
>>>
>>
>> Those casts are an eyesore to me.
>
> I suppose the (struct mtd_info *) cast is unecessary now, since the
> (void *) will be implicitly casted just fine. But I'm not sure if it's
> worth dropping it.
>
>> Is this change related to the patch?
>
> I believe the (void *) cast is a necessary change because
> sizeof(pointer) != sizeof(unsigned int) on a 64-bit arch, so the
> (unsigned int) cast would (rightly) generate a warning about the unsafe
> cast. You're losing the top 32 bits.
>
Right, that makes sense. Thanks for the clarification.
Acked-by: Ezequiel Garcia <ezequiel.garcia at free-electrons.com>
--
Ezequiel García, Free Electrons
Embedded Linux, Kernel and Android Engineering
http://free-electrons.com
More information about the linux-mtd
mailing list