From: Jani Nikula <jani.nikula@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, Lukas Wunner <lukas@wunner.de>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: Deadlock in intel_user_framebuffer_destroy()
Date: Mon, 15 Jun 2015 09:44:15 +0300 [thread overview]
Message-ID: <87a8w179og.fsf@intel.com> (raw)
In-Reply-To: <20150603135741.GB27056@nuc-i3427.alporthouse.com>
On Wed, 03 Jun 2015, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Wed, Jun 03, 2015 at 03:43:32PM +0200, Lukas Wunner wrote:
>> Hi,
>>
>> a deadlock was introduced by commit 60a5ca015ffd2aacfe5674b5a401cd2a37159e07
>>
>> Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> Date: Fri Jun 13 11:10:53 2014 +0300
>>
>> drm/i915: Add locking around framebuffer_references--
>>
>>
>> The commit amended intel_display.c:intel_user_framebuffer_destroy() with
>> mutex_lock(&dev->struct_mutex).
>>
>> A few weeks prior Chris Wilson had amended intel_fbdev.c:intelfb_create()
>> with a call to drm_framebuffer_unreference() while &dev->struct_mutex is
>> locked (commit edd586fe705e819bc711b5ed7194a0b6f9f1a7e1, "drm/i915: Discard
>> BIOS framebuffers too small to accommodate chosen mode").
>>
>
> Just move the mutex_lock down a step.
Lucas, did you try this?
BR,
Jani.
>
> t a/drivers/gpu/drm/i915/intel_fbdev.c b/drivers/gpu/drm/i915/intel_fbdev.c
> index 6372cfc..a9b8c43 100644
> --- a/drivers/gpu/drm/i915/intel_fbdev.c
> +++ b/drivers/gpu/drm/i915/intel_fbdev.c
> @@ -209,8 +209,6 @@ static int intelfb_create(struct drm_fb_helper *helper,
> int size, ret;
> bool prealloc = false;
>
> - mutex_lock(&dev->struct_mutex);
> -
> if (intel_fb &&
> (sizes->fb_width > intel_fb->base.width ||
> sizes->fb_height > intel_fb->base.height)) {
> @@ -221,6 +219,9 @@ static int intelfb_create(struct drm_fb_helper *helper,
> drm_framebuffer_unreference(&intel_fb->base);
> intel_fb = ifbdev->fb = NULL;
> }
> +
> + mutex_lock(&dev->struct_mutex);
> +
> if (!intel_fb || WARN_ON(!intel_fb->obj)) {
> DRM_DEBUG_KMS("no BIOS fb, allocating a new one\n");
> ret = intelfb_alloc(helper, sizes);
>
> --
> Chris Wilson, Intel Open Source Technology Centre
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-06-15 6:46 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-03 13:43 Deadlock in intel_user_framebuffer_destroy() Lukas Wunner
2015-06-03 13:57 ` Chris Wilson
2015-06-15 6:44 ` Jani Nikula [this message]
2015-06-15 7:34 ` Lukas Wunner
2015-06-15 7:53 ` Chris Wilson
2015-06-15 9:25 ` Tvrtko Ursulin
2015-06-15 12:02 ` Daniel Vetter
2015-06-15 12:07 ` Chris Wilson
2015-06-29 11:24 ` Jani Nikula
2015-06-29 14:42 ` Lukas Wunner
2015-06-30 7:57 ` Jani Nikula
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=87a8w179og.fsf@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
--cc=lukas@wunner.de \
/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.