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 X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 209B6C433DF for ; Wed, 12 Aug 2020 01:34:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EFF00206B2 for ; Wed, 12 Aug 2020 01:34:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597196068; bh=eN9tumu5eXlAH0slpsFTmwQjbSTdLw3oKgLY59i3/Mc=; h=Date:From:To:Subject:In-Reply-To:Reply-To:List-ID:From; b=A1pccIAP63/2spXfHSpvQcJsr3jJrW9I7ThaydyoYGajdKLQlMh5sC92MEk+HLsMS N7ui/K/1syWyxgnpMcPFTPTHI4ZYZDe+C4yYPuR4VFwBlyIotJCvWsgvEUz4HicPjX H5sdmuy5jpJP5JKDHzfKujGGaEEiAPjxQTcOD0Z8= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726255AbgHLBe1 (ORCPT ); Tue, 11 Aug 2020 21:34:27 -0400 Received: from mail.kernel.org ([198.145.29.99]:35230 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726422AbgHLBe1 (ORCPT ); Tue, 11 Aug 2020 21:34:27 -0400 Received: from localhost.localdomain (c-73-231-172-41.hsd1.ca.comcast.net [73.231.172.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 757342076C; Wed, 12 Aug 2020 01:34:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1597196066; bh=eN9tumu5eXlAH0slpsFTmwQjbSTdLw3oKgLY59i3/Mc=; h=Date:From:To:Subject:In-Reply-To:From; b=CL4gWDFDyOHwMYygAn3MWvm4Hoi1OB/9S5PfYUOZ8LFgsvrYikFmQI6RkVN781AuP sLb2MoTL93FwUuxWMATTnJ+Z/fGO9qQw6NYVXyfDlsfAAgfM/qcrDq1+EnNmQVk7MD E/WrhJ/VG6YR4yUCyw18BHN1UiwT5Y5+6WT8QQ4M= Date: Tue, 11 Aug 2020 18:34:26 -0700 From: Andrew Morton To: akpm@linux-foundation.org, geert@linux-m68k.org, linux-mm@kvack.org, luc.vanoostenryck@gmail.com, miguel.ojeda.sandonis@gmail.com, mm-commits@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 079/165] sparse: group the defines by functionality Message-ID: <20200812013426.wQSK9kOCw%akpm@linux-foundation.org> In-Reply-To: <20200811182949.e12ae9a472e3b5e27e16ad6c@linux-foundation.org> User-Agent: s-nail v14.8.16 Sender: mm-commits-owner@vger.kernel.org Precedence: bulk Reply-To: linux-kernel@vger.kernel.org List-ID: X-Mailing-List: mm-commits@vger.kernel.org From: Luc Van Oostenryck Subject: sparse: group the defines by functionality By popular demand, reorder the defines for sparse annotations and group them by functionality. Link: lore.kernel.org/r/CAMuHMdWQsirja-h3wBcZezk+H2Q_HShhAks8Hc8ps5fTAp=ObQ@mail.gmail.com Link: http://lkml.kernel.org/r/20200621143652.53798-1-luc.vanoostenryck@gmail.com Signed-off-by: Luc Van Oostenryck Acked-by: Miguel Ojeda Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton --- include/linux/compiler_types.h | 44 +++++++++++++++++-------------- 1 file changed, 25 insertions(+), 19 deletions(-) --- a/include/linux/compiler_types.h~sparse-group-the-defines-by-functionality +++ a/include/linux/compiler_types.h @@ -5,48 +5,54 @@ #ifndef __ASSEMBLY__ #ifdef __CHECKER__ +/* address spaces */ # define __kernel __attribute__((address_space(0))) # define __user __attribute__((noderef, address_space(__user))) -# define __safe __attribute__((safe)) -# define __force __attribute__((force)) -# define __nocast __attribute__((nocast)) # define __iomem __attribute__((noderef, address_space(__iomem))) +# define __percpu __attribute__((noderef, address_space(__percpu))) +# define __rcu __attribute__((noderef, address_space(__rcu))) +extern void __chk_user_ptr(const volatile void __user *); +extern void __chk_io_ptr(const volatile void __iomem *); +/* context/locking */ # define __must_hold(x) __attribute__((context(x,1,1))) # define __acquires(x) __attribute__((context(x,0,1))) # define __releases(x) __attribute__((context(x,1,0))) # define __acquire(x) __context__(x,1) # define __release(x) __context__(x,-1) # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) -# define __percpu __attribute__((noderef, address_space(__percpu))) -# define __rcu __attribute__((noderef, address_space(__rcu))) +/* other */ +# define __force __attribute__((force)) +# define __nocast __attribute__((nocast)) +# define __safe __attribute__((safe)) # define __private __attribute__((noderef)) -extern void __chk_user_ptr(const volatile void __user *); -extern void __chk_io_ptr(const volatile void __iomem *); # define ACCESS_PRIVATE(p, member) (*((typeof((p)->member) __force *) &(p)->member)) #else /* __CHECKER__ */ +/* address spaces */ +# define __kernel # ifdef STRUCTLEAK_PLUGIN -# define __user __attribute__((user)) +# define __user __attribute__((user)) # else # define __user # endif -# define __kernel -# define __safe -# define __force -# define __nocast # define __iomem -# define __chk_user_ptr(x) (void)0 -# define __chk_io_ptr(x) (void)0 -# define __builtin_warning(x, y...) (1) +# define __percpu +# define __rcu +# define __chk_user_ptr(x) (void)0 +# define __chk_io_ptr(x) (void)0 +/* context/locking */ # define __must_hold(x) # define __acquires(x) # define __releases(x) -# define __acquire(x) (void)0 -# define __release(x) (void)0 +# define __acquire(x) (void)0 +# define __release(x) (void)0 # define __cond_lock(x,c) (c) -# define __percpu -# define __rcu +/* other */ +# define __force +# define __nocast +# define __safe # define __private # define ACCESS_PRIVATE(p, member) ((p)->member) +# define __builtin_warning(x, y...) (1) #endif /* __CHECKER__ */ /* Indirect macros required for expanded argument pasting, eg. __LINE__. */ _