提交 9ad57708 编写于 作者: A Alexander Shishkin

intel_th: Use correct method of finding hub

Since commit 8edc514b ("intel_th: Make SOURCE devices children of the
root device") the hub is not the parent of SOURCE devices any more, so the
new helper function should be used for that instead of always using the
parent. The intel_th_set_output() path, however, still uses the old
logic, leading to the hub driver structure being aliased with something
else, like struct pci_driver or struct acpi_driver, and an incorrect call
to an address inferred from that, potentially resulting in a crash.

Fixes: 8edc514b ("intel_th: Make SOURCE devices children of the root device")
Signed-off-by: NAlexander Shishkin <alexander.shishkin@linux.intel.com>
上级 50352fa7
...@@ -927,7 +927,7 @@ EXPORT_SYMBOL_GPL(intel_th_trace_disable); ...@@ -927,7 +927,7 @@ EXPORT_SYMBOL_GPL(intel_th_trace_disable);
int intel_th_set_output(struct intel_th_device *thdev, int intel_th_set_output(struct intel_th_device *thdev,
unsigned int master) unsigned int master)
{ {
struct intel_th_device *hub = to_intel_th_device(thdev->dev.parent); struct intel_th_device *hub = to_intel_th_hub(thdev);
struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver); struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
if (!hubdrv->set_output) if (!hubdrv->set_output)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册