linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] intel_th: Fixes for v5.8
@ 2020-07-06 16:13 Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 1/4] intel_th: pci: Add Jasper Lake CPU support Alexander Shishkin
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Alexander Shishkin @ 2020-07-06 16:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-kernel, Alexander Shishkin

Hi Greg,

Here are the fixes I have for v5.8 cycle so far. There is, in fact, just
one bugfix and 3 new PCI IDs. Nothing dramatic. Andy's r-bs are included.
Please consider applying. Thanks!

Alexander Shishkin (4):
  intel_th: pci: Add Jasper Lake CPU support
  intel_th: pci: Add Tiger Lake PCH-H support
  intel_th: pci: Add Emmitsburg PCH support
  intel_th: Fix a NULL dereference when hub driver is not loaded

 drivers/hwtracing/intel_th/core.c | 21 ++++++++++++++++++---
 drivers/hwtracing/intel_th/pci.c  | 15 +++++++++++++++
 drivers/hwtracing/intel_th/sth.c  |  4 +---
 3 files changed, 34 insertions(+), 6 deletions(-)

-- 
2.27.0


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH 1/4] intel_th: pci: Add Jasper Lake CPU support
  2020-07-06 16:13 [PATCH 0/4] intel_th: Fixes for v5.8 Alexander Shishkin
@ 2020-07-06 16:13 ` Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 2/4] intel_th: pci: Add Tiger Lake PCH-H support Alexander Shishkin
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Shishkin @ 2020-07-06 16:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

This adds support for the Trace Hub in Jasper Lake CPU.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@vger.kernel.org # v4.14+
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index 7ccac74553a6..f1dc1eef9ba2 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -238,6 +238,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Jasper Lake CPU */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4e29),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Elkhart Lake CPU */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4529),
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 2/4] intel_th: pci: Add Tiger Lake PCH-H support
  2020-07-06 16:13 [PATCH 0/4] intel_th: Fixes for v5.8 Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 1/4] intel_th: pci: Add Jasper Lake CPU support Alexander Shishkin
@ 2020-07-06 16:13 ` Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 3/4] intel_th: pci: Add Emmitsburg PCH support Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded Alexander Shishkin
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Shishkin @ 2020-07-06 16:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

This adds support for the Trace Hub in Tiger Lake PCH-H.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@vger.kernel.org # v4.14+
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index f1dc1eef9ba2..f321e5ffe2a7 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -233,6 +233,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa0a6),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Tiger Lake PCH-H */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x43a6),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{
 		/* Jasper Lake PCH */
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4da6),
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 3/4] intel_th: pci: Add Emmitsburg PCH support
  2020-07-06 16:13 [PATCH 0/4] intel_th: Fixes for v5.8 Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 1/4] intel_th: pci: Add Jasper Lake CPU support Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 2/4] intel_th: pci: Add Tiger Lake PCH-H support Alexander Shishkin
@ 2020-07-06 16:13 ` Alexander Shishkin
  2020-07-06 16:13 ` [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded Alexander Shishkin
  3 siblings, 0 replies; 6+ messages in thread
From: Alexander Shishkin @ 2020-07-06 16:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, stable

This adds support for the Trace Hub in Emmitsburg PCH.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: stable@vger.kernel.org # v4.14+
---
 drivers/hwtracing/intel_th/pci.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/hwtracing/intel_th/pci.c b/drivers/hwtracing/intel_th/pci.c
index f321e5ffe2a7..21fdf0b93516 100644
--- a/drivers/hwtracing/intel_th/pci.c
+++ b/drivers/hwtracing/intel_th/pci.c
@@ -258,6 +258,11 @@ static const struct pci_device_id intel_th_pci_id_table[] = {
 		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x4b26),
 		.driver_data = (kernel_ulong_t)&intel_th_2x,
 	},
+	{
+		/* Emmitsburg PCH */
+		PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x1bcc),
+		.driver_data = (kernel_ulong_t)&intel_th_2x,
+	},
 	{ 0 },
 };
 
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded
  2020-07-06 16:13 [PATCH 0/4] intel_th: Fixes for v5.8 Alexander Shishkin
                   ` (2 preceding siblings ...)
  2020-07-06 16:13 ` [PATCH 3/4] intel_th: pci: Add Emmitsburg PCH support Alexander Shishkin
@ 2020-07-06 16:13 ` Alexander Shishkin
  2020-07-10 14:03   ` Sasha Levin
  3 siblings, 1 reply; 6+ messages in thread
From: Alexander Shishkin @ 2020-07-06 16:13 UTC (permalink / raw)
  To: Greg Kroah-Hartman
  Cc: linux-kernel, Alexander Shishkin, Andy Shevchenko, Ammy Yi, stable

Connecting master to an output port when GTH driver module is not loaded
triggers a NULL dereference:

> RIP: 0010:intel_th_set_output+0x35/0x70 [intel_th]
> Call Trace:
>  ? sth_stm_link+0x12/0x20 [intel_th_sth]
>  stm_source_link_store+0x164/0x270 [stm_core]
>  dev_attr_store+0x17/0x30
>  sysfs_kf_write+0x3e/0x50
>  kernfs_fop_write+0xda/0x1b0
>  __vfs_write+0x1b/0x40
>  vfs_write+0xb9/0x1a0
>  ksys_write+0x67/0xe0
>  __x64_sys_write+0x1a/0x20
>  do_syscall_64+0x57/0x1d0
>  entry_SYSCALL_64_after_hwframe+0x44/0xa9

