Skip to contentSkip to conversation

Fixed misleading error when handling IR interrupts.

PATCH Andy Walls 1 participant 1 message Aug 21, 2013 1 message not in the archive Media (V4L/DVB)

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Andy Walls

author Acked-by
#1 lore raw
Quoted 14 lines

Date: Thu, 11 Jul 2013 17:02:44 +0100
From: Luis Alves <[email protected]>
To: [email protected]
Cc: [email protected], [email protected], Luis Alves <[email protected]>
Subject: [PATCH] Fixed misleading error when handling IR interrupts.

Hi,
Handling the AV Core/IR interrupts schedules its workqueue but the schedule_work function returns false if @work was already on the kernel-global workqueue and true otherwise.

Quoted 5 lines

Printing an error message if @work wasn't in the queue is wrong.

Regards,
Luis

Yes, the use of the return value is wrong (at least since 2.6.32). I must have misinterpreted the meaning of the return value when I added in that error message long ago.

Regards,
Andy

Quoted 23 lines

---
drivers/media/pci/cx23885/cx23885-core.c | 5 +----

1 file changed, 1 insertion(+), 4 deletions(-)
drivers/media/pci/cx23885/cx23885-core.c +1 -4
index 268654a..9f63d93 100644
@@ -1941,10 +1941,7 @@ static irqreturn_t cx23885_irq(int irq, void
 *dev_id)
 
 	if ((pci_status & pci_mask) & PCI_MSK_AV_CORE) {
 		cx23885_irq_disable(dev, PCI_MSK_AV_CORE);
-		if (!schedule_work(&dev->cx25840_work))
-			printk(KERN_ERR "%s: failed to set up deferred work for"
-			       " AV Core/IR interrupt. Interrupt is disabled"
-			       " and won't be re-enabled\n", dev->name);
+		schedule_work(&dev->cx25840_work);
 		handled++;
 	}