Re: [patch 01/18] bcm43xx: Fix for oops on resume

From: Andrew Morton
Date: Sun Feb 25 2007 - 03:57:13 EST


> On Sat, 24 Feb 2007 20:30:41 -0600 Larry Finger <larry.finger@xxxxxxxxxxxx> wrote:
> Pavel Machek wrote:
> > Hi!
> >
> >> -stable review patch. If anyone has any objections, please let us know.
> >>
> >> ------------------
> >> From: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> >>
> >> There is a kernel oops on bcm43xx when resuming due to an overly tight timeout loop.
> >>
> >> Signed-off-by: Larry Finger <Larry.Finger@xxxxxxxxxxxx>
> >> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
> >>
> >> ---
> >> drivers/net/wireless/bcm43xx/bcm43xx.h | 2 +-
> >> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> --- linux-2.6.18.7.orig/drivers/net/wireless/bcm43xx/bcm43xx.h
> >> +++ linux-2.6.18.7/drivers/net/wireless/bcm43xx/bcm43xx.h
> >> @@ -21,7 +21,7 @@
> >> #define PFX KBUILD_MODNAME ": "
> >>
> >> #define BCM43xx_SWITCH_CORE_MAX_RETRIES 50
> >> -#define BCM43xx_IRQWAIT_MAX_RETRIES 50
> >> +#define BCM43xx_IRQWAIT_MAX_RETRIES 100
> >>
> >> #define BCM43xx_IO_SIZE 8192
> >
> > I'm sorry, but this does not look like fixing an oops. It may make it
> > go away for you, or make it less probable, but it certainly can't fix
> > it.
>
> Upon resume, it was taking 65 times through the loop, which caused an oops. We think it is due to a
> slow-clock setting at that point, but it certainly does get rid of the oops. This change has also
> eliminated the odd oops seen by a few users.
>

Pavel's point is that the driver shouldn't oops the kernel if
BCM43xx_IRQWAIT_MAX_RETRIES is exceeded.

Presumably, the driver will oops if bcm43xx_chip_init() fails for other
reasons?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/