--- /dev/null
+From bf7e1abe434ba9e22e8dc04a4cba4ab504b788b8 Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Thu, 25 Oct 2012 09:51:39 +0200
+Subject: rt2800: validate step value for temperature compensation
+
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+
+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 <pavel.lucik@gmail.com>
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+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;
+
+ /*
ath9k-fix-stale-pointers-potentially-causing-access-to-free-d-skbs.patch
+rt2800-validate-step-value-for-temperature-compensation.patch
+target-don-t-return-success-from-module_init-if-setup-fails.patch
--- /dev/null
+From 0d0f9dfb31e0a6c92063e235417b42df185b3275 Mon Sep 17 00:00:00 2001
+From: Roland Dreier <roland@purestorage.com>
+Date: Wed, 31 Oct 2012 09:16:44 -0700
+Subject: target: Don't return success from module_init() if setup fails
+
+From: Roland Dreier <roland@purestorage.com>
+
+commit 0d0f9dfb31e0a6c92063e235417b42df185b3275 upstream.
+
+If the call to core_dev_release_virtual_lun0() fails, then nothing
+sets ret to anything other than 0, so even though everything is
+torn down and freed, target_core_init_configfs() will seem to succeed
+and the module will be loaded. Fix this by passing the return value
+on up the chain.
+
+Signed-off-by: Roland Dreier <roland@purestorage.com>
+Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/target/target_core_configfs.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/target/target_core_configfs.c
++++ b/drivers/target/target_core_configfs.c
+@@ -3234,7 +3234,8 @@ static int __init target_core_init_confi
+ if (ret < 0)
+ goto out;
+
+- if (core_dev_setup_virtual_lun0() < 0)
++ ret = core_dev_setup_virtual_lun0();
++ if (ret < 0)
+ goto out;
+
+ return 0;