All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] media: rc/ite-cir: replace spin_lock_irqsave by spin_lock in hard IRQ
@ 2021-02-05  9:39 Daode Huang
  0 siblings, 0 replies; only message in thread
From: Daode Huang @ 2021-02-05  9:39 UTC (permalink / raw)
  To: sean, mchehab; +Cc: linux-media, linux-kernel, song.bao.hua

It is redundant to do irqsave and irqrestore in hardIRQ context.

Signed-off-by: Daode Huang <huangdaode@huawei.com>
---
 drivers/media/rc/ite-cir.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
index 0c62295..4a51ca80 100644
--- a/drivers/media/rc/ite-cir.c
+++ b/drivers/media/rc/ite-cir.c
@@ -262,7 +262,6 @@ static void ite_set_carrier_params(struct ite_dev *dev)
 static irqreturn_t ite_cir_isr(int irq, void *data)
 {
 	struct ite_dev *dev = data;
-	unsigned long flags;
 	irqreturn_t ret = IRQ_RETVAL(IRQ_NONE);
 	u8 rx_buf[ITE_RX_FIFO_LEN];
 	int rx_bytes;
@@ -271,7 +270,7 @@ static irqreturn_t ite_cir_isr(int irq, void *data)
 	ite_dbg_verbose("%s firing", __func__);
 
 	/* grab the spinlock */
-	spin_lock_irqsave(&dev->lock, flags);
+	spin_lock(&dev->lock);
 
 	/* read the interrupt flags */
 	iflags = dev->params.get_irq_causes(dev);
@@ -287,17 +286,14 @@ static irqreturn_t ite_cir_isr(int irq, void *data)
 			/* drop the spinlock, since the ir-core layer
 			 * may call us back again through
 			 * ite_s_idle() */
-			spin_unlock_irqrestore(&dev->
-									 lock,
-									 flags);
+			spin_unlock(&dev->lock);
 
 			/* decode the data we've just received */
 			ite_decode_bytes(dev, rx_buf,
 								   rx_bytes);
 
 			/* reacquire the spinlock */
-			spin_lock_irqsave(&dev->lock,
-								    flags);
+			spin_lock(&dev->lock);
 
 			/* mark the interrupt as serviced */
 			ret = IRQ_RETVAL(IRQ_HANDLED);
@@ -314,7 +310,7 @@ static irqreturn_t ite_cir_isr(int irq, void *data)
 	}
 
 	/* drop the spinlock */
-	spin_unlock_irqrestore(&dev->lock, flags);
+	spin_unlock(&dev->lock);
 
 	ite_dbg_verbose("%s done returning %d", __func__, (int)ret);
 
-- 
2.8.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-02-05  9:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-05  9:39 [PATCH] media: rc/ite-cir: replace spin_lock_irqsave by spin_lock in hard IRQ Daode Huang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.