From a2411690714c5fd3e98c19155c9da415fbad04ae Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Wed, 15 Jun 2016 14:11:15 -0700 Subject: [PATCH] hp-wmi: fix wifi cannot be hard-unblock (rhbz 1338025) --- hp-wmi-fix-wifi-cannot-be-hard-unblock.patch | 48 ++++++++++++++++++++ kernel.spec | 6 +++ 2 files changed, 54 insertions(+) create mode 100644 hp-wmi-fix-wifi-cannot-be-hard-unblock.patch diff --git a/hp-wmi-fix-wifi-cannot-be-hard-unblock.patch b/hp-wmi-fix-wifi-cannot-be-hard-unblock.patch new file mode 100644 index 000000000..27744a0c3 --- /dev/null +++ b/hp-wmi-fix-wifi-cannot-be-hard-unblock.patch @@ -0,0 +1,48 @@ +From patchwork Mon Jun 13 11:44:00 2016 +Content-Type: text/plain; charset="utf-8" +MIME-Version: 1.0 +Content-Transfer-Encoding: 7bit +Subject: hp-wmi: fix wifi cannot be hard-unblock +From: Alex Hung +X-Patchwork-Id: 9172765 +Message-Id: <1465818240-11994-1-git-send-email-alex.hung@canonical.com> +To: dvhart@infradead.org, platform-driver-x86@vger.kernel.org, + alex.hung@canonical.com, david.ward@ll.mit.edu +Date: Mon, 13 Jun 2016 19:44:00 +0800 + +Several users reported wifi cannot be unblocked as discussed in [1]. +This patch removes the useof 2009 flag by BIOS but uses the actual WMI +function calls - it will be skipped if WMI reports unsupported + +[1] https://bugzilla.kernel.org/show_bug.cgi?id=69131 + +Signed-off-by: Alex Hung +--- + drivers/platform/x86/hp-wmi.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/drivers/platform/x86/hp-wmi.c b/drivers/platform/x86/hp-wmi.c +index 6f145f2..96ffda4 100644 +--- a/drivers/platform/x86/hp-wmi.c ++++ b/drivers/platform/x86/hp-wmi.c +@@ -718,6 +718,11 @@ static int __init hp_wmi_rfkill_setup(struct platform_device *device) + if (err) + return err; + ++ err = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 1, &wireless, ++ sizeof(wireless), 0); ++ if (err) ++ return err; ++ + if (wireless & 0x1) { + wifi_rfkill = rfkill_alloc("hp-wifi", &device->dev, + RFKILL_TYPE_WLAN, +@@ -882,7 +887,7 @@ static int __init hp_wmi_bios_setup(struct platform_device *device) + wwan_rfkill = NULL; + rfkill2_count = 0; + +- if (hp_wmi_bios_2009_later() || hp_wmi_rfkill_setup(device)) ++ if (hp_wmi_rfkill_setup(device)) + hp_wmi_rfkill2_setup(device); + + err = device_create_file(&device->dev, &dev_attr_display); diff --git a/kernel.spec b/kernel.spec index 1332fa55b..488d39545 100644 --- a/kernel.spec +++ b/kernel.spec @@ -608,6 +608,9 @@ Patch666: ath9k-fix-GPIO-mask-for-AR9462-and-AR9565.patch #CVE-2016-4470 rhbz 1341716 1346626 Patch727: KEYS-potential-uninitialized-variable.patch +#rhbz 1338025 +Patch728: hp-wmi-fix-wifi-cannot-be-hard-unblock.patch + # END OF PATCH DEFINITIONS %endif @@ -2133,6 +2136,9 @@ fi # # %changelog +* Wed Jun 15 2016 Laura Abbott +- hp-wmi: fix wifi cannot be hard-unblock (rhbz 1338025) + * Wed Jun 15 2016 Josh Boyer - CVE-2016-4470 keys: uninitialized variable crash (rhbz 1341716 1346626)