From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH v3] drm/i915: Fix lock dropping in intel_tv_detect() Date: Tue, 02 Sep 2014 14:41:22 +0300 Message-ID: <878um2i719.fsf@intel.com> References: <20140902082635.GA25238@nuc-i3427.alporthouse.com> <1409651842-14446-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 898946E459 for ; Tue, 2 Sep 2014 04:41:26 -0700 (PDT) In-Reply-To: <1409651842-14446-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org Cc: David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Tibor Billes List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCAwMiBTZXAgMjAxNCwgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20gd3JvdGU6 Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K Pgo+IFdoZW4gaW50ZWxfdHZfZGV0ZWN0KCkgZmFpbHMgdG8gZG8gbG9hZCBkZXRlY3Rpb24gaXQg d291bGQgZm9yZ2V0IHRvCj4gZHJvcCB0aGUgbG9ja3MgYW5kIGNsZWFuIHVwIHRoZSBhY3F1aXJl IGNvbnRleHQuIEZpeCBpdCB1cC4KPgo+IFRoaXMgaXMgYSByZWdyZXNzaW9uIGZyb206Cj4gIGNv bW1pdCAyMDhiZjlmZGNkMzU3NWFhNGE1ZDQ4YjNlMDI5NWY3Y2RhZjZmYzQ0Cj4gIEF1dGhvcjog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAgRGF0ZTog ICBNb24gQXVnIDExIDEzOjE1OjM1IDIwMTQgKzAzMDAKPgo+ICAgICBkcm0vaTkxNTogRml4IGxv Y2tpbmcgZm9yIGludGVsX2VuYWJsZV9waXBlX2EoKQo+Cj4gdjI6IE1ha2UgdGhlIGNvZGUgbW9y ZSByZWFkYWJsZSAoQ2hyaXMpCj4gdjM6IERyb3AgV0FSTl9PTih0eXBlIDwgMCkgKENocmlzKQo+ Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiBDYzogVGlib3IgQmlsbGVzIDx0YmlsbGVz QGdteC5jb20+Cj4gUmVwb3J0ZWQtYnk6IFRpYm9yIEJpbGxlcyA8dGJpbGxlc0BnbXguY29tPgo+ IFRlc3RlZC1ieTogVGlib3IgQmlsbGVzIDx0YmlsbGVzQGdteC5jb20+Cj4gUmV2aWV3ZWQtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+CgpQdXNoZWQg dG8gZHJtLWludGVsLWZpeGVzLCB0aGFua3MgZm9yIHRoZSBwYXRjaCwgcmV2aWV3LCBhbmQgdGVz dGluZy4KCkJSLApKYW5pLgoKCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2 LmMgfCAxMCArKysrKysrLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKPiBpbmRleCAzMjE4NmE2Li5j NjlkM2NlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gQEAgLTEzMTEsNiArMTMxMSw3 IEBAIGludGVsX3R2X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29s IGZvcmNlKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlOwo+ICAJc3RydWN0 IGludGVsX3R2ICppbnRlbF90diA9IGludGVsX2F0dGFjaGVkX3R2KGNvbm5lY3Rvcik7Cj4gKwll bnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKPiAgCWludCB0eXBlOwo+ICAKPiAgCURS TV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdIGZvcmNlPSVkXG4iLAo+IEBAIC0xMzI4LDE2 ICsxMzI5LDE5IEBAIGludGVsX3R2X2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLCBib29sIGZvcmNlKQo+ICAJCWlmIChpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShjb25u ZWN0b3IsICZtb2RlLCAmdG1wLCAmY3R4KSkgewo+ICAJCQl0eXBlID0gaW50ZWxfdHZfZGV0ZWN0 X3R5cGUoaW50ZWxfdHYsIGNvbm5lY3Rvcik7Cj4gIAkJCWludGVsX3JlbGVhc2VfbG9hZF9kZXRl Y3RfcGlwZShjb25uZWN0b3IsICZ0bXApOwo+ICsJCQlzdGF0dXMgPSB0eXBlIDwgMCA/Cj4gKwkJ CQljb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZCA6Cj4gKwkJCQljb25uZWN0b3Jfc3RhdHVz X2Nvbm5lY3RlZDsKPiAgCQl9IGVsc2UKPiAtCQkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfdW5r bm93bjsKPiArCQkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c191bmtub3duOwo+ICAKPiAgCQlk cm1fbW9kZXNldF9kcm9wX2xvY2tzKCZjdHgpOwo+ICAJCWRybV9tb2Rlc2V0X2FjcXVpcmVfZmlu aSgmY3R4KTsKPiAgCX0gZWxzZQo+ICAJCXJldHVybiBjb25uZWN0b3ItPnN0YXR1czsKPiAgCj4g LQlpZiAodHlwZSA8IDApCj4gLQkJcmV0dXJuIGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29ubmVjdGVk Owo+ICsJaWYgKHN0YXR1cyAhPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZCkKPiArCQlyZXR1 cm4gc3RhdHVzOwo+ICAKPiAgCWludGVsX3R2LT50eXBlID0gdHlwZTsKPiAgCWludGVsX3R2X2Zp bmRfYmV0dGVyX2Zvcm1hdChjb25uZWN0b3IpOwo+IC0tIAo+IDEuOC41LjUKPgoKLS0gCkphbmkg TmlrdWxhLCBJbnRlbCBPcGVuIFNvdXJjZSBUZWNobm9sb2d5IENlbnRlcgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753585AbaIBLl3 (ORCPT ); Tue, 2 Sep 2014 07:41:29 -0400 Received: from mga02.intel.com ([134.134.136.20]:9739 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752461AbaIBLl1 convert rfc822-to-8bit (ORCPT ); Tue, 2 Sep 2014 07:41:27 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,448,1406617200"; d="scan'208";a="567085481" From: Jani Nikula To: ville.syrjala@linux.intel.com, intel-gfx@lists.freedesktop.org Cc: Chris Wilson , David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, stable@vger.kernel.org, Tibor Billes Subject: Re: [PATCH v3] drm/i915: Fix lock dropping in intel_tv_detect() In-Reply-To: <1409651842-14446-1-git-send-email-ville.syrjala@linux.intel.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20140902082635.GA25238@nuc-i3427.alporthouse.com> <1409651842-14446-1-git-send-email-ville.syrjala@linux.intel.com> User-Agent: Notmuch/0.18.1+85~gcca05ac (http://notmuchmail.org) Emacs/23.4.1 (x86_64-pc-linux-gnu) Date: Tue, 02 Sep 2014 14:41:22 +0300 Message-ID: <878um2i719.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 02 Sep 2014, ville.syrjala@linux.intel.com wrote: > From: Ville Syrjälä > > When intel_tv_detect() fails to do load detection it would forget to > drop the locks and clean up the acquire context. Fix it up. > > This is a regression from: > commit 208bf9fdcd3575aa4a5d48b3e0295f7cdaf6fc44 > Author: Ville Syrjälä > Date: Mon Aug 11 13:15:35 2014 +0300 > > drm/i915: Fix locking for intel_enable_pipe_a() > > v2: Make the code more readable (Chris) > v3: Drop WARN_ON(type < 0) (Chris) > > Cc: stable@vger.kernel.org > Cc: Tibor Billes > Reported-by: Tibor Billes > Tested-by: Tibor Billes > Reviewed-by: Chris Wilson > Signed-off-by: Ville Syrjälä Pushed to drm-intel-fixes, thanks for the patch, review, and testing. BR, Jani. > --- > drivers/gpu/drm/i915/intel_tv.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c > index 32186a6..c69d3ce 100644 > --- a/drivers/gpu/drm/i915/intel_tv.c > +++ b/drivers/gpu/drm/i915/intel_tv.c > @@ -1311,6 +1311,7 @@ intel_tv_detect(struct drm_connector *connector, bool force) > { > struct drm_display_mode mode; > struct intel_tv *intel_tv = intel_attached_tv(connector); > + enum drm_connector_status status; > int type; > > DRM_DEBUG_KMS("[CONNECTOR:%d:%s] force=%d\n", > @@ -1328,16 +1329,19 @@ intel_tv_detect(struct drm_connector *connector, bool force) > if (intel_get_load_detect_pipe(connector, &mode, &tmp, &ctx)) { > type = intel_tv_detect_type(intel_tv, connector); > intel_release_load_detect_pipe(connector, &tmp); > + status = type < 0 ? > + connector_status_disconnected : > + connector_status_connected; > } else > - return connector_status_unknown; > + status = connector_status_unknown; > > drm_modeset_drop_locks(&ctx); > drm_modeset_acquire_fini(&ctx); > } else > return connector->status; > > - if (type < 0) > - return connector_status_disconnected; > + if (status != connector_status_connected) > + return status; > > intel_tv->type = type; > intel_tv_find_better_format(connector); > -- > 1.8.5.5 > -- Jani Nikula, Intel Open Source Technology Center