Re: [PATCH] Fix pointer cast for 32 bits arch

From: Peter Senna Tschudin
Date: Sun Apr 12 2015 - 09:49:11 EST


On Sun, Apr 12, 2015 at 3:05 PM, Geert Uytterhoeven
<geert@xxxxxxxxxxxxxx> wrote:
> On Sun, Apr 12, 2015 at 11:26 AM, Peter Senna Tschudin
> <peter.senna@xxxxxxxxx> wrote:
>> Sparse compalins about casting void * to u64 on i386.
>> Change the cast to resource_size_t.
>>
>> Signed-off-by: Peter Senna Tschudin <peter.senna@xxxxxxxxx>
>> ---
>>
>> Tested by compilation only. Tested for x86 and x86_64.
>>
>> drivers/staging/goldfish/goldfish_nand.c | 3 ++-
>> include/linux/goldfish.h | 2 +-
>> 2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/staging/goldfish/goldfish_nand.c b/drivers/staging/goldfish/goldfish_nand.c
>> index d68f216..738fdc4 100644
>> --- a/drivers/staging/goldfish/goldfish_nand.c
>> +++ b/drivers/staging/goldfish/goldfish_nand.c
>> @@ -87,7 +87,8 @@ static u32 goldfish_nand_cmd(struct mtd_info *mtd, enum nand_cmd cmd,
>> writel((u32)(addr >> 32), base + NAND_ADDR_HIGH);
>> writel((u32)addr, base + NAND_ADDR_LOW);
>> writel(len, base + NAND_TRANSFER_SIZE);
>> - gf_write64((u64)ptr, base + NAND_DATA, base + NAND_DATA_HIGH);
>> + gf_write64((resource_size_t)ptr, base + NAND_DATA,
>> + base + NAND_DATA_HIGH);
>
> I guess sparse still complains if CONFIG_X86_PAE=y, which makes
> resource_size_t u64?

Yes, when CONFIG_X86_PAE=y the patch doesn't fix the warning(gcc
warning). What is the correct/portable way of fixing this?


>
> Gr{oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
> -- Linus Torvalds



--
Peter
--
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/