aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Limonciello <mario.limonciello@dell.com>2017-11-01 15:25:28 -0400
committerDarren Hart (VMware) <dvhart@infradead.org>2017-11-03 19:33:58 -0400
commitf97e058cfe8032504e310bd5c20e35d640ef2858 (patch)
tree2d6e2935ecb018d1195ec06c8b7eecc024dffb4e
parent92b8c540bce7b1662212dff35f503f5b1266725b (diff)
platform/x86: wmi: Don't allow drivers to get each other's GUIDs
The only driver using this was dell-wmi, and it really was a hack. The driver was getting a data attribute from another driver and this type of action should not be encouraged. Rather drivers that need to interact with one another should pass data back and forth via exported functions. Signed-off-by: Mario Limonciello <mario.limonciello@dell.com> Reviewed-by: Edward O'Callaghan <quasisec@google.com> Reviewed-by: Pali Rohár <pali.rohar@gmail.com> Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
-rw-r--r--drivers/platform/x86/wmi.c17
-rw-r--r--include/linux/wmi.h4
2 files changed, 0 insertions, 21 deletions
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 4d73a87c2ddf..bcb41c1c7f52 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -368,23 +368,6 @@ union acpi_object *wmidev_block_query(struct wmi_device *wdev, u8 instance)
368} 368}
369EXPORT_SYMBOL_GPL(wmidev_block_query); 369EXPORT_SYMBOL_GPL(wmidev_block_query);
370 370
371struct wmi_device *wmidev_get_other_guid(struct wmi_device *wdev,
372 const char *guid_string)
373{
374 struct wmi_block *this_wb = container_of(wdev, struct wmi_block, dev);
375 struct wmi_block *other_wb;
376
377 if (!find_guid(guid_string, &other_wb))
378 return NULL;
379
380 if (other_wb->acpi_device != this_wb->acpi_device)
381 return NULL;
382
383 get_device(&other_wb->dev.dev);
384 return &other_wb->dev;
385}
386EXPORT_SYMBOL_GPL(wmidev_get_other_guid);
387
388/** 371/**
389 * wmi_set_block - Write to a WMI block 372 * wmi_set_block - Write to a WMI block
390 * @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba 373 * @guid_string: 36 char string of the form fa50ff2b-f2e8-45de-83fa-65417f2f49ba
diff --git a/include/linux/wmi.h b/include/linux/wmi.h
index 2cd10c3b89e9..ddee427e0721 100644
--- a/include/linux/wmi.h
+++ b/include/linux/wmi.h
@@ -36,10 +36,6 @@ extern acpi_status wmidev_evaluate_method(struct wmi_device *wdev,
36extern union acpi_object *wmidev_block_query(struct wmi_device *wdev, 36extern union acpi_object *wmidev_block_query(struct wmi_device *wdev,
37 u8 instance); 37 u8 instance);
38 38
39/* Gets another device on the same bus. Caller must put_device the result. */
40extern struct wmi_device *wmidev_get_other_guid(struct wmi_device *wdev,
41 const char *guid_string);
42
43struct wmi_device_id { 39struct wmi_device_id {
44 const char *guid_string; 40 const char *guid_string;
45}; 41};