aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/atheros/atlx
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-04-15 13:19:04 -0400
committerDavid S. Miller <davem@davemloft.net>2012-04-15 13:19:04 -0400
commit56845d78cee8576a8160cee8aeac62efdb561ae2 (patch)
treef891afed5324d359da1713a80a7131968373acc4 /drivers/net/ethernet/atheros/atlx
parentdf8ef8f3aaa6692970a436204c4429210addb23a (diff)
parent8a9a0ea6032186e3030419262678d652b88bf6a8 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts: drivers/net/ethernet/atheros/atlx/atl1.c drivers/net/ethernet/atheros/atlx/atl1.h Resolved a conflict between a DMA error bug fix and NAPI support changes in the atl1 driver. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/atheros/atlx')
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl1.c12
-rw-r--r--drivers/net/ethernet/atheros/atlx/atl1.h2
-rw-r--r--drivers/net/ethernet/atheros/atlx/atlx.c2
3 files changed, 7 insertions, 9 deletions
diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c
index 7f1e498c3c06..5d10884e5080 100644
--- a/drivers/net/ethernet/atheros/atlx/atl1.c
+++ b/drivers/net/ethernet/atheros/atlx/atl1.c
@@ -2528,7 +2528,7 @@ static irqreturn_t atl1_intr(int irq, void *data)
2528 "pcie phy link down %x\n", status); 2528 "pcie phy link down %x\n", status);
2529 if (netif_running(adapter->netdev)) { /* reset MAC */ 2529 if (netif_running(adapter->netdev)) { /* reset MAC */
2530 atlx_irq_disable(adapter); 2530 atlx_irq_disable(adapter);
2531 schedule_work(&adapter->pcie_dma_to_rst_task); 2531 schedule_work(&adapter->reset_dev_task);
2532 return IRQ_HANDLED; 2532 return IRQ_HANDLED;
2533 } 2533 }
2534 } 2534 }
@@ -2540,7 +2540,7 @@ static irqreturn_t atl1_intr(int irq, void *data)
2540 "pcie DMA r/w error (status = 0x%x)\n", 2540 "pcie DMA r/w error (status = 0x%x)\n",
2541 status); 2541 status);
2542 atlx_irq_disable(adapter); 2542 atlx_irq_disable(adapter);
2543 schedule_work(&adapter->pcie_dma_to_rst_task); 2543 schedule_work(&adapter->reset_dev_task);
2544 return IRQ_HANDLED; 2544 return IRQ_HANDLED;
2545 } 2545 }
2546 2546
@@ -2681,10 +2681,10 @@ static void atl1_down(struct atl1_adapter *adapter)
2681 atl1_clean_rx_ring(adapter); 2681 atl1_clean_rx_ring(adapter);
2682} 2682}
2683 2683
2684static void atl1_tx_timeout_task(struct work_struct *work) 2684static void atl1_reset_dev_task(struct work_struct *work)
2685{ 2685{
2686 struct atl1_adapter *adapter = 2686 struct atl1_adapter *adapter =
2687 container_of(work, struct atl1_adapter, tx_timeout_task); 2687 container_of(work, struct atl1_adapter, reset_dev_task);
2688 struct net_device *netdev = adapter->netdev; 2688 struct net_device *netdev = adapter->netdev;
2689 2689
2690 netif_device_detach(netdev); 2690 netif_device_detach(netdev);
@@ -3087,12 +3087,10 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
3087 (unsigned long)adapter); 3087 (unsigned long)adapter);
3088 adapter->phy_timer_pending = false; 3088 adapter->phy_timer_pending = false;
3089 3089
3090 INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task); 3090 INIT_WORK(&adapter->reset_dev_task, atl1_reset_dev_task);
3091 3091
3092 INIT_WORK(&adapter->link_chg_task, atlx_link_chg_task); 3092 INIT_WORK(&adapter->link_chg_task, atlx_link_chg_task);
3093 3093
3094 INIT_WORK(&adapter->pcie_dma_to_rst_task, atl1_tx_timeout_task);
3095
3096 err = register_netdev(netdev); 3094 err = register_netdev(netdev);
3097 if (err) 3095 if (err)
3098 goto err_common; 3096 goto err_common;
diff --git a/drivers/net/ethernet/atheros/atlx/atl1.h b/drivers/net/ethernet/atheros/atlx/atl1.h
index 1cb658b2ff92..b1fb209b9dd9 100644
--- a/drivers/net/ethernet/atheros/atlx/atl1.h
+++ b/drivers/net/ethernet/atheros/atlx/atl1.h
@@ -764,8 +764,8 @@ struct atl1_adapter {
764 spinlock_t lock; 764 spinlock_t lock;
765 struct napi_struct napi; 765 struct napi_struct napi;
766 struct work_struct tx_timeout_task; 766 struct work_struct tx_timeout_task;
767 struct work_struct reset_dev_task;
767 struct work_struct link_chg_task; 768 struct work_struct link_chg_task;
768 struct work_struct pcie_dma_to_rst_task;
769 769
770 struct timer_list phy_config_timer; 770 struct timer_list phy_config_timer;
771 bool phy_timer_pending; 771 bool phy_timer_pending;
diff --git a/drivers/net/ethernet/atheros/atlx/atlx.c b/drivers/net/ethernet/atheros/atlx/atlx.c
index 95975b5b7f70..b4f3aa49a7fc 100644
--- a/drivers/net/ethernet/atheros/atlx/atlx.c
+++ b/drivers/net/ethernet/atheros/atlx/atlx.c
@@ -201,7 +201,7 @@ static void atlx_tx_timeout(struct net_device *netdev)
201{ 201{
202 struct atlx_adapter *adapter = netdev_priv(netdev); 202 struct atlx_adapter *adapter = netdev_priv(netdev);
203 /* Do the reset outside of interrupt context */ 203 /* Do the reset outside of interrupt context */
204 schedule_work(&adapter->tx_timeout_task); 204 schedule_work(&adapter->reset_dev_task);
205} 205}
206 206
207/* 207/*