From mboxrd@z Thu Jan 1 00:00:00 1970 From: Borislav Petkov Subject: Re: WARNING: CPU: 4 PID: 863 at include/drm/drm_crtc.h:1577 drm_helper_choose_encoder_dpms+0x88/0x90() - evildoer found and neutralized Date: Sat, 26 Sep 2015 18:46:51 +0200 Message-ID: <20150926164651.GA3640@pd.tnic> References: <20150921133126.GA25475@nazgul.tnic> <20150922202105.GB3453@pd.tnic> <20150923072523.GB3383@phenom.ffwll.local> <20150923085950.GA3440@pd.tnic> <20150923144450.GD3383@phenom.ffwll.local> <20150923160621.GA3446@pd.tnic> <20150923161839.GB3446@pd.tnic> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.skyhub.de (mail.skyhub.de [78.46.96.112]) by gabe.freedesktop.org (Postfix) with ESMTP id E6BF76E026 for ; Sat, 26 Sep 2015 09:46:57 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150923161839.GB3446@pd.tnic> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter , Thomas Gleixner , Jiang Liu , Bjorn Helgaas Cc: Alex Deucher , Christian =?utf-8?B?S8O2bmln?= , Maling list - DRI developers , lkml List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBTZXAgMjMsIDIwMTUgYXQgMDY6MTg6MzlQTSArMDIwMCwgQm9yaXNsYXYgUGV0a292 IHdyb3RlOgo+IE9uIFdlZCwgU2VwIDIzLCAyMDE1IGF0IDA2OjA2OjIxUE0gKzAyMDAsIEJvcmlz bGF2IFBldGtvdiB3cm90ZToKPiA+IE9uIFdlZCwgU2VwIDIzLCAyMDE1IGF0IDA0OjQ0OjUwUE0g KzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+IHNvcnJ5IEkgc3ByaW5rbGVkIHRoZSBs b2NraW5nIHN0dWZmIGluIHRoZSB3cm9uZyBwbGFjZXMuIFN0aWxsIGNvbmZ1c2VkCj4gPiA+IHdo eSB0aGUgcmVzdW1lIHNpZGUgZG9lc24ndCBibG93IHVwIGFueXdoZXJlCj4gPiAKPiA+IEJ1dCBp dCBkb2VzOgo+ID4gCj4gPiBbICAgNjkuMzk0MjA0XSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2Vy bmVsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwMDM0Cj4gPiBbICAg NjkuNDAyMDgwXSBJUDogWzxmZmZmZmZmZjgxMzIxMjk2Pl0gcGNpX3Jlc3RvcmVfbXNpX3N0YXRl KzB4MTk2LzB4MjQwCj4gPiBbICAgNjkuNDA4NjI0XSBQR0QgNDE2MmI4MDY3IFBVRCA0MTY1ODEw NjcgUE1EIDAgCj4gPiBbICAgNjkuNDEzMTIyXSBPb3BzOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAg Cj4gPiBbICAgNjkuNDE3MTAxXSBNb2R1bGVzIGxpbmtlZCBpbjogdHVuIHNoYTI1Nl9zc3NlMyBz aGEyNTZfZ2VuZXJpYyBkcmJnIGJpbmZtdF9taXNjIGlwdjYgdmZhdCBmYXQgZnVzZSBkbV9jcnlw dCBkbV9tb2Qga3YKPiA+IG1fYW1kIGt2bSBjcmMzMl9wY2xtdWwgYWVzbmlfaW50ZWwgYWVzX3g4 Nl82NCBscncgZ2YxMjhtdWwgZ2x1ZV9oZWxwZXIgYWJsa19oZWxwZXIgY3J5cHRkIGFtZDY0X2Vk YWNfbW9kIGVkYWNfbWNlX2FtZCBmYQo+ID4gbTE1aF9wb3dlciBrMTB0ZW1wIGFtZGtmZCBhbWRf aW9tbXVfdjIgcmFkZW9uIGFjcGlfY3B1ZnJlcQo+ID4gWyAgIDY5LjQ0MzY0N10gQ1BVOiA0IFBJ RDogODE0IENvbW06IGt3b3JrZXIvdTE2OjUgTm90IHRhaW50ZWQgNC4zLjAtcmMyKyAjMwo+ID4g WyAgIDY5LjQ1MDQzMF0gSGFyZHdhcmUgbmFtZTogVG8gYmUgZmlsbGVkIGJ5IE8uRS5NLiBUbyBi ZSBmaWxsZWQgYnkgTy5FLk0uL001QTk3IEVWTyBSMi4wLCBCSU9TIDE1MDMgMDEvMTYvMjAxMwo+ ID4gWyAgIDY5LjQ2MDMzNl0gV29ya3F1ZXVlOiBldmVudHNfdW5ib3VuZCBhc3luY19ydW5fZW50 cnlfZm4KPiA+IFsgICA2OS40NjU2NjddIHRhc2s6IGZmZmY4ODA0MmEyNTVmMDAgdGk6IGZmZmY4 ODA0MjhhNjgwMDAgdGFzay50aTogZmZmZjg4MDQyOGE2ODAwMAo+ID4gWyAgIDY5LjQ3MzE0NV0g UklQOiAwMDEwOls8ZmZmZmZmZmY4MTMyMTI5Nj5dICBbPGZmZmZmZmZmODEzMjEyOTY+XSBwY2lf cmVzdG9yZV9tc2lfc3RhdGUrMHgxOTYvMHgyNDAKPiA+IFsgICA2OS40ODIxMzFdIFJTUDogMDAx ODpmZmZmODgwNDI4YTZiYzI4ICBFRkxBR1M6IDAwMDEwMjg2Cj4gPiBbICAgNjkuNDg3NDM2XSBS QVg6IDAwMDAwMDAwMDAwMDAwMDAgUkJYOiBmZmZmODgwNDJhMzA4MDAwIFJDWDogMDAwMDAwMDAw MDAwMDAwMAo+ID4gWyAgIDY5LjQ5NDU2OF0gUkRYOiAwMDAwMDAwMDAwMDAwMDAxIFJTSTogZmZm ZmZmZmY4MTMwNDQ0OCBSREk6IGZmZmZmZmZmODE2YzdhMWIKPiA+IFsgICA2OS41MDE3MDBdIFJC UDogZmZmZjg4MDQyOGE2YmM0MCBSMDg6IDAwMDAwMDAwMDAwMDAwMDEgUjA5OiAwMDAwMDAwMDAw NTIyMDAwCj4gPiBbICAgNjkuNTA4ODMzXSBSMTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAw MDAwMDAwMDAwMDAwIFIxMjogMDAwMDAwMDAwMDAwMDAwMAo+ID4gWyAgIDY5LjUxNTk2NV0gUjEz OiBmZmZmODgwNDJhMzA4N2IwIFIxNDogZmZmZjg4MDQyYTMwODAxMCBSMTU6IGZmZmY4ODA0MmEz MDgwMzgKPiA+IFsgICA2OS41MjMwOTddIEZTOiAgMDAwMDdmYzkxMzI4YTcwMCgwMDAwKSBHUzpm ZmZmODgwNDJjZTAwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKPiA+IFsgICA2OS41 MzExODVdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6IDAwMDAwMDAwODAwNTAwM2IK PiA+IFsgICA2OS41MzY5MzFdIENSMjogMDAwMDAwMDAwMDAwMDAzNCBDUjM6IDAwMDAwMDA0MTY0 YzcwMDAgQ1I0OiAwMDAwMDAwMDAwMDQwNmUwCj4gPiBbICAgNjkuNTQ0MDYxXSBTdGFjazoKPiA+ IFsgICA2OS41NDYwNzNdICAwMDgwMDAyYzJhMzA4N2IwIDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4 MDQyYTMwODAwMCBmZmZmODgwNDI4YTZiYzc4Cj4gPiBbICAgNjkuNTUzNTI1XSAgZmZmZmZmZmY4 MTMwYzE0MSBmZmZmODgwNDJhMzA4MDk4IGZmZmY4ODA0MmEzMDgwMDAgMDAwMDAwMDAwMDAwMDAw MAo+ID4gWyAgIDY5LjU2MDk5Nl0gIGZmZmY4ODA0Mjg0ZTc3YTggZmZmZmZmZmY4MTk2MWVmMSBm ZmZmODgwNDI4YTZiYzg4IGZmZmZmZmZmODEzMGMyYjgKPiA+IFsgICA2OS41Njg0NTBdIENhbGwg VHJhY2U6Cj4gPiBbICAgNjkuNTcxMDQ0XSAgWzxmZmZmZmZmZjgxMzBjMTQxPl0gcGNpX3Jlc3Rv cmVfc3RhdGUucGFydC4xOCsweGYxLzB4MjUwCj4gPiBbICAgNjkuNTc3NzA2XSAgWzxmZmZmZmZm ZjgxMzBjMmI4Pl0gcGNpX3Jlc3RvcmVfc3RhdGUrMHgxOC8weDIwCj4gPiBbICAgNjkuNTgzNTkx XSAgWzxmZmZmZmZmZjgxMzBmN2ZjPl0gcGNpX3BtX3Jlc3RvcmVfbm9pcnErMHg0Yy8weGQwCj4g PiBbICAgNjkuNTg5NzM0XSAgWzxmZmZmZmZmZjgxMzBmN2IwPl0gPyBwY2lfcG1fZnJlZXplX25v aXJxKzB4ZjAvMHhmMAo+ID4gWyAgIDY5LjU5NTk2Nl0gIFs8ZmZmZmZmZmY4MTQ2ZTg0Nz5dIGRw bV9ydW5fY2FsbGJhY2srMHg3Ny8weDJhMAo+ID4gWyAgIDY5LjYwMTg1MF0gIFs8ZmZmZmZmZmY4 MTQ2ZWIwMz5dIGRldmljZV9yZXN1bWVfbm9pcnErMHg5My8weDE1MAo+ID4gWyAgIDY5LjYwNzk5 NF0gIFs8ZmZmZmZmZmY4MTQ2ZWJkZD5dIGFzeW5jX3Jlc3VtZV9ub2lycSsweDFkLzB4NTAKPiA+ IFsgICA2OS42MTM5NjddICBbPGZmZmZmZmZmODEwNzhhMDY+XSBhc3luY19ydW5fZW50cnlfZm4r MHg0Ni8weGYwCj4gPiBbICAgNjkuNjE5OTM5XSAgWzxmZmZmZmZmZjgxMDZmNTQ4Pl0gcHJvY2Vz c19vbmVfd29yaysweDFmOC8weDY0MAo+ID4gWyAgIDY5LjYyNTkxMF0gIFs8ZmZmZmZmZmY4MTA2 ZjRhND5dID8gcHJvY2Vzc19vbmVfd29yaysweDE1NC8weDY0MAo+ID4gWyAgIDY5LjYzMjA1NF0g IFs8ZmZmZmZmZmY4MTA2ZjlkYj5dIHdvcmtlcl90aHJlYWQrMHg0Yi8weDQ0MAo+ID4gWyAgIDY5 LjYzNzY3N10gIFs8ZmZmZmZmZmY4MTA2Zjk5MD5dID8gcHJvY2Vzc19vbmVfd29yaysweDY0MC8w eDY0MAo+ID4gWyAgIDY5LjY0MzgyMl0gIFs8ZmZmZmZmZmY4MTA3NWU4Nj5dIGt0aHJlYWQrMHhm Ni8weDExMAo+ID4gWyAgIDY5LjY0ODkyN10gIFs8ZmZmZmZmZmY4MTA3NWQ5MD5dID8ga3RocmVh ZF9jcmVhdGVfb25fbm9kZSsweDFmMC8weDFmMAo+ID4gWyAgIDY5LjY1NTU5MV0gIFs8ZmZmZmZm ZmY4MTZjODkzZj5dIHJldF9mcm9tX2ZvcmsrMHgzZi8weDcwCj4gPiBbICAgNjkuNjYxMTI4XSAg WzxmZmZmZmZmZjgxMDc1ZDkwPl0gPyBrdGhyZWFkX2NyZWF0ZV9vbl9ub2RlKzB4MWYwLzB4MWYw Cj4gPiBbICAgNjkuNjY3Nzk0XSBDb2RlOiA2NiA4OSA0ZCBlZSAwZiBiNyBjOSBlOCA3OSA0MSBm ZSBmZiA0OCA4OSBkZiBlOCBkMSA3YSBjZSBmZiAwZiBiNiA1MyA0YiA4YiA3MyAzOCA0OCA4ZCA0 ZCBlZSA0OCA4YiA3YiAxMCA4MyBjMiAwMiBlOCAxYSAzMSBmZSBmZiA8NDE+IDBmIGI2IDRjIDI0 IDM0IDQxIDhiIDU0IDI0IDMwIGJlIGZmIGZmIGZmIGZmIGMwIGU5IDA0IDgzIGUxIAo+ID4gWyAg IDY5LjY4Nzk4Nl0gUklQICBbPGZmZmZmZmZmODEzMjEyOTY+XSBwY2lfcmVzdG9yZV9tc2lfc3Rh dGUrMHgxOTYvMHgyNDAKPiA+IFsgICA2OS42OTQ3NzJdICBSU1AgPGZmZmY4ODA0MjhhNmJjMjg+ Cj4gPiBbICAgNjkuNjk4NDEyXSBDUjI6IDAwMDAwMDAwMDAwMDAwMzQKPiA+IFsgICA2OS43MDE4 NzldIC0tLVsgZW5kIHRyYWNlIDgxNGRkOGNjNTZlNDI3YWUgXS0tLQo+IAo+IE9rLCBhZnRlciBz b21lIHF1aWNrIHN0YXJpbmcsIHdlJ3JlIGF0IF9fcGNpX3Jlc3RvcmVfbXNpX3N0YXRlKCk6Cj4g Cj4gICAgICAgICBwY2lfcmVhZF9jb25maWdfd29yZChkZXYsIGRldi0+bXNpX2NhcCArIFBDSV9N U0lfRkxBR1MsICZjb250cm9sKTsKPiAgICAgICAgIG1zaV9tYXNrX2lycShlbnRyeSwgbXNpX21h c2soZW50cnktPm1zaV9hdHRyaWIubXVsdGlfY2FwKSwKPiAgICAgICAgICAgICAgICAgICAgICBl bnRyeS0+bWFza2VkKTsKPiAKPiB3aGljaCBpczoKPiAKPiAJLmxvYyAxIDQxMSAwCj4gCW1vdnEJ JXJieCwgJXJkaQkjIGRldiwKPiAJY2FsbAlhcmNoX3Jlc3RvcmVfbXNpX2lycXMJIwo+IC5MQkIx OTIxOgo+IC5MQkIxOTIyOgo+IAkubG9jIDIgOTAyIDAKPiAJbW92emJsCTc1KCVyYngpLCAlZWR4 CSMgZGV2XzIoRCktPm1zaV9jYXAsIEQuMzE5NDUKPiAJbW92bAk1NiglcmJ4KSwgJWVzaQkjIE1F TVsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKilkZXZfMihEKV0uZGV2Zm4sIE1FTVsoY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKilkZXZfMihEKV0uZGV2Zm4KPiAJbGVhcQktMTgoJXJicCksICVyY3gJIywg dG1wMjY2Cj4gCW1vdnEJMTYoJXJieCksICVyZGkJIyBNRU1bKGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICopZGV2XzIoRCldLmJ1cywgTUVNWyhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqKWRldl8yKEQpXS5i dXMKPiAJYWRkbAkkMiwgJWVkeAkjLCBELjMxOTQ1Cj4gCWNhbGwJcGNpX2J1c19yZWFkX2NvbmZp Z193b3JkCSMKPiAuTEJFMTkyMjoKPiAuTEJFMTkyMToKPiAJLmxvYyAxIDQxNCAwCj4gCW1vdnpi bAk1MiglcjEyKSwgJWVjeAkjICpfODUsIHRtcDIwOAkJCQkJPC0tLSBmYXVsdGluZyBpbnNuCj4g CW1vdmwJNDgoJXIxMiksICVlZHgJIyBfODUtPkQuMjcyMzMuRC4yNzIzMS5tYXNrZWQsIEQuMzE5 NDYKPiAuTEJCMTkyMzoKPiAuTEJCMTkyNDoKPiAJLmxvYyAxIDE3NiAwCj4gCW1vdmwJJC0xLCAl ZXNpCSMsIEQuMzE5NTEKPiAKPiBhbmQgdGhhdCAlcjEyIGlzIHN1cHBvc2VkIHRvIGNvbnRhaW4g c3RydWN0IG1zaV9kZXNjICplbnRyeSBpbgo+IF9fcGNpX3Jlc3RvcmVfbXNpX3N0YXRlKCk6Cj4g Cj4gCWVudHJ5ID0gaXJxX2dldF9tc2lfZGVzYyhkZXYtPmlycSk7Cj4gCj4gd2hpY2ggaXMKPiAK PiAgICAgICAgIC5sb2MgNCA2NTQgMAo+ICAgICAgICAgbW92bCAgICAxMzQwKCVyZGkpLCAlZWRp ICAgICAgICAjIGRldl8yKEQpLT5pcnEsIGRldl8yKEQpLT5pcnEKPiAgICAgICAgIGNhbGwgICAg aXJxX2dldF9pcnFfZGF0YSAgICAgICAgIwo+ICAgICAgICAgLmxvYyA0IDY1NSAwCj4gICAgICAg ICB0ZXN0cSAgICVyYXgsICVyYXggICAgICAjIGQKPiAgICAgICAgIGplICAgICAgLkw0MDUgICAj LAo+ICAgICAgICAgbW92cSAgICAxNiglcmF4KSwgJXJheCAgIyBkXzYyLT5jb21tb24sIGRfNjIt PmNvbW1vbgo+ICAgICAgICAgbW92cSAgICAxNiglcmF4KSwgJXIxMiAgIyBfNjMtPm1zaV9kZXNj LCBELjMxOTU0Cj4gCj4gYnV0IGFzIHdlIHNlZSBhYm92ZSAlcjEyIGlzIDAuCj4gCj4gRm9yIHNv bWUgcmVhc29uIHRoYXQgZW50cnkgdGhpbmcgaW4gX19wY2lfcmVzdG9yZV9tc2lfc3RhdGUoKSBp cyBub3QKPiBjaGVja2VkIGZvciBOVUxMIGV2ZW4gdGhvdWdoIGlycV9nZXRfbXNpX2Rlc2MoKSBj YW4gcmV0dXJuIE5VTEwuCgpPaywgSSBiaXNlY3RlZCBpdC4KCkZpcnN0IG9mIGFsbCwgRGFuaWVs LCB5b3UgZGlkbid0IHNlZSB0aGUgcmVzdW1lIHNpZGUgYmxvdyB1cCBiZWNhdXNlCm9mIHRoZSBO VUxMIHB0ciBkZXJlZiBmKmNraW5nIHVwIHRoZSBib3ggbXVjaCBlYXJsaWVyLiBPbmNlIEkgcmV2 ZXJ0ZWQKdGhlIGJhZCBjb21taXQgYnkgaGFuZCAoaXQgd291bGRuJ3QgcmV2ZXJ0IGNsZWFubHkp IHRoZSByZXN1bWUgc3BsYXRzCnNob3dlZC4KCkFuZCBpbiB0YWxraW5nIGFib3V0IHRoZSBiYWQg Y29tbWl0LCBpdCBpcyB0aGlzIG9uZToKCjk5MWRlMmU1OTA5MGU1NWM2NWE3ZjU5YTA0OTE0MmUz YzQ4MGY3YmQgaXMgdGhlIGZpcnN0IGJhZCBjb21taXQKY29tbWl0IDk5MWRlMmU1OTA5MGU1NWM2 NWE3ZjU5YTA0OTE0MmUzYzQ4MGY3YmQKQXV0aG9yOiBKaWFuZyBMaXUgPGppYW5nLmxpdUBsaW51 eC5pbnRlbC5jb20+CkRhdGU6ICAgV2VkIEp1biAxMCAxNjo1NDo1OSAyMDE1ICswODAwCgogICAg UENJLCB4ODY6IEltcGxlbWVudCBwY2liaW9zX2FsbG9jX2lycSgpIGFuZCBwY2liaW9zX2ZyZWVf aXJxKCkKICAgIAogICAgVG8gc3VwcG9ydCBJT0FQSUMgaG90cGx1Zywgd2UgbmVlZCB0byBhbGxv Y2F0ZSBQQ0kgSVJRIHJlc291cmNlcyBvbiBkZW1hbmQKICAgIGFuZCBmcmVlIHRoZW0gd2hlbiBu b3QgdXNlZCBhbnltb3JlLgogICAgCiAgICBJbXBsZW1lbnQgcGNpYmlvc19hbGxvY19pcnEoKSBh bmQgcGNpYmlvc19mcmVlX2lycSgpIHRvIGR5bmFtaWNhbGx5CiAgICBhbGxvY2F0ZSBhbmQgZnJl ZSBQQ0kgSVJRcy4KICAgIAogICAgUmVtb3ZlIG1wX3Nob3VsZF9rZWVwX2lycSgpLCB3aGljaCBp cyBubyBsb25nZXIgdXNlZC4KICAgIAogICAgW2JoZWxnYWFzOiBjaGFuZ2Vsb2ddCiAgICBTaWdu ZWQtb2ZmLWJ5OiBKaWFuZyBMaXUgPGppYW5nLmxpdUBsaW51eC5pbnRlbC5jb20+CiAgICBTaWdu ZWQtb2ZmLWJ5OiBCam9ybiBIZWxnYWFzIDxiaGVsZ2Fhc0Bnb29nbGUuY29tPgogICAgQWNrZWQt Ynk6IFRob21hcyBHbGVpeG5lciA8dGdseEBsaW51dHJvbml4LmRlPgoKOjA0MDAwMCAwNDAwMDAg NzY1ZTJkNTIzMmQ1MzI0N2VjMjYwYjM0YjUxNTg5YzNiY2NiMzZhZSBmNjgwMjM0YTI3Njg1ZTk0 YjFhMzVhZTJhNzIxOGY4ZWFmYTkwNzFhIE0gICAgICBhcmNoCjowNDAwMDAgMDQwMDAwIGQ1NWE2 ODJiY2RlNzI2ODJlODgzMzY1ZTg4YWQxZGY2MTg2ZmQ1NGQgZjgyYzQ3MGEwNGE2ODQ1ZmNmNWUw YWE5MzQ1MTJjNzU2MjhmNzk4ZCBNICAgICAgZHJpdmVycwoKSmlhbmcsIHlvdSBoYXZlIHRvIHN0 b3AgYnJlYWtpbmcgbXkgYm94IHdpdGggeW91ciBjaGFuZ2VzLiBUaGlzIGlzCm1heWJlIHRoZSB0 aGlyZCB0aW1lIEknbSBiaXNlY3RpbmcgZmFsbG91dCBmcm9tIHlvdXIgcGF0Y2hlcy4gSWYgeW91 J3JlCnRvdWNoaW5nIGFsbCB4ODYsIHlvdSBuZWVkIHRvIHRlc3Qgb24gYW4gQU1EIGJveCB0b28u IExpa2UgZXZlcnlvbmUgZWxzZQp0ZXN0aW5nIG9uIHRoZSBoYXJkd2FyZSB0aGVpciBjaGFuZ2Vz IGFmZmVjdC4gSXQgaXMgdGhhdCBzaW1wbGUuCgpBbnl3YXksIHJldmVydGluZyB0aGF0IGNvbW1p dCBieSBoYW5kIGZpeGVzIG15IHJlc3VtZSBzcGxhdC4KCkhlcmUncyB0aGUgcGFydGlhbCByZXZl cnQgSSBkaWQgYnkgaGFuZDoKCi0tLQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20v cGNpX3g4Ni5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpX3g4Ni5oCmluZGV4IGZhMTE5NWRh ZTQyNS4uMTY0ZTNmOGQzYzNkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wY2lf eDg2LmgKKysrIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpX3g4Ni5oCkBAIC05Myw2ICs5Myw4 IEBAIGV4dGVybiByYXdfc3BpbmxvY2tfdCBwY2lfY29uZmlnX2xvY2s7CiBleHRlcm4gaW50ICgq cGNpYmlvc19lbmFibGVfaXJxKShzdHJ1Y3QgcGNpX2RldiAqZGV2KTsKIGV4dGVybiB2b2lkICgq cGNpYmlvc19kaXNhYmxlX2lycSkoc3RydWN0IHBjaV9kZXYgKmRldik7CiAKK2V4dGVybiBib29s IG1wX3Nob3VsZF9rZWVwX2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpOworCiBzdHJ1Y3QgcGNpX3Jh d19vcHMgewogCWludCAoKnJlYWQpKHVuc2lnbmVkIGludCBkb21haW4sIHVuc2lnbmVkIGludCBi dXMsIHVuc2lnbmVkIGludCBkZXZmbiwKIAkJCQkJCWludCByZWcsIGludCBsZW4sIHUzMiAqdmFs KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L3BjaS9jb21tb24uYyBiL2FyY2gveDg2L3BjaS9jb21t b24uYwppbmRleCAwOWQzYWZjMGExODEuLjNiZmYyNDQzOGIwMCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvcGNpL2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L3BjaS9jb21tb24uYwpAQCAtNjcyLDIwICs2 NzIsMjIgQEAgaW50IHBjaWJpb3NfYWRkX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCXJl dHVybiAwOwogfQogCi1pbnQgcGNpYmlvc19hbGxvY19pcnEoc3RydWN0IHBjaV9kZXYgKmRldikK K2ludCBwY2liaW9zX2VuYWJsZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG1hc2sp CiB7Ci0JcmV0dXJuIHBjaWJpb3NfZW5hYmxlX2lycShkZXYpOwotfQorCWludCBlcnI7CiAKLXZv aWQgcGNpYmlvc19mcmVlX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2KQotewotCWlmIChwY2liaW9z X2Rpc2FibGVfaXJxKQotCQlwY2liaW9zX2Rpc2FibGVfaXJxKGRldik7CisJaWYgKChlcnIgPSBw Y2lfZW5hYmxlX3Jlc291cmNlcyhkZXYsIG1hc2spKSA8IDApCisJCXJldHVybiBlcnI7CisKKwlp ZiAoIXBjaV9kZXZfbXNpX2VuYWJsZWQoZGV2KSkKKwkJcmV0dXJuIHBjaWJpb3NfZW5hYmxlX2ly cShkZXYpOworCXJldHVybiAwOwogfQogCi1pbnQgcGNpYmlvc19lbmFibGVfZGV2aWNlKHN0cnVj dCBwY2lfZGV2ICpkZXYsIGludCBtYXNrKQordm9pZCBwY2liaW9zX2Rpc2FibGVfZGV2aWNlIChz dHJ1Y3QgcGNpX2RldiAqZGV2KQogewotCXJldHVybiBwY2lfZW5hYmxlX3Jlc291cmNlcyhkZXYs IG1hc2spOworCWlmICghcGNpX2Rldl9tc2lfZW5hYmxlZChkZXYpICYmIHBjaWJpb3NfZGlzYWJs ZV9pcnEpCisJCXBjaWJpb3NfZGlzYWJsZV9pcnEoZGV2KTsKIH0KIAogaW50IHBjaV9leHRfY2Zn X2F2YWlsKHZvaWQpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9wY2kvaXJxLmMgYi9hcmNoL3g4Ni9w Y2kvaXJxLmMKaW5kZXggMzJlNzAzNDNlNmZkLi5mMjI5ODM0YjM2ZDQgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L3BjaS9pcnEuYworKysgYi9hcmNoL3g4Ni9wY2kvaXJxLmMKQEAgLTExODYsNiArMTE4 NiwxOCBAQCB2b2lkIHBjaWJpb3NfcGVuYWxpemVfaXNhX2lycShpbnQgaXJxLCBpbnQgYWN0aXZl KQogCQlwaXJxX3BlbmFsaXplX2lzYV9pcnEoaXJxLCBhY3RpdmUpOwogfQogCitib29sIG1wX3No b3VsZF9rZWVwX2lycShzdHJ1Y3QgZGV2aWNlICpkZXYpCit7CisJaWYgKGRldi0+cG93ZXIuaXNf cHJlcGFyZWQpCisJCXJldHVybiB0cnVlOworI2lmZGVmIENPTkZJR19QTQorCWlmIChkZXYtPnBv d2VyLnJ1bnRpbWVfc3RhdHVzID09IFJQTV9TVVNQRU5ESU5HKQorCQlyZXR1cm4gdHJ1ZTsKKyNl bmRpZgorCisJcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgaW50IHBpcnFfZW5hYmxlX2lycShz dHJ1Y3QgcGNpX2RldiAqZGV2KQogewogCXU4IHBpbiA9IDA7CkBAIC0xMjU4LDcgKzEyNzAsOCBA QCBzdGF0aWMgaW50IHBpcnFfZW5hYmxlX2lycShzdHJ1Y3QgcGNpX2RldiAqZGV2KQogCiBzdGF0 aWMgdm9pZCBwaXJxX2Rpc2FibGVfaXJxKHN0cnVjdCBwY2lfZGV2ICpkZXYpCiB7Ci0JaWYgKGlv X2FwaWNfYXNzaWduX3BjaV9pcnFzICYmIHBjaV9oYXNfbWFuYWdlZF9pcnEoZGV2KSkgeworCWlm IChpb19hcGljX2Fzc2lnbl9wY2lfaXJxcyAmJiAhbXBfc2hvdWxkX2tlZXBfaXJxKCZkZXYtPmRl dikgJiYKKwkgICAgZGV2LT5pcnFfbWFuYWdlZCAmJiBkZXYtPmlycSkgewogCQltcF91bm1hcF9p cnEoZGV2LT5pcnEpOwogCQlwY2lfcmVzZXRfbWFuYWdlZF9pcnEoZGV2KTsKIAl9CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2FjcGkvcGNpX2lycS5jIGIvZHJpdmVycy9hY3BpL3BjaV9pcnEuYwppbmRl eCA2ZGEwZjliZWFiMTkuLmQ4YTNmNDlhOTYwYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9hY3BpL3Bj aV9pcnEuYworKysgYi9kcml2ZXJzL2FjcGkvcGNpX2lycS5jCkBAIC00NzksNiArNDc5LDE0IEBA IHZvaWQgYWNwaV9wY2lfaXJxX2Rpc2FibGUoc3RydWN0IHBjaV9kZXYgKmRldikKIAlpZiAoIXBp biB8fCAhcGNpX2hhc19tYW5hZ2VkX2lycShkZXYpKQogCQlyZXR1cm47CiAKKwkvKiBLZWVwIElP QVBJQyBwaW4gY29uZmlndXJhdGlvbiB3aGVuIHN1c3BlbmRpbmcgKi8KKwlpZiAoZGV2LT5kZXYu cG93ZXIuaXNfcHJlcGFyZWQpCisJCXJldHVybjsKKyNpZmRlZglDT05GSUdfUE0KKwlpZiAoZGV2 LT5kZXYucG93ZXIucnVudGltZV9zdGF0dXMgPT0gUlBNX1NVU1BFTkRJTkcpCisJCXJldHVybjsK KyNlbmRpZgorCiAJZW50cnkgPSBhY3BpX3BjaV9pcnFfbG9va3VwKGRldiwgcGluKTsKIAlpZiAo IWVudHJ5KQogCQlyZXR1cm47CgotLSAKUmVnYXJkcy9HcnVzcywKICAgIEJvcmlzLgoKRUNPIHRp cCAjMTAxOiBUcmltIHlvdXIgbWFpbHMgd2hlbiB5b3UgcmVwbHkuCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJp LWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753002AbbIZQrA (ORCPT ); Sat, 26 Sep 2015 12:47:00 -0400 Received: from mail.skyhub.de ([78.46.96.112]:41596 "EHLO mail.skyhub.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750915AbbIZQq5 (ORCPT ); Sat, 26 Sep 2015 12:46:57 -0400 Date: Sat, 26 Sep 2015 18:46:51 +0200 From: Borislav Petkov To: Daniel Vetter , Thomas Gleixner , Jiang Liu , Bjorn Helgaas Cc: Alex Deucher , Alex Deucher , Christian =?utf-8?B?S8O2bmln?= , Maling list - DRI developers , lkml Subject: Re: WARNING: CPU: 4 PID: 863 at include/drm/drm_crtc.h:1577 drm_helper_choose_encoder_dpms+0x88/0x90() - evildoer found and neutralized Message-ID: <20150926164651.GA3640@pd.tnic> References: <20150921133126.GA25475@nazgul.tnic> <20150922202105.GB3453@pd.tnic> <20150923072523.GB3383@phenom.ffwll.local> <20150923085950.GA3440@pd.tnic> <20150923144450.GD3383@phenom.ffwll.local> <20150923160621.GA3446@pd.tnic> <20150923161839.GB3446@pd.tnic> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <20150923161839.GB3446@pd.tnic> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Sep 23, 2015 at 06:18:39PM +0200, Borislav Petkov wrote: > On Wed, Sep 23, 2015 at 06:06:21PM +0200, Borislav Petkov wrote: > > On Wed, Sep 23, 2015 at 04:44:50PM +0200, Daniel Vetter wrote: > > > sorry I sprinkled the locking stuff in the wrong places. Still confused > > > why the resume side doesn't blow up anywhere > > > > But it does: > > > > [ 69.394204] BUG: unable to handle kernel NULL pointer dereference at 0000000000000034 > > [ 69.402080] IP: [] pci_restore_msi_state+0x196/0x240 > > [ 69.408624] PGD 4162b8067 PUD 416581067 PMD 0 > > [ 69.413122] Oops: 0000 [#1] PREEMPT SMP > > [ 69.417101] Modules linked in: tun sha256_ssse3 sha256_generic drbg binfmt_misc ipv6 vfat fat fuse dm_crypt dm_mod kv > > m_amd kvm crc32_pclmul aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd amd64_edac_mod edac_mce_amd fa > > m15h_power k10temp amdkfd amd_iommu_v2 radeon acpi_cpufreq > > [ 69.443647] CPU: 4 PID: 814 Comm: kworker/u16:5 Not tainted 4.3.0-rc2+ #3 > > [ 69.450430] Hardware name: To be filled by O.E.M. To be filled by O.E.M./M5A97 EVO R2.0, BIOS 1503 01/16/2013 > > [ 69.460336] Workqueue: events_unbound async_run_entry_fn > > [ 69.465667] task: ffff88042a255f00 ti: ffff880428a68000 task.ti: ffff880428a68000 > > [ 69.473145] RIP: 0010:[] [] pci_restore_msi_state+0x196/0x240 > > [ 69.482131] RSP: 0018:ffff880428a6bc28 EFLAGS: 00010286 > > [ 69.487436] RAX: 0000000000000000 RBX: ffff88042a308000 RCX: 0000000000000000 > > [ 69.494568] RDX: 0000000000000001 RSI: ffffffff81304448 RDI: ffffffff816c7a1b > > [ 69.501700] RBP: ffff880428a6bc40 R08: 0000000000000001 R09: 0000000000522000 > > [ 69.508833] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 > > [ 69.515965] R13: ffff88042a3087b0 R14: ffff88042a308010 R15: ffff88042a308038 > > [ 69.523097] FS: 00007fc91328a700(0000) GS:ffff88042ce00000(0000) knlGS:0000000000000000 > > [ 69.531185] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b > > [ 69.536931] CR2: 0000000000000034 CR3: 00000004164c7000 CR4: 00000000000406e0 > > [ 69.544061] Stack: > > [ 69.546073] 0080002c2a3087b0 0000000000000000 ffff88042a308000 ffff880428a6bc78 > > [ 69.553525] ffffffff8130c141 ffff88042a308098 ffff88042a308000 0000000000000000 > > [ 69.560996] ffff8804284e77a8 ffffffff81961ef1 ffff880428a6bc88 ffffffff8130c2b8 > > [ 69.568450] Call Trace: > > [ 69.571044] [] pci_restore_state.part.18+0xf1/0x250 > > [ 69.577706] [] pci_restore_state+0x18/0x20 > > [ 69.583591] [] pci_pm_restore_noirq+0x4c/0xd0 > > [ 69.589734] [] ? pci_pm_freeze_noirq+0xf0/0xf0 > > [ 69.595966] [] dpm_run_callback+0x77/0x2a0 > > [ 69.601850] [] device_resume_noirq+0x93/0x150 > > [ 69.607994] [] async_resume_noirq+0x1d/0x50 > > [ 69.613967] [] async_run_entry_fn+0x46/0xf0 > > [ 69.619939] [] process_one_work+0x1f8/0x640 > > [ 69.625910] [] ? process_one_work+0x154/0x640 > > [ 69.632054] [] worker_thread+0x4b/0x440 > > [ 69.637677] [] ? process_one_work+0x640/0x640 > > [ 69.643822] [] kthread+0xf6/0x110 > > [ 69.648927] [] ? kthread_create_on_node+0x1f0/0x1f0 > > [ 69.655591] [] ret_from_fork+0x3f/0x70 > > [ 69.661128] [] ? kthread_create_on_node+0x1f0/0x1f0 > > [ 69.667794] Code: 66 89 4d ee 0f b7 c9 e8 79 41 fe ff 48 89 df e8 d1 7a ce ff 0f b6 53 4b 8b 73 38 48 8d 4d ee 48 8b 7b 10 83 c2 02 e8 1a 31 fe ff <41> 0f b6 4c 24 34 41 8b 54 24 30 be ff ff ff ff c0 e9 04 83 e1 > > [ 69.687986] RIP [] pci_restore_msi_state+0x196/0x240 > > [ 69.694772] RSP > > [ 69.698412] CR2: 0000000000000034 > > [ 69.701879] ---[ end trace 814dd8cc56e427ae ]--- > > Ok, after some quick staring, we're at __pci_restore_msi_state(): > > pci_read_config_word(dev, dev->msi_cap + PCI_MSI_FLAGS, &control); > msi_mask_irq(entry, msi_mask(entry->msi_attrib.multi_cap), > entry->masked); > > which is: > > .loc 1 411 0 > movq %rbx, %rdi # dev, > call arch_restore_msi_irqs # > .LBB1921: > .LBB1922: > .loc 2 902 0 > movzbl 75(%rbx), %edx # dev_2(D)->msi_cap, D.31945 > movl 56(%rbx), %esi # MEM[(const struct pci_dev *)dev_2(D)].devfn, MEM[(const struct pci_dev *)dev_2(D)].devfn > leaq -18(%rbp), %rcx #, tmp266 > movq 16(%rbx), %rdi # MEM[(const struct pci_dev *)dev_2(D)].bus, MEM[(const struct pci_dev *)dev_2(D)].bus > addl $2, %edx #, D.31945 > call pci_bus_read_config_word # > .LBE1922: > .LBE1921: > .loc 1 414 0 > movzbl 52(%r12), %ecx # *_85, tmp208 <--- faulting insn > movl 48(%r12), %edx # _85->D.27233.D.27231.masked, D.31946 > .LBB1923: > .LBB1924: > .loc 1 176 0 > movl $-1, %esi #, D.31951 > > and that %r12 is supposed to contain struct msi_desc *entry in > __pci_restore_msi_state(): > > entry = irq_get_msi_desc(dev->irq); > > which is > > .loc 4 654 0 > movl 1340(%rdi), %edi # dev_2(D)->irq, dev_2(D)->irq > call irq_get_irq_data # > .loc 4 655 0 > testq %rax, %rax # d > je .L405 #, > movq 16(%rax), %rax # d_62->common, d_62->common > movq 16(%rax), %r12 # _63->msi_desc, D.31954 > > but as we see above %r12 is 0. > > For some reason that entry thing in __pci_restore_msi_state() is not > checked for NULL even though irq_get_msi_desc() can return NULL. Ok, I bisected it. First of all, Daniel, you didn't see the resume side blow up because of the NULL ptr deref f*cking up the box much earlier. Once I reverted the bad commit by hand (it wouldn't revert cleanly) the resume splats showed. And in talking about the bad commit, it is this one: 991de2e59090e55c65a7f59a049142e3c480f7bd is the first bad commit commit 991de2e59090e55c65a7f59a049142e3c480f7bd Author: Jiang Liu Date: Wed Jun 10 16:54:59 2015 +0800 PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq() To support IOAPIC hotplug, we need to allocate PCI IRQ resources on demand and free them when not used anymore. Implement pcibios_alloc_irq() and pcibios_free_irq() to dynamically allocate and free PCI IRQs. Remove mp_should_keep_irq(), which is no longer used. [bhelgaas: changelog] Signed-off-by: Jiang Liu Signed-off-by: Bjorn Helgaas Acked-by: Thomas Gleixner :040000 040000 765e2d5232d53247ec260b34b51589c3bccb36ae f680234a27685e94b1a35ae2a7218f8eafa9071a M arch :040000 040000 d55a682bcde72682e883365e88ad1df6186fd54d f82c470a04a6845fcf5e0aa934512c75628f798d M drivers Jiang, you have to stop breaking my box with your changes. This is maybe the third time I'm bisecting fallout from your patches. If you're touching all x86, you need to test on an AMD box too. Like everyone else testing on the hardware their changes affect. It is that simple. Anyway, reverting that commit by hand fixes my resume splat. Here's the partial revert I did by hand: --- diff --git a/arch/x86/include/asm/pci_x86.h b/arch/x86/include/asm/pci_x86.h index fa1195dae425..164e3f8d3c3d 100644 --- a/arch/x86/include/asm/pci_x86.h +++ b/arch/x86/include/asm/pci_x86.h @@ -93,6 +93,8 @@ extern raw_spinlock_t pci_config_lock; extern int (*pcibios_enable_irq)(struct pci_dev *dev); extern void (*pcibios_disable_irq)(struct pci_dev *dev); +extern bool mp_should_keep_irq(struct device *dev); + struct pci_raw_ops { int (*read)(unsigned int domain, unsigned int bus, unsigned int devfn, int reg, int len, u32 *val); diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c index 09d3afc0a181..3bff24438b00 100644 --- a/arch/x86/pci/common.c +++ b/arch/x86/pci/common.c @@ -672,20 +672,22 @@ int pcibios_add_device(struct pci_dev *dev) return 0; } -int pcibios_alloc_irq(struct pci_dev *dev) +int pcibios_enable_device(struct pci_dev *dev, int mask) { - return pcibios_enable_irq(dev); -} + int err; -void pcibios_free_irq(struct pci_dev *dev) -{ - if (pcibios_disable_irq) - pcibios_disable_irq(dev); + if ((err = pci_enable_resources(dev, mask)) < 0) + return err; + + if (!pci_dev_msi_enabled(dev)) + return pcibios_enable_irq(dev); + return 0; } -int pcibios_enable_device(struct pci_dev *dev, int mask) +void pcibios_disable_device (struct pci_dev *dev) { - return pci_enable_resources(dev, mask); + if (!pci_dev_msi_enabled(dev) && pcibios_disable_irq) + pcibios_disable_irq(dev); } int pci_ext_cfg_avail(void) diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c index 32e70343e6fd..f229834b36d4 100644 --- a/arch/x86/pci/irq.c +++ b/arch/x86/pci/irq.c @@ -1186,6 +1186,18 @@ void pcibios_penalize_isa_irq(int irq, int active) pirq_penalize_isa_irq(irq, active); } +bool mp_should_keep_irq(struct device *dev) +{ + if (dev->power.is_prepared) + return true; +#ifdef CONFIG_PM + if (dev->power.runtime_status == RPM_SUSPENDING) + return true; +#endif + + return false; +} + static int pirq_enable_irq(struct pci_dev *dev) { u8 pin = 0; @@ -1258,7 +1270,8 @@ static int pirq_enable_irq(struct pci_dev *dev) static void pirq_disable_irq(struct pci_dev *dev) { - if (io_apic_assign_pci_irqs && pci_has_managed_irq(dev)) { + if (io_apic_assign_pci_irqs && !mp_should_keep_irq(&dev->dev) && + dev->irq_managed && dev->irq) { mp_unmap_irq(dev->irq); pci_reset_managed_irq(dev); } diff --git a/drivers/acpi/pci_irq.c b/drivers/acpi/pci_irq.c index 6da0f9beab19..d8a3f49a960c 100644 --- a/drivers/acpi/pci_irq.c +++ b/drivers/acpi/pci_irq.c @@ -479,6 +479,14 @@ void acpi_pci_irq_disable(struct pci_dev *dev) if (!pin || !pci_has_managed_irq(dev)) return; + /* Keep IOAPIC pin configuration when suspending */ + if (dev->dev.power.is_prepared) + return; +#ifdef CONFIG_PM + if (dev->dev.power.runtime_status == RPM_SUSPENDING) + return; +#endif + entry = acpi_pci_irq_lookup(dev, pin); if (!entry) return; -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply.