From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maciej Fijalkowski Subject: Re: [PATCH v5 2/9] bitops: always define asm-generic non-atomic bitops Date: Mon, 2 Jan 2023 17:14:31 +0100 Message-ID: References: <20220624121313.2382500-1-alexandr.lobakin@intel.com> <20220624121313.2382500-3-alexandr.lobakin@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1672676110; x=1704212110; h=date:from:to:cc:subject:message-id:references: in-reply-to:mime-version; bh=D6GnRcgRPW8Ll15zVbxzrUtKPqcWtD2zO25MoC1gBaM=; b=n4XQui+EkycWkXzYeBZnD0MtdphZPSe1aow67Wcj4Zz/F2NaXc0Imdkp 1jo22VGEPoB0KZxTleH6YKEe45gFbNlmlPxDVKQ75Izs4DXTxx1RnoTUX dWCHDwX3JRhxVqtmmfcY6h7iXXpu/05i+Bf59ZcgdLiYD+rDTgPjuE9ev WvoIVtIvOnAUKMaqFK1cxB9Sw0BRTSDkZmSC609u/LDHX8OiNT6s8O7pi YIOgTON3wcU8yffpWqavq6JCwdZUHXHXSA16GVHn2AXR+WWZP4YQGCZsj qj5fJfjfVxQv7biMc6AthC4UPsvJU+e56kPnUJ8QijooBAKmgy+oLJZmq A==; Content-Disposition: inline In-Reply-To: <20220624121313.2382500-3-alexandr.lobakin@intel.com> List-ID: Content-Transfer-Encoding: 7bit To: Alexander Lobakin Cc: Arnd Bergmann , Yury Norov , Andy Shevchenko , Mark Rutland , Matt Turner , Brian Cain , Geert Uytterhoeven , Yoshinori Sato , Rich Felker , "David S. Miller" , Kees Cook , "Peter Zijlstra (Intel)" , Marco Elver , Borislav Petkov , Tony Luck , Jesse Brandeburg , Greg Kroah-Hartman , Nathan Chancellor , Nick Desaulniers , Tom Rix On Fri, Jun 24, 2022 at 02:13:06PM +0200, Alexander Lobakin wrote: > Move generic non-atomic bitops from the asm-generic header which > gets included only when there are no architecture-specific > alternatives, to a separate independent file to make them always > available. > Almost no actual code changes, only one comment added to > generic_test_bit() saying that it's an atomic operation itself > and thus `volatile` must always stay there with no cast-aways. > > Suggested-by: Andy Shevchenko # comment > Suggested-by: Marco Elver # reference to kernel-doc > Signed-off-by: Alexander Lobakin > Reviewed-by: Andy Shevchenko > Reviewed-by: Marco Elver > --- > .../asm-generic/bitops/generic-non-atomic.h | 130 ++++++++++++++++++ > include/asm-generic/bitops/non-atomic.h | 110 ++------------- > 2 files changed, 138 insertions(+), 102 deletions(-) > create mode 100644 include/asm-generic/bitops/generic-non-atomic.h > Hi, this patch gives me a headache when trying to run sparse against a module. Olek please help :D $ sudo make C=2 -C . M=drivers/net/ethernet/intel/ice/ make: Entering directory '/home/mfijalko/bpf-next' CHECK drivers/net/ethernet/intel/ice/ice_main.c drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:66:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:30:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:31:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:33:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:33:16: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:28:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:26:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:92:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:39:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:40:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:42:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:42:16: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:37:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:42:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:57:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:58:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:60:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:60:15: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:55:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:58:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:150:9: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:154:26: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:156:16: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:156:9: warning: unreplaced symbol 'return' ./arch/x86/include/asm/bitops.h:148:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:75:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:76:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:77:9: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:79:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:79:14: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:79:20: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:80:17: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:80:23: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:80:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:73:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:100:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/instrumented-non-atomic.h:97:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:95:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:96:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:97:9: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:99:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:99:14: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:99:21: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:100:17: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:100:23: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:100:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:93:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:115:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/instrumented-non-atomic.h:112:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:188:9: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:192:35: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:195:16: warning: unreplaced symbol 'oldbit' ./arch/x86/include/asm/bitops.h:195:9: warning: unreplaced symbol 'return' ./arch/x86/include/asm/bitops.h:186:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:107:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:108:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:109:9: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:111:10: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:111:14: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:111:20: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:112:17: warning: unreplaced symbol 'old' ./include/asm-generic/bitops/generic-non-atomic.h:112:23: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:112:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:105:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:130:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/instrumented-non-atomic.h:127:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./arch/x86/include/asm/bitops.h:239:9: warning: unreplaced symbol 'return' ./arch/x86/include/asm/bitops.h:237:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/generic-non-atomic.h:128:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:121:1: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:168:9: warning: unreplaced symbol 'p' ./include/asm-generic/bitops/generic-non-atomic.h:169:9: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:170:9: warning: unreplaced symbol 'val' ./include/asm-generic/bitops/generic-non-atomic.h:172:19: warning: unreplaced symbol 'val' ./include/asm-generic/bitops/generic-non-atomic.h:172:25: warning: unreplaced symbol 'mask' ./include/asm-generic/bitops/generic-non-atomic.h:172:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/generic-non-atomic.h:166:1: warning: unreplaced symbol 'return' drivers/net/ethernet/intel/ice/ice_main.c: note: in included file (through arch/x86/include/asm/bitops.h, include/linux/bitops.h, include/linux/kernel.h, drivers/net/ethernet/intel/ice/ice.h): ./include/asm-generic/bitops/instrumented-non-atomic.h:142:9: warning: unreplaced symbol 'return' ./include/asm-generic/bitops/instrumented-non-atomic.h:139:1: warning: unreplaced symbol 'return' that's for a single file, there's no point in including same output for every other file being checked. Thanks, Maciej