From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] drm: Check for connector->state NULL in drm_atomic_add_affected_connectors Date: Sun, 6 Mar 2016 19:30:15 +0200 Message-ID: <20160306173015.GA10446@intel.com> References: <1457135033-11791-1-git-send-email-dianders@chromium.org> <20160306162951.GA14170@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 2CCA06E2CB for ; Sun, 6 Mar 2016 17:30:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20160306162951.GA14170@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Douglas Anderson , David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gU3VuLCBNYXIgMDYsIDIwMTYgYXQgMDU6Mjk6NTFQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIE1hciAwNCwgMjAxNiBhdCAwMzo0Mzo1M1BNIC0wODAwLCBEb3VnbGFz IEFuZGVyc29uIHdyb3RlOgo+ID4gT24gYSBzeXN0ZW0gSSdtIGRvaW5nIGRldmVsb3BtZW50IG9u IEkgZm91bmQgYSBjcmFzaC4gIFRoZSBjcmF3bCBsb29rZWQKPiA+IGxpa2U6Cj4gPiAKPiA+ICAg UEMgaXMgYXQgZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVjdG9ycysweDk4LzB4ZTgKPiA+ ICAgLi4uCj4gPiAgIGRybV9hdG9taWNfYWRkX2FmZmVjdGVkX2Nvbm5lY3RvcnMgZnJvbSBfX2Ry bV9hdG9taWNfaGVscGVyX3NldF9jb25maWcrMHgyMTgvMHgzNDQKPiA+ICAgX19kcm1fYXRvbWlj X2hlbHBlcl9zZXRfY29uZmlnIGZyb20gcmVzdG9yZV9mYmRldl9tb2RlKzB4MTA4LzB4MjUwCj4g PiAgIHJlc3RvcmVfZmJkZXZfbW9kZSBmcm9tIGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9t b2RlX3VubG9ja2VkKzB4M2MvMHg4MAo+ID4gICBkcm1fZmJfaGVscGVyX3Jlc3RvcmVfZmJkZXZf bW9kZV91bmxvY2tlZCBmcm9tIHJvY2tjaGlwX2RybV9sYXN0Y2xvc2UrMHgxYy8weDIwCj4gPiAg IHJvY2tjaGlwX2RybV9sYXN0Y2xvc2UgZnJvbSBkcm1fbGFzdGNsb3NlKzB4NGMvMHgxMDQKPiA+ ICAgZHJtX2xhc3RjbG9zZSBmcm9tIGRybV9yZWxlYXNlKzB4NDI0LzB4NDdjCj4gPiAgIGRybV9y ZWxlYXNlIGZyb20gX19mcHV0KzB4ZjgvMHgxZDQKPiA+ICAgX19mcHV0IGZyb20gX19fX2ZwdXQr MHgxOC8weDFjCj4gPiAgIF9fX19mcHV0IGZyb20gdGFza193b3JrX3J1bisweGE4LzB4YmMKPiA+ ICAgdGFza193b3JrX3J1biBmcm9tIGRvX2V4aXQrMHg0NDgvMHg5MWMKPiA+ICAgZG9fZXhpdCBm cm9tIGRvX2dyb3VwX2V4aXQrMHg1Yy8weGNjCj4gPiAgIGRvX2dyb3VwX2V4aXQgZnJvbSBnZXRf c2lnbmFsKzB4NGRjLzB4NTdjCj4gPiAgIGdldF9zaWduYWwgZnJvbSBkb19zaWduYWwrMHg5Yy8w eDNiNAo+ID4gICBkb19zaWduYWwgZnJvbSBkb193b3JrX3BlbmRpbmcrMHg2MC8weGI4Cj4gPiAg IGRvX3dvcmtfcGVuZGluZyBmcm9tIHNsb3dfd29ya19wZW5kaW5nKzB4Yy8weDIwCj4gPiAKPiA+ IEkgZm91bmQgdGhhdCBJIGNvdWxkIGZpeCB0aGUgY3Jhc2ggYnkgY2hlY2tpbmcgY29ubmVjdG9y LT5zdGF0ZSBhZ2FpbnN0Cj4gPiBOVUxMLiAgVGhpcyBpc24ndCBjb2RlIEknbSBmYW1pbGlhciB3 aXRoIGFuZCBJIGRpZG4ndCBkaWcgdG9vIGRlZXAsIHNvCj4gPiBJJ2QgYXBwcmVjaWF0ZSBhbnkg b3BpbmlvbnMgYWJvdXQgd2hldGhlciB0aGlzIGlzIGEgc2FuZSB0aGluZyB0byBkby4KPiA+IE5v dGUgdGhhdCBJIGRvbid0IGFjdHVhbGx5IGhhdmUgZ3JhcGhpY3MgdXAgb24gbXkgc3lzdGVtIGF0 IHRoZSBtb21lbnQsCj4gPiBzbyBwZXJoYXBzIHRoaXMgaXMgYWxsIGp1c3QgYSBzeW1wdG9tIG9m IHRoZSBzdHJhbmdlIHN0YXRlIEknbSBpbi4KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogRG91Z2xh cyBBbmRlcnNvbiA8ZGlhbmRlcnNAY2hyb21pdW0ub3JnPgo+IAo+IFRoaXMgaXMgYSBkcml2ZXIg YnVnIC0gdW5kZXIgYXRvbWljIHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlcmUgaXMKPiBfYWx3 YXlzXyBhIGN1cnJlbnQgc29mdHdhcmUgc3RhdGUuIE1vc3QgZHJpdmVyIHNldCB1cCB0aGUgaW5p dGlhbAo+ICJldmVyeXRoaW5nIG9mZiIgc3RhdGUgaW4gdGhlIC0+cmVzZXQgZnVuY3Rpb25zLgoK RXhjZXB0IGlmIGl0J3MgZHVlIHRvIGt6YWxsb2MoKSBmYWlsaW5nIGluIHRoZSBhdG9taWMgaGVs cGVyIHJlc2V0CmltcGxlbWVudGF0aW9uLiBUaGVyZSdzIG5vIHdheSB0byBwcm9wYWdhdGUgdGhl IGVycm9yIHVwd2FyZHMsIHNvCnRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGp1c3Qgc2lsZW50 bHkgc2V0cyBzdGF0ZT1OVUxMIGFuZCBnb2VzIG9uCmxpa2Ugbm90aGluZyBoYXBwZW5lZC4KCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751487AbcCFRaa (ORCPT ); Sun, 6 Mar 2016 12:30:30 -0500 Received: from mga09.intel.com ([134.134.136.24]:1230 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751138AbcCFRaW (ORCPT ); Sun, 6 Mar 2016 12:30:22 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,546,1449561600"; d="scan'208";a="664776609" Date: Sun, 6 Mar 2016 19:30:15 +0200 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Douglas Anderson , David Airlie , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] drm: Check for connector->state NULL in drm_atomic_add_affected_connectors Message-ID: <20160306173015.GA10446@intel.com> References: <1457135033-11791-1-git-send-email-dianders@chromium.org> <20160306162951.GA14170@phenom.ffwll.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20160306162951.GA14170@phenom.ffwll.local> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 06, 2016 at 05:29:51PM +0100, Daniel Vetter wrote: > On Fri, Mar 04, 2016 at 03:43:53PM -0800, Douglas Anderson wrote: > > On a system I'm doing development on I found a crash. The crawl looked > > like: > > > > PC is at drm_atomic_add_affected_connectors+0x98/0xe8 > > ... > > drm_atomic_add_affected_connectors from __drm_atomic_helper_set_config+0x218/0x344 > > __drm_atomic_helper_set_config from restore_fbdev_mode+0x108/0x250 > > restore_fbdev_mode from drm_fb_helper_restore_fbdev_mode_unlocked+0x3c/0x80 > > drm_fb_helper_restore_fbdev_mode_unlocked from rockchip_drm_lastclose+0x1c/0x20 > > rockchip_drm_lastclose from drm_lastclose+0x4c/0x104 > > drm_lastclose from drm_release+0x424/0x47c > > drm_release from __fput+0xf8/0x1d4 > > __fput from ____fput+0x18/0x1c > > ____fput from task_work_run+0xa8/0xbc > > task_work_run from do_exit+0x448/0x91c > > do_exit from do_group_exit+0x5c/0xcc > > do_group_exit from get_signal+0x4dc/0x57c > > get_signal from do_signal+0x9c/0x3b4 > > do_signal from do_work_pending+0x60/0xb8 > > do_work_pending from slow_work_pending+0xc/0x20 > > > > I found that I could fix the crash by checking connector->state against > > NULL. This isn't code I'm familiar with and I didn't dig too deep, so > > I'd appreciate any opinions about whether this is a sane thing to do. > > Note that I don't actually have graphics up on my system at the moment, > > so perhaps this is all just a symptom of the strange state I'm in. > > > > Signed-off-by: Douglas Anderson > > This is a driver bug - under atomic the assumption is that there is > _always_ a current software state. Most driver set up the initial > "everything off" state in the ->reset functions. Except if it's due to kzalloc() failing in the atomic helper reset implementation. There's no way to propagate the error upwards, so the current implementation just silently sets state=NULL and goes on like nothing happened. -- Ville Syrjälä Intel OTC