target/realtek: use netif_receive_skb_list
Small performance improvement on rx. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
		 Rosen Penev
					Rosen Penev
				
			
				
					committed by
					
						 Sander Vanheule
						Sander Vanheule
					
				
			
			
				
	
			
			
			 Sander Vanheule
						Sander Vanheule
					
				
			
						parent
						
							e131a66e30
						
					
				
				
					commit
					3b93651072
				
			| @@ -1252,6 +1252,7 @@ static int rtl838x_hw_receive(struct net_device *dev, int r, int budget) | |||||||
| 	struct rtl838x_eth_priv *priv = netdev_priv(dev); | 	struct rtl838x_eth_priv *priv = netdev_priv(dev); | ||||||
| 	struct ring_b *ring = priv->membase; | 	struct ring_b *ring = priv->membase; | ||||||
| 	struct sk_buff *skb; | 	struct sk_buff *skb; | ||||||
|  | 	LIST_HEAD(rx_list); | ||||||
| 	unsigned long flags; | 	unsigned long flags; | ||||||
| 	int i, len, work_done = 0; | 	int i, len, work_done = 0; | ||||||
| 	u8 *data, *skb_data; | 	u8 *data, *skb_data; | ||||||
| @@ -1329,7 +1330,7 @@ static int rtl838x_hw_receive(struct net_device *dev, int r, int budget) | |||||||
| 			dev->stats.rx_packets++; | 			dev->stats.rx_packets++; | ||||||
| 			dev->stats.rx_bytes += len; | 			dev->stats.rx_bytes += len; | ||||||
|  |  | ||||||
| 			netif_receive_skb(skb); | 			list_add_tail(&skb->list, &rx_list); | ||||||
| 		} else { | 		} else { | ||||||
| 			if (net_ratelimit()) | 			if (net_ratelimit()) | ||||||
| 				dev_warn(&dev->dev, "low on memory - packet dropped\n"); | 				dev_warn(&dev->dev, "low on memory - packet dropped\n"); | ||||||
| @@ -1347,6 +1348,8 @@ static int rtl838x_hw_receive(struct net_device *dev, int r, int budget) | |||||||
| 		last = (u32 *)KSEG1ADDR(sw_r32(priv->r->dma_if_rx_cur + r * 4)); | 		last = (u32 *)KSEG1ADDR(sw_r32(priv->r->dma_if_rx_cur + r * 4)); | ||||||
| 	} while (&ring->rx_r[r][ring->c_rx[r]] != last && work_done < budget); | 	} while (&ring->rx_r[r][ring->c_rx[r]] != last && work_done < budget); | ||||||
|  |  | ||||||
|  | 	netif_receive_skb_list(&rx_list); | ||||||
|  |  | ||||||
| 	// Update counters | 	// Update counters | ||||||
| 	priv->r->update_cntr(r, 0); | 	priv->r->update_cntr(r, 0); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user