Subject: Re: [PATCH 1/5] coresight: Fix DEBUG_LOCKS_WARN_ON for uninitialized attribute

From: Mathieu Poirier <[email-masked]>
Date: Mon, 29 Jul 2019 10:27:34 -0600

Hi Suzuki,

On Wed, Jul 24, 2019 at 12:43:08PM +0100, Suzuki K Poulose wrote:
> While running the linux-nex with CONFIG_DEBUG_LOCKS_ALLOC enabled,
> I get the following splat.
> 
>  BUG: key ffffcb5636929298 has not been registered!
>  ------------[ cut here ]------------
>  DEBUG_LOCKS_WARN_ON(1)
>  WARNING: CPU: 1 PID: 53 at kernel/locking/lockdep.c:3669 lockdep_init_map+0x164/0x1f0
>  CPU: 1 PID: 53 Comm: kworker/1:1 Tainted: G        W         5.2.0-next-20190712-00015-g00ad4634222e-dirty #603
>  Workqueue: events amba_deferred_retry_func
>  pstate: 60c00005 (nZCv daif +PAN +UAO)
>  pc : lockdep_init_map+0x164/0x1f0
>  lr : lockdep_init_map+0x164/0x1f0
> 
>  [ trimmed ]
> 
>  Call trace:
>   lockdep_init_map+0x164/0x1f0
>   __kernfs_create_file+0x9c/0x158
>   sysfs_add_file_mode_ns+0xa8/0x1d0
>   sysfs_add_file_to_group+0x88/0xd8
>   etm_perf_add_symlink_sink+0xcc/0x138
>   coresight_register+0x110/0x280
>   tmc_probe+0x160/0x420
> 
>  [ trimmed ]
> 
>  ---[ end trace ab4cc669615ba1b0 ]---
> 
> Fix this by initialising the dynamically allocated attribute properly.
> 
> Cc: Mathieu Poirier <[email-masked]>
> Fixes: bb8e370bdc141ddf ("coresight: perf: Add "sinks" group to PMU directory")
> Signed-off-by: Suzuki K Poulose <[email-masked]>
> ---
>  drivers/hwtracing/coresight/coresight-etm-perf.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
> index 5c1ca0df5cb0..84f1dcb69827 100644
> --- a/drivers/hwtracing/coresight/coresight-etm-perf.c
> +++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
> @@ -544,6 +544,7 @@ int etm_perf_add_symlink_sink(struct coresight_device *csdev)
>  	/* See function coresight_get_sink_by_id() to know where this is used */
>  	hash = hashlen_hash(hashlen_string(NULL, name));
>  
> +	sysfs_attr_init(&ea->attr.attr);
>  	ea->attr.attr.name = devm_kstrdup(dev, name, GFP_KERNEL);
>  	if (!ea->attr.attr.name)
>  		return -ENOMEM;

I've picked this up and marked it for stable.

Thanks,
Mathieu

> -- 
> 2.21.0

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel