Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99417769 authored by Al Viro's avatar Al Viro Committed by Jeff Garzik
Browse files

[PATCH] pcnet_cs cleanup



	killed abuse of ->rmem_end

Signed-off-by: default avatarAl Viro <viro@parcelfarce.linux.theplanet.co.uk>
parent 507ef165
Loading
Loading
Loading
Loading
+9 −8
Original line number Original line Diff line number Diff line
@@ -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;