[PATCH] 2.4.9: let Net Devices feed Entropy (2/2)

From: Robert Love (rml@tech9.net)
Date: Sat Aug 18 2001 - 23:48:06 EST


part 2 of 2, against 2.4.9. see previous email, old thread, or
http://tech9.net/rml/linux for more information.

this patch enables the 3c501, 3c505, 3c509, 3c523, 3c59x, 8139too,
cs89x0, eepro, eepro100, eexpress, ibmlana, ne2k-pci, pcnet_cs,
xircom_tulic_cb, sk_mca, smc9194, tulic_core, and wavelan drivers to use
the new flag. all of the drivers which previously contributed entropy
are listed above. None of these drivers will contribute unless you
enable the configuration setting

**We need all net drivers to use the new flag. I am accepting patches.

diff -urN linux-2.4.9-pre4/drivers/net/3c501.c linux/drivers/net/3c501.c
--- linux-2.4.9-pre4/drivers/net/3c501.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/3c501.c Wed Aug 15 23:20:07 2001
@@ -410,7 +410,8 @@
         if (el_debug > 2)
                 printk("%s: Doing el_open()...", dev->name);
 
- if ((retval = request_irq(dev->irq, &el_interrupt, 0, dev->name, dev)))
+ if ((retval = request_irq(dev->irq, &el_interrupt,
+ SA_SAMPLE_NET_RANDOM, dev->name, dev)))
                 return retval;
 
         spin_lock_irqsave(&lp->lock, flags);
diff -urN linux-2.4.9-pre4/drivers/net/3c505.c linux/drivers/net/3c505.c
--- linux-2.4.9-pre4/drivers/net/3c505.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/3c505.c Wed Aug 15 23:20:07 2001
@@ -897,7 +897,8 @@
         /*
          * install our interrupt service routine
          */
- if ((retval = request_irq(dev->irq, &elp_interrupt, 0, dev->name, dev))) {
+ if ((retval = request_irq(dev->irq, &elp_interrupt,
+ SA_SAMPLE_NET_RANDOM, dev->name, dev))) {
                 printk(KERN_ERR "%s: could not allocate IRQ%d\n", dev->name, dev->irq);
                 return retval;
         }
diff -urN linux-2.4.9-pre4/drivers/net/3c509.c linux/drivers/net/3c509.c
--- linux-2.4.9-pre4/drivers/net/3c509.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/3c509.c Wed Aug 15 23:20:08 2001
@@ -560,7 +560,8 @@
         outw(RxReset, ioaddr + EL3_CMD);
         outw(SetStatusEnb | 0x00, ioaddr + EL3_CMD);
 
- i = request_irq(dev->irq, &el3_interrupt, 0, dev->name, dev);
+ i = request_irq(dev->irq, &el3_interrupt,
+ SA_SAMPLE_NET_RANDOM, dev->name, dev);
         if (i) return i;
 
         EL3WINDOW(0);
diff -urN linux-2.4.9-pre4/drivers/net/3c523.c linux/drivers/net/3c523.c
--- linux-2.4.9-pre4/drivers/net/3c523.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/3c523.c Wed Aug 15 23:20:08 2001
@@ -280,7 +280,7 @@
 
         elmc_id_attn586(); /* disable interrupts */
 
- ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_RANDOM,
+ ret = request_irq(dev->irq, &elmc_interrupt, SA_SHIRQ | SA_SAMPLE_NET_RANDOM,
                           dev->name, dev);
         if (ret) {
                 printk(KERN_ERR "%s: couldn't get irq %d\n", dev->name, dev->irq);
diff -urN linux-2.4.9-pre4/drivers/net/3c59x.c linux/drivers/net/3c59x.c
--- linux-2.4.9-pre4/drivers/net/3c59x.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/3c59x.c Wed Aug 15 23:20:08 2001
@@ -1581,7 +1581,7 @@
 
         /* Use the now-standard shared IRQ implementation. */
         if ((retval = request_irq(dev->irq, vp->full_bus_master_rx ?
- &boomerang_interrupt : &vortex_interrupt, SA_SHIRQ, dev->name, dev))) {
+ &boomerang_interrupt : &vortex_interrupt, SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev))) {
                 printk(KERN_ERR "%s: Could not reserve IRQ %d\n", dev->name, dev->irq);
                 goto out;
         }
diff -urN linux-2.4.9-pre4/drivers/net/8139too.c linux/drivers/net/8139too.c
--- linux-2.4.9-pre4/drivers/net/8139too.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/8139too.c Wed Aug 15 23:20:08 2001
@@ -1289,7 +1289,8 @@
 
         DPRINTK ("ENTER\n");
 
