Message ID | 9e12d806c5554b4ed18c644f71f6662fcf0d0516.1649813822.git.lhjeff911@gmail.com |
---|---|
State | New |
Headers | show |
Series | spi: remove spin_lock_irq in the irq procress | expand |
On 4/12/22 6:38 PM, Li-hao Kuo wrote: > - remove spin_lock_irq and spin_unlock_irq in the irq funciton function I was expecting a statement on why is the lock is not needed. Could you add one ? Tom > > Signed-off-by: Li-hao Kuo <lhjeff911@gmail.com> > --- > drivers/spi/spi-sunplus-sp7021.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c > index f989f7b..120623c 100644 > --- a/drivers/spi/spi-sunplus-sp7021.c > +++ b/drivers/spi/spi-sunplus-sp7021.c > @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) > if (tx_len == 0 && total_len == 0) > return IRQ_NONE; > > - spin_lock_irq(&pspim->lock); > - > rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status); > if (fd_status & SP7021_RX_FULL_FLAG) > rx_cnt = pspim->data_unit; > @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) > > if (isrdone) > complete(&pspim->isr_done); > - spin_unlock_irq(&pspim->lock); > + > return IRQ_HANDLED; > } >
Hi Tom : This SPI driver only handles one transfer at a time. That's why locks are not needed. Li-hao Kuo Tom Rix <trix@redhat.com> 於 2022年4月13日 週三 下午7:45寫道: > > > On 4/12/22 6:38 PM, Li-hao Kuo wrote: > > - remove spin_lock_irq and spin_unlock_irq in the irq funciton > > function > > I was expecting a statement on why is the lock is not needed. > > Could you add one ? > > Tom > > > > > Signed-off-by: Li-hao Kuo <lhjeff911@gmail.com> > > --- > > drivers/spi/spi-sunplus-sp7021.c | 4 +--- > > 1 file changed, 1 insertion(+), 3 deletions(-) > > > > diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c > > index f989f7b..120623c 100644 > > --- a/drivers/spi/spi-sunplus-sp7021.c > > +++ b/drivers/spi/spi-sunplus-sp7021.c > > @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) > > if (tx_len == 0 && total_len == 0) > > return IRQ_NONE; > > > > - spin_lock_irq(&pspim->lock); > > - > > rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status); > > if (fd_status & SP7021_RX_FULL_FLAG) > > rx_cnt = pspim->data_unit; > > @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) > > > > if (isrdone) > > complete(&pspim->isr_done); > > - spin_unlock_irq(&pspim->lock); > > + > > return IRQ_HANDLED; > > } > > >
Hi Mr.Mark : I will remove the variable "psim->lock" in the next patch Li-hao Kuo Mark Brown <broonie@kernel.org> 於 2022年4月13日 週三 下午7:32寫道: > > On Wed, Apr 13, 2022 at 09:38:00AM +0800, Li-hao Kuo wrote: > > - remove spin_lock_irq and spin_unlock_irq in the irq funciton > > It looks like this is the only use of the lock so the variable can be > removed as well?
On 4/14/22 6:16 AM, 郭力豪 wrote: > Hi Tom : > > This SPI driver only handles one transfer at a time. > That's why locks are not needed. Please add this statement to the commit log. In a commit log, not only do I look for what was changed but also why the change was made. Tom > > > Li-hao Kuo > > Tom Rix <trix@redhat.com> 於 2022年4月13日 週三 下午7:45寫道: >> >> On 4/12/22 6:38 PM, Li-hao Kuo wrote: >>> - remove spin_lock_irq and spin_unlock_irq in the irq funciton >> function >> >> I was expecting a statement on why is the lock is not needed. >> >> Could you add one ? >> >> Tom >> >>> Signed-off-by: Li-hao Kuo <lhjeff911@gmail.com> >>> --- >>> drivers/spi/spi-sunplus-sp7021.c | 4 +--- >>> 1 file changed, 1 insertion(+), 3 deletions(-) >>> >>> diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c >>> index f989f7b..120623c 100644 >>> --- a/drivers/spi/spi-sunplus-sp7021.c >>> +++ b/drivers/spi/spi-sunplus-sp7021.c >>> @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) >>> if (tx_len == 0 && total_len == 0) >>> return IRQ_NONE; >>> >>> - spin_lock_irq(&pspim->lock); >>> - >>> rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status); >>> if (fd_status & SP7021_RX_FULL_FLAG) >>> rx_cnt = pspim->data_unit; >>> @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) >>> >>> if (isrdone) >>> complete(&pspim->isr_done); >>> - spin_unlock_irq(&pspim->lock); >>> + >>> return IRQ_HANDLED; >>> } >>>
diff --git a/drivers/spi/spi-sunplus-sp7021.c b/drivers/spi/spi-sunplus-sp7021.c index f989f7b..120623c 100644 --- a/drivers/spi/spi-sunplus-sp7021.c +++ b/drivers/spi/spi-sunplus-sp7021.c @@ -199,8 +199,6 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) if (tx_len == 0 && total_len == 0) return IRQ_NONE; - spin_lock_irq(&pspim->lock); - rx_cnt = FIELD_GET(SP7021_RX_CNT_MASK, fd_status); if (fd_status & SP7021_RX_FULL_FLAG) rx_cnt = pspim->data_unit; @@ -239,7 +237,7 @@ static irqreturn_t sp7021_spi_master_irq(int irq, void *dev) if (isrdone) complete(&pspim->isr_done); - spin_unlock_irq(&pspim->lock); + return IRQ_HANDLED; }
- remove spin_lock_irq and spin_unlock_irq in the irq funciton Signed-off-by: Li-hao Kuo <lhjeff911@gmail.com> --- drivers/spi/spi-sunplus-sp7021.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)