linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] arm: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL
       [not found] <CGME20180314013256epcms1p47a97f32cdcb5a7eaa9303dc4b2cb0ea9@epcms1p4>
@ 2018-03-14  1:32 ` Jinbum Park
  2018-03-26  1:05   ` Joel Stanley
  0 siblings, 1 reply; 2+ messages in thread
From: Jinbum Park @ 2018-03-14  1:32 UTC (permalink / raw)
  To: linux-arm-kernel, linux-kernel
  Cc: aryabinin, mark.rutland, catalin.marinas, arnd, Seung-Woo Kim

To enable UBSAN on arm, ARCH_HAS_UBSAN_SANITIZE_ALL is needed to be selected.

Basic test has passed on Raspberry Pi2, Raspbian jessi lite with
CONFIG_UBSAN_SANITIZE_ALL, CONFIG_UBSAN_NULL.

Used compiler is gcc 5.5.0 in [2] (2017.10).

It would be a resend patch for [1] from Seung-Woo Kim.
There was some problems when [1] submitted before.

  P1) show -Warray-bounds that is not seen without UBSAN
  P2) too large stack size in crypto/serpent_generic.c
  P3) link error of ____ilog2_NaN, __aeabi_uldivmod

I've tried to build locally with allmodconfig to ensure that above errors are fixed.
The result is that P2), P3) have fixed, but P1) appears at diffent location.
But, Since gcc closed P1) issue as won't fix [3],
and It can be a helpful warning to user, we don't have to worry about P1).

build-environment that I used is as belows.

  - config: arm allmodconfig
  - compiler: gcc 5.5.0 in [2] (2017.10)
  - ubsan flag: UBSAN, UBSAN_SANITIZE_ALL, UBSAN_ALIGNMENT, UBSAN_NULL
  - linux version: linux/arm 4.16.0-rc4
  - CONFIG_FRAME_WARN: 1024 (default value)

[1] https://patchwork.kernel.org/patch/9189575/
[2] https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabi/
[3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78678

Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jinbum Park <jinb.park@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
---
v2: Add sign of Seung-Woo Kim.
    Add commit message about history, build environment.
---
 arch/arm/Kconfig                  | 1 +
 arch/arm/boot/compressed/Makefile | 1 +
 arch/arm/vdso/Makefile            | 1 +
 3 files changed, 3 insertions(+)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1878083..bdd1561 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -7,6 +7,7 @@ config ARM
 	select ARCH_HAS_DEBUG_VIRTUAL if MMU
 	select ARCH_HAS_DEVMEM_IS_ALLOWED
 	select ARCH_HAS_ELF_RANDOMIZE
+	select ARCH_HAS_UBSAN_SANITIZE_ALL
 	select ARCH_HAS_SET_MEMORY
 	select ARCH_HAS_PHYS_TO_DMA
 	select ARCH_HAS_STRICT_KERNEL_RWX if MMU && !XIP_KERNEL
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 45a6b9b..1b374ba 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -24,6 +24,7 @@ OBJS		+= hyp-stub.o
 endif
 
 GCOV_PROFILE		:= n
+UBSAN_SANITIZE		:= n
 
 #
 # Architecture dependencies
diff --git a/arch/arm/vdso/Makefile b/arch/arm/vdso/Makefile
index bb411821..05597f7 100644
--- a/arch/arm/vdso/Makefile
+++ b/arch/arm/vdso/Makefile
@@ -29,6 +29,7 @@ CFLAGS_vgettimeofday.o = -O2
 
 # Disable gcov profiling for VDSO code
 GCOV_PROFILE := n
+UBSAN_SANITIZE := n
 
 # Force dependency
 $(obj)/vdso.o : $(obj)/vdso.so
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] arm: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL
  2018-03-14  1:32 ` [PATCH v2] arm: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL Jinbum Park
@ 2018-03-26  1:05   ` Joel Stanley
  0 siblings, 0 replies; 2+ messages in thread
From: Joel Stanley @ 2018-03-26  1:05 UTC (permalink / raw)
  To: jinb.park
  Cc: linux-arm-kernel, linux-kernel, aryabinin, mark.rutland,
	catalin.marinas, arnd, Seung-Woo Kim

On 14 March 2018 at 12:02, Jinbum Park <jinb.park@samsung.com> wrote:
> To enable UBSAN on arm, ARCH_HAS_UBSAN_SANITIZE_ALL is needed to be selected.
>
> Basic test has passed on Raspberry Pi2, Raspbian jessi lite with
> CONFIG_UBSAN_SANITIZE_ALL, CONFIG_UBSAN_NULL.
>
> Used compiler is gcc 5.5.0 in [2] (2017.10).
>
> It would be a resend patch for [1] from Seung-Woo Kim.
> There was some problems when [1] submitted before.
>
>   P1) show -Warray-bounds that is not seen without UBSAN
>   P2) too large stack size in crypto/serpent_generic.c
>   P3) link error of ____ilog2_NaN, __aeabi_uldivmod
>
> I've tried to build locally with allmodconfig to ensure that above errors are fixed.
> The result is that P2), P3) have fixed, but P1) appears at diffent location.
> But, Since gcc closed P1) issue as won't fix [3],
> and It can be a helpful warning to user, we don't have to worry about P1).
>
> build-environment that I used is as belows.
>
>   - config: arm allmodconfig
>   - compiler: gcc 5.5.0 in [2] (2017.10)
>   - ubsan flag: UBSAN, UBSAN_SANITIZE_ALL, UBSAN_ALIGNMENT, UBSAN_NULL
>   - linux version: linux/arm 4.16.0-rc4
>   - CONFIG_FRAME_WARN: 1024 (default value)
>
> [1] https://patchwork.kernel.org/patch/9189575/
> [2] https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabi/
> [3] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78678
>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Signed-off-by: Jinbum Park <jinb.park@samsung.com>
> Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>

Tested-by: Joel Stanley <joel@jms.id.au>

I built for an ARMv5 (aspeed_g5_defconfig) and booted on an ast2500.

FYI, it found a couple of issues in ASPEED specific code!

 https://github.com/openbmc/linux/issues/144
 https://github.com/openbmc/linux/issues/145

Cheers,

Joel

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-03-26  1:06 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20180314013256epcms1p47a97f32cdcb5a7eaa9303dc4b2cb0ea9@epcms1p4>
2018-03-14  1:32 ` [PATCH v2] arm: ubsan: select ARCH_HAS_UBSAN_SANITIZE_ALL Jinbum Park
2018-03-26  1:05   ` Joel Stanley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).