Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 134637
b: refs/heads/master
c: 4654425
h: refs/heads/master
i:
  134635: 2ce6478
v: v3
  • Loading branch information
Alexander Duyck authored and David S. Miller committed Feb 20, 2009
1 parent 32c7dca commit f91d690
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 48 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3c842138c0cf313e906538b89d88ba0d969ce747
refs/heads/master: 46544258de71d7e32342ee71a25146ec6e2e6e47
77 changes: 30 additions & 47 deletions trunk/drivers/net/igb/igb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,6 @@ static irqreturn_t igb_intr_msi(int irq, void *);
static irqreturn_t igb_msix_other(int irq, void *);
static irqreturn_t igb_msix_rx(int irq, void *);
static irqreturn_t igb_msix_tx(int irq, void *);
static int igb_clean_rx_ring_msix(struct napi_struct *, int);
#ifdef CONFIG_IGB_DCA
static void igb_update_rx_dca(struct igb_ring *);
static void igb_update_tx_dca(struct igb_ring *);
Expand Down Expand Up @@ -3688,50 +3687,35 @@ static irqreturn_t igb_intr(int irq, void *data)
return IRQ_HANDLED;
}

/**
* igb_poll - NAPI Rx polling callback
* @napi: napi polling structure
* @budget: count of how many packets we should handle
**/
static int igb_poll(struct napi_struct *napi, int budget)
static inline void igb_rx_irq_enable(struct igb_ring *rx_ring)
{
struct igb_ring *rx_ring = container_of(napi, struct igb_ring, napi);
struct igb_adapter *adapter = rx_ring->adapter;
struct net_device *netdev = adapter->netdev;
int tx_clean_complete, work_done = 0;

/* this poll routine only supports one tx and one rx queue */
#ifdef CONFIG_IGB_DCA
if (adapter->flags & IGB_FLAG_DCA_ENABLED)
igb_update_tx_dca(&adapter->tx_ring[0]);
#endif
tx_clean_complete = igb_clean_tx_irq(&adapter->tx_ring[0]);

#ifdef CONFIG_IGB_DCA
if (adapter->flags & IGB_FLAG_DCA_ENABLED)
igb_update_rx_dca(&adapter->rx_ring[0]);
#endif
igb_clean_rx_irq_adv(&adapter->rx_ring[0], &work_done, budget);
struct e1000_hw *hw = &adapter->hw;

/* If no Tx and not enough Rx work done, exit the polling mode */
if ((tx_clean_complete && (work_done < budget)) ||
!netif_running(netdev)) {
if (adapter->itr_setting & 3)
if (adapter->itr_setting & 3) {
if (adapter->num_rx_queues == 1)
igb_set_itr(adapter);
napi_complete(napi);
if (!test_bit(__IGB_DOWN, &adapter->state))
igb_irq_enable(adapter);
return 0;
else
igb_update_ring_itr(rx_ring);
}

return 1;
if (!test_bit(__IGB_DOWN, &adapter->state)) {
if (adapter->msix_entries)
wr32(E1000_EIMS, rx_ring->eims_value);
else
igb_irq_enable(adapter);
}
}

static int igb_clean_rx_ring_msix(struct napi_struct *napi, int budget)
/**
* igb_poll - NAPI Rx polling callback
* @napi: napi polling structure
* @budget: count of how many packets we should handle
**/
static int igb_poll(struct napi_struct *napi, int budget)
{
struct igb_ring *rx_ring = container_of(napi, struct igb_ring, napi);
struct igb_adapter *adapter = rx_ring->adapter;
struct e1000_hw *hw = &adapter->hw;
struct net_device *netdev = adapter->netdev;
int work_done = 0;

Expand All @@ -3741,23 +3725,22 @@ static int igb_clean_rx_ring_msix(struct napi_struct *napi, int budget)
#endif
igb_clean_rx_irq_adv(rx_ring, &work_done, budget);

if (rx_ring->buddy) {
#ifdef CONFIG_IGB_DCA
if (adapter->flags & IGB_FLAG_DCA_ENABLED)
igb_update_tx_dca(rx_ring->buddy);
#endif
if (!igb_clean_tx_irq(rx_ring->buddy))
work_done = budget;
}

/* If not enough Rx work done, exit the polling mode */
if ((work_done == 0) || !netif_running(netdev)) {
if ((work_done < budget) || !netif_running(netdev)) {
napi_complete(napi);

if (adapter->itr_setting & 3) {
if (adapter->num_rx_queues == 1)
igb_set_itr(adapter);
else
igb_update_ring_itr(rx_ring);
}
if (!test_bit(__IGB_DOWN, &adapter->state))
wr32(E1000_EIMS, rx_ring->eims_value);

return 0;
igb_rx_irq_enable(rx_ring);
}

return 1;
return work_done;
}

/**
Expand Down

0 comments on commit f91d690

Please sign in to comment.