diff mbox

[net-2.6,1/9] sfc: Wait at most 10ms for the MC to finish reading out MAC statistics

Message ID 1272061439.5520.14.camel@achroite.uk.solarflarecom.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Ben Hutchings April 23, 2010, 10:23 p.m. UTC
From: Steve Hodgson <shodgson@solarflare.com>

The original code would wait indefinitely if MAC stats DMA failed.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
 drivers/net/sfc/siena.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)

Comments

Ben Hutchings April 23, 2010, 10:33 p.m. UTC | #1
All of these 9 patches should also be applicable to 2.6.33.y, except
that one hunk of "sfc: Consistently report short MCDI responses as EIO"
is not applicable and should be dropped.

Some of the bug fixes are applicable to 2.6.32.y and maybe to 2.6.27.y,
but the patches will need some adjustment.  I intend to send backported
patches to stable@kernel.org separately.

Ben.
David Miller April 23, 2010, 10:36 p.m. UTC | #2
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Fri, 23 Apr 2010 23:33:28 +0100

> All of these 9 patches should also be applicable to 2.6.33.y, except
> that one hunk of "sfc: Consistently report short MCDI responses as EIO"
> is not applicable and should be dropped.
> 
> Some of the bug fixes are applicable to 2.6.32.y and maybe to 2.6.27.y,
> but the patches will need some adjustment.  I intend to send backported
> patches to stable@kernel.org separately.

There is zero way I'm applying 9 patches this late in the RC
series.

If you want this stuff to go into net-2.6 and get backported
to -stable, pick a very small (2 or 3) set of the most important
fixes.

Consistent -EIO error code returns and junk like that are
not appropriate this late in the RC, and definitely not -stable
material.
--
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
Ben Hutchings April 23, 2010, 10:54 p.m. UTC | #3
On Fri, 2010-04-23 at 15:36 -0700, David Miller wrote:
> From: Ben Hutchings <bhutchings@solarflare.com>
> Date: Fri, 23 Apr 2010 23:33:28 +0100
> 
> > All of these 9 patches should also be applicable to 2.6.33.y, except
> > that one hunk of "sfc: Consistently report short MCDI responses as EIO"
> > is not applicable and should be dropped.
> > 
> > Some of the bug fixes are applicable to 2.6.32.y and maybe to 2.6.27.y,
> > but the patches will need some adjustment.  I intend to send backported
> > patches to stable@kernel.org separately.
> 
> There is zero way I'm applying 9 patches this late in the RC
> series.
> 
> If you want this stuff to go into net-2.6 and get backported
> to -stable, pick a very small (2 or 3) set of the most important
> fixes.

This makes no sense.  You want to put a quota on bug fixes?  I could
arbitrarily pick some but I'm still going to want to get the other fixes
into distributions.

> Consistent -EIO error code returns and junk like that are
> not appropriate this late in the RC, and definitely not -stable
> material.

The important part of that change is that functions were returning 0 in
a failure case.  I should have made that the first sentence in the
commit message.  I didn't see the point in making a separate commit to
fix the wrong error codes, but I can split this up if you prefer.

Ben.
David Miller April 23, 2010, 10:58 p.m. UTC | #4
From: Ben Hutchings <bhutchings@solarflare.com>
Date: Fri, 23 Apr 2010 23:54:30 +0100

> This makes no sense.  You want to put a quota on bug fixes?  I could
> arbitrarily pick some but I'm still going to want to get the other fixes
> into distributions.

It's not a quota.  It's a request that only the most catastropic
bugs get fixed this late in the RC.

You don't have 9 catastropic bugs to fix in your driver.
--
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/sfc/siena.c b/drivers/net/sfc/siena.c
index 38dcc42..e0c46f5 100644
--- a/drivers/net/sfc/siena.c
+++ b/drivers/net/sfc/siena.c
@@ -456,8 +456,17 @@  static int siena_try_update_nic_stats(struct efx_nic *efx)
 
 static void siena_update_nic_stats(struct efx_nic *efx)
 {
-	while (siena_try_update_nic_stats(efx) == -EAGAIN)
-		cpu_relax();
+	int retry;
+
+	/* If we're unlucky enough to read statistics wduring the DMA, wait
+	 * up to 10ms for it to finish (typically takes <500us) */
+	for (retry = 0; retry < 100; ++retry) {
+		if (siena_try_update_nic_stats(efx) == 0)
+			return;
+		udelay(100);
+	}
+
+	/* Use the old values instead */
 }
 
 static void siena_start_nic_stats(struct efx_nic *efx)