Hi,

BTW, how is my irq fix going? 

Just a reminder...

Samuel

2005-07-30  Samuel Thibault  <[EMAIL PROTECTED]>

        * irq.c (linux_intr): Disable interrupts when the driver
        requested it through request_irq().

--- gnumach/linux/dev/arch/i386/kernel/irq.c    1999-04-26 07:40:55.000000000 
+0200
+++ gnumach/linux/dev/arch/i386/kernel/irq.c    2005-07-19 04:37:17.000000000 
+0200
@@ -103,16 +103,23 @@ linux_intr (int irq)
 {
   struct pt_regs regs;
   struct linux_action *action = *(irq_action + irq);
+  unsigned long flags;
 
   kstat.interrupts[irq]++;
   intr_count++;
 
+  save_flags (flags);
+  if (action && (action->flags & SA_INTERRUPT))
+    cli ();
+
   while (action)
     {
       action->handler (irq, action->dev_id, &regs);
       action = action->next;
     }
 
+  restore_flags (flags);
+
   intr_count--;
 
   /* Not used. by OKUJI Yoshinori. */


_______________________________________________
Bug-hurd mailing list
Bug-hurd@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-hurd

Reply via email to