diff -uNr dscud5/dscudkp.c dscud5_new/dscudkp.c
--- dscud5/dscudkp.c	2005-09-17 03:55:53 +0300
+++ dscud5_new/dscudkp.c	2008-10-02 11:57:19 +0300
@@ -229,7 +229,10 @@
  *
  */
 static int dscud_major = 252;
-MODULE_PARM(dscud_major, "i");
+//MODULE_PARM(dscud_major, "i");
+
+module_param( dscud_major, int, 0); //MODULE_PARM( dscud_major, "i");
+MODULE_PARM_DESC( dscud_major, "Device major identifier (integer - 252)");
 
 static DSCUDKP_PCI_INFO dsc_pci_boards[DSC_PCI_MAX_BOARDS];
 
@@ -1167,11 +1170,11 @@
 		case DSC_DMM16AT:
 		case DSC_DMMAT:
 		case DSC_HERCEBX:
-			rc = request_irq(kpdata->int_level, &at_userint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &at_userint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 
 		default:
-			rc = request_irq(kpdata->int_level, &nonat_userint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &nonat_userint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 	}
 
@@ -1282,22 +1285,22 @@
 		case DSC_DMM16AT:
 		case DSC_DMMAT:
 		case DSC_HERCEBX:
-			rc = request_irq(kpdata->int_level, &at_adint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &at_adint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 
 		case DSC_DMM:
 			if ( kpdata->scan_enab )
-				rc = request_irq(kpdata->int_level, &nonat_adint_scan, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+				rc = request_irq(kpdata->int_level, &nonat_adint_scan, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			else
-				rc = request_irq(kpdata->int_level, &nonat_adint_sample, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+				rc = request_irq(kpdata->int_level, &nonat_adint_sample, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 
 			break;
 
 		case DSC_ZMM:
 			if ( kpdata->scan_enab )
-				rc = request_irq(kpdata->int_level, &zmm_adint_scan, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+				rc = request_irq(kpdata->int_level, &zmm_adint_scan, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			else
-				rc = request_irq(kpdata->int_level, &zmm_adint_sample, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+				rc = request_irq(kpdata->int_level, &zmm_adint_sample, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 
 			break;
 
@@ -1374,15 +1377,15 @@
 		case DSC_DMM16AT:
 		case DSC_DMMAT:
 		case DSC_HERCEBX:
-			rc = request_irq(kpdata->int_level, &generic_daint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &generic_daint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 
 		case DSC_DMM:
-			rc = request_irq(kpdata->int_level, &generic_daint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &generic_daint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 
 		case DSC_ZMM:
-			rc = request_irq(kpdata->int_level, &generic_daint, SA_INTERRUPT|SA_SHIRQ, "DSCUD", kpdata);
+			rc = request_irq(kpdata->int_level, &generic_daint, IRQF_DISABLED | IRQF_SHARED, "DSCUD", kpdata);
 			break;
 
 		default:
