From patchwork Thu Jan 12 19:44:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Zijlstra X-Patchwork-Id: 13098839 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]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF658C678D4 for ; Thu, 12 Jan 2023 19:58:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A5D28001F; Thu, 12 Jan 2023 14:57:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7087C8001D; Thu, 12 Jan 2023 14:57:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FA428001F; Thu, 12 Jan 2023 14:57:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 26A998001D for ; Thu, 12 Jan 2023 14:57:45 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CFFC81C603C for ; Thu, 12 Jan 2023 19:57:44 +0000 (UTC) X-FDA: 80347207248.24.E2DB3B5 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf21.hostedemail.com (Postfix) with ESMTP id 694391C0009 for ; Thu, 12 Jan 2023 19:57:42 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Qqod01hb; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1673553463; a=rsa-sha256; cv=none; b=k02YAHvGAsGQ8XJkGWuD5+FAcoth7HTbfdQqHQVoJUmTiP/MhQjzn+Wh6SJHN2IezVBg1U HMaDdNxsaQDvYZTgclkfO+lXoyLw4KXy8SQlauXQrBWhiLUM6dmx6jpcPDZ5djgL7jAd/J 86gD/RmvmpOzRPgV671Pos9Jw/GGQyc= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=Qqod01hb; spf=none (imf21.hostedemail.com: domain of peterz@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=peterz@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1673553463; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:references:dkim-signature; bh=9z+4CWfQMO+ElFQ60iDcVJO2pPanU43MIsqpSKsLu08=; b=jBJWh0G7TuokIXAz55Nhfor5iv+U+tkcm5X/IIkTCgP2FY8sNtsfvolzCebraF1JLrbnNL Avil60n2cI7oGcdEV+vMjG6zQ06wlFVzRd97QznJZi7XCcEWsUNnQaliMigTJFIN6haLL3 FYCqHUnR34gzITVRDksEAW8+cY+neEk= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:References: Subject:Cc:To:From:Date:Message-ID:Sender:Reply-To:Content-Transfer-Encoding: Content-ID:Content-Description:In-Reply-To; bh=9z+4CWfQMO+ElFQ60iDcVJO2pPanU43MIsqpSKsLu08=; b=Qqod01hbcDRSoMsHp2FGB2yRt/ 657wthIO1WvpTIc8UJxry1BepGtlDwE7epFhhEiyVvYd20FumrIlq3K+vaV0ZtQy7OHhU1Ha6Vy+d u0SWb3lIPqXVymeSnZvxVUtagcGxMJy0Xe74jYFZx3+0fLic59abuep7mI8xDIZhMBlZ3t6vzavRb Uv1EVPbqUKMaMYAg9feMtnwldJEBNOwkWJYHJ9H531eMj1aqNuc6W4X31PojT7WMjEw5m15cdtiiL lKCURu3mZO9ph5F7yR6vShuu1trhYOgXzpxqstDK3EURxd4NXPx8gIyyUp3NSoc32+cD1hUu18TSA o+sF+wjQ==; Received: from j130084.upc-j.chello.nl ([24.132.130.84] helo=noisy.programming.kicks-ass.net) by casper.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pG3hu-005P7h-G4; Thu, 12 Jan 2023 19:57:50 +0000 Received: from hirez.programming.kicks-ass.net (hirez.programming.kicks-ass.net [192.168.1.225]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by noisy.programming.kicks-ass.net (Postfix) with ESMTPS id 3736830347E; Thu, 12 Jan 2023 20:57:14 +0100 (CET) Received: by hirez.programming.kicks-ass.net (Postfix, from userid 0) id 725472CD066E4; Thu, 12 Jan 2023 20:57:08 +0100 (CET) Message-ID: <20230112195542.274096325@infradead.org> User-Agent: quilt/0.66 Date: Thu, 12 Jan 2023 20:44:02 +0100 From: Peter Zijlstra To: peterz@infradead.org Cc: richard.henderson@linaro.org, ink@jurassic.park.msu.ru, mattst88@gmail.com, vgupta@kernel.org, linux@armlinux.org.uk, nsekhar@ti.com, brgl@bgdev.pl, ulli.kroll@googlemail.com, linus.walleij@linaro.org, shawnguo@kernel.org, Sascha Hauer , kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, tony@atomide.com, khilman@kernel.org, krzysztof.kozlowski@linaro.org, alim.akhtar@samsung.com, catalin.marinas@arm.com, will@kernel.org, guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org, kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net, monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org, jonas@southpole.se, stefan.kristiansson@saunalahti.fi, shorne@gmail.com, James.Bottomley@HansenPartnership.com, deller@gmx.de, mpe@ellerman.id.au, npiggin@gmail.com, christophe.leroy@csgroup.eu, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com, agordeev@linux.ibm.com, borntraeger@linux.ibm.com, svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org, davem@davemloft.net, richard@nod.at, anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, acme@kernel.org, mark.rutland@arm.com, alexander.shishkin@linux.intel.com, jolsa@kernel.org, namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu, amakhalov@vmware.com, pv-drivers@vmware.com, boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com, rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz, gregkh@linuxfoundation.org, mturquette@baylibre.com, sboyd@kernel.org, daniel.lezcano@linaro.org, lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org, andersson@kernel.org, konrad.dybcio@linaro.org, anup@brainfault.org, thierry.reding@gmail.com, jonathanh@nvidia.com, jacob.jun.pan@linux.intel.com, atishp@atishpatra.org, Arnd Bergmann , yury.norov@gmail.com, andriy.shevchenko@linux.intel.com, linux@rasmusvillemoes.dk, dennis@kernel.org, tj@kernel.org, cl@linux.com, rostedt@goodmis.org, mhiramat@kernel.org, frederic@kernel.org, paulmck@kernel.org, pmladek@suse.com, senozhatsky@chromium.org, john.ogness@linutronix.de, juri.lelli@redhat.com, vincent.guittot@linaro.org, dietmar.eggemann@arm.com, bsegall@google.com, mgorman@suse.de, bristot@redhat.com, vschneid@redhat.com, ryabinin.a.a@gmail.com, glider@google.com, andreyknvl@gmail.com, dvyukov@google.com, vincenzo.frascino@arm.com, Andrew Morton , jpoimboe@kernel.org, linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-omap@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, loongarch@lists.linux.dev, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org, virtualization@lists.linux-foundation.org, linux-xtensa@linux-xtensa.org, linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org, linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org, kasan-dev@googlegroups.com Subject: [PATCH v3 48/51] cpuidle,arch: Mark all ct_cpuidle_enter() callers __cpuidle References: <20230112194314.845371875@infradead.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: 694391C0009 X-Rspamd-Server: rspam01 X-Stat-Signature: xrzp4uox4fzq8tbkjdnemwgs8wkthjo9 X-HE-Tag: 1673553462-980514 X-HE-Meta: U2FsdGVkX1/42b/94gPOVSmhHMoKSsdjao46NH5nEacMKiVbv438WccfFBaOfh7LYOf3SJAweLfX0u/Ru6GZjS2MFRp681gSUoi9ewAnu2cKbCfqhGw8+5TcVTdshBI/Gs/TTARBNR2Qqas+YHJd/RSNyslU2F5d+z34119//4jpwSqOTHHvqHLkqae7uL+JVa337UngDkBB1CwjounOAnDmwkLQx8OJTPeE5EkNUDp4h9eW0pzshIKajcKwX5qMqawiddIeAUThcHMKt8dmhxjHeTgMsZRuVkAoRev3ceAGzSWB3bj5GkpJwVV4B5Qn4Zbmly30+zq0SR9clH3EURrCXQ7FtmAN+g4wmfHxihQm7a8CIauup9iZqNaZRre7HfoxUhVlLcNu8Ry32pYD4vw7rL7lrRDgFvOhOOT71dsDuMhpw7WqrLvlVcLHZX56l9XepugH7N3785s/BsX7eoe3Bhb1DlA0OIKGX1sUvjLhTrzKBybHViw+fT9FwdrJ9Fp+Gm2HRhweBOBrRBY9VCqRZusNPQfAiju+/3R8T/TN5jQmRrief2VIb5cyRz3/UdZm3FAWEp+o/hnPSJCo/5lPaiFzYqcotG3Qpo/N1hDNJk8gDX+fxFrXxmP882HjT4Rshi+1Cg1pHbQ+XWgz3STsf8G6oFqEhwTlFlrO+wsECTpIMQwmtESTbo+8JJR3b3cGevJaTghtfO8Z2Mmmu/sG3wS/f5xH7tgv8uyblMbmVZvDoVt0ULFr+zyCFcbZB2fpDa9b/VDuKpbuYdE5fAwJMCjlJHdToMMu5UEIPqsqDKWnNX4N9aHyF7B5fhEJZ2naTbsbye34x4l4aedMVgzW4FO4v1QmyhACl9DFdfUXbYPcs07Tv5Ix70oh4EpQXpLbaO8tOhUhumS79agxPGQ8isclHux17fMAXnMsulioiXooIaV4MEI+PM409c5nbnN8VaFLQWSrTHe2q8H rDBwVc81 nEyYyd9nd9w9U4jnID+G4yc+xHl+EPDqsKi9dPHUUhO1vl+QBp35vB4hN83rDmYeUFx2j+3Y0nTTRQYyZjh9WE15UVzdDtAkECqcvr593QEp1kicBjZKtZEkBIB+bU+Rpe20Q2d6NnTxctJ0JLvC0PcQMFXTp9NurUIj1AkWWvOBBYE4Esce/2rCcELLLahYz4DXQx5uin3QYGCmOaUs1dWitnN2OUDRRr84D8U1kTNXJOA3NjFh6XzeKPWydaebUuNaEXLKGlArWbrwbCZWZPC+3z3mFRgVgLzvBQNk3PZCBV2pwlLzNwP6fUmghNcvSp38EEl8++rAhRSucsQIhH3wGv9x1B0rkglda9FQ6ffdx11NESnPSAQOAH0IaRyLVvioRNgPv5wANl5kKsEdg6rV/1vlC+MeIHlEmW9JgBU/wLHDQUXFBtdG4esVeST2m56n5kh4rrSPQxNXCUrEk5sPB1nDulANh5EMO/Q3gpEkqbvFLhrnOUSAxlJk2YGTBD7n+bIByhDIXr0Uua1W89UqaOS9fgwu4HZ2ita1qa4bBXQxkYnz/fl7OYmBIPLj87plLKlV+BH7LR5ECywmHDv1Wl4WL7toPrNgStSLMXUffyWkaF1D0+9rTz+17no15jLess91p8akruFV9ctpSgFHQ/h+a089c3z2+h0bj0XYoC8rawUkBQTeiJwSAzjjaiwxwp/BqavYRwGTb24zQRgZ5k9Gse4Fmz9LYHVvjUIOUarRjKjmjxd/1zGpWBKVloP4d9/Iz1aTfXoe9p7hM/CJgzES/HFO4H1rWz4vwDPEM1rLC4DQ0c4u9lc2kM59DSS8sN99gWu79sRUr7AzyoaLNgy+GRbiLKCHJ1tQgRpKkyeoeJhbI/KdP1GiBr53cQaSqvdN83vQPqHDYKkcgGUbbmme/QJ0THRS2eFAvOEUz//A4HhdnuEMnwbqujhtVdUiF7lo9OwNLxUxz0hwO7Hfdl+fK kSBe3fHO rwUTaI1/S0XI3mvuYmWgU03by+ur/cxn9Gl1UAWWHDLvzVjmoItXIlVSy3Wc2g8LI2KxHbP1/Drn0uCqbNV4Q4o5sx0+MhGgk8TWVc5uJhQZ/W7wD1h3lkIKXWZtD97LVEV26YcC7jMlFVEhwkAb2/+qEqCUTmuiJCItwcTmFBTgf+T3CBHUVICrL2LSXE0aTYCy1NQMQHVxgUwmqX/3c0t5Pnsgc42veYpqNp1tKWQ4RURKcTAPQLtcUfnC1f+gnWe8/yU44A/ccUyaGw1AUfnJwjQN+BpxuTnG7FpMJ0PeCgACnXoAzRYQ+X25X231qolhdt287eyRPQnaHZ/f2lkrHFC28t+DUj9fxnZ061OVQ0g0G5WXOWt672DHFCF6bTXkqNM5EnbzoQckpvDcB7OJw3sVWKM9YgzRtDKYHDBjnY7Elg7E5C/ALMqt2BNZnxY9LcqtcOLTIske2XGjyocfGjUbi48kZHPB71gGe6i6iQkKWV9Dgrf/8WkRAQ5R1xpzqF1sqPjNp2qN+rLYbWQld5B48cNkNIfeSJz5Z9iuI3gKgvDCR+2NoGn9X+DBvD5b+zA+OtE4+3MDyIowmRO2ylyEYX9Yfs5FHaCiONKizSyFeOesxSggserkJDb3EixjgIRLJcEmRJxaS175Z22QWHUF+mxhcGb8/dOQ6GNlIkccQMYEjo5a8cHy9z3KrZyYENkjT5lVQXG3EjC8jcojRnUbVgLWS+x/yNdPtCulN98Y4iAwZEoibHSrIzmYN7OAOkRHyCrekgxf6DwQSXPehEuxAKpXSEv9GiRC8LqAwbeISpxE8D/Hp+0f0A2BwpVLKPYItM64SZVayAhOzVXPOo+hVIYUeoNLG4iVrfFazHA5Oi+xLZ+PimgBbDNZhwrKRUeizVuI0EzEQv2yi6vOWhrwZhF4tTgkst9AqrmJHNGqg+QrTEVKrhrxZ5z8HR+jKxx4SbVtg0JQ6o7HhoFzRpG1A WdTJbrZC KBDcebfgg/k1j30K/PXC0MtOquIYo8kix/uBWHxEHtGu2FcQ3EPe+o/ut5bgsW1aNsyPD/wXKwaocTxob5sGhdTO8LVCR84epWqAVfbp79kz8zgU4YKH+qRZ6AWWM1dJFOIwFsVPvVpb1GYm6dsfGQfrMSOoyqRIu62knszrSNxzgKlLedE7Fgz/kIEOmY1K6kdpnYR+p1RutRXLsULaJs4vnHcqof1p6ndoUrfvY2NEU0YtjgWTN7taZpjsFbQqs1VLclCtWpXNGlknY71hg8p6DKSP1MnOWbJ9dAPUh1gZBwwrF8faRIzPofnuCY4aZXpV4oxlycGlIyZkYF6e4dBNuHo8H2ZUEaxjW1Ui5wBzx+CSLOMsm1gUI/mpZgzz90MZb9zl5PNZTCvHnYbuU7ynlZDWjmPtJD20T88UPTMWG7NlUu+Gpuz413g/TJWOF+ERRMBzLb31ZKEFZwQBufABaoA+Ygxjp3Y6oIsDl36hYgI/+bx0wvl8G3RO5Rn0NPF1u1/QbPLRErM9AfQvu+mRbGlm472kSwg+GGCJD+64vBQ2vEmA3lj8CXuxPy8IZ420yUeO3pgghEzLOUHDGlin9gv6/+kR72QiFOc/SD+2ZMFkC3JogEYHmAbB0pHk6r55DqrohpB1xj/niRxlE3p4eAnrj3qqiY7+s81712afbWEKYgoVyslWx5RBVUgNpFtTLhz4Dyx1dLNuL15zrZbD+CAdoNAN321HKm7lPPRRpOFHMEYQZGAGcPEQplgfgNk/HMeGkrGPkJsWiLaUjm6CgFiTBu6c1fVLUk5mtpbNSBbIFkMI/2qxuDnC9oMrbNv7CXa2MKub3zhw84IJ/xj8GVx7NVRZaEydYmJAPvA4S9JrwBi58DIRx8Hs66CRvpp1R7w6/dNiOSnr1ruvs3BQ6LgUQeMcJeV6UvkKWgKNCpNNHULwVc8P5xxWQMWWOtRwnnJ6+P/dafxb4FsbNIxPrgAuH gepxVsOT FDGtjCIjfSiEpVQ0d9xtfGYZuQfgFvlQ/PpczjdKgA3x9mrrORn4GnqSkEhcx+3ucDMmllVBMK5QsicoP2jpA52NQVdwY2acnpn1pauvf1BJ4a8LYGXsM81KhX2abV1VJ50ctNaiYRiG8h36fP/hLU 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: For all cpuidle drivers that use CPUIDLE_FLAG_RCU_IDLE, ensure that all functions that call ct_cpuidle_enter() are marked __cpuidle. ( due to lack of noinstr validation on these platforms it is entirely possible this isn't complete ) Signed-off-by: Peter Zijlstra (Intel) --- arch/arm/mach-imx/cpuidle-imx6q.c | 4 ++-- arch/arm/mach-imx/cpuidle-imx6sx.c | 4 ++-- arch/arm/mach-omap2/omap-mpuss-lowpower.c | 4 ++-- arch/arm/mach-omap2/pm34xx.c | 2 +- arch/arm64/kernel/cpuidle.c | 2 +- drivers/cpuidle/cpuidle-arm.c | 4 ++-- drivers/cpuidle/cpuidle-big_little.c | 4 ++-- drivers/cpuidle/cpuidle-mvebu-v7.c | 6 +++--- drivers/cpuidle/cpuidle-psci.c | 17 ++++++----------- drivers/cpuidle/cpuidle-qcom-spm.c | 4 ++-- drivers/cpuidle/cpuidle-riscv-sbi.c | 10 +++++----- drivers/cpuidle/cpuidle-tegra.c | 10 +++++----- 12 files changed, 33 insertions(+), 38 deletions(-) --- a/arch/arm/mach-imx/cpuidle-imx6q.c +++ b/arch/arm/mach-imx/cpuidle-imx6q.c @@ -17,8 +17,8 @@ static int num_idle_cpus = 0; static DEFINE_RAW_SPINLOCK(cpuidle_lock); -static int imx6q_enter_wait(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int index) +static __cpuidle int imx6q_enter_wait(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int index) { raw_spin_lock(&cpuidle_lock); if (++num_idle_cpus == num_online_cpus()) --- a/arch/arm/mach-imx/cpuidle-imx6sx.c +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c @@ -30,8 +30,8 @@ static int imx6sx_idle_finish(unsigned l return 0; } -static int imx6sx_enter_wait(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int index) +static __cpuidle int imx6sx_enter_wait(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int index) { imx6_set_lpm(WAIT_UNCLOCKED); --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c @@ -224,8 +224,8 @@ static void __init save_l2x0_context(voi * 2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR * 3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF */ -int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state, - bool rcuidle) +__cpuidle int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state, + bool rcuidle) { struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu); unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET; --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@ -175,7 +175,7 @@ static int omap34xx_do_sram_idle(unsigne return 0; } -void omap_sram_idle(bool rcuidle) +__cpuidle void omap_sram_idle(bool rcuidle) { /* Variable to tell what needs to be saved and restored * in omap_sram_idle*/ --- a/arch/arm64/kernel/cpuidle.c +++ b/arch/arm64/kernel/cpuidle.c @@ -62,7 +62,7 @@ int acpi_processor_ffh_lpi_probe(unsigne return psci_acpi_cpu_init_idle(cpu); } -int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi) +__cpuidle int acpi_processor_ffh_lpi_enter(struct acpi_lpi_state *lpi) { u32 state = lpi->address; --- a/drivers/cpuidle/cpuidle-arm.c +++ b/drivers/cpuidle/cpuidle-arm.c @@ -31,8 +31,8 @@ * Called from the CPUidle framework to program the device to the * specified target state selected by the governor. */ -static int arm_enter_idle_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx) +static __cpuidle int arm_enter_idle_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx) { /* * Pass idle state index to arm_cpuidle_suspend which in turn --- a/drivers/cpuidle/cpuidle-big_little.c +++ b/drivers/cpuidle/cpuidle-big_little.c @@ -122,8 +122,8 @@ static int notrace bl_powerdown_finisher * Called from the CPUidle framework to program the device to the * specified target state selected by the governor. */ -static int bl_enter_powerdown(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx) +static __cpuidle int bl_enter_powerdown(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx) { cpu_pm_enter(); ct_cpuidle_enter(); --- a/drivers/cpuidle/cpuidle-mvebu-v7.c +++ b/drivers/cpuidle/cpuidle-mvebu-v7.c @@ -25,9 +25,9 @@ static int (*mvebu_v7_cpu_suspend)(int); -static int mvebu_v7_enter_idle(struct cpuidle_device *dev, - struct cpuidle_driver *drv, - int index) +static __cpuidle int mvebu_v7_enter_idle(struct cpuidle_device *dev, + struct cpuidle_driver *drv, + int index) { int ret; bool deepidle = false; --- a/drivers/cpuidle/cpuidle-psci.c +++ b/drivers/cpuidle/cpuidle-psci.c @@ -49,14 +49,9 @@ static inline u32 psci_get_domain_state( return __this_cpu_read(domain_state); } -static inline int psci_enter_state(int idx, u32 state) -{ - return CPU_PM_CPU_IDLE_ENTER_PARAM(psci_cpu_suspend_enter, idx, state); -} - -static int __psci_enter_domain_idle_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx, - bool s2idle) +static __cpuidle int __psci_enter_domain_idle_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx, + bool s2idle) { struct psci_cpuidle_data *data = this_cpu_ptr(&psci_cpuidle_data); u32 *states = data->psci_states; @@ -192,12 +187,12 @@ static void psci_idle_init_cpuhp(void) pr_warn("Failed %d while setup cpuhp state\n", err); } -static int psci_enter_idle_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx) +static __cpuidle int psci_enter_idle_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx) { u32 *state = __this_cpu_read(psci_cpuidle_data.psci_states); - return psci_enter_state(idx, state[idx]); + return CPU_PM_CPU_IDLE_ENTER_PARAM(psci_cpu_suspend_enter, idx, state[idx]); } static const struct of_device_id psci_idle_state_match[] = { --- a/drivers/cpuidle/cpuidle-qcom-spm.c +++ b/drivers/cpuidle/cpuidle-qcom-spm.c @@ -58,8 +58,8 @@ static int qcom_cpu_spc(struct spm_drive return ret; } -static int spm_enter_idle_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx) +static __cpuidle int spm_enter_idle_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx) { struct cpuidle_qcom_spm_data *data = container_of(drv, struct cpuidle_qcom_spm_data, cpuidle_driver); --- a/drivers/cpuidle/cpuidle-riscv-sbi.c +++ b/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -93,8 +93,8 @@ static int sbi_suspend(u32 state) return sbi_suspend_finisher(state, 0, 0); } -static int sbi_cpuidle_enter_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx) +static __cpuidle int sbi_cpuidle_enter_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx) { u32 *states = __this_cpu_read(sbi_cpuidle_data.states); u32 state = states[idx]; @@ -106,9 +106,9 @@ static int sbi_cpuidle_enter_state(struc idx, state); } -static int __sbi_enter_domain_idle_state(struct cpuidle_device *dev, - struct cpuidle_driver *drv, int idx, - bool s2idle) +static __cpuidle int __sbi_enter_domain_idle_state(struct cpuidle_device *dev, + struct cpuidle_driver *drv, int idx, + bool s2idle) { struct sbi_cpuidle_data *data = this_cpu_ptr(&sbi_cpuidle_data); u32 *states = data->states; --- a/drivers/cpuidle/cpuidle-tegra.c +++ b/drivers/cpuidle/cpuidle-tegra.c @@ -160,8 +160,8 @@ static int tegra_cpuidle_coupled_barrier return 0; } -static int tegra_cpuidle_state_enter(struct cpuidle_device *dev, - int index, unsigned int cpu) +static __cpuidle int tegra_cpuidle_state_enter(struct cpuidle_device *dev, + int index, unsigned int cpu) { int err; @@ -226,9 +226,9 @@ static int tegra_cpuidle_adjust_state_in return index; } -static int tegra_cpuidle_enter(struct cpuidle_device *dev, - struct cpuidle_driver *drv, - int index) +static __cpuidle int tegra_cpuidle_enter(struct cpuidle_device *dev, + struct cpuidle_driver *drv, + int index) { bool do_rcu = drv->states[index].flags & CPUIDLE_FLAG_RCU_IDLE; unsigned int cpu = cpu_logical_map(dev->cpu);