Re: [PATCH] clocksource/drivers/timer-of: Remove percpu irq related code

From: Uros Bizjak
Date: Mon Aug 19 2024 - 07:12:59 EST


On Mon, Aug 19, 2024 at 12:03 PM Daniel Lezcano
<daniel.lezcano@xxxxxxxxxx> wrote:
>
> Found by GCC's named address space checks:
>
> timer-of.c:29:46: warning: incorrect type in argument 2 (different address spaces)
> timer-of.c:29:46: expected void [noderef] __percpu *
> timer-of.c:29:46: got struct clock_event_device *clkevt
> timer-of.c:74:51: warning: incorrect type in argument 4 (different address spaces)
> timer-of.c:74:51: expected void [noderef] __percpu *percpu_dev_id
> timer-of.c:74:51: got struct clock_event_device *clkevt

Actually, the above is what sparse reports. GCC's named address space
checks errors out with:

drivers/clocksource/timer-of.c: In function ‘timer_of_irq_exit’:
drivers/clocksource/timer-of.c:29:46: error: passing argument 2 of
‘free_percpu_irq’ from pointer to non-enclosed address space
29 | free_percpu_irq(of_irq->irq, clkevt);
| ^~~~~~
In file included from drivers/clocksource/timer-of.c:8:
./include/linux/interrupt.h:201:43: note: expected ‘__seg_gs void *’
but argument is of type ‘struct clock_event_device *’
201 | extern void free_percpu_irq(unsigned int, void __percpu *);
| ^~~~~~~~~~~~~~~
drivers/clocksource/timer-of.c: In function ‘timer_of_irq_init’:
drivers/clocksource/timer-of.c:74:51: error: passing argument 4 of
‘request_percpu_irq’ from pointer to non-enclosed address space
74 | np->full_name, clkevt) :
| ^~~~~~
./include/linux/interrupt.h:190:56: note: expected ‘__seg_gs void *’
but argument is of type ‘struct clock_event_device *’
190 | const char *devname, void __percpu *percpu_dev_id)
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~

Anyway, your patch fixes the above build errors, as well as sparse
checking warnings.

Tested-by: Uros Bizjak <ubizjak@xxxxxxxxx>

Thanks,
Uros.