--- pcnet32.c.orig	Mon Oct 25 14:07:42 1999
+++ pcnet32.c	Thu Oct 28 13:25:32 1999
@@ -369,7 +369,17 @@
 	if (dev->irq == 0 ||
 		request_irq(dev->irq, &pcnet32_interrupt, SA_SHIRQ,
 					dev->name, (void *)dev)) {
-		return -EAGAIN;
+		if (pcnet32_debug > 1)
+			printk("pcnet32_open(): Requesting IRQ%d failed. Trying fast/share handler mode...", dev->irq);
+		if (dev->irq == 0 ||
+			request_irq(dev->irq, &pcnet32_interrupt, SA_SHIRQ | SA_INTERRUPT,
+					dev->name, (void *)dev)) {
+			if (pcnet32_debug > 1)
+				printk("pcnet32_open(): Failed... Giving up.\n");
+			return -EAGAIN;
+		}
+		if (pcnet32_debug > 1)
+			printk("pcnet32_open(): WARNING: Succeeded. However there may be interrupt related problem under heavy load. Keep this in your mind...\n");
 	}
 	MOD_INC_USE_COUNT;
 

