Guan Xin | 12 Aug 2010 18:56
Picon

[BUG] IRQ storm from linux/drivers/char/ppdev.c

Hi All,

When I was using a PCI parallel card, I suffered from IRQ storms with avrdude.

https://savannah.nongnu.org/bugs/?30753

It seems that in "ppdev.c" the IRQ is always enabled everywhere.
I am not familiar with this driver. But the attached nasty patch
solved my problem. Could anyone check it?

Xin

--- ppdev.c.1st	2010-08-01 18:11:14.000000000 -0400
+++ ppdev.c	2010-08-12 11:48:35.742688887 -0400
 <at>  <at>  -90,17 +90,21  <at>  <at> 
 #define PP_EXCL       (1<<1)

 /* Other constants */
-#define PP_INTERRUPT_TIMEOUT (10 * HZ) /* 10s */
 #define PP_BUFFER_SIZE 1024
 #define PARDEVICE_MAX 8

 /* ROUND_UP macro from fs/select.c */
 #define ROUND_UP(x,y) (((x)+(y)-1)/(y))

-static inline void pp_enable_irq (struct pp_struct *pp)
+static inline void pp_verify_irq (struct pp_struct *pp)
 {
 	struct parport *port = pp->pdev->port;
-	port->ops->enable_irq (port);
(Continue reading)


Gmane