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] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 12 Jun 2017 15:30:08 -0500
From:   Babu Moger <babu.moger@...cle.com>
To:     kbuild test robot <lkp@...el.com>, Arnd Bergmann <arnd@...db.de>
Cc:     kbuild-all@...org, ysato@...rs.sourceforge.jp,
        geert@...ux-m68k.org, jonas@...thpole.se,
        stefan.kristiansson@...nalahti.fi, shorne@...il.com,
        jejb@...isc-linux.org, deller@....de, davem@...emloft.net,
        viro@...iv.linux.org.uk, mpe@...erman.id.au, peterz@...radead.org,
        mingo@...hat.com, jcmvbkbc@...il.com, linux-kernel@...r.kernel.org,
        uclinux-h8-devel@...ts.sourceforge.jp, linux-m68k@...r.kernel.org,
        openrisc@...ts.librecores.org, linux-parisc@...r.kernel.org,
        sparclinux@...r.kernel.org, monstr@...str.eu
Subject: Re: [PATCH 2/2] include: warn for inconsistent endian config
 definition

Hi All,

On 6/10/2017 9:06 AM, kbuild test robot wrote:
> Hi Babu,
>
> [auto build test WARNING on linus/master]
> [also build test WARNING on v4.12-rc4 next-20170609]
> [if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
>
> url:    https://github.com/0day-ci/linux/commits/Babu-Moger/Define-CPU_BIG_ENDIAN-or-warn-for-inconsistencies/20170610-200424
> config: microblaze-mmu_defconfig (attached as .config)
> compiler: microblaze-linux-gcc (GCC) 6.2.0
> reproduce:
>          wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
>          chmod +x ~/bin/make.cross
>          # save the attached .config to linux build tree
>          make.cross ARCH=microblaze
>
> All warnings (new ones prefixed by >>):
>
>     In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
>                      from include/asm-generic/bitops/le.h:5,
>                      from include/asm-generic/bitops.h:34,
>                      from arch/microblaze/include/asm/bitops.h:1,
>                      from include/linux/bitops.h:36,
>                      from include/linux/kernel.h:10,
>                      from include/asm-generic/bug.h:15,
>                      from arch/microblaze/include/asm/bug.h:1,
>                      from include/linux/bug.h:4,
>                      from include/linux/page-flags.h:9,
>                      from kernel/bounds.c:9:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
>      #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
>       ^~~~~~~
> --
>     In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
>                      from include/asm-generic/bitops/le.h:5,
>                      from include/asm-generic/bitops.h:34,
>                      from arch/microblaze/include/asm/bitops.h:1,
>                      from include/linux/bitops.h:36,
>                      from include/linux/kernel.h:10,
>                      from include/asm-generic/bug.h:15,
>                      from arch/microblaze/include/asm/bug.h:1,
>                      from include/linux/bug.h:4,
>                      from include/linux/page-flags.h:9,
>                      from kernel/bounds.c:9:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
>      #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
>       ^~~~~~~
>     In file included from arch/microblaze/include/uapi/asm/byteorder.h:7:0,
>                      from include/asm-generic/bitops/le.h:5,
>                      from include/asm-generic/bitops.h:34,
>                      from arch/microblaze/include/asm/bitops.h:1,
>                      from include/linux/bitops.h:36,
>                      from include/linux/kernel.h:10,
>                      from include/linux/list.h:8,
>                      from include/linux/rculist.h:9,
>                      from include/linux/pid.h:4,
>                      from include/linux/sched.h:13,
>                      from arch/microblaze/kernel/asm-offsets.c:13:
>>> include/linux/byteorder/big_endian.h:7:2: warning: #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN [-Wcpp]
>      #warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
>       ^~~~~~~
>     <stdin>:1326:2: warning: #warning syscall statx not implemented [-Wcpp]
>
> vim +7 include/linux/byteorder/big_endian.h
>
>       1	#ifndef _LINUX_BYTEORDER_BIG_ENDIAN_H
>       2	#define _LINUX_BYTEORDER_BIG_ENDIAN_H
>       3	
>       4	#include <uapi/linux/byteorder/big_endian.h>
>       5	
>       6	#ifndef CONFIG_CPU_BIG_ENDIAN
>     > 7	#warning inconsistent configuration, needs CONFIG_CPU_BIG_ENDIAN
>       8	#endif
>       9	
>      10	#include <linux/byteorder/generic.h>
>      11	#endif /* _LINUX_BYTEORDER_BIG_ENDIAN_H */
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology Center
> https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Looks like microblaze can be configured to either little or big endian 
formats.  How about
adding a choice statement to address this.
Here is my proposed patch.
=======================================
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 85885a5..74aa5de 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -35,6 +35,22 @@ config MICROBLAZE
         select VIRT_TO_BUS
         select CPU_NO_EFFICIENT_FFS

+# Endianness selection
+choice
+       prompt "Endianness selection"
+       default CPU_BIG_ENDIAN
+       help
+         microblaze architectures can be configured for either little or
+         big endian formats. Be sure to select the appropriate mode.
+
+config CPU_BIG_ENDIAN
+       bool "Big endian"
+
+config CPU_LITTLE_ENDIAN
+       bool "Little endian"
+
+endchoice
+
  config SWAP
         def_bool n



Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