[PATCH] Fix pointer cast for 32 bits arch

Peter Senna Tschudin peter.senna at gmail.com
Mon Apr 13 11:25:15 UTC 2015


Line 4677 of http://pastebin.com/2bi9Dg7k looks like a bug

diff -u -p a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
-       regs->nip = (unsigned long) (unsigned long)ksig->ka.sa.sa_handler;

On Mon, Apr 13, 2015 at 1:21 PM, Geert Uytterhoeven
<geert at linux-m68k.org> wrote:
> Hi Peter,
>
> On Mon, Apr 13, 2015 at 1:14 PM, Peter Senna Tschudin
> <peter.senna at gmail.com> wrote:
>>> Perhaps checkpatch should complain about casts outside header files?
>> Cocinelle found 664 double casts:
>> http://pastebin.com/2bi9Dg7k
>>
>> and 9 triple casts:
>> http://pastebin.com/RkJhPTTV
>
> I think double casts are only needed when casting between integers
> and pointers of different sizes:
>   1. One cast to make the sizes match,
>   2. One cast to convert between pointer and integer.
>
> I think triple casts can always be simplified.
> Or am I missing some use cases?
>
>> Those are 'not' patches, just the output of Coccinelle for analysis.
>> The .cocci for triple cast:
>> @@
>> expression e1, e2;
>> type t1, t2, t3;
>> @@
>> e1 =
>> - (t1)(t2)(t3)
>> e2
>>
>> So if there are cast patterns known to be wrong, it is easy to find
>> and probably fix them with Coccinelle.
>
> It depends on the original type and on the destination type.
>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
>
> 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


More information about the devel mailing list