Re: [PATCH] video: fbdev: Convert timers to use timer_setup()

Bartlomiej Zolnierkiewicz
2017-11-09T17:08:35Z

On Tuesday, October 24, 2017 08:20:26 AM Kees Cook wrote:

> diff --git a/drivers/video/fbdev/pxa3xx-gcu.c b/drivers/video/fbdev/pxa3xx-gcu.c
> index 933619da1a94..e88447eac32c 100644
> --- a/drivers/video/fbdev/pxa3xx-gcu.c
> +++ b/drivers/video/fbdev/pxa3xx-gcu.c
> @@ -513,16 +513,10 @@ pxa3xx_gcu_mmap(struct file *file, struct vm_area_struct *vma)
> #ifdef PXA3XX_GCU_DEBUG_TIMER
> static struct timer_list pxa3xx_gcu_debug_timer;
>
> -static void pxa3xx_gcu_debug_timedout(unsigned long ptr)
> +static void pxa3xx_gcu_debug_timedout(struct timer_list *unused)
> {
> - struct pxa3xx_gcu_priv *priv = (struct pxa3xx_gcu_priv *) ptr;
> -
> QERROR("Timer DUMP");

QERROR() macro is using priv so this code now fails to build.

[ Please compile these timer changes with PXA3XX_GCU_DEBUG and
PXA3XX_GCU_DEBUG_TIMER defined. ]

Also please port your changes over fbdvev-for-next tree as
currently this patch doesn't apply (fbdev tree contains
"video: fbdev: pxa3xx_gcu: Use setup_timer and mod_timer"
cleanup).

> - /* init the timer structure */
> - init_timer(&pxa3xx_gcu_debug_timer);
> - pxa3xx_gcu_debug_timer.function = pxa3xx_gcu_debug_timedout;
> - pxa3xx_gcu_debug_timer.data = ptr;
> pxa3xx_gcu_debug_timer.expires = jiffies + 5*HZ; /* one second */
>
> add_timer(&pxa3xx_gcu_debug_timer);
> @@ -530,7 +524,9 @@ static void pxa3xx_gcu_debug_timedout(unsigned long ptr)
>
> static void pxa3xx_gcu_init_debug_timer(void)
> {
> - pxa3xx_gcu_debug_timedout((unsigned long) &pxa3xx_gcu_debug_timer);
> + /* init the timer structure */
> + timer_setup(&pxa3xx_gcu_debug_timer, pxa3xx_gcu_debug_timedout, 0);
> + pxa3xx_gcu_debug_timedout(NULL);
> }
> #else
> static inline void pxa3xx_gcu_init_debug_timer(void) {}

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics