Re: [RFC][PATCH v2 10/31] timers: ipmi: Use del_timer_shutdown() before freeing timer

From: Corey Minyard
Date: Thu Oct 27 2022 - 11:23:11 EST


On Thu, Oct 27, 2022 at 10:20:15AM -0500, Corey Minyard wrote:
> On Thu, Oct 27, 2022 at 11:05:35AM -0400, Steven Rostedt wrote:
> > From: "Steven Rostedt (Google)" <rostedt@xxxxxxxxxxx>
> >
> > Before a timer is freed, del_timer_shutdown() must be called.
>
> Thanks, this is in my queue, or:
>
> Acked-by: Corey Minyard <cminyard@xxxxxxxxxx>
>
> if you prefer that.

Well, del_timer_shutdown() isn't there yet, so I guess the Ack is what
you need.

-corey

>
> -corey
>
> >
> > Link: https://lore.kernel.org/all/20220407161745.7d6754b3@xxxxxxxxxxxxxxxxxx/
> >
> > Cc: Corey Minyard <minyard@xxxxxxx>
> > Cc: openipmi-developer@xxxxxxxxxxxxxxxxxxxxx
> > Signed-off-by: Steven Rostedt (Google) <rostedt@xxxxxxxxxxx>
> > ---
> > drivers/char/ipmi/ipmi_msghandler.c | 2 +-
> > drivers/char/ipmi/ipmi_ssif.c | 4 ++--
> > 2 files changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
> > index 49a1707693c9..b577f66f3ca6 100644
> > --- a/drivers/char/ipmi/ipmi_msghandler.c
> > +++ b/drivers/char/ipmi/ipmi_msghandler.c
> > @@ -5540,7 +5540,7 @@ static void __exit cleanup_ipmi(void)
> > * here.
> > */
> > atomic_set(&stop_operation, 1);
> > - del_timer_sync(&ipmi_timer);
> > + del_timer_shutdown(&ipmi_timer);
> >
> > initialized = false;
> >
> > diff --git a/drivers/char/ipmi/ipmi_ssif.c b/drivers/char/ipmi/ipmi_ssif.c
> > index e1072809fe31..bb4df879a5ab 100644
> > --- a/drivers/char/ipmi/ipmi_ssif.c
> > +++ b/drivers/char/ipmi/ipmi_ssif.c
> > @@ -1273,8 +1273,8 @@ static void shutdown_ssif(void *send_info)
> > schedule_timeout(1);
> >
> > ssif_info->stopping = true;
> > - del_timer_sync(&ssif_info->watch_timer);
> > - del_timer_sync(&ssif_info->retry_timer);
> > + del_timer_shutdown(&ssif_info->watch_timer);
> > + del_timer_shutdown(&ssif_info->retry_timer);
> > if (ssif_info->thread) {
> > complete(&ssif_info->wake_thread);
> > kthread_stop(ssif_info->thread);
> > --
> > 2.35.1