All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qiujun Huang <anenbupt@gmail.com>
To: syzbot <syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com>,
	maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	airlied@linux.ie, daniel@ffwll.ch
Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
	syzkaller-bugs@googlegroups.com, willy@infradead.org
Subject: Re: WARNING in idr_destroy
Date: Sat, 14 Mar 2020 09:25:23 +0800	[thread overview]
Message-ID: <CADG63jD0cwOJGig0UyX1TJZh5-L6q=rqd2=qGACAnU_+Lk1gYA@mail.gmail.com> (raw)
In-Reply-To: <0000000000002e20b9059fee8a94@google.com>

We need to get idr_mutex first for idr_alloc.

diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
index b481cafdde28..aa72c8344ec7 100644
--- a/drivers/gpu/drm/drm_lease.c
+++ b/drivers/gpu/drm/drm_lease.c
@@ -420,6 +420,7 @@ static int fill_object_idr(struct drm_device *dev,

        /* add their IDs to the lease request - taking into account
           universal planes */
+       mutex_lock(&dev->mode_config.idr_mutex);
        for (o = 0; o < object_count; o++) {
                struct drm_mode_object *obj = objects[o];
                u32 object_id = objects[o]->id;
@@ -457,6 +458,7 @@ static int fill_object_idr(struct drm_device *dev,
                        }
                }
        }
+       mutex_unlock(&dev->mode_config.idr_mutex);

        ret = 0;
 out_free_objects:

On Tue, Mar 3, 2020 at 3:50 PM syzbot
<syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit:    63623fd4 Merge tag 'for-linus' of git://git.kernel.org/pub..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=10e978e3e00000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=5d2e033af114153f
> dashboard link: https://syzkaller.appspot.com/bug?extid=05835159fe322770fe3d
> compiler:       clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=14e978e3e00000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=10b1a819e00000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com
>
> R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c
> R13: 00007fc6b3362d90 R14: 0000000000000004 R15: 000000000000002d
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 12260 at lib/radix-tree.c:682 radix_tree_free_nodes lib/radix-tree.c:682 [inline]
> WARNING: CPU: 0 PID: 12260 at lib/radix-tree.c:682 idr_destroy+0x1ae/0x260 lib/radix-tree.c:1572
> Kernel panic - not syncing: panic_on_warn set ...
> CPU: 0 PID: 12260 Comm: syz-executor386 Not tainted 5.6.0-rc3-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Call Trace:
>  __dump_stack lib/dump_stack.c:77 [inline]
>  dump_stack+0x1fb/0x318 lib/dump_stack.c:118
>  panic+0x264/0x7a9 kernel/panic.c:221
>  __warn+0x209/0x210 kernel/panic.c:582
>  report_bug+0x1b6/0x2f0 lib/bug.c:195
>  fixup_bug arch/x86/kernel/traps.c:174 [inline]
>  do_error_trap+0xcf/0x1c0 arch/x86/kernel/traps.c:267
>  do_invalid_op+0x36/0x40 arch/x86/kernel/traps.c:286
>  invalid_op+0x23/0x30 arch/x86/entry/entry_64.S:1027
> RIP: 0010:radix_tree_free_nodes lib/radix-tree.c:682 [inline]
> RIP: 0010:idr_destroy+0x1ae/0x260 lib/radix-tree.c:1572
> Code: b5 63 f9 48 89 df 48 c7 c6 c0 0a 13 88 e8 6a ce 50 f9 4c 3b 65 b8 74 57 e8 cf b5 63 f9 4d 89 fc e9 67 ff ff ff e8 c2 b5 63 f9 <0f> 0b eb d5 89 f9 80 e1 07 38 c1 7c 84 e8 c0 de a0 f9 e9 7a ff ff
> RSP: 0018:ffffc90005107ba0 EFLAGS: 00010293
> RAX: ffffffff881363be RBX: ffff888087dba998 RCX: ffff888094062300
> RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffff888087dba988
> RBP: ffffc90005107be8 R08: ffffffff88136330 R09: ffffed1012a78181
> R10: ffffed1012a78181 R11: 0000000000000000 R12: ffff888087dba980
> R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000000000
>  drm_mode_create_lease_ioctl+0x1347/0x1860 drivers/gpu/drm/drm_lease.c:583
>  drm_ioctl_kernel+0x2cf/0x410 drivers/gpu/drm/drm_ioctl.c:786
>  drm_ioctl+0x52f/0x890 drivers/gpu/drm/drm_ioctl.c:886
>  vfs_ioctl fs/ioctl.c:47 [inline]
>  ksys_ioctl fs/ioctl.c:763 [inline]
>  __do_sys_ioctl fs/ioctl.c:772 [inline]
>  __se_sys_ioctl+0x113/0x190 fs/ioctl.c:770
>  __x64_sys_ioctl+0x7b/0x90 fs/ioctl.c:770
>  do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:294
>  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x44a4b9
> Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 9b cc fb ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007fc6b3362d88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00000000006dbc28 RCX: 000000000044a4b9
> RDX: 0000000020000040 RSI: ffffffffffffffc6 RDI: 0000000000000003
> RBP: 00000000006dbc20 R08: 0000000000000001 R09: 0000000000000039
> R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c
> R13: 00007fc6b3362d90 R14: 0000000000000004 R15: 000000000000002d
> Kernel Offset: disabled
> Rebooting in 86400 seconds..
>
>
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> syzbot can test patches for this bug, for details see:
> https://goo.gl/tpsmEJ#testing-patches

