From 8f26cf37be485fe20190aad1c1c53cbc759f70ba Mon Sep 17 00:00:00 2001 From: Stephen Hemminger Date: Wed, 28 Nov 2007 14:50:16 -0800 Subject: [PATCH] --- yaml --- r: 78969 b: refs/heads/master c: 5f06eba4dce361bfc077868d044768476b41d698 h: refs/heads/master i: 78967: 7cd2df6402dd861ac4f2664561bbfa6019dd6ecf v: v3 --- [refs] | 2 +- trunk/drivers/net/sky2.c | 28 +++++++++------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/[refs] b/[refs] index 7c361e692da8..ab32b18685a8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f03b865491c2f30f2a4d77cdafc69c978ceb38a0 +refs/heads/master: 5f06eba4dce361bfc077868d044768476b41d698 diff --git a/trunk/drivers/net/sky2.c b/trunk/drivers/net/sky2.c index 30e567a2d5a1..c177e87182f4 100644 --- a/trunk/drivers/net/sky2.c +++ b/trunk/drivers/net/sky2.c @@ -1234,7 +1234,7 @@ static int sky2_rx_start(struct sky2_port *sky2) struct sky2_hw *hw = sky2->hw; struct rx_ring_info *re; unsigned rxq = rxqaddr[sky2->port]; - unsigned i, size, space, thresh; + unsigned i, size, thresh; sky2->rx_put = sky2->rx_next = 0; sky2_qset(hw, rxq); @@ -1261,28 +1261,18 @@ static int sky2_rx_start(struct sky2_port *sky2) /* Stopping point for hardware truncation */ thresh = (size - 8) / sizeof(u32); - /* Account for overhead of skb - to avoid order > 0 allocation */ - space = SKB_DATA_ALIGN(size) + NET_SKB_PAD - + sizeof(struct skb_shared_info); - - sky2->rx_nfrags = space >> PAGE_SHIFT; + sky2->rx_nfrags = size >> PAGE_SHIFT; BUG_ON(sky2->rx_nfrags > ARRAY_SIZE(re->frag_addr)); - if (sky2->rx_nfrags != 0) { - /* Compute residue after pages */ - space = sky2->rx_nfrags << PAGE_SHIFT; + /* Compute residue after pages */ + size -= sky2->rx_nfrags << PAGE_SHIFT; - if (space < size) - size -= space; - else - size = 0; + /* Optimize to handle small packets and headers */ + if (size < copybreak) + size = copybreak; + if (size < ETH_HLEN) + size = ETH_HLEN; - /* Optimize to handle small packets and headers */ - if (size < copybreak) - size = copybreak; - if (size < ETH_HLEN) - size = ETH_HLEN; - } sky2->rx_data_size = size; /* Fill Rx ring */