PATCH: make vm86 machine independant using new headers

PATCH: make vm86 machine independant using new headers

Post by Alan Co » Wed, 09 Apr 2003 02:00:22



diff -u --new-file --recursive --exclude-from /usr/src/exclude linux-2.5.67/arch/i386/kernel/vm86.c linux-2.5.67-ac1/arch/i386/kernel/vm86.c
--- linux-2.5.67/arch/i386/kernel/vm86.c        2003-04-08 00:37:34.000000000 +0100

  *
  */

+#include <linux/config.h>
 #include <linux/errno.h>
 #include <linux/interrupt.h>

 void release_x86_irqs(struct task_struct *task)
 {
        int i;
-       for (i=3; i<16; i++)
+       for (i = FIRST_VM86_IRQ ; i <= LAST_VM86_IRQ; i++)
            if (vm86_irqs[i].tsk == task)
                free_vm86_irq(i);

        int bit;
        unsigned long flags;

-       if ( (irqnumber<3) || (irqnumber>15) ) return 0;
+       if (invalid_vm86_irq(irqnumber)) return 0;
        if (vm86_irqs[irqnumber].tsk != current) return 0;
        spin_lock_irqsave(&irqbits_lock, flags);    

                        int irq = irqnumber & 255;
                        if (!capable(CAP_SYS_ADMIN)) return -EPERM;
                        if (!((1 << sig) & ALLOWED_SIGS)) return -EPERM;
-                       if ( (irq<3) || (irq>15) ) return -EPERM;
+                       if (invalid_vm86_irq(irq)) return -EPERM;
                        if (vm86_irqs[irq].tsk) return -EPERM;
                        ret = request_irq(irq, &irq_handler, 0, VM86_IRQNAME, 0);

                        return irq;
                }
                case  VM86_FREE_IRQ: {
-                       if ( (irqnumber<3) || (irqnumber>15) ) return -EPERM;
+                       if (invalid_vm86_irq(irqnumber)) return -EPERM;
                        if (!vm86_irqs[irqnumber].tsk) return 0;
                        if (vm86_irqs[irqnumber].tsk != current) return -EPERM;
                        free_vm86_irq(irqnumber);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in

More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/