netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb().
@ 2009-02-11 13:58 Ron Mercer
  2009-02-11 13:58 ` [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang Ron Mercer
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

Replace calls to vlan_hwaccel_rx() and netif_rx().
Thanks to Dave Miller for pointing out the the driver was making
the wrong upcall for passing packets into the stack.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 3d1d7b6..27c5e4d 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1449,12 +1449,12 @@ static void ql_process_mac_rx_intr(struct ql_adapter *qdev,
 	if (qdev->vlgrp && (ib_mac_rsp->flags2 & IB_MAC_IOCB_RSP_V)) {
 		QPRINTK(qdev, RX_STATUS, DEBUG,
 			"Passing a VLAN packet upstream.\n");
-		vlan_hwaccel_rx(skb, qdev->vlgrp,
+		vlan_hwaccel_receive_skb(skb, qdev->vlgrp,
 				le16_to_cpu(ib_mac_rsp->vlan_id));
 	} else {
 		QPRINTK(qdev, RX_STATUS, DEBUG,
 			"Passing a normal packet upstream.\n");
-		netif_rx(skb);
+		netif_receive_skb(skb);
 	}
 }
 
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:38   ` David Miller
  2009-02-11 13:58 ` [PATCH 3/7] qlge: bugfix: Add missing put_page() call Ron Mercer
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer


Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 27c5e4d..69f7d05 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1511,6 +1511,11 @@ void ql_queue_asic_error(struct ql_adapter *qdev)
 	netif_stop_queue(qdev->ndev);
 	netif_carrier_off(qdev->ndev);
 	ql_disable_interrupts(qdev);
+	/* Clear adapter up bit to signal the recovery
+	 * process that it shouldn't kill the reset worker
+	 * thread
+	 */
+	clear_bit(QL_ADAPTER_UP, &qdev->flags);
 	queue_delayed_work(qdev->workqueue, &qdev->asic_reset_work, 0);
 }
 
@@ -3100,7 +3105,11 @@ static int ql_adapter_down(struct ql_adapter *qdev)
 	netif_stop_queue(ndev);
 	netif_carrier_off(ndev);
 
-	cancel_delayed_work_sync(&qdev->asic_reset_work);
+	/* Don't kill the reset worker thread if we
+	 * are in the process of recovery.
+	 */
+	if (test_bit(QL_ADAPTER_UP, &qdev->flags))
+		cancel_delayed_work_sync(&qdev->asic_reset_work);
 	cancel_delayed_work_sync(&qdev->mpi_reset_work);
 	cancel_delayed_work_sync(&qdev->mpi_work);
 
@@ -3501,7 +3510,7 @@ static int qlge_set_mac_address(struct net_device *ndev, void *p)
 static void qlge_tx_timeout(struct net_device *ndev)
 {
 	struct ql_adapter *qdev = (struct ql_adapter *)netdev_priv(ndev);
-	queue_delayed_work(qdev->workqueue, &qdev->asic_reset_work, 0);
+	ql_queue_asic_error(qdev);
 }
 
 static void ql_asic_reset_work(struct work_struct *work)
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 3/7] qlge: bugfix: Add missing put_page() call.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
  2009-02-11 13:58 ` [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:38   ` David Miller
  2009-02-11 13:58 ` [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call Ron Mercer
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

We put the page back if we can't get mapping for it.  We don't
want unmapped buffers on our receive buffer queue.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 69f7d05..5b75fc9 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -907,6 +907,8 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 						   0, PAGE_SIZE,
 						   PCI_DMA_FROMDEVICE);
 				if (pci_dma_mapping_error(qdev->pdev, map)) {
+					put_page(lbq_desc->p.lbq_page);
+					lbq_desc->p.lbq_page = NULL;
 					QPRINTK(qdev, RX_STATUS, ERR,
 						"PCI mapping failed.\n");
 					return;
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
  2009-02-11 13:58 ` [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang Ron Mercer
  2009-02-11 13:58 ` [PATCH 3/7] qlge: bugfix: Add missing put_page() call Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:39   ` David Miller
  2009-02-11 13:58 ` [PATCH 5/7] qlge: bugfix: Fix TSO breakage Ron Mercer
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

We put the skb back if we can't get mapping for it.  We don't
want unmapped buffers on our receive buffer queue.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 5b75fc9..fc7d210 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -970,6 +970,8 @@ static void ql_update_sbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 				if (pci_dma_mapping_error(qdev->pdev, map)) {
 					QPRINTK(qdev, IFUP, ERR, "PCI mapping failed.\n");
 					rx_ring->sbq_clean_idx = clean_idx;
+					dev_kfree_skb_any(sbq_desc->p.skb);
+					sbq_desc->p.skb = NULL;
 					return;
 				}
 				pci_unmap_addr_set(sbq_desc, mapaddr, map);
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 5/7] qlge: bugfix: Fix TSO breakage.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
                   ` (2 preceding siblings ...)
  2009-02-11 13:58 ` [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:39   ` David Miller
  2009-02-11 13:58 ` [PATCH 6/7] qlge: bugfix: Fix RX scaling values Ron Mercer
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

Moved the buffer mapping to a point after TSO logic has modified the
iph->check field. We were seeing stale data on the PCIe bus.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index fc7d210..54b0a9e 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -1936,10 +1936,6 @@ static int qlge_send(struct sk_buff *skb, struct net_device *ndev)
 	tx_ring_desc = &tx_ring->q[tx_ring->prod_idx];
 	mac_iocb_ptr = tx_ring_desc->queue_entry;
 	memset((void *)mac_iocb_ptr, 0, sizeof(mac_iocb_ptr));
-	if (ql_map_send(qdev, mac_iocb_ptr, skb, tx_ring_desc) != NETDEV_TX_OK) {
-		QPRINTK(qdev, TX_QUEUED, ERR, "Could not map the segments.\n");
-		return NETDEV_TX_BUSY;
-	}
 
 	mac_iocb_ptr->opcode = OPCODE_OB_MAC_IOCB;
 	mac_iocb_ptr->tid = tx_ring_desc->index;
@@ -1965,6 +1961,12 @@ static int qlge_send(struct sk_buff *skb, struct net_device *ndev)
 		ql_hw_csum_setup(skb,
 				 (struct ob_mac_tso_iocb_req *)mac_iocb_ptr);
 	}
+	if (ql_map_send(qdev, mac_iocb_ptr, skb, tx_ring_desc) !=
+			NETDEV_TX_OK) {
+		QPRINTK(qdev, TX_QUEUED, ERR,
+				"Could not map the segments.\n");
+		return NETDEV_TX_BUSY;
+	}
 	QL_DUMP_OB_MAC_IOCB(mac_iocb_ptr);
 	tx_ring->prod_idx++;
 	if (tx_ring->prod_idx == tx_ring->wq_len)
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 6/7] qlge: bugfix: Fix RX scaling values.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
                   ` (3 preceding siblings ...)
  2009-02-11 13:58 ` [PATCH 5/7] qlge: bugfix: Fix TSO breakage Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:39   ` David Miller
  2009-02-11 13:58 ` [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit Ron Mercer
  2009-02-13  0:38 ` [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() David Miller
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

Receive packets were only scaling across 2 of the receive queues. The
value was hardcoded to 2 instead of being based on how many rx queues
were running.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 54b0a9e..3ab0369 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -2884,8 +2884,8 @@ static int ql_start_rss(struct ql_adapter *qdev)
 	/*
 	 * Fill out the Indirection Table.
 	 */
-	for (i = 0; i < 32; i++)
-		hash_id[i] = i & 1;
+	for (i = 0; i < 256; i++)
+		hash_id[i] = i & (qdev->rss_ring_count - 1);
 
 	/*
 	 * Random values for the IPv6 and IPv4 Hash Keys.
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit.
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
                   ` (4 preceding siblings ...)
  2009-02-11 13:58 ` [PATCH 6/7] qlge: bugfix: Fix RX scaling values Ron Mercer
@ 2009-02-11 13:58 ` Ron Mercer
  2009-02-13  0:39   ` David Miller
  2009-02-13  0:38 ` [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() David Miller
  6 siblings, 1 reply; 14+ messages in thread
From: Ron Mercer @ 2009-02-11 13:58 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-driver, ron.mercer

The large receive buffer queue is not properly tracking the current
index in the case where an early exit occurs.  This can happen when a
page alloc or dma mapping fails.  If this occurs the queue will get
out of sync and invalid indexes can be written to the hardware.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
---
 drivers/net/qlge/qlge_main.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/net/qlge/qlge_main.c b/drivers/net/qlge/qlge_main.c
index 3ab0369..8ea72dc 100644
--- a/drivers/net/qlge/qlge_main.c
+++ b/drivers/net/qlge/qlge_main.c
@@ -898,6 +898,7 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 					lbq_desc->index);
 				lbq_desc->p.lbq_page = alloc_page(GFP_ATOMIC);
 				if (lbq_desc->p.lbq_page == NULL) {
+					rx_ring->lbq_clean_idx = clean_idx;
 					QPRINTK(qdev, RX_STATUS, ERR,
 						"Couldn't get a page.\n");
 					return;
@@ -907,6 +908,7 @@ static void ql_update_lbq(struct ql_adapter *qdev, struct rx_ring *rx_ring)
 						   0, PAGE_SIZE,
 						   PCI_DMA_FROMDEVICE);
 				if (pci_dma_mapping_error(qdev->pdev, map)) {
+					rx_ring->lbq_clean_idx = clean_idx;
 					put_page(lbq_desc->p.lbq_page);
 					lbq_desc->p.lbq_page = NULL;
 					QPRINTK(qdev, RX_STATUS, ERR,
-- 
1.6.0.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb().
  2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
                   ` (5 preceding siblings ...)
  2009-02-11 13:58 ` [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit Ron Mercer
@ 2009-02-13  0:38 ` David Miller
  6 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:38 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:31 -0800

> Replace calls to vlan_hwaccel_rx() and netif_rx().
> Thanks to Dave Miller for pointing out the the driver was making
> the wrong upcall for passing packets into the stack.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang.
  2009-02-11 13:58 ` [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang Ron Mercer
@ 2009-02-13  0:38   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:38 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:32 -0800

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

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 3/7] qlge: bugfix: Add missing put_page() call.
  2009-02-11 13:58 ` [PATCH 3/7] qlge: bugfix: Add missing put_page() call Ron Mercer
@ 2009-02-13  0:38   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:38 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:33 -0800

> We put the page back if we can't get mapping for it.  We don't
> want unmapped buffers on our receive buffer queue.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call.
  2009-02-11 13:58 ` [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call Ron Mercer
@ 2009-02-13  0:39   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:39 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:34 -0800

> We put the skb back if we can't get mapping for it.  We don't
> want unmapped buffers on our receive buffer queue.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 5/7] qlge: bugfix: Fix TSO breakage.
  2009-02-11 13:58 ` [PATCH 5/7] qlge: bugfix: Fix TSO breakage Ron Mercer
@ 2009-02-13  0:39   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:39 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:35 -0800

> Moved the buffer mapping to a point after TSO logic has modified the
> iph->check field. We were seeing stale data on the PCIe bus.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 6/7] qlge: bugfix: Fix RX scaling values.
  2009-02-11 13:58 ` [PATCH 6/7] qlge: bugfix: Fix RX scaling values Ron Mercer
@ 2009-02-13  0:39   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:39 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:36 -0800

> Receive packets were only scaling across 2 of the receive queues. The
> value was hardcoded to 2 instead of being based on how many rx queues
> were running.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit.
  2009-02-11 13:58 ` [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit Ron Mercer
@ 2009-02-13  0:39   ` David Miller
  0 siblings, 0 replies; 14+ messages in thread
From: David Miller @ 2009-02-13  0:39 UTC (permalink / raw)
  To: ron.mercer; +Cc: netdev, linux-driver

From: Ron Mercer <ron.mercer@qlogic.com>
Date: Wed, 11 Feb 2009 05:58:37 -0800

> The large receive buffer queue is not properly tracking the current
> index in the case where an early exit occurs.  This can happen when a
> page alloc or dma mapping fails.  If this occurs the queue will get
> out of sync and invalid indexes can be written to the hardware.
> 
> Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>

Applied.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2009-02-13  0:39 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-02-11 13:58 [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() Ron Mercer
2009-02-11 13:58 ` [PATCH 2/7] qlge: bugfix: Fix fatal error recovery hang Ron Mercer
2009-02-13  0:38   ` David Miller
2009-02-11 13:58 ` [PATCH 3/7] qlge: bugfix: Add missing put_page() call Ron Mercer
2009-02-13  0:38   ` David Miller
2009-02-11 13:58 ` [PATCH 4/7] qlge: bugfix: Add missing dev_kfree_skb_any() call Ron Mercer
2009-02-13  0:39   ` David Miller
2009-02-11 13:58 ` [PATCH 5/7] qlge: bugfix: Fix TSO breakage Ron Mercer
2009-02-13  0:39   ` David Miller
2009-02-11 13:58 ` [PATCH 6/7] qlge: bugfix: Fix RX scaling values Ron Mercer
2009-02-13  0:39   ` David Miller
2009-02-11 13:58 ` [PATCH 7/7] qlge: bugfix: Add missing rx buf clean index on early exit Ron Mercer
2009-02-13  0:39   ` David Miller
2009-02-13  0:38 ` [PATCH 1/7] qlge: bugfix: Use netif_receive_skb() and vlan_hwaccel_receive_skb() David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).