From patchwork Mon Mar 15 13:55:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Greg KH X-Patchwork-Id: 400472 Delivered-To: patch@linaro.org Received: by 2002:a02:8562:0:0:0:0:0 with SMTP id g89csp3467475jai; Mon, 15 Mar 2021 07:22:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzCmgHmFuFjmpzVGuX972gAGPfSL5dcgceduTbE21LvICpRbcpNb1caRF0rtbCp0wUX11JE X-Received: by 2002:a17:906:1f42:: with SMTP id d2mr23797837ejk.297.1615817783633; Mon, 15 Mar 2021 07:16:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615817783; cv=none; d=google.com; s=arc-20160816; b=Jj2V9Qz4IMZ0YuyJxFyAKgelZPFiGYmeOnUBcVaxMnmZiyKuVxQOhzMSLJzPb1QLKM +HG5j0QqOLx7YGVM9HjmV/BZ0ldSMmw71ui59+zLU3ZpFOXv1rklz7+Gx3pUZljeJI0y iIuUKMYgur0ax+ddZAfhmsfINctOQci/+f1w7YRvK/3Y9wxgtqWfttO5e/83XsRSveUw F/mreQsQ6lZ+9+FV1xT7P4GlseCyAx7nyUopq65OefBe+PdwFx5kDn0rMXF4280ifohe vwgyNpy0x3bxnS4OMIUdoL5Qsxcm4MX7e1A2v+09ks0xPCSUbIBDGcDI6ws4FBURQQ62 Dleg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=SQPGc4ovtDfqLzfSSPgbc1lWiC6kOR0E47aAoE82BnI=; b=mOm3mY5tXx7yy7nRr5obtq+cPbEw2beAdg3RwJzKtdEUFqkabRmsvpyrbMF+JI1Yhn pVKmclW9RzypgxCuTnfegeMDlhk0aY6Kx4qS2Be5dvZE7kI1LXu53IC7fgLqRiKdhUwK i4KCes/8znbrTQrL7tA+2XYf5R7xATXlDZKxjOMS4lehJ9bV66UH1cBruWcQ4sFWiLDm crmbAxGTGuSPrSKRSs7Q64i9W98Caqn0ypm0WkqpR2myUaUBexbhdVC36p8l+tvkthO7 Jh5506ceCNtOLpapk8NUoGxaFHPU1/5HDwv+WC7e5h4ubwHmfwpwC9iwB42PhRvPShYa 5Mxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=nLnrrmKH; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h21si993553ede.37.2021.03.15.07.16.23; Mon, 15 Mar 2021 07:16:23 -0700 (PDT) Received-SPF: pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=nLnrrmKH; spf=pass (google.com: domain of stable-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235616AbhCOOJT (ORCPT + 12 others); Mon, 15 Mar 2021 10:09:19 -0400 Received: from mail.kernel.org ([198.145.29.99]:50498 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229632AbhCOODu (ORCPT ); Mon, 15 Mar 2021 10:03:50 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0E79264EED; Mon, 15 Mar 2021 14:03:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1615817029; bh=3ioSXqiGcnKC90Z1AFXd/Qv9XRkJyLetZfxLB/Y012E=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nLnrrmKHxAGXVVPlI/0wQ/c1X8oTkpgt29mGNHH/sRh9tJgRTNGd8V5WSBsXJYiG4 iy/Q3wtKETUV63Jbp/4vIG8fGj7lSognJ1prdqYUW+zHppckt4dL3sFNksowOzKUZ8 c9g2m5+h18anojUBIp9uh2tHtJlH3p1PbEPRhZfI= From: gregkh@linuxfoundation.org To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Arnd Bergmann , Nathan Chancellor , Nick Desaulniers , Thomas Gleixner , Sebastian Andrzej Siewior , "Paul E. McKenney" , Ingo Molnar , Prarit Bhargava , Daniel Bristot de Oliveira , Peter Zijlstra , Valentin Schneider , Andrew Morton , Linus Torvalds , Sasha Levin Subject: [PATCH 5.11 266/306] stop_machine: mark helpers __always_inline Date: Mon, 15 Mar 2021 14:55:29 +0100 Message-Id: <20210315135516.631403887@linuxfoundation.org> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210315135507.611436477@linuxfoundation.org> References: <20210315135507.611436477@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Greg Kroah-Hartman From: Arnd Bergmann [ Upstream commit cbf78d85079cee662c45749ef4f744d41be85d48 ] With clang-13, some functions only get partially inlined, with a specialized version referring to a global variable. This triggers a harmless build-time check for the intel-rng driver: WARNING: modpost: drivers/char/hw_random/intel-rng.o(.text+0xe): Section mismatch in reference from the function stop_machine() to the function .init.text:intel_rng_hw_init() The function stop_machine() references the function __init intel_rng_hw_init(). This is often because stop_machine lacks a __init annotation or the annotation of intel_rng_hw_init is wrong. In this instance, an easy workaround is to force the stop_machine() function to be inline, along with related interfaces that did not show the same behavior at the moment, but theoretically could. The combination of the two patches listed below triggers the behavior in clang-13, but individually these commits are correct. Link: https://lkml.kernel.org/r/20210225130153.1956990-1-arnd@kernel.org Fixes: fe5595c07400 ("stop_machine: Provide stop_machine_cpuslocked()") Fixes: ee527cd3a20c ("Use stop_machine_run in the Intel RNG driver") Signed-off-by: Arnd Bergmann Cc: Nathan Chancellor Cc: Nick Desaulniers Cc: Thomas Gleixner Cc: Sebastian Andrzej Siewior Cc: "Paul E. McKenney" Cc: Ingo Molnar Cc: Prarit Bhargava Cc: Daniel Bristot de Oliveira Cc: Peter Zijlstra Cc: Valentin Schneider Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Sasha Levin --- include/linux/stop_machine.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) -- 2.30.1 diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h index 30577c3aecf8..46fb3ebdd16e 100644 --- a/include/linux/stop_machine.h +++ b/include/linux/stop_machine.h @@ -128,7 +128,7 @@ int stop_machine_from_inactive_cpu(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus); #else /* CONFIG_SMP || CONFIG_HOTPLUG_CPU */ -static inline int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, +static __always_inline int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus) { unsigned long flags; @@ -139,14 +139,15 @@ static inline int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, return ret; } -static inline int stop_machine(cpu_stop_fn_t fn, void *data, - const struct cpumask *cpus) +static __always_inline int +stop_machine(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus) { return stop_machine_cpuslocked(fn, data, cpus); } -static inline int stop_machine_from_inactive_cpu(cpu_stop_fn_t fn, void *data, - const struct cpumask *cpus) +static __always_inline int +stop_machine_from_inactive_cpu(cpu_stop_fn_t fn, void *data, + const struct cpumask *cpus) { return stop_machine(fn, data, cpus); }