Merge branch 'r8169-improve-rtl_rx-and-NUM_RX_DESC-handling'
Heiner Kallweit says: ==================== r8169: improve rtl_rx and NUM_RX_DESC handling This series improves rtl_rx() and the handling of NUM_RX_DESC. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
4054eebf0f
@ -68,7 +68,7 @@
|
||||
#define R8169_REGS_SIZE 256
|
||||
#define R8169_RX_BUF_SIZE (SZ_16K - 1)
|
||||
#define NUM_TX_DESC 256 /* Number of Tx descriptor registers */
|
||||
#define NUM_RX_DESC 256U /* Number of Rx descriptor registers */
|
||||
#define NUM_RX_DESC 256 /* Number of Rx descriptor registers */
|
||||
#define R8169_TX_RING_BYTES (NUM_TX_DESC * sizeof(struct TxDesc))
|
||||
#define R8169_RX_RING_BYTES (NUM_RX_DESC * sizeof(struct RxDesc))
|
||||
|
||||
@ -3844,7 +3844,7 @@ static struct page *rtl8169_alloc_rx_data(struct rtl8169_private *tp,
|
||||
|
||||
static void rtl8169_rx_clear(struct rtl8169_private *tp)
|
||||
{
|
||||
unsigned int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_RX_DESC && tp->Rx_databuff[i]; i++) {
|
||||
dma_unmap_page(tp_to_dev(tp),
|
||||
@ -3859,7 +3859,7 @@ static void rtl8169_rx_clear(struct rtl8169_private *tp)
|
||||
|
||||
static int rtl8169_rx_fill(struct rtl8169_private *tp)
|
||||
{
|
||||
unsigned int i;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_RX_DESC; i++) {
|
||||
struct page *data;
|
||||
@ -4415,15 +4415,13 @@ static inline void rtl8169_rx_csum(struct sk_buff *skb, u32 opts1)
|
||||
skb_checksum_none_assert(skb);
|
||||
}
|
||||
|
||||
static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget)
|
||||
static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, int budget)
|
||||
{
|
||||
unsigned int cur_rx, rx_left, count;
|
||||
struct device *d = tp_to_dev(tp);
|
||||
int count;
|
||||
|
||||
cur_rx = tp->cur_rx;
|
||||
|
||||
for (rx_left = min(budget, NUM_RX_DESC); rx_left > 0; rx_left--, cur_rx++) {
|
||||
unsigned int pkt_size, entry = cur_rx % NUM_RX_DESC;
|
||||
for (count = 0; count < budget; count++, tp->cur_rx++) {
|
||||
unsigned int pkt_size, entry = tp->cur_rx % NUM_RX_DESC;
|
||||
struct RxDesc *desc = tp->RxDescArray + entry;
|
||||
struct sk_buff *skb;
|
||||
const void *rx_buf;
|
||||
@ -4500,9 +4498,6 @@ release_descriptor:
|
||||
rtl8169_mark_to_asic(desc);
|
||||
}
|
||||
|
||||
count = cur_rx - tp->cur_rx;
|
||||
tp->cur_rx = cur_rx;
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
@ -4561,7 +4556,7 @@ static int rtl8169_poll(struct napi_struct *napi, int budget)
|
||||
struct net_device *dev = tp->dev;
|
||||
int work_done;
|
||||
|
||||
work_done = rtl_rx(dev, tp, (u32) budget);
|
||||
work_done = rtl_rx(dev, tp, budget);
|
||||
|
||||
rtl_tx(dev, tp, budget);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user