addr = (void *)dev->base_addr; 
addr = etherh_priv(dev)->base; 
etherh_block_input (struct net_device *dev, int count, struct sk_buff *skb, int ring_offset){	struct ei_device *ei_local = netdev_priv(dev);	unsigned char *buf;	void __iomem *dma_base, *addr;	if (ei_local->dmaing) {		printk(KERN_ERR "%s: DMAing conflict in etherh_block_input: "			" DMAstat %d irqlock %d\n", dev->name,			ei_local->dmaing, ei_local->irqlock);		return;	}	ei_local->dmaing = 1;	addr = (void *)dev->base_addr;	dma_base = etherh_priv(dev)->dma_base;	buf = skb->data;	writeb (E8390_NODMA | E8390_PAGE0 | E8390_START, addr + E8390_CMD);	writeb (count, addr + EN0_RCNTLO);	writeb (count >> 8, addr + EN0_RCNTHI);	writeb (ring_offset, addr + EN0_RSARLO);	writeb (ring_offset >> 8, addr + EN0_RSARHI);	writeb (E8390_RREAD | E8390_START, addr + E8390_CMD);	if (ei_local->word16) {		readsw (dma_base, buf, count >> 1);		if (count & 1)			buf[count - 1] = readb (dma_base);	} else		readsb (dma_base, buf, count);	writeb (ENISR_RDC, addr + EN0_ISR);	ei_local->dmaing = 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/507ef165e8bc078e877db293a5e3048e692491fb/etherh.c/buggy/drivers/net/arm/etherh.c