diff -uNr cif2.621/src/cif_irq.c cif2.621.new/src/cif_irq.c
--- cif2.621/src/cif_irq.c	2006-10-24 11:08:20 +0300
+++ cif2.621.new/src/cif_irq.c	2009-11-20 17:55:03 +0200
@@ -349,7 +349,7 @@
 	int result = 0;
 	
 	DBG_PRN("dev %p, irq = %X\n", dev, dev->usBoardIrq);
-	result = request_irq( (unsigned int)(dev->usBoardIrq), cif_interrupt, SA_INTERRUPT, "cif", dev);
+	result = request_irq( (unsigned int)(dev->usBoardIrq), cif_interrupt, IRQF_DISABLED, "cif", dev);
 	if( result) {
 		dev->usBoardIrq = 0;
 		DBG_PRN("Cant request interrupt on device cif: IRQ = %d, request_irq() Ret = %d\n",
diff -uNr cif2.621/src/cif_main.c cif2.621.new/src/cif_main.c
--- cif2.621/src/cif_main.c	2007-10-21 14:12:05 +0300
+++ cif2.621.new/src/cif_main.c	2009-11-20 17:53:55 +0200
@@ -51,6 +51,7 @@
 #include <linux/pci.h>
 #include <linux/interrupt.h>
 #include <linux/ioport.h>
+#include <linux/fs.h>
 
 #include <asm/system.h>       /* cli(), *_flags */
 
@@ -473,9 +474,7 @@
 						//free_irq(dev->usBoardIrq, dev);
 						if( dev->ucBusType == BUS_TYPE_PCI) {
 							if( strncmp(pci_irq, "y", 1) == 0) {
-								result = cif_request_irq( (unsigned int)(dev->usBoardIrq),
-																					SA_SHIRQ,
-																					"cif", dev);
+								result = cif_request_irq( (unsigned int)(dev->usBoardIrq), IRQF_SHARED, "cif", dev);
 								if( result == 0) {
 									cif_set_irq_state( HW_INTERRUPT_ENABLE, dev);
 									DBG_PRN("interrupt handler registration OK. Board = %d, dev = 0x%p, irq = %d\n",
@@ -491,7 +490,7 @@
 								dev->usBoardIrq = 0;
 							}
 						} else { // ISA bus supports no irq sharing
-							result = cif_request_irq( (unsigned int)(dev->usBoardIrq), SA_INTERRUPT, "cif", dev);
+							result = cif_request_irq( (unsigned int)(dev->usBoardIrq), IRQF_DISABLED, "cif", dev);
 							if( result == 0) {
 								DBG_PRN("ISA interrupt handler registration OK. Board = %d, dev = 0x%p, irq = %d\n", 
 												usIdx, dev, dev->usBoardIrq);
