Received: by 10.223.164.221 with SMTP id h29csp585003wrb; Mon, 16 Oct 2017 08:19:23 -0700 (PDT) X-Google-Smtp-Source: AOwi7QCVlevklIzbVodPP4uBwNFFQaIzgKjkVJyKMOG/XbtspjA7o4bUZwfmyAdRJCzQQ2KpncJC X-Received: by 10.101.81.135 with SMTP id h7mr8628991pgq.48.1508167163436; Mon, 16 Oct 2017 08:19:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1508167163; cv=none; d=google.com; s=arc-20160816; b=rV92Esklj+3ipck4cSjvzA/hVHHj5nmAqzxpyQcSeVtk0q5M/PrLTFmtzyf35I9IvC fx7QAPHdXQbUVjWey73MTFR42sOvQgXjompqbBeqGBeYdlpG2qcGETJRvkfKmQUMpvUQ /r/+xv7kEqrnsneO8l2+G48w0TQADhqBODtgFB9SUH7zFzn3JsryxkZyV49hrxSFyX+7 JDZ+aLVfC0WS3ub81z5zRub+ARpY3xNGo4W2/FZAtX8JLc5nVJmpXGq/QUG6mqKlKvgb Ehc/+6zIxhaBxDIRHaVUzIJtv+HTqdY1zukamt7679+L8pIC3qEIHpGxZppl/fo9hWLE utCA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:arc-authentication-results; bh=2RWm/dFTDR0Zh1tCWWNREalZe7lbmXLfoAPNyeqxfYY=; b=XvqbAg6t8pQY1SszHcYDuWQWJef1aVISqf1bmul1EwuLsCM+GpgvWiMsKWWQgqq+Xj xhiPA5Ylmx68qTHSr3a7rhp6+AFs+ucDnU1WbEv1qpeRjTVVQt8DjV4SB9wtF1F5RNEJ tnZRskAqgTm7yxeNjaXft+ypPoi97lCGeHOOT+UuKAxaGHBw8Vr/v5LlII+r/muBECQ7 jJpbx2DlQoiT3bwOR0SsukLoWnDmDzUACBDMr3OJZftkEKdpCvr4V1Kg9alf28DHUCsN QxpT81nAwhiR3ZCvv14WDHsEvS8seNzJC0KJIwTU3LDqVBQ/1/d/pL0jcw//OeRGD60B obDA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c187si4483327pfa.287.2017.10.16.08.19.08; Mon, 16 Oct 2017 08:19:23 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753508AbdJPPSp (ORCPT + 99 others); Mon, 16 Oct 2017 11:18:45 -0400 Received: from lb2-smtp-cloud8.xs4all.net ([194.109.24.25]:36390 "EHLO lb2-smtp-cloud8.xs4all.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751720AbdJPPSm (ORCPT ); Mon, 16 Oct 2017 11:18:42 -0400 Received: from [192.168.2.10] ([212.251.195.8]) by smtp-cloud8.xs4all.net with ESMTPA id 47A1eCJGOg5cR47A4ebA6k; Mon, 16 Oct 2017 17:18:40 +0200 Subject: Re: [PATCH v2 1/2] media: exynos-gsc: fix lockdep warning To: Shuah Khan , mchehab@kernel.org, hansverk@cisco.com, kgene@kernel.org, krzk@kernel.org, s.nawrocki@samsung.com, shailendra.v@samsung.com, shuah@kernel.org, Julia.Lawall@lip6.fr, kyungmin.park@samsung.com, kamil@wypas.org, jtp.park@samsung.com, a.hajda@samsung.com Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org References: From: Hans Verkuil Message-ID: <5362d81f-80c1-e806-51c2-a818a941518a@xs4all.nl> Date: Mon, 16 Oct 2017 17:18:33 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-CMAE-Envelope: MS4wfBTOQ11npi/brbWRToEDKjA+HWSrrRk4WLWBzTPkmfdIRKhDe1bzB0J/T5Yg6IAQ1j/Iq0zMELHpeqMIHmW8QHLYviCVTREQ18p73ozszkyk4UhaecFf kAptQNz0Omr6IRTMa81g+nXXjaO0usihHGlhgDYGYMcepZy1e1PG/4kGHISjM+W5iLEbjdUlVMFuspnBZ+uD0X97oHMzyMv0NA7VT2tbc2gSaMG5HTWUWE23 RIfdKP9ht0sjFUSV1QhoXEg82Y3mBzREq8S5sA47AtbK4M6WGu0slP+Xmh31I05QCgXWw5XBKqsB2ZsE/hP0ETKsU6iQLNdr5/Q2/OgFVSG5Fs7mUVrkSeKt Mucfd8HrMCNL4aVSizwN9hIPokbujb5lYPAtRMXb8vC+7q1fTwqAbuAqLO+3Sgh8KX/mN1Evcom/c1KkpH9kELkhQYCazBCPi34ezqspiQFA8UzcR2/L6HAD uxzFuawfFYaNjRca+SxiCI29iYB7ujsK77os1/G8sXs8Xdy+B1DPPcmL6Be7V5CCEmoOUHUBzh+PkZA/7KyPE2b21qTEbr37sqm/DFu9sA5gPYOlw7/xMu36 MaPgWXH0gf8YXDJFEhJSdzFlGPeA7DPxQ4D/S8RAto62z/9ZeiKejYXjPx+GEAORprq7XvEXnlaORHCRW1g+HtUiheO4YPaxEPZ1PBgmatH8mY0R9HuIqPKX HU58DQP1CAQ= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/16/2017 05:16 PM, Shuah Khan wrote: > The driver mmap functions shouldn't take lock when calling vb2_mmap(). > Fix it to not take the lock. > > Reference: commit log for f035eb4e976ef5a059e30bc91cfd310ff030a7d3 > and e752577ed7bf55c81e10343fced8b378cda2b63b > > The following lockdep warning is fixed with this change. > > [ 1990.972058] ====================================================== > [ 1990.978172] WARNING: possible circular locking dependency detected > [ 1990.984327] 4.14.0-rc2-00002-gfab205f-dirty #4 Not tainted > [ 1990.989783] ------------------------------------------------------ > [ 1990.995937] qtdemux0:sink/2765 is trying to acquire lock: > [ 1991.001309] (&gsc->lock){+.+.}, at: [] gsc_m2m_mmap+0x24/0x5c [exynos_gsc] > [ 1991.009108] > but task is already holding lock: > [ 1991.014913] (&mm->mmap_sem){++++}, at: [] vm_mmap_pgoff+0x44/0xb8 > [ 1991.021932] > which lock already depends on the new lock. > > [ 1991.030078] > the existing dependency chain (in reverse order) is: > [ 1991.037530] > -> #1 (&mm->mmap_sem){++++}: > [ 1991.042913] __might_fault+0x80/0xb0 > [ 1991.047096] video_usercopy+0x1cc/0x510 [videodev] > [ 1991.052297] v4l2_ioctl+0xa4/0xdc [videodev] > [ 1991.057036] do_vfs_ioctl+0xa0/0xa18 > [ 1991.061102] SyS_ioctl+0x34/0x5c > [ 1991.064834] ret_fast_syscall+0x0/0x28 > [ 1991.069072] > -> #0 (&gsc->lock){+.+.}: > [ 1991.074193] lock_acquire+0x6c/0x88 > [ 1991.078179] __mutex_lock+0x68/0xa34 > [ 1991.082247] mutex_lock_interruptible_nested+0x1c/0x24 > [ 1991.087888] gsc_m2m_mmap+0x24/0x5c [exynos_gsc] > [ 1991.093029] v4l2_mmap+0x54/0x88 [videodev] > [ 1991.097673] mmap_region+0x3a8/0x638 > [ 1991.101743] do_mmap+0x330/0x3a4 > [ 1991.105470] vm_mmap_pgoff+0x90/0xb8 > [ 1991.109542] SyS_mmap_pgoff+0x90/0xc0 > [ 1991.113702] ret_fast_syscall+0x0/0x28 > [ 1991.117945] > other info that might help us debug this: > > [ 1991.125918] Possible unsafe locking scenario: > > [ 1991.131810] CPU0 CPU1 > [ 1991.136315] ---- ---- > [ 1991.140821] lock(&mm->mmap_sem); > [ 1991.144201] lock(&gsc->lock); > [ 1991.149833] lock(&mm->mmap_sem); > [ 1991.155725] lock(&gsc->lock); > [ 1991.158845] > *** DEADLOCK *** > > [ 1991.164740] 1 lock held by qtdemux0:sink/2765: > [ 1991.169157] #0: (&mm->mmap_sem){++++}, at: [] vm_mmap_pgoff+0x44/0xb8 > [ 1991.176609] > stack backtrace: > [ 1991.180946] CPU: 2 PID: 2765 Comm: qtdemux0:sink Not tainted 4.14.0-rc2-00002-gfab205f-dirty #4 > [ 1991.189608] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) > [ 1991.195686] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) > [ 1991.203393] [] (show_stack) from [] (dump_stack+0x98/0xc4) > [ 1991.210586] [] (dump_stack) from [] (print_circular_bug+0x254/0x410) > [ 1991.218644] [] (print_circular_bug) from [] (check_prev_add+0x468/0x938) > [ 1991.227049] [] (check_prev_add) from [] (__lock_acquire+0x1314/0x14fc) > [ 1991.235281] [] (__lock_acquire) from [] (lock_acquire+0x6c/0x88) > [ 1991.242993] [] (lock_acquire) from [] (__mutex_lock+0x68/0xa34) > [ 1991.250620] [] (__mutex_lock) from [] (mutex_lock_interruptible_nested+0x1c/0x24) > [ 1991.259812] [] (mutex_lock_interruptible_nested) from [] (gsc_m2m_mmap+0x24/0x5c [exynos_gsc]) > [ 1991.270159] [] (gsc_m2m_mmap [exynos_gsc]) from [] (v4l2_mmap+0x54/0x88 [videodev]) > [ 1991.279510] [] (v4l2_mmap [videodev]) from [] (mmap_region+0x3a8/0x638) > [ 1991.287792] [] (mmap_region) from [] (do_mmap+0x330/0x3a4) > [ 1991.294986] [] (do_mmap) from [] (vm_mmap_pgoff+0x90/0xb8) > [ 1991.302178] [] (vm_mmap_pgoff) from [] (SyS_mmap_pgoff+0x90/0xc0) > [ 1991.309977] [] (SyS_mmap_pgoff) from [] (ret_fast_syscall+0x0/0x28) > > Signed-off-by: Shuah Khan > Suggested-by: Hans Verkuil > Acked-by: Marek Szyprowski Acked-by: Hans Verkuil Regards, Hans > --- > drivers/media/platform/exynos-gsc/gsc-m2m.c | 5 ----- > 1 file changed, 5 deletions(-) > > diff --git a/drivers/media/platform/exynos-gsc/gsc-m2m.c b/drivers/media/platform/exynos-gsc/gsc-m2m.c > index 2a2994e..722d7c4 100644 > --- a/drivers/media/platform/exynos-gsc/gsc-m2m.c > +++ b/drivers/media/platform/exynos-gsc/gsc-m2m.c > @@ -726,14 +726,9 @@ static unsigned int gsc_m2m_poll(struct file *file, > static int gsc_m2m_mmap(struct file *file, struct vm_area_struct *vma) > { > struct gsc_ctx *ctx = fh_to_ctx(file->private_data); > - struct gsc_dev *gsc = ctx->gsc_dev; > int ret; > > - if (mutex_lock_interruptible(&gsc->lock)) > - return -ERESTARTSYS; > - > ret = v4l2_m2m_mmap(file, ctx->m2m_ctx, vma); > - mutex_unlock(&gsc->lock); > > return ret; > } > From 1581427779116562147@xxx Mon Oct 16 15:17:36 +0000 2017 X-GM-THRID: 1581185987804397137 X-Gmail-Labels: Inbox,Category Forums