linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/6] coresight: Patches for v5.14
@ 2021-06-14 17:58 Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 1/6] coresight: core: Switch to krealloc_array() Mathieu Poirier
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:58 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

Good day Greg,

A small tally this time around - there might be a part 2 but that is not
clear at the moment.  Applies cleanly on today's char-misc-next
(db4e54aefdfe).

Regards,
Mathieu


Andy Shevchenko (1):
  coresight: core: Switch to krealloc_array()

Jeremy Linton (1):
  coresight: Propagate symlink failure

Junhao He (3):
  coresight: core: Fix use of uninitialized pointer
  coresight: core: Remove unnecessary assignment
  coresight: etm4x: core: Remove redundant check of attr

Sai Prakash Ranjan (1):
  coresight: tmc-etf: Fix global-out-of-bounds in
    tmc_update_etf_buffer()

 drivers/hwtracing/coresight/coresight-core.c       | 11 +++++------
 drivers/hwtracing/coresight/coresight-etm4x-core.c |  5 -----
 drivers/hwtracing/coresight/coresight-tmc-etf.c    |  2 +-
 3 files changed, 6 insertions(+), 12 deletions(-)

-- 
2.25.1


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

* [PATCH 1/6] coresight: core: Switch to krealloc_array()
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
@ 2021-06-14 17:58 ` Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 2/6] coresight: core: Fix use of uninitialized pointer Mathieu Poirier
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:58 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Let the krealloc_array() check for multiplication overflow.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20210520135041.56163-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-core.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index 6c68d34d956e..a7971c68b0be 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -1730,9 +1730,9 @@ char *coresight_alloc_device_name(struct coresight_dev_list *dict,
 	if (idx < 0) {
 		/* Make space for the new entry */
 		idx = dict->nr_idx;
-		list = krealloc(dict->fwnode_list,
-				(idx + 1) * sizeof(*dict->fwnode_list),
-				GFP_KERNEL);
+		list = krealloc_array(dict->fwnode_list,
+				      idx + 1, sizeof(*dict->fwnode_list),
+				      GFP_KERNEL);
 		if (ZERO_OR_NULL_PTR(list)) {
 			idx = -ENOMEM;
 			goto done;
-- 
2.25.1


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

* [PATCH 2/6] coresight: core: Fix use of uninitialized pointer
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 1/6] coresight: core: Switch to krealloc_array() Mathieu Poirier
@ 2021-06-14 17:58 ` Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 3/6] coresight: core: Remove unnecessary assignment Mathieu Poirier
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:58 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Junhao He <hejunhao2@hisilicon.com>

Currently the pointer "sink" might be checked before initialized. Fix
this by initializing this pointer.

Link: https://lore.kernel.org/r/1620912469-52222-2-git-send-email-liuqi115@huawei.com
Signed-off-by: Junhao He <hejunhao2@hisilicon.com>
Signed-off-by: Qi Liu <liuqi115@huawei.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Fixes: 6d578258b955 ("coresight: Make sysfs functional on topologies with per core sink")
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index a7971c68b0be..20ea4aa619f0 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -608,7 +608,7 @@ static struct coresight_device *
 coresight_find_enabled_sink(struct coresight_device *csdev)
 {
 	int i;
-	struct coresight_device *sink;
+	struct coresight_device *sink = NULL;
 
 	if ((csdev->type == CORESIGHT_DEV_TYPE_SINK ||
 	     csdev->type == CORESIGHT_DEV_TYPE_LINKSINK) &&
-- 
2.25.1


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

* [PATCH 3/6] coresight: core: Remove unnecessary assignment
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 1/6] coresight: core: Switch to krealloc_array() Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 2/6] coresight: core: Fix use of uninitialized pointer Mathieu Poirier
@ 2021-06-14 17:58 ` Mathieu Poirier
  2021-06-14 17:58 ` [PATCH 4/6] coresight: etm4x: core: Remove redundant check of attr Mathieu Poirier
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:58 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Junhao He <hejunhao2@hisilicon.com>

Remove unnecessary assignment of "path" in coresight_release_path().

Link: https://lore.kernel.org/r/1620912469-52222-3-git-send-email-liuqi115@huawei.com
Signed-off-by: Junhao He <hejunhao2@hisilicon.com>
Signed-off-by: Qi Liu <liuqi115@huawei.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-core.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index 20ea4aa619f0..3cb8680c5828 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -886,7 +886,6 @@ void coresight_release_path(struct list_head *path)
 	}
 
 	kfree(path);
-	path = NULL;
 }
 
 /* return true if the device is a suitable type for a default sink */
