Re: [ath5k-devel] [PATCH] ath5k: prevent infinite loop

From: Steven Rostedt
Date: Tue May 19 2009 - 07:45:27 EST



On Mon, 18 May 2009, Luis R. Rodriguez wrote:

> On Mon, May 18, 2009 at 11:32 PM, Nick Kossifidis <mickflemm@xxxxxxxxx> wrote:
> > 2009/5/19 Steven Rostedt <rostedt@xxxxxxxxxxx>:
> >>
> >> On Tue, 19 May 2009, Nick Kossifidis wrote:
> >>>
> >>> This is already fixed on wireless-testing ;-)
> >>> http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=blob;f=drivers/net/wireless/ath/ath5k/phy.c;h=d0d1c350025aebba1fe4e17a44550536a59951ba;hb=HEAD
> >>
> >> Thanks, but this does only half. Although I did not hit this in my laptop,
> >> it can be an issue. If step[0] == step[1] you have the same problem.
> >>
> >
> > Having the same power value for 2 different steps is something we can
> > expect (although docs say that we expect the line to be monotonically
> > increasing but anyway), having the same step twice is way out of spec,
> > there is no way we can have the same step twice on EEPROM, only if we
> > have a corrupted EEPROM (we need to add some sanity checks indeed here
> > -> http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=blob;f=drivers/net/wireless/ath/ath5k/eeprom.c;h=c56b494d417acd40d445d922f2861b53cc2315df;hb=HEAD#l910
> > to handle such a case but first we need to have a "default" eeprom
> > dataset to fallback when we get such errors).
>
> Don't bother with busted EEPROMs, if its busted its busted. Chances
> are the complexity we'd need to add to deal with such devices is
> simply not worth it.

My concern is that a busted EEPROM should not lock up the kernel, when we
can avoid it. Put in a nasty WARN_ON if the steps are equal, and exit the
routine. But don't let it go into an infinite loop and have the user
wondering why their system just locked up.

-- Steve

--
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/