From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id BD3BFD2E014 for ; Fri, 5 Dec 2025 07:21:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF28B6B0100; Fri, 5 Dec 2025 02:20:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D2CCC6B0107; Fri, 5 Dec 2025 02:20:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9AAAE6B0100; Fri, 5 Dec 2025 02:20:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4B8F26B0102 for ; Fri, 5 Dec 2025 02:20:07 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 14282B9A3F for ; Fri, 5 Dec 2025 07:20:07 +0000 (UTC) X-FDA: 84184568454.28.D23076F Received: from invmail4.hynix.com (exvmail4.hynix.com [166.125.252.92]) by imf05.hostedemail.com (Postfix) with ESMTP id 0AB9B100002 for ; Fri, 5 Dec 2025 07:20:04 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; spf=pass (imf05.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1764919205; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references; bh=6nNwRR7vhX7GyiunJztJ9JfRw82BcRcfaOEiqyJcFBk=; b=mqOO1mFrqVrlWMfNC1RWN3PtslQ9M5J97chUUQAsUOGpF+a+q6jBKukYT+40IxEWQUulCD oVa0WyKn7wMsLWVkgeLba+gTc9pxbhLx81HlObHt94a1nf5phtCqyejJVO3p/qqdj1sBpO OlSk2jlScgdb/PsfxSij/YPoW6ZJKx0= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1764919205; a=rsa-sha256; cv=none; b=rfX3jO5NYjSdgVpxVzp+4yKB51TQSsFPG3ldjsfE2M0G55axYVF51rHZn0pX/ciJhBepzi FhCDFIBMSQXdompzrnWjDorpDlTp0yxWN6Y2TPZDGfIgj593ESiz3PLAPEQ0DlbpU1RgjQ iL2WVCXRqBZ5ld9dXpgLRQbCy+NcicA= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=none; spf=pass (imf05.hostedemail.com: domain of byungchul@sk.com designates 166.125.252.92 as permitted sender) smtp.mailfrom=byungchul@sk.com; dmarc=none X-AuditID: a67dfc5b-c45ff70000001609-81-693287750bc6 From: Byungchul Park To: linux-kernel@vger.kernel.org Cc: kernel_team@skhynix.com, torvalds@linux-foundation.org, damien.lemoal@opensource.wdc.com, linux-ide@vger.kernel.org, adilger.kernel@dilger.ca, linux-ext4@vger.kernel.org, mingo@redhat.com, peterz@infradead.org, will@kernel.org, tglx@linutronix.de, rostedt@goodmis.org, joel@joelfernandes.org, sashal@kernel.org, daniel.vetter@ffwll.ch, duyuyang@gmail.com, johannes.berg@intel.com, tj@kernel.org, tytso@mit.edu, willy@infradead.org, david@fromorbit.com, amir73il@gmail.com, gregkh@linuxfoundation.org, kernel-team@lge.com, linux-mm@kvack.org, akpm@linux-foundation.org, mhocko@kernel.org, minchan@kernel.org, hannes@cmpxchg.org, vdavydov.dev@gmail.com, sj@kernel.org, jglisse@redhat.com, dennis@kernel.org, cl@linux.com, penberg@kernel.org, rientjes@google.com, vbabka@suse.cz, ngupta@vflare.org, linux-block@vger.kernel.org, josef@toxicpanda.com, linux-fsdevel@vger.kernel.org, jack@suse.cz, jlayton@kernel.org, dan.j.williams@intel.com, hch@infradead.org, djwong@kernel.org, dri-devel@lists.freedesktop.org, rodrigosiqueiramelo@gmail.com, melissa.srw@gmail.com, hamohammed.sa@gmail.com, harry.yoo@oracle.com, chris.p.wilson@intel.com, gwan-gyeong.mun@intel.com, max.byungchul.park@gmail.com, boqun.feng@gmail.com, longman@redhat.com, yunseong.kim@ericsson.com, ysk@kzalloc.com, yeoreum.yun@arm.com, netdev@vger.kernel.org, matthew.brost@intel.com, her0gyugyu@gmail.com, corbet@lwn.net, catalin.marinas@arm.com, bp@alien8.de, x86@kernel.org, hpa@zytor.com, luto@kernel.org, sumit.semwal@linaro.org, gustavo@padovan.org, christian.koenig@amd.com, andi.shyti@kernel.org, arnd@arndb.de, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, rppt@kernel.org, surenb@google.com, mcgrof@kernel.org, petr.pavlu@suse.com, da.gomez@kernel.org, samitolvanen@google.com, paulmck@kernel.org, frederic@kernel.org, neeraj.upadhyay@kernel.org, joelagnelf@nvidia.com, josh@joshtriplett.org, urezki@gmail.com, mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com, qiang.zhang@linux.dev, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, vschneid@redhat.com, chuck.lever@oracle.com, neil@brown.name, okorniev@redhat.com, Dai.Ngo@oracle.com, tom@talpey.com, trondmy@kernel.org, anna@kernel.org, kees@kernel.org, bigeasy@linutronix.de, clrkwllms@kernel.org, mark.rutland@arm.com, ada.coupriediaz@arm.com, kristina.martsenko@arm.com, wangkefeng.wang@huawei.com, broonie@kernel.org, kevin.brodsky@arm.com, dwmw@amazon.co.uk, shakeel.butt@linux.dev, ast@kernel.org, ziy@nvidia.com, yuzhao@google.com, baolin.wang@linux.alibaba.com, usamaarif642@gmail.com, joel.granados@kernel.org, richard.weiyang@gmail.com, geert+renesas@glider.be, tim.c.chen@linux.intel.com, linux@treblig.org, alexander.shishkin@linux.intel.com, lillian@star-ark.net, chenhuacai@kernel.org, francesco@valla.it, guoweikang.kernel@gmail.com, link@vivo.com, jpoimboe@kernel.org, masahiroy@kernel.org, brauner@kernel.org, thomas.weissschuh@linutronix.de, oleg@redhat.com, mjguzik@gmail.com, andrii@kernel.org, wangfushuai@baidu.com, linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linaro-mm-sig@lists.linaro.org, linux-i2c@vger.kernel.org, linux-arch@vger.kernel.org, linux-modules@vger.kernel.org, rcu@vger.kernel.org, linux-nfs@vger.kernel.org, linux-rt-devel@lists.linux.dev, 2407018371@qq.com, dakr@kernel.org, miguel.ojeda.sandonis@gmail.com, neilb@ownmail.net, bagasdotme@gmail.com, wsa+renesas@sang-engineering.com, dave.hansen@intel.com, geert@linux-m68k.org, ojeda@kernel.org, alex.gaynor@gmail.com, gary@garyguo.net, bjorn3_gh@protonmail.com, lossin@kernel.org, a.hindborg@kernel.org, aliceryhl@google.com, tmgross@umich.edu, rust-for-linux@vger.kernel.org Subject: [PATCH v18 38/42] rcu/update: fix same dept key collision between various types of RCU Date: Fri, 5 Dec 2025 16:18:51 +0900 Message-Id: <20251205071855.72743-39-byungchul@sk.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20251205071855.72743-1-byungchul@sk.com> References: <20251205071855.72743-1-byungchul@sk.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzWSb0xbZRTGfe9933svlZpr3cKVxcw0khkiCPtjzgdd+GJ8TdSYqDFxH7Cu N1JXuqXlz5gOO2i3igUBZQt0GwxZrbQgFJNtzHYbbB2EEboBrpvMwlzAWWARKJWygYVlX05+ 53nOeT49AqsKkVRBZyiQjQaNXs0psGIm+VRG0ZGtuqzeegw269cwFr5HILpgw/DIcYYHm7ee QN/NMgyxZQcL1nOrCaM2wEMoeIEFz6+HGJjvWOEg0juH4IHTjmD1zhQDznsrDDw6ugeWB4dY mLs/jsDnKuOgv+5bDmY7OGgq8xG4fi2C4ISjFsHkbR8Dbu+7EHZOYhiobmbg2H0OjnamgONY OZMYfzNQ13aegSVnKw+OwWECd10NPDycyIaAe4qH9pkhAuGrhwmcMY/z4L11BcHCyAQDHvsk C7buKAbvX78TOHW4BUP9yTEOfvP1YwicvcvAcPdxDv70rBIwO2IEbriDGH6ZCjEwEOjD0N/w M4ah7jYCE+MhAl2D11hYrNoEwZpKAm2zzVyOlsasVZh6TnoQXY7XIrpwupyl1urE2jv9gKWW rmJ6emCao/HoKEdbvokztGYwg55ruMNTi/82T5u8hdRyeYbQLlf6+698onhdK+t1RbLx1Z2f KvL+i7fz+0Z27v938RkzGsqqQEmCJG6X2tpj+AnbO4NkjTlxixQKLbFrvEF8UeqqnEzoCoEV hzdLR5aq1o3nxFypdawPrTEW06Qr5xsSLAhK8TXJ/Ufp48zNkrvj4vp5UkKuuxlfZ5W4Q2qs iK1nSuKPSdK0+Sf+8cPz0iVXCFcjZRN6qhWpdIaifI1Ovz0zr8Sg25+5e2++FyX65jz4cNdZ NBf8oAeJAlInKy8WZ+tURFNkKsnvQZLAqjcop/VZOpVSqyk5IBv35hoL9bKpB20SsDpFuXWx WKsSP9cUyHtkeZ9sfOIyQlKqGW3bMrsy/4OMTqjT/bnU8DYdrS+NFOQGCr/IeO+rlzYa3tBH Fu3NOz4svZrdqK70d3ycc6ORhsMGzjJiqtvme6t8V0X02ac92E7m/NGc499HvnzTYjKqDnzn Shst3+3PHHmBb2EOpWrn/7mVZq1IzkqxHfysc6Hm5Z53Ppp1qK4r1diUp8lOZ40mzf9YmInF awMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAAzWSbUhTcRTG+997d+91NL0soZt9qAZRBJlFxYFMDHq5Fb1AbxBRjrzlcJux laWQNW1pZTFHm+QqdeaKaeVLWSarpWSWWTOrWWkqLF9wZdmmbrbsavTl8DvP85zD+XBoXFoj iqIV6qO8Ri1XykgxId66KmvxsexlipjR59MhR38KOro8IvigcxLg9+UQcPVuOQkhywMKcqqu iKDJnUmA604Zgi5/DoLRcQsO+toJAkLGRgp8gc8UmHQIJhyNCMytRhzaXU9wKL+nw+BXxR8S BhuGEZh6PCTkD+gIGLLlIijotVAw8GwDfOuqE8FEZx8G7hEvApvnDwYeZzaCkDkZCq3Vwrj5 BwnjLW9wyDe5EBT3dOIwPNCN4F7jFwSOW5kkfDXcx6HNEw7v/EMkvDBdIOFb61UMvleQUJTp EEHrq0EE1yxGBL2fHBhkldwlwXytioDa7kcUtA7+xqDDbMSgrGoLdNl6CWg2WDHhXCFVORMs +VmYUPoxMN2uwyBgs1PxpYgb1V8iOHt1Dcbp34ZIrvx6OeLGg0bE+UqzcE5vENoG7xDOnak+ zpU2e0ku6H9Pco6RIoJ7aWW5G+eCGJfXspirLeiktq/ZK45N5JWKVF6zJC5BnDQWvEMdeRd3 4udI+Gn0JuY8CqNZZjmbW+kSTTLJLGDb2wP4JEcyc9nqi72CLqZxpm0Omx24NGXMYA6w9o4m NMkEM599VlcgME1LmJVs2eeMfzvnsGUVzql4mCCb3MEpljIr2MLzoyIDEhehaXYUqVCnquQK 5YpobXJSmlpxIvpgiqoKCd9kO/k77yHytW2oRwyNZNMlzuNLFVKRPFWbpqpHLI3LIiVeZYxC KkmUp6XzmpQDmmNKXluPZtOEbKZk0x4+Qcoclh/lk3n+CK/572J0WNRp9LRvy6sWkyN9s7Rv 7ay+1Y9vmfE4dbJV4nbVDE87tWm/lBnbvMMYEb7GsHDb5YW3x/iP0XnuWEnHoTNNexfIXhz2 Xdbpetqw/bPiI/YtL1mnyldtPEet25nNFjfgduv8wUwmN4X8Htj1pb95d/cu3vk6kc7I8M6L jV8fezPkP9ssI7RJ8qWLcI1W/heZU/cPSQMAAA== X-CFilter-Loop: Reflected X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 0AB9B100002 X-Stat-Signature: odpiaxi8yif7uaeaejaq5y3j95uwdkkk X-Rspam-User: X-HE-Tag: 1764919204-191359 X-HE-Meta: U2FsdGVkX1+8t09OIKToi35oSzjio4sKQ8FyqmfoLullgxhiyEFw8QHmhUE+SzQvtioz2jKWL8yXp9K1ph87WlYSYueI39HFnPd+X8w1nAWV7Hz4oV9edIOUAbB/mEx/OQ00oBNB1yDnzdNySBpIuxo+5QumsJF88YWg/95Hl0Pt+6186KyYShffOo/oGosCO5S4gUYRi91BqXDkX4RawhRlPVvvoYA7vJAd0vfxOM2drkEfeod5eGmjrilSkqpgrnBmmidgeFydbtYCAasiCq22z42lVBN32Ivjtdun+pbB2pT2tTMppGoX7nCaCLUPVwuHW/75TId8Teon3sMt5vjnqrEdC4WH6FL0wrEMYLN9SUqlA35RK5ayIxdBInq8zRzscAOMjOPxkantZhLoPv91HWsUHQIB64K78qO8r8ceu47vqWMRpfxPEIuUxHUFFAFCFscVSt31qfYKKS7fDzat46Z/HLLjUUrq/S3kJrBN81o38mFi6ygIEP5x13FED1HOFqisgU2jn/2wcJrd6o6aahlok48qrCyfFWST4JnD6xko348ehV/w2073IwOcQxFlfhSDWJlLgxBgR/VR6bc+tA8hSFdtlq2kHD1C+II28kOI3y/7TjG8A5hD7W2dCmWGUsyewP2NeirebVUXX6a6wZOdg+/jelWy+yodirIeeZ3ExgY048G9+/ZF5ALiDSuXZBbHnTNrPo4b3Gjukl8TuxWRSXLmhaTv9tpaRRai41abpwyIQuS5I2dRZ8QJEN+pgR4LCLLBPX2lsnpo/2GEsbD4gIKJYr3fEdML8Qs6+PczaGdZicJQ/WDyv+JBhgINXr4hxZALR+Sz/FPhxQEArW/eOwcXAiVn/BW1OdQa96kpKTUPcyBiACR+JYQrSv7Bjd5hEBoY17IHBJ+T7y3blSkfebYlLnxmRWMXVE3dHPWwh9R+N79zKWzglPiJSi61DoZYlLRjX67ReNh 5hsSRGxJ UxNDhJrxyzfwa6XMOt3+T8vgYrmORpAB1ytNoPln8z5gJ90JqgRJqTsf1/e3JagYhfmKTnxQBbvPIQ/HeemYtA4EC8YVFM0w02SfDD5NE/bXtcF0CK2l68NTOfpQgVW0Y4v2kM/NzGOdg3EI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Yunseong Kim The current implementation shares the same dept key for multiple synchronization points, which can lead to false positive reports in dependency tracking and potential confusion in debugging. For example, both normal RCU and tasks trace RCU synchronization points use the same dept key. Specifically: 1. synchronize_rcu() uses a dept key embedded in __wait_rcu_gp(): synchronize_rcu() synchronize_rcu_normal() _wait_rcu_gp() __wait_rcu_gp() <- the key as static variable 2. synchronize_rcu_tasks_trace() uses the dept key, too: synchronize_rcu_tasks_trace() synchronize_rcu_tasks_generic() _wait_rcu_gp() __wait_rcu_gp() <- the key as static variable Since the both rely on the same dept key, dept may report false positive circular dependency. To resolve this, separate dept keys and maps should be assigned to each struct rcu_synchronize. =================================================== DEPT: Circular dependency has been detected. 6.15.0-rc6-00042-ged94bafc6405 #2 Not tainted --------------------------------------------------- summary --------------------------------------------------- *** DEADLOCK *** context A [S] lock(cpu_hotplug_lock:0) [W] __wait_rcu_gp(:0) [E] unlock(cpu_hotplug_lock:0) context B [S] (unknown)(:0) [W] lock(cpu_hotplug_lock:0) [E] try_to_wake_up(:0) [S]: start of the event context [W]: the wait blocked [E]: the event not reachable --------------------------------------------------- context A's detail --------------------------------------------------- context A [S] lock(cpu_hotplug_lock:0) [W] __wait_rcu_gp(:0) [E] unlock(cpu_hotplug_lock:0) [S] lock(cpu_hotplug_lock:0): [] cpus_read_lock+0x14/0x20 stacktrace: percpu_down_read.constprop.0+0x88/0x2ec cpus_read_lock+0x14/0x20 cgroup_procs_write_start+0x164/0x634 __cgroup_procs_write+0xdc/0x4d0 cgroup_procs_write+0x34/0x74 cgroup_file_write+0x25c/0x670 kernfs_fop_write_iter+0x2ec/0x498 vfs_write+0x574/0xc30 ksys_write+0x124/0x244 __arm64_sys_write+0x70/0xa4 invoke_syscall+0x88/0x2e0 el0_svc_common.constprop.0+0xe8/0x2e0 do_el0_svc+0x44/0x60 el0_svc+0x50/0x188 el0t_64_sync_handler+0x10c/0x140 el0t_64_sync+0x198/0x19c [W] __wait_rcu_gp(:0): [] __wait_rcu_gp+0x324/0x498 stacktrace: schedule+0xcc/0x348 schedule_timeout+0x1a4/0x268 __wait_for_common+0x1c4/0x3f0 __wait_for_completion_state+0x20/0x38 __wait_rcu_gp+0x35c/0x498 synchronize_rcu_normal+0x200/0x218 synchronize_rcu+0x234/0x2a0 rcu_sync_enter+0x11c/0x300 percpu_down_write+0xb4/0x3e0 cgroup_procs_write_start+0x174/0x634 __cgroup_procs_write+0xdc/0x4d0 cgroup_procs_write+0x34/0x74 cgroup_file_write+0x25c/0x670 kernfs_fop_write_iter+0x2ec/0x498 vfs_write+0x574/0xc30 ksys_write+0x124/0x244 [E] unlock(cpu_hotplug_lock:0): (N/A) --------------------------------------------------- context B's detail --------------------------------------------------- context B [S] (unknown)(:0) [W] lock(cpu_hotplug_lock:0) [E] try_to_wake_up(:0) [S] (unknown)(:0): (N/A) [W] lock(cpu_hotplug_lock:0): [] cpus_read_lock+0x14/0x20 stacktrace: percpu_down_read.constprop.0+0x6c/0x2ec cpus_read_lock+0x14/0x20 check_all_holdout_tasks_trace+0x90/0xa30 rcu_tasks_wait_gp+0x47c/0x938 rcu_tasks_one_gp+0x75c/0xef8 rcu_tasks_kthread+0x180/0x1dc kthread+0x3ac/0x74c ret_from_fork+0x10/0x20 [E] try_to_wake_up(:0): [] complete+0xb8/0x1e8 stacktrace: try_to_wake_up+0x374/0x1164 complete+0xb8/0x1e8 wakeme_after_rcu+0x14/0x20 rcu_tasks_invoke_cbs+0x218/0xaa8 rcu_tasks_one_gp+0x834/0xef8 rcu_tasks_kthread+0x180/0x1dc kthread+0x3ac/0x74c ret_from_fork+0x10/0x20 (wait to wake up) stacktrace: __schedule+0xf64/0x3614 schedule+0xcc/0x348 schedule_timeout+0x1a4/0x268 __wait_for_common+0x1c4/0x3f0 __wait_for_completion_state+0x20/0x38 __wait_rcu_gp+0x35c/0x498 synchronize_rcu_tasks_generic+0x14c/0x220 synchronize_rcu_tasks_trace+0x24/0x8c rcu_init_tasks_generic+0x168/0x194 do_one_initcall+0x174/0xa00 kernel_init_freeable+0x744/0x7dc kernel_init+0x78/0x220 ret_from_fork+0x10/0x20 Separating the dept key and map for each of struct rcu_synchronize, ensuring proper tracking for each execution context. Signed-off-by: Yunseong Kim [ Rewrote the changelog. ] Signed-off-by: Byungchul Park --- include/linux/rcupdate_wait.h | 13 ++++++++----- kernel/rcu/rcu.h | 1 + kernel/rcu/update.c | 5 +++-- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/include/linux/rcupdate_wait.h b/include/linux/rcupdate_wait.h index 4c92d4291cce..ee598e70b4bc 100644 --- a/include/linux/rcupdate_wait.h +++ b/include/linux/rcupdate_wait.h @@ -19,17 +19,20 @@ struct rcu_synchronize { /* This is for debugging. */ struct rcu_gp_oldstate oldstate; + struct dept_map dmap; + struct dept_key dkey; }; void wakeme_after_rcu(struct rcu_head *head); void __wait_rcu_gp(bool checktiny, unsigned int state, int n, call_rcu_func_t *crcu_array, - struct rcu_synchronize *rs_array); + struct rcu_synchronize *rs_array, struct dept_key *dkey); #define _wait_rcu_gp(checktiny, state, ...) \ -do { \ - call_rcu_func_t __crcu_array[] = { __VA_ARGS__ }; \ - struct rcu_synchronize __rs_array[ARRAY_SIZE(__crcu_array)]; \ - __wait_rcu_gp(checktiny, state, ARRAY_SIZE(__crcu_array), __crcu_array, __rs_array); \ +do { \ + call_rcu_func_t __crcu_array[] = { __VA_ARGS__ }; \ + static struct dept_key __key; \ + struct rcu_synchronize __rs_array[ARRAY_SIZE(__crcu_array)]; \ + __wait_rcu_gp(checktiny, state, ARRAY_SIZE(__crcu_array), __crcu_array, __rs_array, &__key); \ } while (0) #define wait_rcu_gp(...) _wait_rcu_gp(false, TASK_UNINTERRUPTIBLE, __VA_ARGS__) diff --git a/kernel/rcu/rcu.h b/kernel/rcu/rcu.h index 9cf01832a6c3..c0d8ea139596 100644 --- a/kernel/rcu/rcu.h +++ b/kernel/rcu/rcu.h @@ -12,6 +12,7 @@ #include #include +#include /* * Grace-period counter management. diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c index dfeba9b35395..6b7ede219433 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c @@ -409,7 +409,7 @@ void wakeme_after_rcu(struct rcu_head *head) EXPORT_SYMBOL_GPL(wakeme_after_rcu); void __wait_rcu_gp(bool checktiny, unsigned int state, int n, call_rcu_func_t *crcu_array, - struct rcu_synchronize *rs_array) + struct rcu_synchronize *rs_array, struct dept_key *dkey) { int i; int j; @@ -426,7 +426,8 @@ void __wait_rcu_gp(bool checktiny, unsigned int state, int n, call_rcu_func_t *c break; if (j == i) { init_rcu_head_on_stack(&rs_array[i].head); - init_completion(&rs_array[i].completion); + sdt_map_init_key(&rs_array[i].dmap, dkey); + init_completion_dmap(&rs_array[i].completion, &rs_array[i].dmap); (crcu_array[i])(&rs_array[i].head, wakeme_after_rcu); } } -- 2.17.1