X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=blobdiff_plain;f=drivers%2Fnet%2Fwd.c;h=a0326818ff2f815853f29871bb3b735750995e6a;hp=b1ba1872f315b029a62dc7b15f73d0029df95f4f;hb=5b0bf5e25efe;hpb=23e735bc7b0e1d614656881794257b4224efda3a diff --git a/drivers/net/wd.c b/drivers/net/wd.c index b1ba1872f315..a0326818ff2f 100644 --- a/drivers/net/wd.c +++ b/drivers/net/wd.c @@ -61,7 +61,7 @@ static void wd_block_output(struct net_device *dev, int count, const unsigned char *buf, int start_page); static int wd_close(struct net_device *dev); - + #define WD_START_PG 0x00 /* First page of TX buffer */ #define WD03_STOP_PG 0x20 /* Last page +1 of RX ring */ #define WD13_STOP_PG 0x40 /* Last page +1 of RX ring */ @@ -75,7 +75,7 @@ static int wd_close(struct net_device *dev); #define WD_NIC_OFFSET 16 /* Offset to the 8390 from the base_addr. */ #define WD_IO_EXTENT 32 - + /* Probe for the WD8003 and WD8013. These cards have the station address PROM at I/O ports +8 to +13, with a checksum following. A Soundblaster can have the same checksum as an WDethercard, @@ -100,7 +100,7 @@ static int __init do_wd_probe(struct net_device *dev) if ( r == NULL) return -EBUSY; i = wd_probe1(dev, base_addr); - if (i != 0) + if (i != 0) release_region(base_addr, WD_IO_EXTENT); else r->name = dev->name; @@ -272,7 +272,7 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr) a reliable way to trigger an interrupt. */ outb_p(E8390_NODMA + E8390_STOP, nic_addr); outb(0x00, nic_addr+EN0_IMR); /* Disable all intrs. */ - + irq_mask = probe_irq_on(); outb_p(0xff, nic_addr + EN0_IMR); /* Enable all interrupts. */ outb_p(0x00, nic_addr + EN0_RCNTLO); @@ -280,7 +280,7 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr) outb(E8390_RREAD+E8390_START, nic_addr); /* Trigger it... */ mdelay(20); dev->irq = probe_irq_off(irq_mask); - + outb_p(0x00, nic_addr+EN0_IMR); /* Mask all intrs. again. */ if (ei_debug > 2) @@ -433,7 +433,7 @@ wd_block_input(struct net_device *dev, int count, struct sk_buff *skb, int ring_ memcpy_fromio(skb->data + semi_count, ei_status.mem + TX_PAGES * 256, count); } else { /* Packet is in one chunk -- we can copy + cksum. */ - eth_io_copy_and_sum(skb, xfer_start, count, 0); + memcpy_fromio(skb->data, xfer_start, count); } /* Turn off 16 bit access so that reboot works. ISA brain-damage */ @@ -478,7 +478,7 @@ wd_close(struct net_device *dev) return 0; } - + #ifdef MODULE #define MAX_WD_CARDS 4 /* Max number of wd cards per module */ static struct net_device *dev_wd[MAX_WD_CARDS]; @@ -538,7 +538,7 @@ static void cleanup_card(struct net_device *dev) iounmap(ei_status.mem); } -void +void __exit cleanup_module(void) { int this_dev;