- retval = request_irq (dev->irq, rtl8139_interrupt, SA_SHIRQ, dev->name, dev);
+ retval = request_irq (dev->irq, rtl8139_interrupt,
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev);
         if (retval) {
                 DPRINTK ("EXIT, returning %d\n", retval);
                 return retval;
diff -urN linux-2.4.9-pre4/drivers/net/cs89x0.c linux/drivers/net/cs89x0.c
--- linux-2.4.9-pre4/drivers/net/cs89x0.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/cs89x0.c Wed Aug 15 23:20:08 2001
@@ -1057,7 +1057,7 @@
 
                 for (i = 2; i < CS8920_NO_INTS; i++) {
                         if ((1 << dev->irq) & lp->irq_map) {
- if (request_irq(i, net_interrupt, 0, dev->name, dev) == 0) {
+ if (request_irq(i, net_interrupt, SA_SAMPLE_NET_RANDOM, dev->name, dev) == 0) {
                                         dev->irq = i;
                                         write_irq(dev, lp->chip_type, i);
                                         /* writereg(dev, PP_BufCFG, GENERATE_SW_INTERRUPT); */
diff -urN linux-2.4.9-pre4/drivers/net/eepro.c linux/drivers/net/eepro.c
--- linux-2.4.9-pre4/drivers/net/eepro.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/eepro.c Wed Aug 15 23:20:08 2001
@@ -944,7 +944,8 @@
                 return -EAGAIN;
         }
                 
- if (request_irq(dev->irq , &eepro_interrupt, 0, dev->name, dev)) {
+ if (request_irq(dev->irq , &eepro_interrupt, SA_SAMPLE_NET_RANDOM,
+ dev->name, dev)) {
                 printk("%s: unable to get IRQ %d.\n", dev->name, dev->irq);
                 return -EAGAIN;
         }
diff -urN linux-2.4.9-pre4/drivers/net/eepro100.c linux/drivers/net/eepro100.c
--- linux-2.4.9-pre4/drivers/net/eepro100.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/eepro100.c Wed Aug 15 23:20:08 2001
@@ -932,7 +932,8 @@
         sp->in_interrupt = 0;
 
         /* .. we can safely take handler calls during init. */
- retval = request_irq(dev->irq, &speedo_interrupt, SA_SHIRQ, dev->name, dev);
+ retval = request_irq(dev->irq, &speedo_interrupt,
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev);
         if (retval) {
                 MOD_DEC_USE_COUNT;
                 return retval;
diff -urN linux-2.4.9-pre4/drivers/net/eexpress.c linux/drivers/net/eexpress.c
--- linux-2.4.9-pre4/drivers/net/eexpress.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/eexpress.c Wed Aug 15 23:20:08 2001
@@ -433,7 +433,8 @@
         if (!dev->irq || !irqrmap[dev->irq])
                 return -ENXIO;
 
- ret = request_irq(dev->irq,&eexp_irq,0,dev->name,dev);
+ ret = request_irq(dev->irq,&eexp_irq,SA_SAMPLE_NET_RANDOM,
+ dev->name,dev);
         if (ret) return ret;
 
         request_region(ioaddr, EEXP_IO_EXTENT, "EtherExpress");
diff -urN linux-2.4.9-pre4/drivers/net/ibmlana.c linux/drivers/net/ibmlana.c
--- linux-2.4.9-pre4/drivers/net/ibmlana.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/ibmlana.c Wed Aug 15 23:20:08 2001
@@ -856,7 +856,7 @@
 
         result =
             request_irq(priv->realirq, irq_handler,
- SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev);
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev);
         if (result != 0) {
                 printk("%s: failed to register irq %d\n", dev->name,
                        dev->irq);
diff -urN linux-2.4.9-pre4/drivers/net/ne2k-pci.c linux/drivers/net/ne2k-pci.c
--- linux-2.4.9-pre4/drivers/net/ne2k-pci.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/ne2k-pci.c Wed Aug 15 23:20:08 2001
@@ -387,7 +387,8 @@
 
 static int ne2k_pci_open(struct net_device *dev)
 {
- int ret = request_irq(dev->irq, ei_interrupt, SA_SHIRQ, dev->name, dev);
+ int ret = request_irq(dev->irq, ei_interrupt,
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev);
         if (ret)
                 return ret;
 
diff -urN linux-2.4.9-pre4/drivers/net/pcmcia/pcnet_cs.c linux/drivers/net/pcmcia/pcnet_cs.c
--- linux-2.4.9-pre4/drivers/net/pcmcia/pcnet_cs.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/pcmcia/pcnet_cs.c Wed Aug 15 23:20:08 2001
@@ -977,7 +977,7 @@
     MOD_INC_USE_COUNT;
 
     set_misc_reg(dev);
- request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ, dev_info, dev);
+ request_irq(dev->irq, ei_irq_wrapper, SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev_info, dev);
 
     info->link_status = 0x00;
     info->watchdog.function = &ei_watchdog;
diff -urN linux-2.4.9-pre4/drivers/net/pcmcia/xircom_tulip_cb.c linux/drivers/net/pcmcia/xircom_tulip_cb.c
--- linux-2.4.9-pre4/drivers/net/pcmcia/xircom_tulip_cb.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/pcmcia/xircom_tulip_cb.c Wed Aug 15 23:20:25 2001
@@ -768,7 +768,8 @@
 {
         struct tulip_private *tp = (struct tulip_private *)dev->priv;
 
- if (request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev))
+ if (request_irq(dev->irq, &tulip_interrupt,
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, dev->name, dev))
                 return -EAGAIN;
 
         tulip_init_ring(dev);
diff -urN linux-2.4.9-pre4/drivers/net/sk_mca.c linux/drivers/net/sk_mca.c
--- linux-2.4.9-pre4/drivers/net/sk_mca.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/sk_mca.c Wed Aug 15 23:20:25 2001
@@ -861,7 +861,7 @@
         /* register resources - only necessary for IRQ */
         result =
             request_irq(priv->realirq, irq_handler,
- SA_SHIRQ | SA_SAMPLE_RANDOM, "sk_mca", dev);
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM, "sk_mca", dev);
         if (result != 0) {
                 printk("%s: failed to register irq %d\n", dev->name,
                        dev->irq);
diff -urN linux-2.4.9-pre4/drivers/net/smc9194.c linux/drivers/net/smc9194.c
--- linux-2.4.9-pre4/drivers/net/smc9194.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/smc9194.c Wed Aug 15 23:20:25 2001
@@ -1019,7 +1019,7 @@
         ether_setup(dev);
 
         /* Grab the IRQ */
- retval = request_irq(dev->irq, &smc_interrupt, 0, dev->name, dev);
+ retval = request_irq(dev->irq, &smc_interrupt, SA_SAMPLE_NET_RANDOM, dev->name, dev);
               if (retval) {
                 printk("%s: unable to get IRQ %d (irqval=%d).\n", dev->name,
                         dev->irq, retval);
diff -urN linux-2.4.9-pre4/drivers/net/tulip/tulip_core.c linux/drivers/net/tulip/tulip_core.c
--- linux-2.4.9-pre4/drivers/net/tulip/tulip_core.c Wed Aug 15 23:09:40 2001
+++ linux/drivers/net/tulip/tulip_core.c Wed Aug 15 23:20:25 2001
@@ -504,7 +504,9 @@
         int retval;
         MOD_INC_USE_COUNT;
 
- if ((retval = request_irq(dev->irq, &tulip_interrupt, SA_SHIRQ, dev->name, dev))) {
+ if ((retval = request_irq(dev->irq, &tulip_interrupt,
+ SA_SHIRQ | SA_SAMPLE_NET_RANDOM,
+ dev->name, dev))) {
                 MOD_DEC_USE_COUNT;
                 return retval;
         }
diff -urN linux-2.4.9-pre4/drivers/net/wavelan.c linux/drivers/net/wavelan.c
--- linux-2.4.9-pre4/drivers/net/wavelan.c Wed Aug 15 23:09:39 2001
+++ linux/drivers/net/wavelan.c Wed Aug 15 23:20:25 2001
@@ -3897,7 +3897,8 @@
                 return -ENXIO;
         }
 
- if (request_irq(dev->irq, &wavelan_interrupt, 0, "WaveLAN", dev) != 0)
+ if (request_irq(dev->irq, &wavelan_interrupt, SA_SAMPLE_NET_RANDOM,
+ "WaveLAN", dev) != 0)
         {
 #ifdef DEBUG_CONFIG_ERROR
                 printk(KERN_WARNING "%s: wavelan_open(): invalid IRQ\n",

 

-- 
Robert M. Love
rml at ufl.edu
rml at tech9.net

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 23 2001 - 21:00:30 EST