Patch "toshiba-wmi: Fix loading the driver on non Toshiba laptops" has been added to the 4.8-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
toshiba-wmi: Fix loading the driver on non Toshiba laptops
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
toshiba-wmi-fix-loading-the-driver-on-non-toshiba-laptops.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
1c80e9603fe8341ed5bea696747d07083d5e0476Mon Sep 17 00:00:00 2001
From: Azael Avalos <[email protected]>
Date: Thu, 25 Aug 2016 12:50:55 -0600
Subject: toshiba-wmi: Fix loading the driver on non Toshiba laptops
From: Azael Avalos <[email protected]>
commit 1c80e9603fe8341ed5bea696747d07083d5e0476 upstream.
Bug 150611 uncovered that the WMI ID used by the toshiba-wmi driver is not Toshiba specific, and as such, the driver was being loaded on non Toshiba laptops too.
This patch adds a DMI matching list checking for TOSHIBA as the vendor, refusing to load if it is not.
Also the WMI GUID was renamed, dropping the TOSHIBA_ prefix, to better reflect that such GUID is not a Toshiba specific one.
--- drivers/platform/x86/toshiba-wmi.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-)
drivers/platform/x86/toshiba-wmi.c +19 -7
@@ -24,14 +24,15 @@#include <linux/acpi.h> #include <linux/input.h> #include <linux/input/sparse-keymap.h> +#include <linux/dmi.h> MODULE_AUTHOR ("Azael Avalos" );MODULE_DESCRIPTION ("Toshiba WMI Hotkey Driver" );MODULE_LICENSE ("GPL" ); -#define TOSHIBA_WMI_EVENT_GUID "59142400-C6A3-40FA-BADB-8A2652834100" +#define WMI_EVENT_GUID "59142400-C6A3-40FA-BADB-8A2652834100" -MODULE_ALIAS ("wmi:" TOSHIBA_WMI_EVENT_GUID ); +MODULE_ALIAS ("wmi:" WMI_EVENT_GUID );static struct input_dev *toshiba_wmi_input_dev;
@@ -63,6 +64,16 @@ static void toshiba_wmi_notify(u32 valuekfree (response.pointer); } +static struct dmi_system_id toshiba_wmi_dmi_table[]__initdata = { + { + .ident ="Toshiba laptop" , + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"TOSHIBA" ), + }, + }, + {} +}; +static int __init toshiba_wmi_input_setup (void ) {acpi_status status;
@@ -81,7 +92,7 @@ static int __init toshiba_wmi_input_setuif (err) goto err_free_dev; - status =wmi_install_notify_handler (TOSHIBA_WMI_EVENT_GUID , + status =wmi_install_notify_handler (WMI_EVENT_GUID , toshiba_wmi_notify,NULL );if (ACPI_FAILURE (status)) { err = -EIO ;
@@ -95,7 +106,7 @@ static int __init toshiba_wmi_input_setureturn 0 ; err_remove_notifier: -wmi_remove_notify_handler (TOSHIBA_WMI_EVENT_GUID ); +wmi_remove_notify_handler (WMI_EVENT_GUID ); err_free_keymap:sparse_keymap_free (toshiba_wmi_input_dev); err_free_dev:
@@ -105,7 +116,7 @@ static int __init toshiba_wmi_input_setustatic void toshiba_wmi_input_destroy (void ) { -wmi_remove_notify_handler (TOSHIBA_WMI_EVENT_GUID ); +wmi_remove_notify_handler (WMI_EVENT_GUID );sparse_keymap_free (toshiba_wmi_input_dev);input_unregister_device (toshiba_wmi_input_dev); }
@@ -114,7 +125,8 @@ static int __init toshiba_wmi_init(void) {int ret; -if (!wmi_has_guid (TOSHIBA_WMI_EVENT_GUID )) +if (!wmi_has_guid (WMI_EVENT_GUID ) || + !dmi_check_system (toshiba_wmi_dmi_table))return -ENODEV ; ret =toshiba_wmi_input_setup ();
@@ -130,7 +142,7 @@ static int __init toshiba_wmi_init(void) static void __exit toshiba_wmi_exit(void) { -if (wmi_has_guid (TOSHIBA_WMI_EVENT_GUID )) +if (wmi_has_guid (WMI_EVENT_GUID ))toshiba_wmi_input_destroy (); }
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/toshiba-wmi-fix-loading-the-driver-on-non-toshiba-laptops.patch