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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5D6B9C433EF for ; Mon, 18 Oct 2021 07:07:56 +0000 (UTC) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D82796124F for ; Mon, 18 Oct 2021 07:07:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org D82796124F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=csgroup.eu Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.ozlabs.org Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4HXnyL0pFDz3cD5 for ; Mon, 18 Oct 2021 18:07:54 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=93.17.235.10; helo=pegase2.c-s.fr; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4HXnxr0bFGz2yNp for ; Mon, 18 Oct 2021 18:07:25 +1100 (AEDT) Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4HXnxj6V6bz9sSY; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ufy2FvxmcmR8; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4HXnxj5chVz9sSD; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id A85088B76C; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id 67lhJDwjeAym; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) Received: from PO20335.IDSI0.si.c-s.fr (unknown [172.25.230.103]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 4BB678B763; Mon, 18 Oct 2021 09:07:21 +0200 (CEST) Subject: Re: [PATCH v3 07/12] asm-generic: Define 'func_desc_t' to commonly describe function descriptors To: Nicholas Piggin , Andrew Morton , Arnd Bergmann , Benjamin Herrenschmidt , Helge Deller , Greg Kroah-Hartman , "James E.J. Bottomley" , Kees Cook , Michael Ellerman , Paul Mackerras References: <1634538449.eah9b31bbz.astroid@bobo.none> From: Christophe Leroy Message-ID: <802b3ff9-8ada-b45b-2b69-b6a23f0c3664@csgroup.eu> Date: Mon, 18 Oct 2021 09:07:21 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <1634538449.eah9b31bbz.astroid@bobo.none> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: fr-FR Content-Transfer-Encoding: 8bit X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-arch@vger.kernel.org, linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linuxppc-dev@lists.ozlabs.org Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Le 18/10/2021 à 08:29, Nicholas Piggin a écrit : > Excerpts from Christophe Leroy's message of October 17, 2021 10:38 pm: >> We have three architectures using function descriptors, each with its >> own type and name. >> >> Add a common typedef that can be used in generic code. >> >> Also add a stub typedef for architecture without function descriptors, >> to avoid a forest of #ifdefs. >> >> It replaces the similar 'func_desc_t' previously defined in >> arch/powerpc/kernel/module_64.c >> >> Reviewed-by: Kees Cook >> Acked-by: Arnd Bergmann >> Signed-off-by: Christophe Leroy >> --- > > [...] > >> diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h >> index a918388d9bf6..33b51efe3a24 100644 >> --- a/include/asm-generic/sections.h >> +++ b/include/asm-generic/sections.h >> @@ -63,6 +63,9 @@ extern __visible const void __nosave_begin, __nosave_end; >> #else >> #define dereference_function_descriptor(p) ((void *)(p)) >> #define dereference_kernel_function_descriptor(p) ((void *)(p)) >> +typedef struct { >> + unsigned long addr; >> +} func_desc_t; >> #endif >> > > I think that deserves a comment. If it's just to allow ifdef to be > avoided, I guess that's okay with a comment. Would be nice if you could > cause it to generate a link time error if it was ever used like > undefined functions, but I guess you can't. It's not a necessity though. > I tried to explain it in the commit message, but I can add a comment here in addition for sure. By the way, it IS used in powerpc's module_64.c: static func_desc_t func_desc(unsigned long addr) { return (func_desc_t){addr}; } static unsigned long func_addr(unsigned long addr) { return func_desc(addr).addr; }