Loading drivers/net/pcmcia/pcnet_cs.c +9 −8 Original line number Diff line number Diff line Loading @@ -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, struct sk_buff *skb, int ring_offset) { void __iomem *xfer_start = ei_status.mem + (TX_PAGES<<8) + ring_offset void __iomem *base = ei_status.mem; unsigned long offset = (TX_PAGES<<8) + ring_offset - (ei_status.rx_start_page << 8); 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. */ int semi_count = (void __iomem *)ei_status.rmem_end - xfer_start; copyin(buf, xfer_start, semi_count); int semi_count = ei_status.priv - offset; copyin(buf, base + offset, semi_count); buf += semi_count; xfer_start = ei_status.mem + (TX_PAGES<<8); offset = TX_PAGES<<8; count -= semi_count; } copyin(buf, xfer_start, count); copyin(buf, base + offset, count); } /*====================================================================*/ Loading Loading @@ -1611,8 +1611,9 @@ static int setup_shmem_window(dev_link_t *link, int start_pg, } ei_status.mem = info->base + offset; ei_status.priv = req.Size; 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.rx_start_page = start_pg + TX_PAGES; Loading Loading
drivers/net/pcmcia/pcnet_cs.c +9 −8 Original line number Diff line number Diff line Loading @@ -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, struct sk_buff *skb, int ring_offset) { void __iomem *xfer_start = ei_status.mem + (TX_PAGES<<8) + ring_offset void __iomem *base = ei_status.mem; unsigned long offset = (TX_PAGES<<8) + ring_offset - (ei_status.rx_start_page << 8); 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. */ int semi_count = (void __iomem *)ei_status.rmem_end - xfer_start; copyin(buf, xfer_start, semi_count); int semi_count = ei_status.priv - offset; copyin(buf, base + offset, semi_count); buf += semi_count; xfer_start = ei_status.mem + (TX_PAGES<<8); offset = TX_PAGES<<8; count -= semi_count; } copyin(buf, xfer_start, count); copyin(buf, base + offset, count); } /*====================================================================*/ Loading Loading @@ -1611,8 +1611,9 @@ static int setup_shmem_window(dev_link_t *link, int start_pg, } ei_status.mem = info->base + offset; ei_status.priv = req.Size; 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.rx_start_page = start_pg + TX_PAGES; Loading