diff options
author | Al Viro <viro@www.linux.org.uk> | 2005-04-03 04:15:52 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2005-05-15 22:21:07 -0400 |
commit | 99417769bae55d34348320d7a05615e8a891fd3d (patch) | |
tree | d471a20b966dd1321fa642be2f95512ba703096f | |
parent | 507ef165e8bc078e877db293a5e3048e692491fb (diff) |
[PATCH] pcnet_cs cleanup
killed abuse of ->rmem_end
Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
-rw-r--r-- | drivers/net/pcmcia/pcnet_cs.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c index b0126304ca08..181b6ed55003 100644 --- a/drivers/net/pcmcia/pcnet_cs.c +++ b/drivers/net/pcmcia/pcnet_cs.c | |||
@@ -1537,20 +1537,20 @@ static void shmem_get_8390_hdr(struct net_device *dev, | |||
1537 | static void shmem_block_input(struct net_device *dev, int count, | 1537 | static void shmem_block_input(struct net_device *dev, int count, |
1538 | struct sk_buff *skb, int ring_offset) | 1538 | struct sk_buff *skb, int ring_offset) |
1539 | { | 1539 | { |
1540 | void __iomem *xfer_start = ei_status.mem + (TX_PAGES<<8) | 1540 | void __iomem *base = ei_status.mem; |
1541 | + ring_offset | 1541 | unsigned long offset = (TX_PAGES<<8) + ring_offset |
1542 | - (ei_status.rx_start_page << 8); | 1542 | - (ei_status.rx_start_page << 8); |
1543 | char *buf = skb->data; | 1543 | char *buf = skb->data; |
1544 | 1544 | ||
1545 | if (xfer_start + count > (void __iomem *)ei_status.rmem_end) { | 1545 | if (offset + count > ei_status.priv) { |
1546 | /* We must wrap the input move. */ | 1546 | /* We must wrap the input move. */ |
1547 | int semi_count = (void __iomem *)ei_status.rmem_end - xfer_start; | 1547 | int semi_count = ei_status.priv - offset; |
1548 | copyin(buf, xfer_start, semi_count); | 1548 | copyin(buf, base + offset, semi_count); |
1549 | buf += semi_count; | 1549 | buf += semi_count; |
1550 | xfer_start = ei_status.mem + (TX_PAGES<<8); | 1550 | offset = TX_PAGES<<8; |
1551 | count -= semi_count; | 1551 | count -= semi_count; |
1552 | } | 1552 | } |
1553 | copyin(buf, xfer_start, count); | 1553 | copyin(buf, base + offset, count); |
1554 | } | 1554 | } |
1555 | 1555 | ||
1556 | /*====================================================================*/ | 1556 | /*====================================================================*/ |
@@ -1611,8 +1611,9 @@ static int setup_shmem_window(dev_link_t *link, int start_pg, | |||
1611 | } | 1611 | } |
1612 | 1612 | ||
1613 | ei_status.mem = info->base + offset; | 1613 | ei_status.mem = info->base + offset; |
1614 | ei_status.priv = req.Size; | ||
1614 | dev->mem_start = (u_long)ei_status.mem; | 1615 | dev->mem_start = (u_long)ei_status.mem; |
1615 | dev->mem_end = ei_status.rmem_end = (u_long)info->base + req.Size; | 1616 | dev->mem_end = dev->mem_start + req.Size; |
1616 | 1617 | ||
1617 | ei_status.tx_start_page = start_pg; | 1618 | ei_status.tx_start_page = start_pg; |
1618 | ei_status.rx_start_page = start_pg + TX_PAGES; | 1619 | ei_status.rx_start_page = start_pg + TX_PAGES; |