Re: [PATCH] staging: vt6655: replace spin_lock_irqsave with spin_lock

From: Nam Cao
Date: Thu Sep 15 2022 - 13:14:27 EST


On Thu, Sep 15, 2022 at 10:44 AM Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
>
> On Wed, Sep 14, 2022 at 10:00:17AM +0200, Nam Cao wrote:
> > In vt6655 driver, there is a single interrupt handler: vnt_interrupt(),
> > and it does not take the spinlock. The interrupt handler only schedules
> > a workqueue, and the spinlock is taken in this workqueue. Thus, there is
> > no need to use spin_lock_irqsave, as the spinlock is never taken by an
> > interrupt. Replace spin_lock_irqsave (and spin_unlock_irqsave) with
> > spin_lock (and spin_unlock).
>
> What is the speed difference before and after this change? And how are
> interrupts properly handled anymore in this driver if you took away the
> lock that was being accessed in the irq?

My understanding is that no lock is accessed in the irq in this driver. But
it seems like I am wrong. Sorry for sending a buggy patch, I may follow-up with
this later when I figure out what I did wrong.

Best regards,
Nam.