--- linux-2.6.9/drivers/net/bnx2.c.orig	2007-10-02 19:30:58.000000000 -0700
+++ linux-2.6.9/drivers/net/bnx2.c	2007-10-02 19:54:04.000000000 -0700
@@ -57,7 +57,7 @@
 
 #define DRV_MODULE_NAME		"bnx2"
 #define PFX DRV_MODULE_NAME	": "
-#define DRV_MODULE_VERSION	"1.5.11-rh"
+#define DRV_MODULE_VERSION	"1.5.11ora"
 #define DRV_MODULE_RELDATE	"June 4, 2007"
 
 #define RUN_AT(x) (jiffies + (x))
@@ -82,6 +82,11 @@
 module_param(disable_msi, int, 0);
 MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)");
 
+static int entropy = 0;
+
+module_param(entropy, int, 0);
+MODULE_PARM_DESC(entropy, "Allow bnx2 to populate the /dev/random entropy pool");
+
 typedef enum {
 	BCM5706 = 0,
 	NC370T,
@@ -4677,6 +4682,18 @@
 	struct net_device *dev = bp->dev;
 	int rc = 0;
 
+       if (entropy) {	
+	if (bp->flags & USING_MSI_FLAG) {
+                irq_handler_t   fn = bnx2_msi;
+
+                if (bp->flags & ONE_SHOT_MSI_FLAG)
+                        fn = bnx2_msi_1shot;
+
+                rc = request_irq(bp->pdev->irq, fn, SA_SAMPLE_RANDOM, dev->name, dev);
+        } else
+                rc = request_irq(bp->pdev->irq, bnx2_interrupt,
+                                 IRQF_SHARED|SA_SAMPLE_RANDOM, dev->name, dev);
+       } else {
 	if (bp->flags & USING_MSI_FLAG) {
 		irq_handler_t	fn = bnx2_msi;
 
@@ -4687,6 +4704,7 @@
 	} else
 		rc = request_irq(bp->pdev->irq, bnx2_interrupt,
 				 IRQF_SHARED, dev->name, dev);
+       }
 	return rc;
 }
 
