|
@@ -930,10 +930,6 @@ struct mvpp2_bm_pool {
|
|
|
|
|
|
/* Ports using BM pool */
|
|
|
u32 port_map;
|
|
|
-
|
|
|
- /* Occupied buffers indicator */
|
|
|
- atomic_t in_use;
|
|
|
- int in_use_thresh;
|
|
|
};
|
|
|
|
|
|
struct mvpp2_buff_hdr {
|
|
@@ -3399,7 +3395,6 @@ static int mvpp2_bm_pool_create(struct platform_device *pdev,
|
|
|
bm_pool->size = size;
|
|
|
bm_pool->pkt_size = 0;
|
|
|
bm_pool->buf_num = 0;
|
|
|
- atomic_set(&bm_pool->in_use, 0);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -3656,7 +3651,6 @@ static int mvpp2_bm_bufs_add(struct mvpp2_port *port,
|
|
|
|
|
|
/* Update BM driver with number of buffers added to pool */
|
|
|
bm_pool->buf_num += i;
|
|
|
- bm_pool->in_use_thresh = bm_pool->buf_num / 4;
|
|
|
|
|
|
netdev_dbg(port->dev,
|
|
|
"%s pool %d: pkt_size=%4d, buf_size=%4d, total_size=%4d\n",
|
|
@@ -5014,23 +5008,18 @@ static void mvpp2_rx_csum(struct mvpp2_port *port, u32 status,
|
|
|
|
|
|
/* Reuse skb if possible, or allocate a new skb and add it to BM pool */
|
|
|
static int mvpp2_rx_refill(struct mvpp2_port *port,
|
|
|
- struct mvpp2_bm_pool *bm_pool,
|
|
|
- u32 bm, int is_recycle)
|
|
|
+ struct mvpp2_bm_pool *bm_pool, u32 bm)
|
|
|
{
|
|
|
struct sk_buff *skb;
|
|
|
dma_addr_t phys_addr;
|
|
|
|
|
|
- if (is_recycle &&
|
|
|
- (atomic_read(&bm_pool->in_use) < bm_pool->in_use_thresh))
|
|
|
- return 0;
|
|
|
-
|
|
|
/* No recycle or too many buffers are in use, so allocate a new skb */
|
|
|
skb = mvpp2_skb_alloc(port, bm_pool, &phys_addr, GFP_ATOMIC);
|
|
|
if (!skb)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
mvpp2_pool_refill(port, bm, (u32)phys_addr, (u32)skb);
|
|
|
- atomic_dec(&bm_pool->in_use);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -5156,7 +5145,7 @@ static int mvpp2_rx(struct mvpp2_port *port, int rx_todo,
|
|
|
|
|
|
skb = (struct sk_buff *)rx_desc->buf_cookie;
|
|
|
|
|
|
- err = mvpp2_rx_refill(port, bm_pool, bm, 0);
|
|
|
+ err = mvpp2_rx_refill(port, bm_pool, bm);
|
|
|
if (err) {
|
|
|
netdev_err(port->dev, "failed to refill BM pools\n");
|
|
|
goto err_drop_frame;
|
|
@@ -5167,7 +5156,6 @@ static int mvpp2_rx(struct mvpp2_port *port, int rx_todo,
|
|
|
|
|
|
rcvd_pkts++;
|
|
|
rcvd_bytes += rx_bytes;
|
|
|
- atomic_inc(&bm_pool->in_use);
|
|
|
|
|
|
skb_reserve(skb, MVPP2_MH_SIZE);
|
|
|
skb_put(skb, rx_bytes);
|