[PATCH] pcnet_cs cleanup
killed abuse of ->rmem_end Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk>
This commit is contained in:
parent
507ef165e8
commit
99417769ba
|
@ -1537,20 +1537,20 @@ static void shmem_get_8390_hdr(struct net_device *dev,
|
||||||
static void shmem_block_input(struct net_device *dev, int count,
|
static void shmem_block_input(struct net_device *dev, int count,
|
||||||
struct sk_buff *skb, int ring_offset)
|
struct sk_buff *skb, int ring_offset)
|
||||||
{
|
{
|
||||||
void __iomem *xfer_start = ei_status.mem + (TX_PAGES<<8)
|
void __iomem *base = ei_status.mem;
|
||||||
+ ring_offset
|
unsigned long offset = (TX_PAGES<<8) + ring_offset
|
||||||
- (ei_status.rx_start_page << 8);
|
- (ei_status.rx_start_page << 8);
|
||||||
char *buf = skb->data;
|
char *buf = skb->data;
|
||||||
|
|
||||||
if (xfer_start + count > (void __iomem *)ei_status.rmem_end) {
|
if (offset + count > ei_status.priv) {
|
||||||
/* We must wrap the input move. */
|
/* We must wrap the input move. */
|
||||||
int semi_count = (void __iomem *)ei_status.rmem_end - xfer_start;
|
int semi_count = ei_status.priv - offset;
|
||||||
copyin(buf, xfer_start, semi_count);
|
copyin(buf, base + offset, semi_count);
|
||||||
buf += semi_count;
|
buf += semi_count;
|
||||||
xfer_start = ei_status.mem + (TX_PAGES<<8);
|
offset = TX_PAGES<<8;
|
||||||
count -= semi_count;
|
count -= semi_count;
|
||||||
}
|
}
|
||||||
copyin(buf, xfer_start, count);
|
copyin(buf, base + offset, count);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*====================================================================*/
|
/*====================================================================*/
|
||||||
|
@ -1611,8 +1611,9 @@ static int setup_shmem_window(dev_link_t *link, int start_pg,
|
||||||
}
|
}
|
||||||
|
|
||||||
ei_status.mem = info->base + offset;
|
ei_status.mem = info->base + offset;
|
||||||
|
ei_status.priv = req.Size;
|
||||||
dev->mem_start = (u_long)ei_status.mem;
|
dev->mem_start = (u_long)ei_status.mem;
|
||||||
dev->mem_end = ei_status.rmem_end = (u_long)info->base + req.Size;
|
dev->mem_end = dev->mem_start + req.Size;
|
||||||
|
|
||||||
ei_status.tx_start_page = start_pg;
|
ei_status.tx_start_page = start_pg;
|
||||||
ei_status.rx_start_page = start_pg + TX_PAGES;
|
ei_status.rx_start_page = start_pg + TX_PAGES;
|
||||||
|
|
Loading…
Reference in a new issue