Re: OOPS in read_cd... what to do?

From: Alan Cox (alan@lxorguk.ukuu.org.uk)
Date: Tue Jan 28 2003 - 13:48:31 EST


> 1. load module.
> #modprobe e2100
> e2100.c: Presently autoprobing (not recommended) for a single card.
> e2100.c:v1.01 7/21/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
> 00 00 1D 0A 72 AB, IRQ 15, secandary media, memory @ 0xd0000
> (I can supply io=0x380 to get rid of the warning message, but there will
> be no real difference. I'm not really sure this is the correct value,
> but last time I tried this I did look at the jumpers and used the right
> value, thats when I noticed the oops. A weird thing btw. It didn't
> happen when there also was a ne2000-compatible isa-card used at the same
> time, then it just refused to send any traffic.)
>
> 2. configure and up the interface, then send traffic using the
> interface.
> (ping some.remote.ip ... pinging myself works fine, but I guess it's
> because the driver isn't involved there)

Try this


--- drivers/net/e2100.c~ 2003-01-28 18:38:21.000000000 +0000
+++ drivers/net/e2100.c 2003-01-28 18:38:21.000000000 +0000
@@ -77,7 +77,7 @@
 {
         /* This is a little weird: set the shared memory window by doing a
            read. The low address bits specify the starting page. */
- readb(mem_base+start_page);
+ isa_readb(mem_base+start_page);
         inb(port + E21_MEM_ENABLE);
         outb(E21_MEM_ON, port + E21_MEM_ENABLE + E21_MEM_ON);
 }
@@ -306,9 +306,9 @@
 
 #ifdef notdef
         /* Officially this is what we are doing, but the readl() is faster */
- memcpy_fromio(hdr, shared_mem, sizeof(struct e8390_pkt_hdr));
+ isa_memcpy_fromio(hdr, shared_mem, sizeof(struct e8390_pkt_hdr));
 #else
- ((unsigned int*)hdr)[0] = readl(shared_mem);
+ ((unsigned int*)hdr)[0] = isa_readl(shared_mem);
 #endif
 
         /* Turn off memory access: we would need to reprogram the window anyway. */
@@ -328,7 +328,7 @@
         mem_on(ioaddr, shared_mem, (ring_offset>>8));
 
         /* Packet is always in one chunk -- we can copy + cksum. */
- eth_io_copy_and_sum(skb, dev->mem_start + (ring_offset & 0xff), count, 0);
+ isa_eth_io_copy_and_sum(skb, dev->mem_start + (ring_offset & 0xff), count, 0);
 
         mem_off(ioaddr);
 }
@@ -342,10 +342,10 @@
 
         /* Set the shared memory window start by doing a read, with the low address
            bits specifying the starting page. */
- readb(shared_mem + start_page);
+ isa_readb(shared_mem + start_page);
         mem_on(ioaddr, shared_mem, start_page);
 
- memcpy_toio(shared_mem, buf, count);
+ isa_memcpy_toio(shared_mem, buf, count);
         mem_off(ioaddr);
 }
 

-
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 : Fri Jan 31 2003 - 22:00:20 EST