WARNING: multiple messages have this Message-ID (diff)
From: Qiujun Huang <anenbupt@gmail.com>
To: syzbot <syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com>,
	 maarten.lankhorst@linux.intel.com, mripard@kernel.org,
	airlied@linux.ie,  daniel@ffwll.ch
Cc: willy@infradead.org, syzkaller-bugs@googlegroups.com,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: WARNING in idr_destroy
Date: Sat, 14 Mar 2020 09:25:23 +0800	[thread overview]
Message-ID: <CADG63jD0cwOJGig0UyX1TJZh5-L6q=rqd2=qGACAnU_+Lk1gYA@mail.gmail.com> (raw)
In-Reply-To: <0000000000002e20b9059fee8a94@google.com>

We need to get idr_mutex first for idr_alloc.

diff --git a/drivers/gpu/drm/drm_lease.c b/drivers/gpu/drm/drm_lease.c
index b481cafdde28..aa72c8344ec7 100644
--- a/drivers/gpu/drm/drm_lease.c
+++ b/drivers/gpu/drm/drm_lease.c
@@ -420,6 +420,7 @@ static int fill_object_idr(struct drm_device *dev,

        /* add their IDs to the lease request - taking into account
           universal planes */
+       mutex_lock(&dev->mode_config.idr_mutex);
        for (o = 0; o < object_count; o++) {
                struct drm_mode_object *obj = objects[o];
                u32 object_id = objects[o]->id;
@@ -457,6 +458,7 @@ static int fill_object_idr(struct drm_device *dev,
                        }
                }
        }
+       mutex_unlock(&dev->mode_config.idr_mutex);

        ret = 0;
 out_free_objects:

