From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v2] drm/i915: Fix BUG in i915_gem.c when switch to console Date: Thu, 12 Mar 2015 10:28:56 +0200 Message-ID: <87pp8er54n.fsf@intel.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id C84AC6E1F2 for ; Thu, 12 Mar 2015 01:27:29 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: daniel.vetter@intel.com, airlied@linux.ie Cc: Xi Ruoyao , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-level@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAxMiBNYXIgMjAxNSwgWGkgUnVveWFvIDx4cnkxMTFAb3V0bG9vay5jb20+IHdyb3Rl Ogo+IEluIGludGVsX2NydGNfcGFnZV9mbGlwLCBpbnRlbF9kaXNwbGF5LmMsIHRoZSBjb2RlIGNo YW5nZWQgdGhlIGZyYW1lYnVmZmVyCj4gYXNzaWduZWQgdG8gcGxhbmUgY3J0Yy0+cHJpbWFyeSBi eQo+Cj4gY3J0Yy0+cHJpbWFyeS0+ZmIgPSBmYjsKPgo+IEhvd2V2ZXIsIGl0IGZvcmdvdCB0byBj aGFuZ2UgY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiLiBIb3dldmVyLCB3aGVuIHdlCj4gc3dpdGNo IHRvIGNvbnNvbGUsIHNvbWUga2VybmVsIGNvZGUgd2lsbCByZWFkIGNydGMtPnByaW1hcnktPnN0 YXRlLT5mYgo+IHRvIGdldCB0aGUgZnJhbWVidWZmZXIgYXNzaWduZWQgdG8gY3J0Yy0+cHJpbWF0 eS4gVGhlbiBhIGZyYW1lYnVmZmVyCj4gb2JqZWN0IGNhbiBiZSB1bnBpbm5lZCB0d2ljZSBhbmQg YSBrZXJuZWwgQlVHIHdpbGwgYmUgcHJvZHVjZWQgaW4gaTkxNV9nZW0uYy4KPgo+IFNvLCB1cGRh dGUgY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPmZiIGluIGludGVsX2Rpc3BsYXkuYyB1c2luZwo+IGRy bV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZSB0byBmaXggdGhlIEJVRy4KPgo+IFNpZ25lZC1vZmYt Ynk6IFhpIFJ1b3lhbyA8eHJ5MTExQG91dGxvb2suY29tPgo+IEZpeGVkOiBCdWcgOTM3MTEgPGh0 dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM3MTE+CgpJcyB0aGlz IGEgcHJvYmxlbSB3aXRoIGRybS1pbnRlbC1uaWdodGx5PyBJbiBwYXJ0aWN1bGFyIHNlZQoKY29t bWl0IGFmZDY1ZWI0Y2MwNTc4YTljMDdkNjIxYWNkYjhhNTcwZTI3ODJiZjcKQXV0aG9yOiBNYXR0 IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgpEYXRlOiAgIFR1ZSBGZWIgMyAxMzox MDowNCAyMDE1IC0wODAwCgogICAgZHJtL2k5MTU6IEVuc3VyZSBwbGFuZS0+c3RhdGUtPmZiIHN0 YXlzIGluIHN5bmMgd2l0aCBwbGFuZS0+ZmIKCk1hdHQsIGRvIHlvdSB0aGluayB0aGlzIGZpeGVz IHRoZSBkZXNjcmliZWQgaXNzdWU/IENhbiB3ZSBiYWNrcG9ydCB0bwpkcm0taW50ZWwtZml4ZXMg KGFuZCB2NC4wKT8KCkJSLApKYW5pLgoKCgo+IC0tLQo+ICBTb3JyeSwgdGhlIHByZXZpb3VzIHBh dGNoIGlzIG1hbmdsZWQgYnkgZW1haWwgY2xpZW50LCBzbyBJIGFtIHJlLXNlbmRpbmcgaXQuCj4K PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMiArKwo+ICAxIGZpbGUg Y2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gaW5kZXggZTczMDc4OS4uOTcwODNmZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBAQCAtMzcsNiArMzcsNyBAQAo+ICAjaW5jbHVkZSA8ZHJtL2k5MTVfZHJt Lmg+Cj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAjaW5jbHVkZSAiaTkxNV90cmFjZS5oIgo+ ICsjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KPiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWlj X2hlbHBlci5oPgo+ICAjaW5jbHVkZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KPiAgI2luY2x1ZGUg PGRybS9kcm1fY3J0Y19oZWxwZXIuaD4KPiBAQCAtOTgxNiw2ICs5ODE3LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gIAlkcm1fZ2Vt X29iamVjdF9yZWZlcmVuY2UoJm9iai0+YmFzZSk7Cj4gIAo+ICAJY3J0Yy0+cHJpbWFyeS0+ZmIg PSBmYjsKPiArCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9wbGFuZShjcnRjLT5wcmltYXJ5LT5zdGF0 ZSwgZmIpOwo+ICAKPiAgCXdvcmstPnBlbmRpbmdfZmxpcF9vYmogPSBvYmo7Cj4gIAo+IC0tIAo+ IDEuOS4xCj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBD ZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753166AbbCLI1e (ORCPT ); Thu, 12 Mar 2015 04:27:34 -0400 Received: from mga09.intel.com ([134.134.136.24]:48391 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751370AbbCLI13 (ORCPT ); Thu, 12 Mar 2015 04:27:29 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.11,387,1422950400"; d="scan'208";a="690952482" From: Jani Nikula To: Xi Ruoyao , daniel.vetter@intel.com, airlied@linux.ie Cc: intel-gfx@lists.freedesktop.org, dri-level@lists.freedesktop.org, linux-kernel@vger.kernel.org, Xi Ruoyao , "Roper\, Matthew D" Subject: Re: [PATCH v2] drm/i915: Fix BUG in i915_gem.c when switch to console In-Reply-To: Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: User-Agent: Notmuch/0.19+72~gd7c02cb (http://notmuchmail.org) Emacs/24.4.1 (x86_64-pc-linux-gnu) Date: Thu, 12 Mar 2015 10:28:56 +0200 Message-ID: <87pp8er54n.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 12 Mar 2015, Xi Ruoyao wrote: > In intel_crtc_page_flip, intel_display.c, the code changed the framebuffer > assigned to plane crtc->primary by > > crtc->primary->fb = fb; > > However, it forgot to change crtc->primary->state->fb. However, when we > switch to console, some kernel code will read crtc->primary->state->fb > to get the framebuffer assigned to crtc->primaty. Then a framebuffer > object can be unpinned twice and a kernel BUG will be produced in i915_gem.c. > > So, update crtc->primary->state->fb in intel_display.c using > drm_atomic_set_fb_for_plane to fix the BUG. > > Signed-off-by: Xi Ruoyao > Fixed: Bug 93711 Is this a problem with drm-intel-nightly? In particular see commit afd65eb4cc0578a9c07d621acdb8a570e2782bf7 Author: Matt Roper Date: Tue Feb 3 13:10:04 2015 -0800 drm/i915: Ensure plane->state->fb stays in sync with plane->fb Matt, do you think this fixes the described issue? Can we backport to drm-intel-fixes (and v4.0)? BR, Jani. > --- > Sorry, the previous patch is mangled by email client, so I am re-sending it. > > drivers/gpu/drm/i915/intel_display.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index e730789..97083fd 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -37,6 +37,7 @@ > #include > #include "i915_drv.h" > #include "i915_trace.h" > +#include > #include > #include > #include > @@ -9816,6 +9817,7 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, > drm_gem_object_reference(&obj->base); > > crtc->primary->fb = fb; > + drm_atomic_set_fb_for_plane(crtc->primary->state, fb); > > work->pending_flip_obj = obj; > > -- > 1.9.1 > -- Jani Nikula, Intel Open Source Technology Center