Make sure the module in question is loaded and return an error if not.

Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Fixes: 39f4034693b7c ("intel_th: Add driver infrastructure for Intel(R) Trace Hub devices")
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reported-by: Ammy Yi <ammy.yi@intel.com>
Tested-by: Ammy Yi <ammy.yi@intel.com>
Cc: stable@vger.kernel.org # v4.4
---
 drivers/hwtracing/intel_th/core.c | 21 ++++++++++++++++++---
 drivers/hwtracing/intel_th/sth.c  |  4 +---
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/drivers/hwtracing/intel_th/core.c b/drivers/hwtracing/intel_th/core.c
index ca232ec565e8..c9ac3dc65113 100644
--- a/drivers/hwtracing/intel_th/core.c
+++ b/drivers/hwtracing/intel_th/core.c
@@ -1021,15 +1021,30 @@ int intel_th_set_output(struct intel_th_device *thdev,
 {
 	struct intel_th_device *hub = to_intel_th_hub(thdev);
 	struct intel_th_driver *hubdrv = to_intel_th_driver(hub->dev.driver);
+	int ret;
 
 	/* In host mode, this is up to the external debugger, do nothing. */
 	if (hub->host_mode)
 		return 0;
 
-	if (!hubdrv->set_output)
-		return -ENOTSUPP;
+	/*
+	 * hub is instantiated together with the source device that
+	 * calls here, so guaranteed to be present.
+	 */
+	hubdrv = to_intel_th_driver(hub->dev.driver);
+	if (!hubdrv || !try_module_get(hubdrv->driver.owner))
+		return -EINVAL;
+
+	if (!hubdrv->set_output) {
+		ret = -ENOTSUPP;
+		goto out;
+	}
+
+	ret = hubdrv->set_output(hub, master);
 
-	return hubdrv->set_output(hub, master);
+out:
+	module_put(hubdrv->driver.owner);
+	return ret;
 }
 EXPORT_SYMBOL_GPL(intel_th_set_output);
 
diff --git a/drivers/hwtracing/intel_th/sth.c b/drivers/hwtracing/intel_th/sth.c
index 3a1f4e650378..a1529f571491 100644
--- a/drivers/hwtracing/intel_th/sth.c
+++ b/drivers/hwtracing/intel_th/sth.c
@@ -161,9 +161,7 @@ static int sth_stm_link(struct stm_data *stm_data, unsigned int master,
 {
 	struct sth_device *sth = container_of(stm_data, struct sth_device, stm);
 
-	intel_th_set_output(to_intel_th_device(sth->dev), master);
-
-	return 0;
+	return intel_th_set_output(to_intel_th_device(sth->dev), master);
 }
 
 static int intel_th_sw_init(struct sth_device *sth)
-- 
2.27.0


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded
  2020-07-06 16:13 ` [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded Alexander Shishkin
@ 2020-07-10 14:03   ` Sasha Levin
  0 siblings, 0 replies; 6+ messages in thread
From: Sasha Levin @ 2020-07-10 14:03 UTC (permalink / raw)
  To: Sasha Levin, Alexander Shishkin, Greg Kroah-Hartman; +Cc: linux-kernel, stable

Hi

[This is an automated email]

This commit has been processed because it contains a "Fixes:" tag
fixing commit: 39f4034693b7 ("intel_th: Add driver infrastructure for Intel(R) Trace Hub devices").

The bot has tested the following trees: v5.7.7, v5.4.50, v4.19.131, v4.14.187, v4.9.229, v4.4.229.

v5.7.7: Build OK!
v5.4.50: Build OK!
v4.19.131: Build OK!
v4.14.187: Failed to apply! Possible dependencies:
    c2d2c7de972d7 ("intel_th: Don't touch switch routing in host mode")

v4.9.229: Failed to apply! Possible dependencies:
    c2d2c7de972d7 ("intel_th: Don't touch switch routing in host mode")

v4.4.229: Failed to apply! Possible dependencies:
    c2d2c7de972d7 ("intel_th: Don't touch switch routing in host mode")


NOTE: The patch will not be queued to stable trees until it is upstream.

How should we proceed with this patch?

-- 
Thanks
Sasha

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-07-10 14:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-06 16:13 [PATCH 0/4] intel_th: Fixes for v5.8 Alexander Shishkin
2020-07-06 16:13 ` [PATCH 1/4] intel_th: pci: Add Jasper Lake CPU support Alexander Shishkin
2020-07-06 16:13 ` [PATCH 2/4] intel_th: pci: Add Tiger Lake PCH-H support Alexander Shishkin
2020-07-06 16:13 ` [PATCH 3/4] intel_th: pci: Add Emmitsburg PCH support Alexander Shishkin
2020-07-06 16:13 ` [PATCH 4/4] intel_th: Fix a NULL dereference when hub driver is not loaded Alexander Shishkin
2020-07-10 14:03   ` Sasha Levin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).