From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756288AbcH2GBg (ORCPT ); Mon, 29 Aug 2016 02:01:36 -0400 Received: from mail-wm0-f48.google.com ([74.125.82.48]:34003 "EHLO mail-wm0-f48.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752039AbcH2GBf (ORCPT ); Mon, 29 Aug 2016 02:01:35 -0400 Date: Mon, 29 Aug 2016 08:01:12 +0200 From: Daniel Vetter To: Dmitry Vyukov Cc: airlied@linux.ie, dri-devel@lists.freedesktop.org, LKML , Kostya Serebryany , syzkaller , Alexander Potapenko Subject: Re: dri: WARNING in idr_remove Message-ID: <20160829060112.GE10980@phenom.ffwll.local> Mail-Followup-To: Dmitry Vyukov , airlied@linux.ie, dri-devel@lists.freedesktop.org, LKML , Kostya Serebryany , syzkaller , Alexander Potapenko References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Operating-System: Linux phenom 4.6.0-1-amd64 User-Agent: Mutt/1.6.0 (2016-04-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Aug 28, 2016 at 04:32:55PM +0200, Dmitry Vyukov wrote: > Hello, > > The following program causes a WARNING in idr_remove: Again under the assumption that you're running this with the vgem driver: linux-next has it fixed. -Daniel > > ------------[ cut here ]------------ > WARNING: CPU: 3 PID: 26766 at lib/idr.c:505 > idr_remove called for id=1 which is not allocated. > CPU: 3 PID: 26766 Comm: syz-executor Not tainted 4.8.0-rc3+ #33 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 > ffffffff884b8280 ffff8800634878d8 ffffffff82d1b239 ffffffff01fc0000 > fffffbfff1097050 ffffffff86e8eec0 ffff8800634879b0 ffffffff8723b400 > dffffc0000000000 0000000000000009 ffff8800634879a0 ffffffff816ab4e3 > Call Trace: > [] warn_slowpath_fmt+0xac/0xd0 kernel/panic.c:532 > [< inline >] idr_remove_warning lib/idr.c:505 > [] idr_remove+0x617/0x830 lib/idr.c:559 > [] drm_legacy_ctxbitmap_free+0x9d/0xd0 > drivers/gpu/drm/drm_context.c:61 > [] drm_legacy_rmctx+0x30e/0x410 > drivers/gpu/drm/drm_context.c:496 > [] drm_ioctl+0x7bc/0xc60 drivers/gpu/drm/drm_ioctl.c:724 > [< inline >] vfs_ioctl fs/ioctl.c:43 > [] do_vfs_ioctl+0x18c/0x1080 fs/ioctl.c:675 > [< inline >] SYSC_ioctl fs/ioctl.c:690 > [] SyS_ioctl+0x8f/0xc0 fs/ioctl.c:681 > [] do_syscall_64+0x1df/0x640 arch/x86/entry/common.c:288 > [] entry_SYSCALL64_slow_path+0x25/0x25 > arch/x86/entry/entry_64.S:248 > > > // autogenerated by syzkaller (http://github.com/google/syzkaller) > #include > #include > #include > #include > > int main() > { > syscall(__NR_mmap, 0x20000000ul, 0xc000ul, 0x3ul, > 0x32ul, -1, 0x0ul, 0, 0, 0); > int fd = open("/dev/dri/card0", 0x101102ul, 0); > *(uint32_t*)0x2000b000 = (uint32_t)0x2; > *(uint64_t*)0x2000b008 = (uint64_t)0x2000b000; > syscall(__NR_ioctl, fd, 0xc0106426ul, 0x2000b000ul); > int res = *(uint32_t*)0x2000b000; > *(uint32_t*)0x2000bff8 = res; > *(uint32_t*)0x2000bffc = (uint32_t)0x2; > syscall(__NR_ioctl, fd, 0xc0086421ul, 0x2000bff8ul); > return 0; > } > > On commit 61c04572de404e52a655a36752e696bbcb483cf5 (Aug 25). > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch