lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <AC2CCF35-1313-464A-B20F-AC3424692C31@oracle.com>
Date:   Fri, 12 Jun 2020 10:07:58 -0400
From:   Chuck Lever <chuck.lever@...cle.com>
To:     kernel test robot <lkp@...el.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: Re: net/sunrpc/svcsock.c:226:5: warning:
 "ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE" is not defined

Hello-

> On Jun 12, 2020, at 2:31 AM, kernel test robot <lkp@...el.com> wrote:
> 
> Hi Chuck,
> 
> FYI, the error/warning still remains.
> 
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   b791d1bdf9212d944d749a5c7ff6febdba241771
> commit: ca07eda33e01eafa7a26ec06974f7eacee6a89c8 SUNRPC: Refactor svc_recvfrom()
> date:   3 weeks ago
> config: i386-randconfig-r016-20200612 (attached as .config)
> compiler: gcc-6 (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
> reproduce (this is a W=1 build):
>        git checkout ca07eda33e01eafa7a26ec06974f7eacee6a89c8
>        # save the attached .config to linux build tree
>        make W=1 ARCH=i386 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@...el.com>
> 
> All warnings (new ones prefixed by >>, old ones prefixed by <<):
> 
>>> net/sunrpc/svcsock.c:226:5: warning: "ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE" is not defined [-Wundef]
> #if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

IIUC this is a problem with the headers for the i386 architecture.
That macro is defined for most others:

[cel@...mt linux]$ git grep ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
arch/alpha/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
arch/arc/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/arm/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/arm64/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/c6x/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
arch/csky/abiv1/inc/abi/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/csky/abiv2/inc/abi/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/hexagon/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
arch/ia64/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/m68k/include/asm/cacheflush_mm.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/m68k/include/asm/cacheflush_no.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
arch/microblaze/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/mips/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/nds32/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/nios2/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/openrisc/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/parisc/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/powerpc/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/riscv/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
arch/sh/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/sparc/include/asm/cacheflush_32.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/sparc/include/asm/cacheflush_64.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/unicore32/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/xtensa/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
arch/xtensa/include/asm/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
block/blk-core.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
include/asm-generic/cacheflush.h:#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 0
include/crypto/scatterwalk.h:           /* Test ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE first as
include/crypto/scatterwalk.h:           if (ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE && !PageSlab(page))
include/linux/blkdev.h:#ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
include/linux/blkdev.h:# error  "You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform"
include/linux/blkdev.h:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
net/packet/af_packet.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE == 1
net/packet/af_packet.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE == 1
net/packet/af_packet.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE == 1
net/sunrpc/svcsock.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
net/sunrpc/xprtsock.c:#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
[cel@...mt linux]$

Please let me know how to proceed.


> vim +/ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE +226 net/sunrpc/svcsock.c
> 
>   225	
>> 226	#if ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
>   227	static void svc_flush_bvec(const struct bio_vec *bvec, size_t size, size_t seek)
>   228	{
>   229		struct bvec_iter bi = {
>   230			.bi_size	= size,
>   231		};
>   232		struct bio_vec bv;
>   233	
>   234		bvec_iter_advance(bvec, &bi, seek & PAGE_MASK);
>   235		for_each_bvec(bv, bvec, bi, bi)
>   236			flush_dcache_page(bv.bv_page);
>   237	}
>   238	#else
>   239	static inline void svc_flush_bvec(const struct bio_vec *bvec, size_t size,
>   240					  size_t seek)
>   241	{
>   242	}
>   243	#endif
>   244	
> 
> ---
> 0-DAY CI Kernel Test Service, Intel Corporation
> https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
> <.config.gz>

--
Chuck Lever



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