diff mbox

qlge: reset the chip before freeing the buffers

Message ID 1282847278-23416-1-git-send-email-leitao@linux.vnet.ibm.com
State Accepted, archived
Delegated to: David Miller
Headers show

Commit Message

Breno Leitao Aug. 26, 2010, 6:27 p.m. UTC
Qlge is freeing the buffers before stopping the card DMA, and
this can cause some severe error, as a EEH event on PPC.

This patch just stop the card and then free the resources.

Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
---
 drivers/net/qlge/qlge_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Ron Mercer Aug. 26, 2010, 8:19 p.m. UTC | #1
Breno,
looks good.
Thanks

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>




On Thu, Aug 26, 2010 at 11:27:58AM -0700, leitao@linux.vnet.ibm.com wrote:
> Qlge is freeing the buffers before stopping the card DMA, and
> this can cause some severe error, as a EEH event on PPC.
> 
> This patch just stop the card and then free the resources.
> 
> Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller Aug. 26, 2010, 9:10 p.m. UTC | #2
From: Ron Mercer <ron.mercer@qlogic.com>
Date: Thu, 26 Aug 2010 13:19:06 -0700

> Breno,
> looks good.
> Thanks

Please do not top-post.

> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
...
> On Thu, Aug 26, 2010 at 11:27:58AM -0700, leitao@linux.vnet.ibm.com wrote:
>> Qlge is freeing the buffers before stopping the card DMA, and
>> this can cause some severe error, as a EEH event on PPC.
>> 
>> This patch just stop the card and then free the resources.
>> 
>> Signed-off-by: Breno Leitao <leitao@linux.vnet.ibm.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 5a24521..2e0ca39 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -3926,12 +3926,12 @@  static int ql_adapter_down(struct ql_adapter *qdev)
 	for (i = 0; i < qdev->rss_ring_count; i++)
 		netif_napi_del(&qdev->rx_ring[i].napi);
 
-	ql_free_rx_buffers(qdev);
-
 	status = ql_adapter_reset(qdev);
 	if (status)
 		netif_err(qdev, ifdown, qdev->ndev, "reset(func #%d) FAILED!\n",
 			  qdev->func);
+	ql_free_rx_buffers(qdev);
+
 	return status;
 }