From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S968263AbcHBR4K (ORCPT ); Tue, 2 Aug 2016 13:56:10 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:34085 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966923AbcHBRzr (ORCPT ); Tue, 2 Aug 2016 13:55:47 -0400 Date: Tue, 2 Aug 2016 15:38:41 +0200 From: Daniel Vetter To: Keith Packard Cc: linux-kernel@vger.kernel.org, Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm/i915: cleanup_plane_fb: also drop reference to current state wait_req Message-ID: <20160802133841.GN6232@phenom.ffwll.local> Mail-Followup-To: Keith Packard , linux-kernel@vger.kernel.org, Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org References: <1469951691-5938-1-git-send-email-keithp@keithp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1469951691-5938-1-git-send-email-keithp@keithp.com> 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, Jul 31, 2016 at 12:54:51AM -0700, Keith Packard wrote: > There are two paths into intel_cleanup_plane_fb, the normal completion > path and the failure path. > > In the failure case, intel_cleanup_plane_fb is called before > drm_atomic_helper_swap_state, so any wait_req reference made in > intel_prepare_plane_fb will be in old_intel_state->wait_req. > > In the normal completion path, drm_atomic_helper_swap_state has > already been called, so the plane state holding the just-used wait_req > will not be in old_intel_state->wait_req, rather it will be in the > state associated with the plane itself. > > Clearing this reference ensures that the wait_req will be freed as > soon as it the related mode setting operation is complete, rather than > waiting for some future mode setting operation to eventually > dereference it. > > The existing dereference of old_intel_state->wait_req is still > required as that will hold the wait_req when the mode setting > operation fails. > > cc: Daniel Vetter > cc: David Airlie > cc: intel-gfx@lists.freedesktop.org > cc: dri-devel@lists.freedesktop.org > Signed-off-by: Keith Packard Hm, I think we should just clean up wiat_req in ->atomic_destroy_state instead of littering cleanup code all over. But this gets the job done, so applied. -Daniel > --- > 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 3074c56..dbabaf3 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -13924,6 +13924,7 @@ intel_cleanup_plane_fb(struct drm_plane *plane, > struct drm_device *dev = plane->dev; > struct intel_plane *intel_plane = to_intel_plane(plane); > struct intel_plane_state *old_intel_state; > + struct intel_plane_state *intel_state = to_intel_plane_state(plane->state); > struct drm_i915_gem_object *old_obj = intel_fb_obj(old_state->fb); > struct drm_i915_gem_object *obj = intel_fb_obj(plane->state->fb); > > @@ -13941,6 +13942,7 @@ intel_cleanup_plane_fb(struct drm_plane *plane, > (obj && !(obj->frontbuffer_bits & intel_plane->frontbuffer_bit))) > i915_gem_track_fb(old_obj, obj, intel_plane->frontbuffer_bit); > > + i915_gem_request_assign(&intel_state->wait_req, NULL); > i915_gem_request_assign(&old_intel_state->wait_req, NULL); > } > > -- > 2.8.1 > > _______________________________________________ > 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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: cleanup_plane_fb: also drop reference to current state wait_req Date: Tue, 2 Aug 2016 15:38:41 +0200 Message-ID: <20160802133841.GN6232@phenom.ffwll.local> References: <1469951691-5938-1-git-send-email-keithp@keithp.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 48C346E5B5 for ; Tue, 2 Aug 2016 13:38:47 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i5so30882694wmg.2 for ; Tue, 02 Aug 2016 06:38:47 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1469951691-5938-1-git-send-email-keithp@keithp.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Keith Packard Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBKdWwgMzEsIDIwMTYgYXQgMTI6NTQ6NTFBTSAtMDcwMCwgS2VpdGggUGFja2FyZCB3 cm90ZToKPiBUaGVyZSBhcmUgdHdvIHBhdGhzIGludG8gaW50ZWxfY2xlYW51cF9wbGFuZV9mYiwg dGhlIG5vcm1hbCBjb21wbGV0aW9uCj4gcGF0aCBhbmQgdGhlIGZhaWx1cmUgcGF0aC4KPiAKPiBJ biB0aGUgZmFpbHVyZSBjYXNlLCBpbnRlbF9jbGVhbnVwX3BsYW5lX2ZiIGlzIGNhbGxlZCBiZWZv cmUKPiBkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlLCBzbyBhbnkgd2FpdF9yZXEgcmVmZXJl bmNlIG1hZGUgaW4KPiBpbnRlbF9wcmVwYXJlX3BsYW5lX2ZiIHdpbGwgYmUgaW4gb2xkX2ludGVs X3N0YXRlLT53YWl0X3JlcS4KPiAKPiBJbiB0aGUgbm9ybWFsIGNvbXBsZXRpb24gcGF0aCwgZHJt X2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZSBoYXMKPiBhbHJlYWR5IGJlZW4gY2FsbGVkLCBzbyB0 aGUgcGxhbmUgc3RhdGUgaG9sZGluZyB0aGUganVzdC11c2VkIHdhaXRfcmVxCj4gd2lsbCBub3Qg YmUgaW4gb2xkX2ludGVsX3N0YXRlLT53YWl0X3JlcSwgcmF0aGVyIGl0IHdpbGwgYmUgaW4gdGhl Cj4gc3RhdGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwbGFuZSBpdHNlbGYuCj4gCj4gQ2xlYXJpbmcg dGhpcyByZWZlcmVuY2UgZW5zdXJlcyB0aGF0IHRoZSB3YWl0X3JlcSB3aWxsIGJlIGZyZWVkIGFz Cj4gc29vbiBhcyBpdCB0aGUgcmVsYXRlZCBtb2RlIHNldHRpbmcgb3BlcmF0aW9uIGlzIGNvbXBs ZXRlLCByYXRoZXIgdGhhbgo+IHdhaXRpbmcgZm9yIHNvbWUgZnV0dXJlIG1vZGUgc2V0dGluZyBv cGVyYXRpb24gdG8gZXZlbnR1YWxseQo+IGRlcmVmZXJlbmNlIGl0Lgo+IAo+IFRoZSBleGlzdGlu ZyBkZXJlZmVyZW5jZSBvZiBvbGRfaW50ZWxfc3RhdGUtPndhaXRfcmVxIGlzIHN0aWxsCj4gcmVx dWlyZWQgYXMgdGhhdCB3aWxsIGhvbGQgdGhlIHdhaXRfcmVxIHdoZW4gdGhlIG1vZGUgc2V0dGlu Zwo+IG9wZXJhdGlvbiBmYWlscy4KPiAKPiBjYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBpbnRlbC5jb20+Cj4gY2M6IERhdmlkIEFpcmxpZSA8YWlybGllZEBsaW51eC5pZT4KPiBjYzog aW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGNjOiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gU2lnbmVkLW9mZi1ieTogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRo cC5jb20+CgpIbSwgSSB0aGluayB3ZSBzaG91bGQganVzdCBjbGVhbiB1cCB3aWF0X3JlcSBpbiAt PmF0b21pY19kZXN0cm95X3N0YXRlCmluc3RlYWQgb2YgbGl0dGVyaW5nIGNsZWFudXAgY29kZSBh bGwgb3Zlci4gQnV0IHRoaXMgZ2V0cyB0aGUgam9iIGRvbmUsIHNvCmFwcGxpZWQuCi1EYW5pZWwK Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDIgKysKPiAg MSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiBpbmRleCAzMDc0YzU2Li5kYmFiYWYzIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMzkyNCw2ICsxMzkyNCw3IEBAIGludGVsX2NsZWFu dXBfcGxhbmVfZmIoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGxhbmUtPmRldjsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUg PSB0b19pbnRlbF9wbGFuZShwbGFuZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9s ZF9pbnRlbF9zdGF0ZTsKPiArCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfc3RhdGUg PSB0b19pbnRlbF9wbGFuZV9zdGF0ZShwbGFuZS0+c3RhdGUpOwo+ICAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9sZF9vYmogPSBpbnRlbF9mYl9vYmoob2xkX3N0YXRlLT5mYik7Cj4gIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKHBsYW5lLT5zdGF0 ZS0+ZmIpOwo+ICAKPiBAQCAtMTM5NDEsNiArMTM5NDIsNyBAQCBpbnRlbF9jbGVhbnVwX3BsYW5l X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ICAJICAgIChvYmogJiYgIShvYmotPmZyb250 YnVmZmVyX2JpdHMgJiBpbnRlbF9wbGFuZS0+ZnJvbnRidWZmZXJfYml0KSkpCj4gIAkJaTkxNV9n ZW1fdHJhY2tfZmIob2xkX29iaiwgb2JqLCBpbnRlbF9wbGFuZS0+ZnJvbnRidWZmZXJfYml0KTsK PiAgCj4gKwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmaW50ZWxfc3RhdGUtPndhaXRfcmVxLCBO VUxMKTsKPiAgCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZvbGRfaW50ZWxfc3RhdGUtPndhaXRf cmVxLCBOVUxMKTsKPiAgfQo+ICAKPiAtLSAKPiAyLjguMQo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdAo+ IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmllbCBWZXR0ZXIKU29m dHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBt YWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=