--- linux-2.6.9/drivers/net/bnx2.c.orig	2008-06-13 11:22:31.525707000 -0700
+++ linux-2.6.9/drivers/net/bnx2.c	2008-06-13 12:16:41.018938000 -0700
@@ -57,7 +57,7 @@
 
 #define DRV_MODULE_NAME		"bnx2"
 #define PFX DRV_MODULE_NAME	": "
-#define DRV_MODULE_VERSION	"1.6.9"
+#define DRV_MODULE_VERSION	"1.6.9ora"
 #define DRV_MODULE_RELDATE	"December 8, 2007"
 
 #define RUN_AT(x) (jiffies + (x))
@@ -78,6 +78,11 @@ static int disable_msi = 0;
 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,
@@ -5026,6 +5031,18 @@ bnx2_request_irq(struct bnx2 *bp)
 	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;
 
@@ -5036,6 +5053,7 @@ bnx2_request_irq(struct bnx2 *bp)
 	} else
 		rc = request_irq(bp->pdev->irq, bnx2_interrupt,
 				 IRQF_SHARED, dev->name, dev);
+       }
 	return rc;
 }
 