-- 
2.25.1


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

* [PATCH 4/6] coresight: etm4x: core: Remove redundant check of attr
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
                   ` (2 preceding siblings ...)
  2021-06-14 17:58 ` [PATCH 3/6] coresight: core: Remove unnecessary assignment Mathieu Poirier
@ 2021-06-14 17:58 ` Mathieu Poirier
  2021-06-14 17:59 ` [PATCH 5/6] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() Mathieu Poirier
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:58 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Junhao He <hejunhao2@hisilicon.com>

"attr" is checked by perf framework, so remove the redundant check in
etm4_parse_event_config().

Link: https://lore.kernel.org/r/1620912469-52222-4-git-send-email-liuqi115@huawei.com
Signed-off-by: Junhao He <hejunhao2@hisilicon.com>
Signed-off-by: Qi Liu <liuqi115@huawei.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-etm4x-core.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
index db881993c211..da27cd4a3c38 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -568,11 +568,6 @@ static int etm4_parse_event_config(struct etmv4_drvdata *drvdata,
 	struct etmv4_config *config = &drvdata->config;
 	struct perf_event_attr *attr = &event->attr;
 
-	if (!attr) {
-		ret = -EINVAL;
-		goto out;
-	}
-
 	/* Clear configuration from previous run */
 	memset(config, 0, sizeof(struct etmv4_config));
 
-- 
2.25.1


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

* [PATCH 5/6] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer()
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
                   ` (3 preceding siblings ...)
  2021-06-14 17:58 ` [PATCH 4/6] coresight: etm4x: core: Remove redundant check of attr Mathieu Poirier
@ 2021-06-14 17:59 ` Mathieu Poirier
  2021-06-14 17:59 ` [PATCH 6/6] coresight: Propagate symlink failure Mathieu Poirier
  2021-06-15  7:31 ` [PATCH 0/6] coresight: Patches for v5.14 Greg KH
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:59 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>

commit 6f755e85c332 ("coresight: Add helper for inserting synchronization
packets") removed trailing '\0' from barrier_pkt array and updated the
call sites like etb_update_buffer() to have proper checks for barrier_pkt
size before read but missed updating tmc_update_etf_buffer() which still
reads barrier_pkt past the array size resulting in KASAN out-of-bounds
bug. Fix this by adding a check for barrier_pkt size before accessing
like it is done in etb_update_buffer().

 BUG: KASAN: global-out-of-bounds in tmc_update_etf_buffer+0x4b8/0x698
 Read of size 4 at addr ffffffd05b7d1030 by task perf/2629

 Call trace:
  dump_backtrace+0x0/0x27c
  show_stack+0x20/0x2c
  dump_stack+0x11c/0x188
  print_address_description+0x3c/0x4a4
  __kasan_report+0x140/0x164
  kasan_report+0x10/0x18
  __asan_report_load4_noabort+0x1c/0x24
  tmc_update_etf_buffer+0x4b8/0x698
  etm_event_stop+0x248/0x2d8
  etm_event_del+0x20/0x2c
  event_sched_out+0x214/0x6f0
  group_sched_out+0xd0/0x270
  ctx_sched_out+0x2ec/0x518
  __perf_event_task_sched_out+0x4fc/0xe6c
  __schedule+0x1094/0x16a0
  preempt_schedule_irq+0x88/0x170
  arm64_preempt_schedule_irq+0xf0/0x18c
  el1_irq+0xe8/0x180
  perf_event_exec+0x4d8/0x56c
  setup_new_exec+0x204/0x400
  load_elf_binary+0x72c/0x18c0
  search_binary_handler+0x13c/0x420
  load_script+0x500/0x6c4
  search_binary_handler+0x13c/0x420
  exec_binprm+0x118/0x654
  __do_execve_file+0x77c/0xba4
  __arm64_compat_sys_execve+0x98/0xac
  el0_svc_common+0x1f8/0x5e0
  el0_svc_compat_handler+0x84/0xb0
  el0_svc_compat+0x10/0x50

 The buggy address belongs to the variable:
  barrier_pkt+0x10/0x40

 Memory state around the buggy address:
  ffffffd05b7d0f00: fa fa fa fa 04 fa fa fa fa fa fa fa 00 00 00 00
  ffffffd05b7d0f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 >ffffffd05b7d1000: 00 00 00 00 00 00 fa fa fa fa fa fa 00 00 00 03
                                      ^
  ffffffd05b7d1080: fa fa fa fa 00 02 fa fa fa fa fa fa 03 fa fa fa
  ffffffd05b7d1100: fa fa fa fa 00 00 00 00 05 fa fa fa fa fa fa fa
 ==================================================================

Link: https://lore.kernel.org/r/20210505093430.18445-1-saiprakash.ranjan@codeaurora.org
Fixes: 0c3fc4d5fa26 ("coresight: Add barrier packet for synchronisation")
Cc: stable@vger.kernel.org
Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c
index 45b85edfc690..cd0fb7bfba68 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-etf.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c
@@ -530,7 +530,7 @@ static unsigned long tmc_update_etf_buffer(struct coresight_device *csdev,
 		buf_ptr = buf->data_pages[cur] + offset;
 		*buf_ptr = readl_relaxed(drvdata->base + TMC_RRD);
 
-		if (lost && *barrier) {
+		if (lost && i < CORESIGHT_BARRIER_PKT_SIZE) {
 			*buf_ptr = *barrier;
 			barrier++;
 		}
-- 
2.25.1


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

* [PATCH 6/6] coresight: Propagate symlink failure
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
                   ` (4 preceding siblings ...)
  2021-06-14 17:59 ` [PATCH 5/6] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() Mathieu Poirier
@ 2021-06-14 17:59 ` Mathieu Poirier
  2021-06-15  7:31 ` [PATCH 0/6] coresight: Patches for v5.14 Greg KH
  6 siblings, 0 replies; 8+ messages in thread
From: Mathieu Poirier @ 2021-06-14 17:59 UTC (permalink / raw)
  To: gregkh; +Cc: linux-arm-kernel, linux-kernel

From: Jeremy Linton <jeremy.linton@arm.com>

If the symlink is unable to be created, the driver goes
ahead and continues device creation. Instead lets propagate
the failure, and fail the probe.

Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Link: https://lore.kernel.org/r/20210526204042.2681700-1-jeremy.linton@arm.com
Fixes: 8a7365c2d418 ("coresight: Expose device connections via sysfs")
Cc: stable@vger.kernel.org
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
 drivers/hwtracing/coresight/coresight-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwtracing/coresight/coresight-core.c b/drivers/hwtracing/coresight/coresight-core.c
index 3cb8680c5828..1002605db8ba 100644
--- a/drivers/hwtracing/coresight/coresight-core.c
+++ b/drivers/hwtracing/coresight/coresight-core.c
@@ -1391,7 +1391,7 @@ static int coresight_fixup_device_conns(struct coresight_device *csdev)
 		}
 	}
 
-	return 0;
+	return ret;
 }
 
 static int coresight_remove_match(struct device *dev, void *data)
-- 
2.25.1


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

* Re: [PATCH 0/6] coresight: Patches for v5.14
  2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
                   ` (5 preceding siblings ...)
  2021-06-14 17:59 ` [PATCH 6/6] coresight: Propagate symlink failure Mathieu Poirier
@ 2021-06-15  7:31 ` Greg KH
  6 siblings, 0 replies; 8+ messages in thread
From: Greg KH @ 2021-06-15  7:31 UTC (permalink / raw)
  To: Mathieu Poirier; +Cc: linux-arm-kernel, linux-kernel

On Mon, Jun 14, 2021 at 11:58:55AM -0600, Mathieu Poirier wrote:
> Good day Greg,
> 
> A small tally this time around - there might be a part 2 but that is not
> clear at the moment.  Applies cleanly on today's char-misc-next
> (db4e54aefdfe).

For some reason I got patch 0/6 3 times, but I've only applied this
series once :)

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

end of thread, other threads:[~2021-06-15  7:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-14 17:58 [PATCH 0/6] coresight: Patches for v5.14 Mathieu Poirier
2021-06-14 17:58 ` [PATCH 1/6] coresight: core: Switch to krealloc_array() Mathieu Poirier
2021-06-14 17:58 ` [PATCH 2/6] coresight: core: Fix use of uninitialized pointer Mathieu Poirier
2021-06-14 17:58 ` [PATCH 3/6] coresight: core: Remove unnecessary assignment Mathieu Poirier
2021-06-14 17:58 ` [PATCH 4/6] coresight: etm4x: core: Remove redundant check of attr Mathieu Poirier
2021-06-14 17:59 ` [PATCH 5/6] coresight: tmc-etf: Fix global-out-of-bounds in tmc_update_etf_buffer() Mathieu Poirier
2021-06-14 17:59 ` [PATCH 6/6] coresight: Propagate symlink failure Mathieu Poirier
2021-06-15  7:31 ` [PATCH 0/6] coresight: Patches for v5.14 Greg KH

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).