From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 206963A1D2 for ; Mon, 23 Feb 2026 13:28:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771853288; cv=none; b=Ig4Mp+xzGRPUAczewggxj+2sY0s0o2uAH729PQITkJ72swtsgyBWXWyu+1H/TiIc+/KAXkxW2Wu6H05b14frrXrPxBxMMrEU+iJzGSt3Qb7zLGt+RfcgHM7cchZ4MA04DLxp3q7qCOq1CSrNVx0wXbmu618ALlMGRwodYL5dOM0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771853288; c=relaxed/simple; bh=HszFqmYUwSfNSDUaBNAek2XzmgeT+hqsTqblyQA1GJ0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=oLX9zXK5McVmtTflIWkzwB3K64p9fuHtoI4sxZ8GH10i2uTKKyKA9OWE4Y6nomyXfWpe0M45xaIa7jwkvTgopSpdSLeCyv8hL1+R55sH9VqvL1AXd8smFgsXas8FNU8iuOn8CAZ/WBlPgpamAraJBPg/hAVXQVWVes24u3CQ14w= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0B0E4339; Mon, 23 Feb 2026 05:28:00 -0800 (PST) Received: from [10.57.13.34] (unknown [10.57.13.34]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id DCAF93F59E; Mon, 23 Feb 2026 05:28:04 -0800 (PST) Message-ID: Date: Mon, 23 Feb 2026 13:28:03 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v4 0/8] coresight: Fix device registration and unregistration Content-Language: en-GB To: Leo Yan , Mike Leach , James Clark , Alexander Shishkin , Greg Kroah-Hartman , Mathieu Poirier , Mao Jinlong Cc: coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20260209-arm_coresight_refactor_dev_register-v4-0-62d6042f76f7@arm.com> From: Suzuki K Poulose In-Reply-To: <20260209-arm_coresight_refactor_dev_register-v4-0-62d6042f76f7@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Leo On 09/02/2026 12:44, Leo Yan wrote: > This series is to fix and refactor CoreSight device registration and > unregistration, it can be divided into three small parts: > > Patches 01-03: Three fixes for memory leak, device reference and mutex > protection. > Patches 04-05: Move connection cleanup operations into > coresight_remove_conns(). > Patches 06-08: Refactor error handling in coresight_register(). > > This series is verified on Juno board. > I get the following splat with LOCKDEP, with the series applied, on Juno. Here is how I reproduced it : root@juno-server:~# for m in coresight_etm4x coresight_stm coresight_cti coresight_cpu_debug coresight_tmc coresight_funnel coresight_replicator coresight; do modprobe $m; done root@juno-server:~# for m in coresight_etm4x coresight_stm coresight_cti coresight_cpu_debug coresight_tmc coresight_funnel coresight_replicator coresight; do modprobe -r $m; done [ 826.897923] ====================================================== [ 826.904111] WARNING: possible circular locking dependency detected [ 826.910300] 7.0.0-rc1+ #429 Not tainted [ 826.914141] ------------------------------------------------------ [ 826.920328] modprobe/489 is trying to acquire lock: [ 826.925211] ffffffc07bfd85e8 (ect_mutex){+.+.}-{4:4}, at: cti_device_release+0x3c/0x128 [coresight_cti] [ 826.934650] [ 826.934650] but task is already holding lock: [ 826.940488] ffffffc07bf9b980 (coresight_mutex){+.+.}-{4:4}, at: coresight_unregister+0x50/0x218 [coresight] [ 826.950283] [ 826.950283] which lock already depends on the new lock. [ 826.950283] [ 826.958471] [ 826.958471] the existing dependency chain (in reverse order) is: [ 826.965962] [ 826.965962] -> #1 (coresight_mutex){+.+.}-{4:4}: [ 826.972073] __mutex_lock+0xb0/0x8e0 [ 826.976181] mutex_lock_nested+0x2c/0x40 [ 826.980634] coresight_add_helper+0x58/0x108 [coresight] [ 826.986494] cti_probe+0x294/0x440 [coresight_cti] [ 826.991819] amba_probe+0x11c/0x1d0 [ 826.995837] really_probe+0xc8/0x3f0 [ 826.999940] __driver_probe_device+0x88/0x190 [ 827.004825] driver_probe_device+0x48/0x120 [ 827.009535] __driver_attach+0x168/0x2b0 [ 827.013984] bus_for_each_dev+0x7c/0xe8 [ 827.018346] driver_attach+0x2c/0x40 [ 827.022446] bus_add_driver+0x128/0x258 [ 827.026808] driver_register+0x68/0x138 [ 827.031170] __amba_driver_register+0x2c/0x48 [ 827.036054] debug_runtime_resume+0x30/0x78 [coresight_cpu_debug] [ 827.042680] do_one_initcall+0x6c/0x520 [ 827.047044] do_init_module+0x60/0x268 [ 827.051322] load_module+0x1f30/0x2128 [ 827.055600] init_module_from_file+0xdc/0x100 [ 827.060487] idempotent_init_module+0x190/0x290 [ 827.065548] __arm64_sys_finit_module+0x74/0xf8 [ 827.070604] invoke_syscall.constprop.0+0x58/0xf8 [ 827.075841] do_el0_svc+0x48/0xd0 [ 827.079683] el0_svc+0x5c/0x360 [ 827.083348] el0t_64_sync_handler+0xa0/0xe8 [ 827.088057] el0t_64_sync+0x198/0x1a0 [ 827.092245] [ 827.092245] -> #0 (ect_mutex){+.+.}-{4:4}: [ 827.097834] __lock_acquire+0x12e8/0x1ce0 [ 827.102370] lock_acquire+0x1c4/0x400 [ 827.106557] __mutex_lock+0xb0/0x8e0 [ 827.110659] mutex_lock_nested+0x2c/0x40 [ 827.115109] cti_device_release+0x3c/0x128 [coresight_cti] [ 827.121129] device_release+0x3c/0xa0 [ 827.125319] kobject_put+0xb8/0x280 [ 827.129334] device_unregister+0x34/0x98 [ 827.133785] coresight_unregister+0x1b0/0x218 [coresight] [ 827.139730] cti_remove+0xac/0xe8 [coresight_cti] [ 827.144966] amba_remove+0x38/0x138 [ 827.148981] device_remove+0x54/0x90 [ 827.153081] device_release_driver_internal+0x1e8/0x250 [ 827.158836] driver_detach+0x58/0xa8 [ 827.162938] bus_remove_driver+0x78/0x108 [ 827.167474] driver_unregister+0x38/0x70 [ 827.171923] amba_driver_unregister+0x18/0x30 [ 827.176807] cti_exit+0x1c/0xe90 [coresight_cti] [ 827.181955] __arm64_sys_delete_module+0x1bc/0x2f0 [ 827.187274] invoke_syscall.constprop.0+0x58/0xf8 [ 827.192509] do_el0_svc+0x48/0xd0 [ 827.196352] el0_svc+0x5c/0x360 [ 827.200016] el0t_64_sync_handler+0xa0/0xe8 [ 827.204725] el0t_64_sync+0x198/0x1a0 [ 827.208911] [ 827.208911] other info that might help us debug this: [ 827.208911] [ 827.216924] Possible unsafe locking scenario: [ 827.216924] [ 827.222849] CPU0 CPU1 [ 827.227380] ---- ---- [ 827.231912] lock(coresight_mutex); [ 827.235491] lock(ect_mutex); [ 827.241073] lock(coresight_mutex); [ 827.247176] lock(ect_mutex); [ 827.250233] [ 827.250233] *** DEADLOCK *** [ 827.250233] [ 827.256158] 2 locks held by modprobe/489: [ 827.260170] #0: ffffff88015488f0 (&dev->mutex){....}-{4:4}, at: device_release_driver_internal+0x48/0x250 [ 827.269858] #1: ffffffc07bf9b980 (coresight_mutex){+.+.}-{4:4}, at: coresight_unregister+0x50/0x218 [coresight] [ 827.280084] [ 827.280084] stack backtrace: [ 827.284444] CPU: 1 UID: 0 PID: 489 Comm: modprobe Not tainted 7.0.0-rc1+ #429 PREEMPT [ 827.292377] Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform, BIOS EDK II Feb 1 2019 [ 827.303176] Call trace: [ 827.305621] show_stack+0x20/0x38 (C) [ 827.309290] dump_stack_lvl+0x90/0xd0 [ 827.312960] dump_stack+0x18/0x28 [ 827.316281] print_circular_bug+0x294/0x378 [ 827.320474] check_noncircular+0x15c/0x170 [ 827.324579] __lock_acquire+0x12e8/0x1ce0 [ 827.328593] lock_acquire+0x1c4/0x400 [ 827.332258] __mutex_lock+0xb0/0x8e0 [ 827.335838] mutex_lock_nested+0x2c/0x40 [ 827.339768] cti_device_release+0x3c/0x128 [coresight_cti] [ 827.345267] device_release+0x3c/0xa0 [ 827.348935] kobject_put+0xb8/0x280 [ 827.352429] device_unregister+0x34/0x98 [ 827.356358] coresight_unregister+0x1b0/0x218 [coresight] [ 827.361783] cti_remove+0xac/0xe8 [coresight_cti] [ 827.366498] amba_remove+0x38/0x138 [ 827.369991] device_remove+0x54/0x90 [ 827.373571] device_release_driver_internal+0x1e8/0x250 [ 827.378804] driver_detach+0x58/0xa8 [ 827.382384] bus_remove_driver+0x78/0x108 [ 827.386399] driver_unregister+0x38/0x70 [ 827.390327] amba_driver_unregister+0x18/0x30 [ 827.394690] cti_exit+0x1c/0xe90 [coresight_cti] [ 827.399318] __arm64_sys_delete_module+0x1bc/0x2f0 [ 827.404115] invoke_syscall.constprop.0+0x58/0xf8 [ 827.408829] do_el0_svc+0x48/0xd0 [ 827.412151] el0_svc+0x5c/0x360 [ 827.415293] el0t_64_sync_handler+0xa0/0xe8 [ 827.419481] el0t_64_sync+0x198/0x1a0 Kind regards Suzuki