All of lore.kernel.org
 help / color / mirror / Atom feed
From: Will Deacon <will@kernel.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: guohanjun@huawei.com, rjw@rjwysocki.net,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, mark.rutland@arm.com,
	ndesaulniers@google.com
Subject: Re: arm64/acpi: NULL dereference reports from UBSAN at boot
Date: Tue, 26 May 2020 21:21:57 +0100	[thread overview]
Message-ID: <20200526202157.GE2206@willie-the-truck> (raw)
In-Reply-To: <20200521173738.GA29590@e121166-lin.cambridge.arm.com>

Hi Lorenzo, Hanjun, [+Nick]

On Thu, May 21, 2020 at 06:37:38PM +0100, Lorenzo Pieralisi wrote:
> On Thu, May 21, 2020 at 11:09:53AM +0100, Will Deacon wrote:
> > Hi folks,
> > 
> > I just tried booting the arm64 for-kernelci branch under QEMU (version
> > 4.2.50 (v4.2.0-779-g4354edb6dcc7)) with UBSAN enabled, and I see a
> > couple of NULL pointer dereferences reported at boot. I think they're
> > both GIC related (log below). I don't see a panic with UBSAN disabled,
> > so something's fishy here.
> 
> May I ask you the QEMU command line please - just to make sure I can
> replicate it.

As it turns out, I'm only able to reproduce this when building with Clang,
but I don't know whether that's because GCC is missing something of Clang
is signalling a false positive. You also don't need all of those whacky
fuzzing options enabled.

Anyway, to reproduce:

 $ git checkout for-next/kernelci
 $ make ARCH=arm64  CC=clang CROSS_COMPILE=aarch64-linux-gnu- defconfig
 <then do a menuconfig and enable UBSAN>
 $ make ARCH=arm64  CC=clang CROSS_COMPILE=aarch64-linux-gnu- Image

I throw that at QEMU using:

qemu-system-aarch64 -M virt -machine virtualization=true \
	-machine virt,gic-version=3 \
	-cpu max,sve=off -smp 2 -m 4096 \
	-drive if=pflash,format=raw,file=efi.img,readonly \
	-drive if=pflash,format=raw,file=varstore.img \
	-drive if=virtio,format=raw,file=disk.img \
	-device virtio-scsi-pci,id=scsi0 \
	-device virtio-rng-pci \
	-device virtio-net-pci,netdev=net0 \
	-netdev user,id=net0,hostfwd=tcp::8222-:22 \
	-nographic \
	-kernel ~/work/linux/arch/arm64/boot/Image \
	-append "earlycon root=/dev/vda2"

I built QEMU a while ago according to:

https://mirrors.edge.kernel.org/pub/linux/kernel/people/will/docs/qemu/qemu-arm64-howto.html

and its version 4.2.50 (v4.2.0-779-g4354edb6dcc7).

My clang is version 11.0.1.

Will

WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will@kernel.org>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: mark.rutland@arm.com, rjw@rjwysocki.net, ndesaulniers@google.com,
	linux-kernel@vger.kernel.org, guohanjun@huawei.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: arm64/acpi: NULL dereference reports from UBSAN at boot
Date: Tue, 26 May 2020 21:21:57 +0100	[thread overview]
Message-ID: <20200526202157.GE2206@willie-the-truck> (raw)
In-Reply-To: <20200521173738.GA29590@e121166-lin.cambridge.arm.com>

Hi Lorenzo, Hanjun, [+Nick]

On Thu, May 21, 2020 at 06:37:38PM +0100, Lorenzo Pieralisi wrote:
> On Thu, May 21, 2020 at 11:09:53AM +0100, Will Deacon wrote:
> > Hi folks,
> > 
> > I just tried booting the arm64 for-kernelci branch under QEMU (version
> > 4.2.50 (v4.2.0-779-g4354edb6dcc7)) with UBSAN enabled, and I see a
> > couple of NULL pointer dereferences reported at boot. I think they're
> > both GIC related (log below). I don't see a panic with UBSAN disabled,
> > so something's fishy here.
> 
> May I ask you the QEMU command line please - just to make sure I can
> replicate it.

As it turns out, I'm only able to reproduce this when building with Clang,
but I don't know whether that's because GCC is missing something of Clang
is signalling a false positive. You also don't need all of those whacky
fuzzing options enabled.

Anyway, to reproduce:

 $ git checkout for-next/kernelci
 $ make ARCH=arm64  CC=clang CROSS_COMPILE=aarch64-linux-gnu- defconfig
 <then do a menuconfig and enable UBSAN>
 $ make ARCH=arm64  CC=clang CROSS_COMPILE=aarch64-linux-gnu- Image

I throw that at QEMU using:

