From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: drm/i915: Watchdog timeout: DRM kernel interface to set the timeout Date: Mon, 7 Jan 2019 12:38:47 +0000 Message-ID: References: <20190105024001.37629-1-carlos.santa@intel.com> <20190105024001.37629-5-carlos.santa@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 51E426E75C for ; Mon, 7 Jan 2019 12:38:51 +0000 (UTC) In-Reply-To: <20190105024001.37629-5-carlos.santa@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Carlos Santa , intel-gfx@lists.freedesktop.org Cc: Michel Thierry List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA1LzAxLzIwMTkgMDI6MzksIENhcmxvcyBTYW50YSB3cm90ZToKPiBGcm9tOiBNaWNoZWwg VGhpZXJyeSA8bWljaGVsLnRoaWVycnlAaW50ZWwuY29tPgo+IAo+IEZpbmFsIGVuYWJsZW1lbnQg cGF0Y2ggZm9yIEdQVSBoYW5nIGRldGVjdGlvbiB1c2luZyB3YXRjaGRvZyB0aW1lb3V0Lgo+IFVz aW5nIHRoZSBnZW1fY29udGV4dF9zZXRwYXJhbSBpb2N0bCwgdXNlcnMgY2FuIHNwZWNpZnkgdGhl IGRlc2lyZWQKPiB0aW1lb3V0IHZhbHVlIGluIG1pY3Jvc2Vjb25kcywgYW5kIHRoZSBkcml2ZXIg d2lsbCBkbyB0aGUgY29udmVyc2lvbiB0bwo+ICd0aW1lc3RhbXBzJy4KPiAKPiBUaGUgcmVjb21t ZW5kZWQgZGVmYXVsdCB3YXRjaGRvZyB0aHJlc2hvbGQgZm9yIHZpZGVvIGVuZ2luZXMgaXMgNjAw MDAgdXMsCj4gc2luY2UgdGhpcyBoYXMgYmVlbiBfZW1waXJpY2FsbHkgZGV0ZXJtaW5lZF8gdG8g YmUgYSBnb29kIGNvbXByb21pc2UgZm9yCj4gbG93LWxhdGVuY3kgcmVxdWlyZW1lbnRzIGFuZCBs b3cgcmF0ZSBvZiBmYWxzZSBwb3NpdGl2ZXMuIFRoZSBkZWZhdWx0Cj4gcmVnaXN0ZXIgdmFsdWUg aXMgfjEwNjAwMHVzIGFuZCB0aGUgdGhlb3JldGljYWwgbWF4IHZhbHVlIChhbGwgMXMpIGlzCj4g MzUzIHNlY29uZHMuCj4gCj4gTm90ZSwgVUFCSSBlbmdpbmUgaWRzIGFuZCBpOTE1IGVuZ2luZSBp ZHMgYXJlIGRpZmZlcmVudCwgYW5kIHRoaXMgcGF0Y2gKPiB1c2VzIHRoZSBpOTE1IG9uZXMuIFNv bWUga2luZCBvZiBtYXBwaW5nIHRhYmxlIFsxXSBpcyByZXF1aXJlZCBpZiB3ZQo+IGRlY2lkZSB0 byB1c2UgdGhlIFVBQkkgZW5naW5lIGlkcy4KClRoaXMgcGFyYWdyYXBocyBpcyBub3QgdHJ1ZSBh bnkgbW9yZS4KCj4gCj4gWzFdIGh0dHA6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNo L21zZ2lkLzIwMTcwMzI5MTM1ODMxLjMwMjU0LTItY2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrCiA+ PiB2MjogRml4ZWQgZ2V0IGFwaSB0byByZXR1cm4gdmFsdWVzIGluIG1pY3Jvc2Vjb25kcy4gVGhy ZXNob2xkIHVwZGF0ZWQgdG8KPiBiZSBwZXIgY29udGV4dCBlbmdpbmUuIENoZWNrIGZvciB1MzIg b3ZlcmZsb3cuIENhcHR1cmUgY3R4IHRocmVzaG9sZAo+IHZhbHVlIGluIGVycm9yIHN0YXRlLgo+ IAo+IHYzOiBBZGQgYSB3YXkgdG8gZ2V0IGFycmF5IHNpemUsIHNob3J0LWN1dCB0byBkaXNhYmxl IGFsbCB0aHJlc2hvbGRzLAo+IHJldHVybiBFRkFVTFQgLyBFSU5WQUwgYXMgbmVlZGVkLiBNb3Zl IHRoZSBjYXB0dXJlIG9mIHRoZSB0aHJlc2hvbGQKPiB2YWx1ZSBpbiB0aGUgZXJyb3Igc3RhdGUg aW50byBhIG5ldyBwYXRjaC4gQlhUIGhhcyBhIGRpZmZlcmVudAo+IHRpbWVzdGFtcCBiYXNlIChi ZWNhdXNlIHdoeSBub3Q/KS4KPiAKPiB2NDogQ2hlY2tpbmcgaWYgd2F0Y2hkb2cgaXMgYXZhaWxh YmxlIHNob3VsZCBiZSB0aGUgZmlyc3QgdGhpbmcgdG8KPiBkbywgaW5zdGVhZCBvZiBnaXZpbmcg ZmFsc2UgaG9wZXMgdG8gYWJpIHVzZXJzOyByZW1vdmUgdW5uZWNlc3NhcnkgJiBpbgo+IHNldF93 YXRjaGRvZzsgaWdub3JlIGFyZ3MtPnNpemUgaW4gZ2V0cGFyYW0uCj4gCj4gdjU6IEdFTjktTFAg cGxhdGZvcm1zIGhhdmUgYSBkaWZmZXJlbnQgY3J5c3RhbCBjbG9jayBmcmVxdWVuY3ksIHVzZSB0 aGUKPiByaWdodCB0aW1lc3RhbXAgYmFzZSBmb3IgdGhlbSAobWFnaWMgOC1iYWxsIHByZWRpY3Rz IHRoaXMgd2lsbCBjaGFuZ2UKPiBhZ2FpbiBsYXRlciBvbiwgc28gZnV0dXJlLXByb29mIGl0KS4g KERhbmllbGUpCj4gCj4gdjY6IFJlYmFzZSwgbm8gbW9yZSBtdXRleCBCTEsgaW4gZ2V0cGFyYW1f aW9jdGwuCj4gCj4gdjc6IHVzZSB0b19pbnRlbF9jb250ZXh0IGluc3RlYWQgb2YgY3R4LT5lbmdp bmUuCj4gCj4gdjg6IFJlYmFzZSwgcmVtb3ZlIGV4dHJhIG11dGV4IGZyb20gaTkxNV9nZW1fY29u dGV4dF9zZXRfd2F0Y2hkb2cgKFR2cnRrbyksCj4gVXBkYXRlIFVBUEkgdG8gdXNlIGVuZ2luZSBj bGFzcyB3aGlsZSBrZWVwaW5nIHRocmVzaG9sZHMgcGVyCj4gZW5naW5lIGNsYXNzIChNaWNoZWwp Lgo+IAo+IENjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRlbC5j b20+Cj4gQ2M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBsaW51eC5pbnRlbC5jb20+ Cj4gQ2M6IERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogTWljaGVsIFRoaWVycnkgPG1pY2hlbC50aGllcnJ5QGlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBDYXJsb3MgU2FudGEgPGNhcmxvcy5zYW50YUBpbnRl bC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAg fCA1NiArKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2Nv bnRleHQuYyB8IDkxICsrKysrKysrKysrKysrKysrKysrKysrKysKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICA1ICstCj4gICBpbmNsdWRlL3VhcGkvZHJtL2k5 MTVfZHJtLmggICAgICAgICAgICAgfCAgMSArCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE1MSBpbnNl cnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGlu ZGV4IDdmYTJhNDA1YzVmZS4uOTZkNTljMjJlMmJhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gQEAgLTE1NTIsNiArMTU1Miw5IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfZmVuY2VfcmVnIGZlbmNlX3JlZ3NbSTkxNV9NQVhfTlVNX0ZFTkNF U107IC8qIGFzc3VtZSA5NjUgKi8KPiAgIAlpbnQgbnVtX2ZlbmNlX3JlZ3M7IC8qIDggb24gcHJl LTk2NSwgMTYgb3RoZXJ3aXNlICovCj4gICAKPiArCS8qIENvbW1hbmQgc3RyZWFtIHRpbWVzdGFt cCBiYXNlIC0gaGVscHMgZGVmaW5lIHdhdGNoZG9nIHRocmVzaG9sZCAqLwo+ICsJdTMyIGNzX3Rp bWVzdGFtcF9iYXNlOwo+ICsKPiAgIAl1bnNpZ25lZCBpbnQgZnNiX2ZyZXEsIG1lbV9mcmVxLCBp c19kZHIzOwo+ICAgCXVuc2lnbmVkIGludCBza2xfcHJlZmVycmVkX3Zjb19mcmVxOwo+ICAgCXVu c2lnbmVkIGludCBtYXhfY2RjbGtfZnJlcTsKPiBAQCAtMzExNyw2ICszMTIwLDU5IEBAIGk5MTVf Z2VtX2NvbnRleHRfbG9va3VwKHN0cnVjdCBkcm1faTkxNV9maWxlX3ByaXZhdGUgKmZpbGVfcHJp diwgdTMyIGlkKQo+ICAgCXJldHVybiBjdHg7Cj4gICB9Cj4gICAKPiArLyoKPiArICogQkRXLCBD SFYgJiBTS0wrIFRpbWVzdGFtcCB0aW1lciByZXNvbHV0aW9uID0gMC4wODAgdVNlYywKPiArICog b3IgMTI1MDAwMDAgY291bnRzIHBlciBzZWNvbmQsIG9yIH4xMiBjb3VudHMgcGVyIG1pY3Jvc2Vj b25kLgo+ICsgKgo+ICsgKiBCdXQgQlhUL0dMSyBUaW1lc3RhbXAgdGltZXIgcmVzb2x1dGlvbiBp cyBkaWZmZXJlbnQsIDAuMDUyIHVTZWMsCj4gKyAqIG9yIDE5MjAwMDAwIGNvdW50cyBwZXIgc2Vj b25kLCBvciB+MTkgY291bnRzIHBlciBtaWNyb3NlY29uZC4KPiArICoKPiArICogRnV0dXJlLXBy b29maW5nLCBzb21lIGRheSBpdCB3b24ndCBiZSBhcyBzaW1wbGUgYXMganVzdCBHRU4gJiBJU19M UC4KPiArICovCj4gKyNkZWZpbmUgR0VOOF9USU1FU1RBTVBfQ05UU19QRVJfVVNFQyAxMgo+ICsj ZGVmaW5lIEdFTjlfTFBfVElNRVNUQU1QX0NOVFNfUEVSX1VTRUMgMTkKPiArc3RhdGljIGlubGlu ZSB1MzIgY3NfdGltZXN0YW1wX2luX3VzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dikKPiArewo+ICsJdTMyIGNzX3RpbWVzdGFtcF9iYXNlID0gZGV2X3ByaXYtPmNzX3RpbWVzdGFt cF9iYXNlOwo+ICsKPiArCWlmIChjc190aW1lc3RhbXBfYmFzZSkKPiArCQlyZXR1cm4gY3NfdGlt ZXN0YW1wX2Jhc2U7Cj4gKwo+ICsJc3dpdGNoIChJTlRFTF9HRU4oZGV2X3ByaXYpKSB7Cj4gKwlk ZWZhdWx0Ogo+ICsJCU1JU1NJTkdfQ0FTRShJTlRFTF9HRU4oZGV2X3ByaXYpKTsKPiArCQkvKiBm YWxsIHRocm91Z2ggKi8KPiArCWNhc2UgOToKPiArCQljc190aW1lc3RhbXBfYmFzZSA9IElTX0dF TjlfTFAoZGV2X3ByaXYpID8KPiArCQkJCQlHRU45X0xQX1RJTUVTVEFNUF9DTlRTX1BFUl9VU0VD IDoKPiArCQkJCQlHRU44X1RJTUVTVEFNUF9DTlRTX1BFUl9VU0VDOwo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSA4Ogo+ICsJCWNzX3RpbWVzdGFtcF9iYXNlID0gR0VOOF9USU1FU1RBTVBfQ05UU19QRVJf VVNFQzsKPiArCQlicmVhazsKPiArCX0KPiArCj4gKwlkZXZfcHJpdi0+Y3NfdGltZXN0YW1wX2Jh c2UgPSBjc190aW1lc3RhbXBfYmFzZTsKPiArCXJldHVybiBjc190aW1lc3RhbXBfYmFzZTsKPiAr fQoKV2UgYWxyZWFkeSBoYXZlIFJVTlRJTUVfSU5GTyhpOTE1KS0+Y3NfdGltZXN0YW1wX2ZyZXF1 ZW5jeV9raHogYW5kIApyZWFkX3RpbWVzdGFtcF9mcmVxdWVuY3kgd2hpY2ggc2V0cyBpdC4KCj4g Kwo+ICtzdGF0aWMgaW5saW5lIHUzMgo+ICt3YXRjaGRvZ190b191cyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiB2YWx1ZV9pbl9jbG9ja19jb3VudHMpCj4gK3sKPiArCXJl dHVybiB2YWx1ZV9pbl9jbG9ja19jb3VudHMgLyBjc190aW1lc3RhbXBfaW5fdXMoZGV2X3ByaXYp Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHUzMgo+ICt3YXRjaGRvZ190b19jbG9ja19jb3Vu dHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1NjQgdmFsdWVfaW5fdXMpCj4g K3sKPiArCXU2NCB0aHJlc2hvbGQgPSB2YWx1ZV9pbl91cyAqIGNzX3RpbWVzdGFtcF9pbl91cyhk ZXZfcHJpdik7Cj4gKwo+ICsJaWYgKG92ZXJmbG93c190eXBlKHRocmVzaG9sZCwgdTMyKSkKPiAr CQlyZXR1cm4gLUVJTlZBTDsKPiArCj4gKwlyZXR1cm4gdGhyZXNob2xkOwo+ICt9Cj4gKwo+ICAg aW50IGk5MTVfcGVyZl9vcGVuX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsCj4gICAJCQkgc3RydWN0IGRybV9maWxlICpmaWxlKTsKPiAgIGludCBpOTE1X3BlcmZfYWRk X2NvbmZpZ19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKPiBpbmRleCA0MGZlZmVkOGM5MmYuLjRl NDIxYjc5YWMwNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9j b250ZXh0LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMK PiBAQCAtODQwLDYgKzg0MCw5MSBAQCBpbnQgaTkxNV9nZW1fY29udGV4dF9kZXN0cm95X2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJcmV0dXJuIDA7Cj4gICB9 Cj4gICAKPiArLyogUmV0dXJuIHRoZSB0aW1lciBjb3VudCB0aHJlc2hvbGQgaW4gbWljcm9zZWNv bmRzLiAqLwo+ICtpbnQgaTkxNV9nZW1fY29udGV4dF9nZXRfd2F0Y2hkb2coc3RydWN0IGk5MTVf Z2VtX2NvbnRleHQgKmN0eCwKPiArCQkJCSAgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X3Bh cmFtICphcmdzKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBj dHgtPmk5MTU7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmU7Cj4gKwllbnVtIGlu dGVsX2VuZ2luZV9pZCBpZDsKPiArCXUzMiB0aHJlc2hvbGRfaW5fdXNbT1RIRVJfQ0xBU1NdOwo+ ICsKPiArCWlmICghZGV2X3ByaXYtPmVuZ2luZVtWQ1NdLT5lbWl0X3N0YXJ0X3dhdGNoZG9nKQo+ ICsJCXJldHVybiAtRU5PREVWOwoKVGhpcyBjb3VsZCB1c2UgdGhlIGVuZ2luZS0+ZmxhZ3MsIGJ1 dCB0aGUgcXVlc3Rpb24gaXMgd2hpY2ggZW5naW5lLiBUaGUgCmFuc3dlciB3aWxsIGRlcGVuZCBv biB0aGUgdWFwaSBzbyB3ZSB3aWxsIGNvbWUgdG8gaXQgbGF0ZXIuCgo+ICsKPiArCWZvcl9lYWNo X2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBpZCkgewo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0 ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4LCBlbmdpbmUpOwo+ICsKPiArCQl0aHJlc2hvbGRf aW5fdXNbZW5naW5lLT5jbGFzc10gPSB3YXRjaGRvZ190b191cyhkZXZfcHJpdiwKPiArCQkJCQkJ CQljZS0+d2F0Y2hkb2dfdGhyZXNob2xkKTsKCldvdWxkIHRoZXJlIGJlIHNvbWUgbG9zc3luZXNz IGluIHJlYWQtYmFjayBkdWUgdXMgLT4gaW50ZXJuYWwgLT4gdXMgCmNvbnZlcnNpb24/Cgo+ICsJ fQo+ICsKPiArCWlmIChfX2NvcHlfdG9fdXNlcih1NjRfdG9fdXNlcl9wdHIoYXJncy0+dmFsdWUp LAo+ICsJCQkgICAmdGhyZXNob2xkX2luX3VzLAo+ICsJCQkgICBzaXplb2YodGhyZXNob2xkX2lu X3VzKSkpIHsKCkkgdGhpbmsgdXNlciBwb2ludGVyIGhhc24ndCBiZWVuIHZlcmlmaWVkIGZvciB3 cml0ZSBhY2Nlc3MgeWV0IHNvIApzdGFuZGFyZCBjb3B5X3RvX3VzZXIgc2hvdWxkIGJlIHVzZWQu Cgo+ICsJCXJldHVybiAtRUZBVUxUOwo+ICsJfQo+ICsKPiArCWFyZ3MtPnNpemUgPSBzaXplb2Yo dGhyZXNob2xkX2luX3VzKTsKPiArCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArLyoKPiArICog QmFzZWQgb24gdGltZSBvdXQgdmFsdWUgaW4gbWljcm9zZWNvbmRzICh1cykgY2FsY3VsYXRlCj4g KyAqIHRpbWVyIGNvdW50IHRocmVzaG9sZHMgbmVlZGVkIGJhc2VkIG9uIGNvcmUgZnJlcXVlbmN5 Lgo+ICsgKiBXYXRjaGRvZyBjYW4gYmUgZGlzYWJsZWQgYnkgc2V0dGluZyBpdCB0byAwLgo+ICsg Ki8KPiAraW50IGk5MTVfZ2VtX2NvbnRleHRfc2V0X3dhdGNoZG9nKHN0cnVjdCBpOTE1X2dlbV9j b250ZXh0ICpjdHgsCj4gKwkJCQkgIHN0cnVjdCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSAq YXJncykKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gY3R4LT5p OTE1Owo+ICsJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lOwo+ICsJZW51bSBpbnRlbF9l bmdpbmVfaWQgaWQ7Cj4gKwl1MzIgaTsKCkluY29ycmVjdCB0eXBlIGZvciBjbGFzcyBpdGVyYXRv ci4KCj4gKwl1MzIgdGhyZXNob2xkW09USEVSX0NMQVNTXTsKPiArCj4gKwlpZiAoIWRldl9wcml2 LT5lbmdpbmVbVkNTXS0+ZW1pdF9zdGFydF93YXRjaGRvZykKPiArCQlyZXR1cm4gLUVOT0RFVjsK PiArCj4gKwltZW1zZXQodGhyZXNob2xkLCAwLCBzaXplb2YodGhyZXNob2xkKSk7Cj4gKwo+ICsJ Lyogc2hvcnRjdXQgdG8gZGlzYWJsZSBpbiBhbGwgZW5naW5lcyAqLwo+ICsJaWYgKGFyZ3MtPnNp emUgPT0gMCkKPiArCQlnb3RvIHNldF93YXRjaGRvZzsKPiArCj4gKwlpZiAoYXJncy0+c2l6ZSA8 IHNpemVvZih0aHJlc2hvbGQpKQo+ICsJCXJldHVybiAtRUZBVUxUOwoKVGhpcyB3b3VsZCBtYWtl IHRoZSB1YXBpIG5vdCBiYWNrd2FyZCBjb21wYXRpYmxlLiAoT2xkIHVzZXJzcGFjZSBvbiBuZXcg Cmtlcm5lbHMpLiBCdXQgdWFwaSB3aWxsIHByb2JhYmx5IG5lZWQgb3RoZXIgY2hhbmdlcyBhcyBt ZW50aW9uZWQgYWxyZWFkeS4KCj4gKwo+ICsJaWYgKGNvcHlfZnJvbV91c2VyKHRocmVzaG9sZCwK PiArCQkJICAgdTY0X3RvX3VzZXJfcHRyKGFyZ3MtPnZhbHVlKSwKPiArCQkJICAgc2l6ZW9mKHRo cmVzaG9sZCkpKSB7Cj4gKwkJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgp OwoKT29vcHMhCgo+ICsJCXJldHVybiAtRUZBVUxUOwo+ICsJfQo+ICsKPiArCS8qIG5vdCBzdXBw b3J0ZWQgaW4gYmxpdHRlciBlbmdpbmUgKi8KPiArCWlmICh0aHJlc2hvbGRbQ09QWV9FTkdJTkVf Q0xBU1NdICE9IDApCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJZm9yIChpID0gUkVOREVS X0NMQVNTOyBpIDwgT1RIRVJfQ0xBU1M7IGkrKykgewo+ICsJCXRocmVzaG9sZFtpXSA9IHdhdGNo ZG9nX3RvX2Nsb2NrX2NvdW50cyhkZXZfcHJpdiwgdGhyZXNob2xkW2ldKTsKPiArCj4gKwkJaWYg KHRocmVzaG9sZFtpXSA9PSAtRUlOVkFMKQo+ICsJCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPiAr Cj4gK3NldF93YXRjaGRvZzoKPiArCWZvcl9lYWNoX2VuZ2luZShlbmdpbmUsIGRldl9wcml2LCBp ZCkgewo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjZSA9IHRvX2ludGVsX2NvbnRleHQoY3R4 LCBlbmdpbmUpOwo+ICsKPiArCQljZS0+d2F0Y2hkb2dfdGhyZXNob2xkID0gdGhyZXNob2xkW2Vu Z2luZS0+Y2xhc3NdOwo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICsKPiAgIGlu dCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsCj4gICAJCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgIHsKPiBA QCAtODc3LDYgKzk2Miw5IEBAIGludCBpOTE1X2dlbV9jb250ZXh0X2dldHBhcmFtX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJY2FzZSBJOTE1X0NPTlRFWFRf UEFSQU1fUFJJT1JJVFk6Cj4gICAJCWFyZ3MtPnZhbHVlID0gY3R4LT5zY2hlZC5wcmlvcml0eSA+ PiBJOTE1X1VTRVJfUFJJT1JJVFlfU0hJRlQ7Cj4gICAJCWJyZWFrOwo+ICsJY2FzZSBJOTE1X0NP TlRFWFRfUEFSQU1fV0FUQ0hET0c6Cj4gKwkJcmV0ID0gaTkxNV9nZW1fY29udGV4dF9nZXRfd2F0 Y2hkb2coY3R4LCBhcmdzKTsKPiArCQlicmVhazsKPiAgIAlkZWZhdWx0Ogo+ICAgCQlyZXQgPSAt RUlOVkFMOwo+ICAgCQlicmVhazsKPiBAQCAtOTQ5LDYgKzEwMzcsOSBAQCBpbnQgaTkxNV9nZW1f Y29udGV4dF9zZXRwYXJhbV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LAo+ICAgCQl9Cj4gICAJCWJyZWFrOwo+ICAgCj4gKwljYXNlIEk5MTVfQ09OVEVYVF9QQVJBTV9X QVRDSERPRzoKPiArCQlyZXQgPSBpOTE1X2dlbV9jb250ZXh0X3NldF93YXRjaGRvZyhjdHgsIGFy Z3MpOwo+ICsJCWJyZWFrOwo+ICAgCWRlZmF1bHQ6Cj4gICAJCXJldCA9IC1FSU5WQUw7Cj4gICAJ CWJyZWFrOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMGVhNWEzN2MzMzU3Li4w YWZjYmViMTgzMjkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBAIC0yMDYxLDcg KzIwNjEsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBnZXRfd2F0Y2hkb2dfZGlzYWJsZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJCXJldHVybiBHRU44X1hDU19XQVRDSERPR19E SVNBQkxFOwo+ICAgfQo+ICAgCj4gLSNkZWZpbmUgR0VOOF9XQVRDSERPR18xMDAwVVMgMHgyZWUw IC8vWFhYOiBUZW1wLCByZXBsYWNlIHdpdGggaGVscGVyIGZ1bmN0aW9uCj4gKyNkZWZpbmUgR0VO OF9XQVRDSERPR18xMDAwVVMoZGV2X3ByaXYpIHdhdGNoZG9nX3RvX2Nsb2NrX2NvdW50cyhkZXZf cHJpdiwgMTAwMCkKClJpZ2h0LCBobSwgSSB0aGluayB5b3Ugc2hvdWxkIGludHJvZHVjZSBhIGhl bHBlciBpbiB0aGF0IGVhcmxpZXIgcGF0Y2ggCnRvIGF2b2lkIHRoZSB1Z2x5IGNvbW1lbnQuCgpJ IGRvZXNuJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyB5ZXQuIEhvd2V2ZXIgYXMgc2FpZCBpbiB0aGF0 IHJldmlldywgSSBhbSAKbm90IHN1cmUgdGhpcyBhcHByb2FjaCBvZiByZXN0YXJ0aW5nIHRoZSB0 aW1lciBpcyBzYWZlIHRvIGJlZ2luIHdpdGguCgo+ICAgc3RhdGljIHZvaWQgZ2VuOF93YXRjaGRv Z19pcnFfaGFuZGxlcih1bnNpZ25lZCBsb25nIGRhdGEpCj4gICB7Cj4gICAJc3RydWN0IGludGVs X2VuZ2luZV9jcyAqZW5naW5lID0gKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKilkYXRhOwo+IEBA IC0yMTA4LDcgKzIxMDgsOCBAQCBzdGF0aWMgdm9pZCBnZW44X3dhdGNoZG9nX2lycV9oYW5kbGVy KHVuc2lnbmVkIGxvbmcgZGF0YSkKPiAgIAl9IGVsc2Ugewo+ICAgCQllbmdpbmUtPmhhbmdjaGVj ay53YXRjaGRvZyA9IGN1cnJlbnRfc2Vxbm87Cj4gICAJCS8qIFJlLXN0YXJ0IHRoZSBjb3VudGVy LCBpZiByZWFsbHkgaHVuZywgaXQgd2lsbCBleHBpcmUgYWdhaW4gKi8KPiAtCQlJOTE1X1dSSVRF X0ZXKFJJTkdfVEhSRVNIKGVuZ2luZS0+bW1pb19iYXNlKSwgR0VOOF9XQVRDSERPR18xMDAwVVMp Owo+ICsJCUk5MTVfV1JJVEVfRlcoUklOR19USFJFU0goZW5naW5lLT5tbWlvX2Jhc2UpLAo+ICsJ CQkgICAgICBHRU44X1dBVENIRE9HXzEwMDBVUyhkZXZfcHJpdikpOwo+ICAgCQlJOTE1X1dSSVRF X0ZXKFJJTkdfQ05UUihlbmdpbmUtPm1taW9fYmFzZSksIEdFTjhfV0FUQ0hET0dfRU5BQkxFKTsK PiAgIAl9Cj4gICAKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oIGIv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gaW5kZXggMGJjOWUwMGU2NmNlLi5kYTdlZmFm NjZiMGUgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gKysrIGIv aW5jbHVkZS91YXBpL2RybS9pOTE1X2RybS5oCj4gQEAgLTE0OTAsNiArMTQ5MCw3IEBAIHN0cnVj dCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSB7Cj4gICAjZGVmaW5lICAgSTkxNV9DT05URVhU X01BWF9VU0VSX1BSSU9SSVRZCTEwMjMgLyogaW5jbHVzaXZlICovCj4gICAjZGVmaW5lICAgSTkx NV9DT05URVhUX0RFRkFVTFRfUFJJT1JJVFkJCTAKPiAgICNkZWZpbmUgICBJOTE1X0NPTlRFWFRf TUlOX1VTRVJfUFJJT1JJVFkJLTEwMjMgLyogaW5jbHVzaXZlICovCj4gKyNkZWZpbmUgSTkxNV9D T05URVhUX1BBUkFNX1dBVENIRE9HCTB4Nwo+ICAgCV9fdTY0IHZhbHVlOwo+ICAgfTsKPiAgIAo+ IAoKU28gVUFQSSBpcyBub3QgcmVhbGx5IGRlZmluZWQgYXQgYWxsIGFzIGZhciBhcyB1c2Vyc3Bh Y2UgKGxvb2tpbmcgYXQgCmk5MTVfZHJtLmggY2FuIHNlZSkuCgpXZSB3aWxsIGhhdmUgdG8gY29t ZSB1cCB3aXRoIHNvbWV0aGluZyBiZXR0ZXIgYW5kIGFsc28gY29uc2lkZXJpbmcgdGhlIApWaXJ0 dWFsIEVuZ2luZSB3b3JrLiBBbmQgYWxzbyB3b3JrIG91dCB0aGUgZGV0YWlscyBzZW1hbnRpY3Mg ZXRjLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK