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 for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CACT4Y+ax6URhDKBREy6XLx=nKFLGSmt87Z-oU3E1D8SAJwBcrg@mail.gmail.com>
Date:   Wed, 8 Jan 2020 05:28:31 +0100
From:   Dmitry Vyukov <dvyukov@...gle.com>
To:     Sebastian Andrzej Siewior <bigeasy@...utronix.de>
Cc:     syzbot <syzbot+f2ca20d4aa1408b0385a@...kaller.appspotmail.com>,
        alexander.deucher@....com, Borislav Petkov <bp@...en8.de>,
        Dave Hansen <dave.hansen@...el.com>,
        "H. Peter Anvin" <hpa@...or.com>,
        LKML <linux-kernel@...r.kernel.org>,
        Ingo Molnar <mingo@...hat.com>, nicholas.kazlauskas@....com,
        Rik van Riel <riel@...riel.com>, sunpeng.li@....com,
        syzkaller-bugs <syzkaller-bugs@...glegroups.com>,
        Thomas Gleixner <tglx@...utronix.de>,
        "the arch/x86 maintainers" <x86@...nel.org>, zhan.liu@....com
Subject: Re: WARNING in switch_fpu_return

On Tue, Jan 7, 2020 at 9:53 PM Sebastian Andrzej Siewior
<bigeasy@...utronix.de> wrote:
>
> On 2020-01-01 18:25:09 [-0800], syzbot wrote:
> > Hello,
> >
> > syzbot found the following crash on:
> >
> > HEAD commit:    bf8d1cd4 Merge tag 'scsi-fixes' of git://git.kernel.org/pu..
> > git tree:       upstream
> > console output: https://syzkaller.appspot.com/x/log.txt?x=17a4ce15e00000
> > kernel config:  https://syzkaller.appspot.com/x/.config?x=ed9d672709340e35
> > dashboard link: https://syzkaller.appspot.com/bug?extid=f2ca20d4aa1408b0385a
> > compiler:       gcc (GCC) 9.0.0 20181231 (experimental)
> > userspace arch: i386
> > syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=10cc8971e00000
>
> So I tried to reproduce this. syz-prog2c made .c out of the above link.
> It starts with:
> |int main(void)
> | {
> |   syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 3ul, 0x32ul, -1, 0);

Hi Sebastian,

If you want to generate a C repro for 386 arch, you need to add
-arch=386 flag to syz-prog2c (then it hopefully should use mmap2).
But FWIW syzbot wasn't able to reproduce it with a C program,
otherwise it would have been provided it. But that may be for various
reasons.

> and segfaults on execution. The problem is that for for 32bit-x86 this
> should be __NR_mmap2 instead. This fixed the mmap() calls however the
> openat() still failed… Nothing bad happened in the end since all the
> syscalls failed "early".
> As a 64bit binary, it is a different story:
> - On a Intel box the KVM_RUN ioctl() worked and did not return (CTRL-C
>   ended the ioctl() without an error/warning)
> - On a AMD box the KVM_RUN ioctl() triggered a reboot of the kvm guest.
>
> > The bug was bisected to:
> >
> > commit 92e6475ae0a0383b012eb21c1aaf0e5456b1a3d9
> > Author: Nicholas Kazlauskas <nicholas.kazlauskas@....com>
> > Date:   Wed Jul 3 14:02:39 2019 +0000
> >
> >     drm/amd/display: Set enabled to false at start of audio disable
> >
> > bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=15614e3ee00000
>
> This commit changes a file which is not compiled by the config provided.

I've added a reference here:
https://github.com/google/syzkaller/issues/1271#issuecomment-559093018

But I don't know what's the reason for non-deterministic builds yet.
Anyhow it _did_ affect the vmlinux.

> > console output: https://syzkaller.appspot.com/x/log.txt?x=13614e3ee00000
>
> > IMPORTANT: if you fix the bug, please add the following tag to the commit:
> > Reported-by: syzbot+f2ca20d4aa1408b0385a@...kaller.appspotmail.com
> > Fixes: 92e6475ae0a0 ("drm/amd/display: Set enabled to false at start of
> > audio disable")
> >
> > ------------[ cut here ]------------
> > WARNING: CPU: 0 PID: 2862 at arch/x86/include/asm/fpu/internal.h:539
> > __fpregs_load_activate arch/x86/include/asm/fpu/internal.h:539 [inline]
> > WARNING: CPU: 0 PID: 2862 at arch/x86/include/asm/fpu/internal.h:539
> > switch_fpu_return+0x437/0x4f0 arch/x86/kernel/fpu/core.c:343
> > Kernel panic - not syncing: panic_on_warn set ...
> > CPU: 0 PID: 2862 Comm: kworker/0:3 Not tainted 5.5.0-rc3-syzkaller #0
> > Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> > Google 01/01/2011
> > Workqueue: events async_pf_execute
> > Call Trace:
> …
> > ff e8 9d 8d 4a 00 0f 0b e9 18 fd ff ff e8 91 8d
> > RSP: 0018:ffffc90007ecfa80 EFLAGS: 00010293
> > RAX: ffff88809f60e0c0 RBX: ffff88809f60e0c0 RCX: ffffffff812a9ccf
> > RDX: 0000000000000000 RSI: ffffffff812aa047 RDI: 0000000000000005
> > RBP: ffffc90007ecfb10 R08: ffff88809f60e0c0 R09: ffffed1013ec1c19
> > R10: ffffed1013ec1c18 R11: ffff88809f60e0c7 R12: 1ffff92000fd9f51
> > R13: ffff88809f60f5c0 R14: 0000000000200000 R15: ffffc90007ecfae8
> >  kvm_arch_vcpu_load+0x66e/0x950 arch/x86/kvm/x86.c:3463
> >  vcpu_load+0x43/0x90 arch/x86/kvm/../../../virt/kvm/kvm_main.c:201
> >  kvm_unload_vcpu_mmu arch/x86/kvm/x86.c:9543 [inline]
> >  kvm_free_vcpus arch/x86/kvm/x86.c:9558 [inline]
> >  kvm_arch_destroy_vm+0x184/0x5f0 arch/x86/kvm/x86.c:9663
> >  kvm_destroy_vm arch/x86/kvm/../../../virt/kvm/kvm_main.c:816 [inline]
> >  kvm_put_kvm+0x5a5/0xcc0 arch/x86/kvm/../../../virt/kvm/kvm_main.c:837
> >  async_pf_execute+0x3bf/0x800 arch/x86/kvm/../../../virt/kvm/async_pf.c:101
> >  process_one_work+0x9af/0x1740 kernel/workqueue.c:2264
> >  worker_thread+0x98/0xe40 kernel/workqueue.c:2410
> >  kthread+0x361/0x430 kernel/kthread.c:255
> >  ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352
> > Kernel Offset: disabled
> > Rebooting in 86400 seconds..
>
> As part of kvm_arch_vcpu_load() switch_fpu_return() is invoked which
> triggers the warning. The problem is that a workqueue should have
> TIF_NEED_FPU_LOAD set. I have no idea how that one got set since it
> should not be set for kernel threads.
>
> Sebastian
>
> --
> You received this message because you are subscribed to the Google Groups "syzkaller-bugs" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to syzkaller-bugs+unsubscribe@...glegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/syzkaller-bugs/20200107205302.45yb2rkekz3nat6v%40linutronix.de.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