diff options
author | David S. Miller <davem@davemloft.net> | 2012-04-15 13:19:04 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-04-15 13:19:04 -0400 |
commit | 56845d78cee8576a8160cee8aeac62efdb561ae2 (patch) | |
tree | f891afed5324d359da1713a80a7131968373acc4 /drivers/net/ethernet/atheros/atlx | |
parent | df8ef8f3aaa6692970a436204c4429210addb23a (diff) | |
parent | 8a9a0ea6032186e3030419262678d652b88bf6a8 (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.c | 12 | ||||
-rw-r--r-- | drivers/net/ethernet/atheros/atlx/atl1.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/atheros/atlx/atlx.c | 2 |
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 | ||
2684 | static void atl1_tx_timeout_task(struct work_struct *work) | 2684 | static 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 | /* |