On Tue, Mar 3, 2020 at 3:50 PM syzbot
<syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com> wrote:
>
> Hello,
>
> syzbot found the following crash on:
>
> HEAD commit:    63623fd4 Merge tag 'for-linus' of git://git.kernel.org/pub..
> git tree:       upstream
> console output: https://syzkaller.appspot.com/x/log.txt?x=10e978e3e00000
> kernel config:  https://syzkaller.appspot.com/x/.config?x=5d2e033af114153f
> dashboard link: https://syzkaller.appspot.com/bug?extid=05835159fe322770fe3d
> compiler:       clang version 10.0.0 (https://github.com/llvm/llvm-project/ c2443155a0fb245c8f17f2c1c72b6ea391e86e81)
> syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=14e978e3e00000
> C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=10b1a819e00000
>
> IMPORTANT: if you fix the bug, please add the following tag to the commit:
> Reported-by: syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com
>
> R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c
> R13: 00007fc6b3362d90 R14: 0000000000000004 R15: 000000000000002d
> ------------[ cut here ]------------
> WARNING: CPU: 0 PID: 12260 at lib/radix-tree.c:682 radix_tree_free_nodes lib/radix-tree.c:682 [inline]
> WARNING: CPU: 0 PID: 12260 at lib/radix-tree.c:682 idr_destroy+0x1ae/0x260 lib/radix-tree.c:1572
> Kernel panic - not syncing: panic_on_warn set ...
> CPU: 0 PID: 12260 Comm: syz-executor386 Not tainted 5.6.0-rc3-syzkaller #0
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
> Call Trace:
>  __dump_stack lib/dump_stack.c:77 [inline]
>  dump_stack+0x1fb/0x318 lib/dump_stack.c:118
>  panic+0x264/0x7a9 kernel/panic.c:221
>  __warn+0x209/0x210 kernel/panic.c:582
>  report_bug+0x1b6/0x2f0 lib/bug.c:195
>  fixup_bug arch/x86/kernel/traps.c:174 [inline]
>  do_error_trap+0xcf/0x1c0 arch/x86/kernel/traps.c:267
>  do_invalid_op+0x36/0x40 arch/x86/kernel/traps.c:286
>  invalid_op+0x23/0x30 arch/x86/entry/entry_64.S:1027
> RIP: 0010:radix_tree_free_nodes lib/radix-tree.c:682 [inline]
> RIP: 0010:idr_destroy+0x1ae/0x260 lib/radix-tree.c:1572
> Code: b5 63 f9 48 89 df 48 c7 c6 c0 0a 13 88 e8 6a ce 50 f9 4c 3b 65 b8 74 57 e8 cf b5 63 f9 4d 89 fc e9 67 ff ff ff e8 c2 b5 63 f9 <0f> 0b eb d5 89 f9 80 e1 07 38 c1 7c 84 e8 c0 de a0 f9 e9 7a ff ff
> RSP: 0018:ffffc90005107ba0 EFLAGS: 00010293
> RAX: ffffffff881363be RBX: ffff888087dba998 RCX: ffff888094062300
> RDX: 0000000000000000 RSI: 0000000000000040 RDI: ffff888087dba988
> RBP: ffffc90005107be8 R08: ffffffff88136330 R09: ffffed1012a78181
> R10: ffffed1012a78181 R11: 0000000000000000 R12: ffff888087dba980
> R13: 0000000000000000 R14: dffffc0000000000 R15: 0000000000000000
>  drm_mode_create_lease_ioctl+0x1347/0x1860 drivers/gpu/drm/drm_lease.c:583
>  drm_ioctl_kernel+0x2cf/0x410 drivers/gpu/drm/drm_ioctl.c:786
>  drm_ioctl+0x52f/0x890 drivers/gpu/drm/drm_ioctl.c:886
>  vfs_ioctl fs/ioctl.c:47 [inline]
>  ksys_ioctl fs/ioctl.c:763 [inline]
>  __do_sys_ioctl fs/ioctl.c:772 [inline]
>  __se_sys_ioctl+0x113/0x190 fs/ioctl.c:770
>  __x64_sys_ioctl+0x7b/0x90 fs/ioctl.c:770
>  do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:294
>  entry_SYSCALL_64_after_hwframe+0x49/0xbe
> RIP: 0033:0x44a4b9
> Code: e8 0c e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 9b cc fb ff c3 66 2e 0f 1f 84 00 00 00 00
> RSP: 002b:00007fc6b3362d88 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
> RAX: ffffffffffffffda RBX: 00000000006dbc28 RCX: 000000000044a4b9
> RDX: 0000000020000040 RSI: ffffffffffffffc6 RDI: 0000000000000003
> RBP: 00000000006dbc20 R08: 0000000000000001 R09: 0000000000000039
> R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c
> R13: 00007fc6b3362d90 R14: 0000000000000004 R15: 000000000000002d
> Kernel Offset: disabled
> Rebooting in 86400 seconds..
>
>
> ---
> This bug is generated by a bot. It may contain errors.
> See https://goo.gl/tpsmEJ for more information about syzbot.
> syzbot engineers can be reached at syzkaller@googlegroups.com.
>
> syzbot will keep track of this bug report. See:
> https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
> syzbot can test patches for this bug, for details see:
> https://goo.gl/tpsmEJ#testing-patches
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2020-03-14  1:25 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-03  7:49 WARNING in idr_destroy syzbot
2020-03-03  7:49 ` syzbot
2020-03-11  4:36 ` syzbot
2020-03-11  4:36   ` syzbot
2020-03-14  1:25 ` Qiujun Huang [this message]
2020-03-14  1:25   ` Qiujun Huang
2020-03-14  2:09 ` Qiujun Huang
2020-03-14  4:02   ` syzbot
2020-03-14  4:02     ` syzbot
2020-03-14  5:48 ` Qiujun Huang
2020-03-14  9:13   ` syzbot
2020-03-14  9:13     ` syzbot
2020-03-18  2:17 ` Qiujun Huang
2020-03-18  2:17   ` Qiujun Huang
2020-03-18  7:19   ` syzbot
2020-03-18  7:19     ` syzbot

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='CADG63jD0cwOJGig0UyX1TJZh5-L6q=rqd2=qGACAnU_+Lk1gYA@mail.gmail.com' \
    --to=anenbupt@gmail.com \
    --cc=airlied@linux.ie \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=syzbot+05835159fe322770fe3d@syzkaller.appspotmail.com \
    --cc=syzkaller-bugs@googlegroups.com \
    --cc=willy@infradead.org \
    /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.