From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751843AbdKLW1s (ORCPT ); Sun, 12 Nov 2017 17:27:48 -0500 Received: from Galois.linutronix.de ([146.0.238.70]:59552 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751336AbdKLW1q (ORCPT ); Sun, 12 Nov 2017 17:27:46 -0500 Date: Sun, 12 Nov 2017 23:27:43 +0100 (CET) From: Thomas Gleixner To: Arnd Bergmann cc: Daniel Lezcano , Benjamin Gaignard , Sudeep Holla , LKML Subject: Re: [PATCH] clocksource/drivers/timer-of: mark timer_of_exit as __init In-Reply-To: Message-ID: References: <20171106133450.482858-1-arnd@arndb.de> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 12 Nov 2017, Arnd Bergmann wrote: > On Sun, Nov 12, 2017 at 10:16 PM, Thomas Gleixner wrote: > > On Mon, 6 Nov 2017, Arnd Bergmann wrote: > >> The newly added function triggers a harmless Kbuild warning because > >> of a missing annotation: > >> > >> WARNING: vmlinux.o(.text+0x448098): Section mismatch in reference from the function timer_of_exit() to the function .init.text:timer_clk_exit() > >> The function timer_of_exit() references > >> the function __init timer_clk_exit(). > >> This is often because timer_of_exit lacks a __init > >> annotation or the annotation of timer_clk_exit is wrong. > >> > >> The function is only called from other __init functions, so it > >> can safely be marked as __init as well. > > > > Hmm. I don't see any caller at all. From the intention of the patch I > > assume this isn't designed for using from init functions, so we rather have > > to remove the __init annotations from the called functions. > > > > Sudeep posted a patch which does that: > > > > https://lkml.kernel.org/r/1509979716-10646-1-git-send-email-sudeep.holla@arm.com > > > > Though I rather would know whether this function is going to be used at > > all and what the intention of this patch was. > > > > Benjamin???? > > My interpretation was that timer drivers are still supposed to be unregistered > at module unload time, but that you might use the new timer_of_exit() > in the failure path of whatever function calls timer_of_init() successfully > when something fails in the next step. > > Sudeep's interpretation also makes sense, I had not thought of that, but > I now found the patch that adds a user in an init function: > https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1519644.html > > It seems I guessed right and Sudeep guessed wrong (both by pure chance > I admit). Both patches solve the problem, Sudeep's version is a little > more robust in case we ever add a caller in an __exit function (which I > think is currently not allowed), while mine saves a little bit of memory > and matches the current usage better. Right, but if the only use case is the cleanup in an error path, then the function name is a misnomer. Thanks, tglx