qemu-system-aarch64 -M virt -machine virtualization=true \
	-machine virt,gic-version=3 \
	-cpu max,sve=off -smp 2 -m 4096 \
	-drive if=pflash,format=raw,file=efi.img,readonly \
	-drive if=pflash,format=raw,file=varstore.img \
	-drive if=virtio,format=raw,file=disk.img \
	-device virtio-scsi-pci,id=scsi0 \
	-device virtio-rng-pci \
	-device virtio-net-pci,netdev=net0 \
	-netdev user,id=net0,hostfwd=tcp::8222-:22 \
	-nographic \
	-kernel ~/work/linux/arch/arm64/boot/Image \
	-append "earlycon root=/dev/vda2"

I built QEMU a while ago according to:

https://mirrors.edge.kernel.org/pub/linux/kernel/people/will/docs/qemu/qemu-arm64-howto.html

and its version 4.2.50 (v4.2.0-779-g4354edb6dcc7).

My clang is version 11.0.1.

Will

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2020-05-26 20:22 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-21 10:09 arm64/acpi: NULL dereference reports from UBSAN at boot Will Deacon
2020-05-21 10:09 ` Will Deacon
2020-05-21 17:37 ` Lorenzo Pieralisi
2020-05-21 17:37   ` Lorenzo Pieralisi
2020-05-26 20:21   ` Will Deacon [this message]
2020-05-26 20:21     ` Will Deacon
2020-05-27 13:41     ` Lorenzo Pieralisi
2020-05-27 13:41       ` Lorenzo Pieralisi
2020-06-01  7:05       ` Will Deacon
2020-06-01  7:05         ` Will Deacon
2020-06-01 21:51         ` Nick Desaulniers
2020-06-01 21:51           ` Nick Desaulniers
2020-06-01 21:57           ` Ard Biesheuvel
2020-06-01 21:57             ` Ard Biesheuvel
2020-06-01 22:19             ` Nick Desaulniers
2020-06-01 22:19               ` Nick Desaulniers
2020-06-01 22:28               ` Ard Biesheuvel
2020-06-01 22:28                 ` Ard Biesheuvel
2020-06-01 23:18                 ` [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Nick Desaulniers
2020-06-01 23:18                   ` Nick Desaulniers
2020-06-01 23:37                   ` Peter Collingbourne
2020-06-01 23:37                     ` Peter Collingbourne
2020-06-01 23:48                     ` Nick Desaulniers
2020-06-01 23:48                       ` Nick Desaulniers
2020-06-02  0:02                   ` Kaneda, Erik
2020-06-02  0:02                     ` Kaneda, Erik
2020-06-02 18:46                     ` Nick Desaulniers
2020-06-02 18:46                       ` Nick Desaulniers
2020-06-08 14:51                       ` Will Deacon
2020-06-08 14:51                         ` Will Deacon
2020-06-08 20:29                         ` Nick Desaulniers
2020-06-08 20:29                           ` Nick Desaulniers
2020-06-08 20:38                           ` [PATCH v2] arm64: acpi: fix UBSAN warning Nick Desaulniers
2020-06-08 20:38                             ` Nick Desaulniers
2020-06-09 17:46                             ` Lorenzo Pieralisi
2020-06-09 17:46                               ` Lorenzo Pieralisi
2020-06-09 19:50                             ` Jeremy Linton
2020-06-09 19:50                               ` Jeremy Linton
2020-06-10 11:21                             ` Will Deacon
2020-06-10 11:21                               ` Will Deacon
2020-06-08 23:20                       ` [PATCH] ACPICA: fix UBSAN warning using __builtin_offsetof Kaneda, Erik
2020-06-08 23:20                         ` Kaneda, Erik
2020-06-10 23:06                   ` Kaneda, Erik
2020-06-10 23:06                     ` Kaneda, Erik
2020-06-10 23:29                     ` Nick Desaulniers
2020-06-10 23:29                       ` Nick Desaulniers
2020-06-10 23:46                       ` Jung-uk Kim
2020-06-10 23:46                         ` [Devel] " Jung-uk Kim
2020-06-10 23:46                         ` Jung-uk Kim
2020-06-11 16:45                         ` [Devel] " Kaneda, Erik
2020-06-11 16:45                           ` Kaneda, Erik
2020-06-11 17:06                           ` Nick Desaulniers
2020-06-11 17:06                             ` Nick Desaulniers
2020-06-16 21:39                             ` Kaneda, Erik
2020-06-16 21:39                               ` Kaneda, Erik
2020-06-10 23:31                     ` Jung-uk Kim
2020-06-10 23:31                       ` [Devel] " Jung-uk Kim
2020-06-10 23:31                       ` Jung-uk Kim
2020-05-22  8:07 ` arm64/acpi: NULL dereference reports from UBSAN at boot Hanjun Guo
2020-05-22  8:07   ` Hanjun Guo
2020-05-22  9:43   ` Hanjun Guo
2020-05-22  9:43     ` Hanjun Guo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200526202157.GE2206@willie-the-truck \
    --to=will@kernel.org \
    --cc=guohanjun@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=ndesaulniers@google.com \
    --cc=rjw@rjwysocki.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.