Re: Defective request/free_irq?

Hans Lermen (lermen@elserv.ffm.fgan.de)
Tue, 12 Mar 1996 09:54:50 +0100 (MET)


On Mon, 11 Mar 1996, Derrik Pates wrote:

> Has anyone figured out if there is a defect in the 1.3.72(maybe more?)
> kernel? In trying to compile DOSEMU, I got an error that I didn't get
^^^^^^
Well, you should have posted this to linux-msdos !

Nevertheless, just because you are the second with this question
(and hoping the 'third' will go to linux-msdos), here is the needed patch:

------------------------------------------------------------------------
diff -ur dosemu.old/emumod/emusys.c dosemu.old/emumod/emusys.c
--- dosemu.old/emumod/emusys.c Sat Nov 4 18:46:45 1995
+++ dosemu/emumod/emusys.c Sat Mar 2 02:22:00 1996
@@ -98,13 +98,21 @@
case EMUSYS_REQUEST_IRQ: {
if (tasks[irqnumber]) return -1;
irqbits &= ~(1 << irqnumber);
+#if KERNEL_VERSION < 1003070
if (request_irq(irqnumber, &irq_handler, 0, ID_STRING )) return -1;
+#else
+ if (request_irq(irqnumber, &irq_handler, 0, ID_STRING, NULL )) return -1;
+#endif
tasks[irqnumber] = current;
return irqnumber;
}
case EMUSYS_FREE_IRQ: {
if (!tasks[irqnumber]) return -1;
+#if KERNEL_VERSION < 1003070
free_irq(irqnumber);
+#else
+ free_irq(irqnumber, NULL);
+#endif
tasks[irqnumber] = 0;
irqbits &= ~(1 << irqnumber);
return irqnumber;
@@ -118,7 +126,11 @@
{
int i;
for (i=3; i<16; i++) if (tasks[i]) {
+#if KERNEL_VERSION < 1003070
free_irq(i);
+#else
+ free_irq(i, NULL);
+#endif
tasks[i]=0;
}
irqbits = 0;
------------------------------------------------------------------------

Hans
<lermen@elserv.ffm.fgan.de>