Hi Tian, CC tglx On Wed, Oct 21, 2020 at 2:15 PM Tian Tao <tiantao6@xxxxxxxxxxxxx> wrote: > The code has been in a irq-disabled context since it is hard IRQ. There > is no necessity to do it again. > > Signed-off-by: Tian Tao <tiantao6@xxxxxxxxxxxxx> Thanks for your patch! Is this also true if CONFIG_PREEMPT_RT=y, and all irq handlers execute in the context of special tasks? > --- a/drivers/thermal/rcar_thermal.c > +++ b/drivers/thermal/rcar_thermal.c > @@ -409,16 +409,15 @@ static irqreturn_t rcar_thermal_irq(int irq, void *data) > { > struct rcar_thermal_common *common = data; > struct rcar_thermal_priv *priv; > - unsigned long flags; > u32 status, mask; > > - spin_lock_irqsave(&common->lock, flags); > + spin_lock(&common->lock); > > mask = rcar_thermal_common_read(common, INTMSK); > status = rcar_thermal_common_read(common, STR); > rcar_thermal_common_write(common, STR, 0x000F0F0F & mask); > > - spin_unlock_irqrestore(&common->lock, flags); > + spin_unlock(&common->lock); > > status = status & ~mask; 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