[ 02/38] rt2800: validate step value for temperature compensation
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2012-11-15 04:51:00
Also in:
lkml
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: 2012-11-15 04:51:00
Also in:
lkml
3.0-stable review patch. If anyone has any objections, please let me know. ------------------ From: Stanislaw Gruszka <redacted> commit bf7e1abe434ba9e22e8dc04a4cba4ab504b788b8 upstream. Some hardware has correct (!= 0xff) value of tssi_bounds[4] in the EEPROM, but step is equal to 0xff. This results on ridiculous delta calculations and completely broke TX power settings. Reported-and-tested-by: Pavel Lucik <redacted> Signed-off-by: Stanislaw Gruszka <redacted> Acked-by: Ivo van Doorn <redacted> Signed-off-by: John W. Linville <redacted> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/net/wireless/rt2x00/rt2800lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c@@ -1935,7 +1935,7 @@ static int rt2800_get_gain_calibration_d /* * Check if temperature compensation is supported. */ - if (tssi_bounds[4] == 0xff) + if (tssi_bounds[4] == 0xff || step == 0xff) return 0; /*