EPIC 100 Driver Freezes P75 (fwd)

Robert Fish ssrrfish@rdg.ac.uk
Thu Sep 24 12:07:01 1998


Folks,

   A quick question. When using epic100.c v0.10 on a P75, kernel version
2.1.119 the reciever of data generated by the attahed module looses
packets (RxOverflow). When using epic100.c >= v1.03 the whole machine
freezes !!!

   Using the same kernel on a P300, v0.10 works just fine; no loss, no
freezing ?

   The Ethernet packet type sent by the test module should cause NO
protocol processing in the host, so why does the card RxOverflow? Is the
machine too slow or could there be a conflict between the older PCI
chipset of the PC and the new one of the Etherpower card ? The P75 uses
the Intel Endevour Motherboard and the PII300 uses a new BX based
Motherboard ???

Even if an overflow occurs why should the whole machine hang ?

Many thanks in advance,
Rob.

------------------
Module for blatting packets out real fast ...

#define __KERNEL__

/* 
 * includes 
 */
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/mm.h>
#include <linux/netdevice.h>

/*
 * prototypes
 */
int printk(const char *, ...);

/*
 * good Ether header
*/
unsigned char tonic_to_vodka[] = {0x00,0xe0,0x29,0x0a,0x4c,0xf3,0x00,0x12,0x34,0x56,0x78,0x9a,0xb7,0x77};

unsigned int go(unsigned long iterations) 
{
  unsigned int count;
  struct sk_buff *skb;
  struct device  *dev;
   
   dev = dev_get("eth0");

   printk("transfer: dev->name %s, dev->mtu %d\n", dev->name, dev->mtu);

   for(count=0;count<iterations;count++) {
      /*
       * allocate an skb
       */
      skb=alloc_skb(64, GFP_ATOMIC);

      if(!skb) {
	 printk("null: error : couldn't allocate buffer\n");
	 return -1;
      }

      skb->dev = dev;

      /*
       * write MAC address
       */
      memcpy(skb_put(skb,14), tonic_to_vodka, 14);


      /*
       * send it without cloning
       */
      dev_queue_xmit(skb);
   }
   return 0;
}

int init_module(void) 
{
   /*
    * register function
    */
   go(500000);
   return 0;
}

void cleanup_module(void) 
{
   if (MOD_IN_USE)
      printk("top: busy, remove delayed\n");
}



 | To unsubscribe, send mail to Majordomo@cesdis.gsfc.nasa.gov, and within the
 |  body of the mail, include only the text:
 |   unsubscribe this-list-name youraddress@wherever.org
 | You will be unsubscribed as speedily as possible.