From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hans de Goede Subject: Re: [PATCH v2 13/13] drm/i915: Acquire P-Unit access when modifying P-Unit settings Date: Mon, 30 Jan 2017 16:27:58 +0100 Message-ID: References: <20170123210958.18410-1-hdegoede@redhat.com> <20170123210958.18410-14-hdegoede@redhat.com> <20170127135147.GS31595@intel.com> <64a4aef7-837f-059c-9be5-4a76602488be@redhat.com> <2eea197f-2485-5f93-1691-42a9a2e11267@redhat.com> <20170130131041.GM31595@intel.com> <20170130151144.GP31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170130151144.GP31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: Wolfram Sang , "russianneuromancer @ ya . ru" , intel-gfx , linux-i2c@vger.kernel.org, Jarkko Nikula , dri-devel@lists.freedesktop.org, "H . Peter Anvin" , Daniel Vetter , Thomas Gleixner , Andy Shevchenko , Mika Westerberg , Len Brown List-Id: linux-i2c@vger.kernel.org SGksCgpPbiAzMC0wMS0xNyAxNjoxMSwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+IE9uIE1vbiwg SmFuIDMwLCAyMDE3IGF0IDA0OjAyOjE5UE0gKzAxMDAsIEhhbnMgZGUgR29lZGUgd3JvdGU6Cj4+ IEhpLAo+Pgo+PiBPbiAzMC0wMS0xNyAxNDoxMCwgVmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+Pj4g T24gU2F0LCBKYW4gMjgsIDIwMTcgYXQgMDY6MTg6NDVQTSArMDEwMCwgSGFucyBkZSBHb2VkZSB3 cm90ZToKPj4+PiBIaSwKPj4+Pgo+Pj4+IE9uIDAxLzI4LzIwMTcgMDU6MjUgUE0sIEhhbnMgZGUg R29lZGUgd3JvdGU6Cj4+Pj4+IEhpLAo+Pj4+Pgo+Pj4+PiBPbiAwMS8yNy8yMDE3IDAyOjUxIFBN LCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4+Pj4+PiBPbiBNb24sIEphbiAyMywgMjAxNyBhdCAx MDowOTo1OFBNICswMTAwLCBIYW5zIGRlIEdvZWRlIHdyb3RlOgo+Pj4+Pj4+IE1ha2Ugc3VyZSB0 aGUgUC1Vbml0IG9yIHRoZSBQTUlDIGkyYyBidXMgaXMgbm90IGluIHVzZSB3aGVuIHdlIHNlbmQg YQo+Pj4+Pj4+IHJlcXVlc3QgdG8gdGhlIFAtVW5pdCBieSBjYWxsaW5nIGlvc2ZfbWJpX3B1bml0 X2FjcXVpcmUoKSAvIF9yZWxlYXNlKCkKPj4+Pj4+PiBhcm91bmQgUC1Vbml0IHdyaXRlIGFjY2Vz c2VzLgo+Pj4+Pj4KPj4+Pj4+IENhbid0IHdlIGp1c3Qgc3R1ZmYgdGhlIGNhbGxzIGludG8gdGhl IGFjdHVhbCBwdW5pdCB3cml0ZSBmdW5jdGlvbgo+Pj4+Pj4gcmF0aGVyIHRoYW4gc3ByaW5rbGlu ZyB0aGVtIGFsbCBvdmVyIHRoZSBwbGFjZT8KPj4+Pj4KPj4+Pj4gcHVuaXQgYWNjZXNzIGlzIGFj cXVpcmVkIGFjcm9zcyBzZWN0aW9ucyBsaWtlIHRoaXM6Cj4+Pj4+Cj4+Pj4+ICAgICAgICAgaW9z Zl9tYmlfcHVuaXRfYWNxdWlyZSgpOwo+Pj4+Pgo+Pj4+PiAgICAgICAgIHZhbCA9IHZsdl9wdW5p dF9yZWFkKGRldl9wcml2LCBQVU5JVF9SRUdfRFNQRlJFUSk7Cj4+Pj4+ICAgICAgICAgdmFsICY9 IH5EU1BGUkVRR1VBUl9NQVNLOwo+Pj4+PiAgICAgICAgIHZhbCB8PSAoY21kIDw8IERTUEZSRVFH VUFSX1NISUZUKTsKPj4+Pj4gICAgICAgICB2bHZfcHVuaXRfd3JpdGUoZGV2X3ByaXYsIFBVTklU X1JFR19EU1BGUkVRLCB2YWwpOwo+Pj4+PiAgICAgICAgIGlmICh3YWl0X2Zvcigodmx2X3B1bml0 X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JFR19EU1BGUkVRKSAmCj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICBEU1BGUkVRU1RBVF9NQVNLKSA9PSAoY21kIDw8IERTUEZSRVFTVEFUX1NISUZUKSwK Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgNTApKSB7Cj4+Pj4+ICAgICAgICAgICAgICAgICBE Uk1fRVJST1IoInRpbWVkIG91dCB3YWl0aW5nIGZvciBDRGNsayBjaGFuZ2VcbiIpOwo+Pj4+PiAg ICAgICAgIH0KPj4+Pj4gICAgICAgICBpb3NmX21iaV9wdW5pdF9yZWxlYXNlKCk7Cj4+Pj4+Cj4+ Pj4+IFdoZXJlIHdlIHdhbnQgdG8gd2FpdCBmb3IgdGhlIHJlcXVlc3RlZCBjaGFuZ2UgdG8gaGF2 ZSB0YWtlbgo+Pj4+PiBlZmZlY3QgYmVmb3JlIHJlbGVhc2luZyB0aGUgcHVuaXQuCj4+Pgo+Pj4g SG1tLiBUaGF0J3Mgc29tZXdoYXQgdW5mb3J0dW5hdGUuIEl0IGFsc28gaGlnaGxpZ2h0cyBhIHBy b2JsZW0gd2l0aCB0aGUKPj4+IHBhdGNoIHdydC4gUlBTLiBXZSBkb24ndCB3YWl0IGZvciB0aGUg R1BVIHRvIGFjdHVhbGx5IGNoYW5nZSBmcmVxdWVuY2llcwo+Pj4gaW4gc2V0X3JwcygpIGJlY2F1 c2UgdGhhdCB3b3VsZCBzbG93IHRoaW5ncyBkb3duIHRvbyBtdWNoLiBTbyBJIGhhdmUgdG8KPj4+ IHdvbmRlciBob3cgbXVjaCBsdWNrIGlzIG5lZWRlZCB0byBtYWtlIHRoaXMgd29ya2Fyb3VuZCBy ZWFsbHkgZWZmZWN0aXZlLgo+Pgo+PiBTbyB0aGUgaGlzdG9yeSBvZiB0aGlzIHBhdGNoLXNldCBp cyB0aGF0IEkgd3JvdGUgdGhpcyBwYXRjaCBiZWZvcmUKPj4gd3JpdGluZyB0aGUgcGF0Y2ggdG8g Z2V0IEZPUkNFV0FLRV9BTEwgYmVmb3JlIHRoZSBwbWljIGJ1cyBiZWNvbWVzCj4+IGFjdGl2ZSAo cGF0Y2ggMTIvMTMpLiBTaW5jZSBhIGxvdCBvZiB0ZXN0aW5nIHdhcyBkb25lIHdpdGggdGhpcwo+ PiBwYXRjaCBpbmNsdWRlZCBpbiB0aGUgcGF0Y2gtc2V0IGFuZCBzaW5jZSBpdCBzZWVtZWQgYSBn b29kIGlkZWEKPj4gcmVnYXJkbGVzcyAoZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIGFjY2Vzc2lu ZyB0aGUgcHVuaXQgdnMKPj4gcG1pYyBidXMgYWNjZXNzZXMpIEkgZGVjaWRlZCB0byBsZWF2ZSBp dCBpbi4KPj4KPj4gUG9zc2libHkganVzdCB0aGUgcGF0Y2ggdG8gZ2V0IEZPUkNFV0FLRV9BTEwg aXMgZW5vdWdoLCB0aGF0IG9uZQo+PiBhY3R1YWxseSBmaXhlZCB0aGluZ3MgZm9yIG1lLiBUaGF0 IGlzIGFsc28gd2h5IEkgbWFkZSB0aGlzIHRoZQo+PiBsYXN0IHBhdGNoIGluIHRoZSBzZXQuIEkg YXNrZWQgdGFnb3JlcmVkZHkgdG8gdGVzdCBoaXMgc3lzdGVtCj4+IHdpdGhvdXQgdGhpcyBwYXRj aCwgYnV0IGhlIGRpZCBub3QgZ2V0IGFyb3VuZCB0byB0aGF0Lgo+Pgo+PiBBZnRlciBhbGwgd2Ug ZG8gdGVsbCB0aGUgcHVuaXQgdG8gbm90IHRvdWNoIHRoZSBidXMgYnkgYWNxdWlyaW5nCj4+IHRo ZSBwbWljIGJ1cyBzZW1hcGhvcmUgZnJvbSBpMmMtZGVzaWd3YXJlLWJheXRyYWlsLmMsIHNvIG1h eWJlCj4+IGZvciBSUFMgZnJlcSBjaGFuZ2VzIGl0IGhvbm9ycyB0aGF0IGFuZCBwcm9wZXJseSB3 YWl0cy4gTWF5YmUgaXQKPj4gaG9ub3JzIHRoYXQgZm9yIGFsbCBwdW5pdCByZXF1ZXN0cyBpOTE1 IGRvZXMgYW5kIHRoZSBvbmx5IHJlYWwKPj4gcHJvYmxlbSBpcyB0aGUgZm9yY2V3YWtlIHN0dWZm ID8KPj4KPj4gSSBjYW4gdHJ5IHRvIGRyb3AgdGhpcyBwYXRjaCBmcm9tIG15IHF1ZXVlIGFuZCBy dW4gd2l0aG91dCBpdAo+PiBmb3IgYSB3aGlsZSBhbmQgc2VlIGlmIHRoaW5ncyBkb24ndCByZWdy ZXNzLiBBbmQgYWxzbyBhc2sKPj4gdGFnb3JlcmVkZHkgYWdhaW4gdG8gdGVzdCBoaXMgc3lzdGVt IHRoYXQgd2F5Lgo+Pgo+PiBEb2VzIHRoYXQgKGRyb3BwaW5nIHRoaXMgcGF0Y2ggZm9yIG5vdykg c291bmQgbGlrZSBhIGdvb2QgaWRlYT8KPgo+IE1vcmUgdGVzdCByZXN1bHRzIGNvdWxkbid0IGh1 cnQgYXQgbGVhc3QuIEl0IGFsc28gbWFrZXMgbWUgd29uZGVyIGlmCj4ganVzdCBidW1waW5nIHRo ZSB0aW1lb3V0cyB0byBzb21lIHJpZGljdWxvdXNseSBoaWdoIHZhbHVlIHdvdWxkIGZpeAo+IHRo ZSBwcm9ibGVtIGFzIHdlbGwuCgpJJ3ZlIGFscmVhZHkgdHJpZWQgYnVtcGluZyB0aGUgZm9yY2V3 YWtlIHRpbWVvdXQgZnJvbSA1MCB0byAyNTBtcywKYmVmb3JlIHdyaXRpbmcgdGhlIHBhdGNoIHRv IGp1c3QgZ2V0IGZvcmNld2FrZV9hbGwgYmVmb3JlIHRoZSBwbWljCmJ1cyBhY2Nlc3MgYmVnaW5z LCB0aGF0IGRvZXMgbm90IGZpeCB0aGluZ3MsIGFuZCBzaW5jZSB3ZSBidXN5IHdhaXQKZm9yIHRo aXMgdGltZW91dCBmcm9tIG5vbi1zbGVlcGluZyBjb250ZXh0IDI1MG1zIGFscmVhZHkgaXMgd2F5 IHRvbwpoaWdoLgoKPj4+Pj4+ICsgYSBjb21tZW50IHdvdWxkIGJlIG5pY2Ugd2h5IGl0J3MgdGhl cmUuCj4+Pj4+Cj4+Pj4+IEkgd2lsbCBhZGQgY29tbWVudHMgdG8gdGhlIGFjcXVpcmUgY2FsbHMu Cj4+Pj4+Cj4+Pj4+PiBEbyB3ZSBuZWVkIGEga2NvbmZpZyBzZWxlY3QvZGVwZW5kcyBvbiB0aGUg aW9zZl9tYmkgdGhpbmc/IE9yIHNvbWUKPj4+Pj4+IGlmZGVmcz8KPj4+Pj4KPj4+Pj4gTm8sIHRo ZSBpb3NmX21iaSBoZWFkZXIgZGVmaW5lcyBlbXB0eSBpbmxpbmUgdmVyc2lvbnMgb2YKPj4+Pj4g aW9zZl9tYmlfcHVuaXRfYWNxdWlyZSAvIF9yZWxlYXNlIGlmIElPU0ZfTUJJIGlzIGRpc2FibGVk LAo+Pj4+PiB0aGlzIGRvZXMgbWVhbiB0aGF0IGlvc2ZfbWJpIG11c3QgYmUgYnVpbHRpbiBpZiB0 aGUgaTkxNQo+Pj4+PiBkcml2ZXIgaXMuIEknbGwgYWRkOgo+Pj4+Pgo+Pj4+PiAgICAgZGVwZW5k cyBvbiBEUk1fSTkxNT1JT1NGX01CSSB8fCBJT1NGX01CST15Cj4+Pj4+Cj4+Pj4+IFRvIHRoZSBp OTE1IEtjb25maWcgdG8gZW5mb3JjZSB0aGlzLgo+Pj4+Cj4+Pj4gSG1tLCBvayBzbyB0aGF0IGRv ZXMgbm90IHdvcmsgKGxvbmcgY3ljbGljIGRlcGVuZGVuY3kgdGhyb3VnaCB0aGUKPj4+PiBzZWxl Y3Rpb24gb2YgQUNQSV9WSURFTykuCj4+Pj4KPj4+PiBTbyBJJ3ZlIG5vdyBhZGRlZCB0aGlzIGlu c3RlYWQ6Cj4+Pj4KPj4+PiAJIyBpb3NmX21iaSBuZWVkcyB0byBiZSBidWlsdGluIGlmIHdlIGFy ZSBidWlsdGluCj4+Pj4gCXNlbGVjdCBJT1NGX01CSSBpZiBEUk1fSTkxNT15Cj4+Pgo+Pj4gVGhh dCdzIHByb2JhYmx5IG5vdCBnb2luZyB0byBoZWxwIGFueW9uZSBzaW5jZSBpOTE1IGlzIHVzdWFs bHkgYSBtb2R1bGUuCj4+Cj4+IFJpZ2h0LCB0aGF0IGlzIGZpbmUsIHRoZW4gZWl0aGVyIHRoZSBJ T1NGX01CSSBzeW1ib2xzIGFyZSBhdmFpbGFibGUsCj4+IG9yIElPU0ZfTUJJIGlzIGRpc2FibGVk IGFuZCB3ZSBnZXQgdGhlIGlubGluZSBub3BzIGZyb20gdGhlIGhlYWRlci4KPj4KPj4gVGhlIHBy b2JsZW0gc2NlbmFyaW8gaXMgRFJNX0k5MTU9eSBhbmQgSU9TRl9NQkk9bSwgd2hpY2ggaXMgbm90 IHZlcnkKPj4gcmVhbGlzdGljIElNSE8sIGJ1dCB3aWxsIGdldCB0cmlnZ2VyZWQgYnkgdGhlIHJh bmRvbS1jb25maWcgdGVzdGluZwo+PiBzZXZlcmFsIGNvbnRyaWJ1dG9ycyBkbyBhbmQgbGVhZCB0 byBhbiB1bnJlc29sdmVkIHN5bWJvbCBlcnJvciB0aGVyZS4KPgo+IFdlbGwsIGZyb20gdGhlIHVz ZXIgUE9WIGFueXRoaW5nIHdpdGggSU9TRl9NQkk9PW4gY2FuIGJlIGEgcHJvYmxlbS4KPiBTbyBJ J20gbm90IHN1cmUgaWYgd2Ugc2hvdWxkIGFsbG93IHRoYXQuCgpTbyB5b3UncmUgc3VnZ2VzdGlu ZyB3ZSBqdXN0IGFkZCBhbiB1bmNvbmRpdGlvbmFsICJzZWxlY3QgSU9TRl9NQkkiCnRvIHRoZSBp OTE1IEtjb25maWcgZW50cnk/CgpSZWdhcmRzLAoKSGFucwoKCgo+Pj4+Pj4+IEJ1Z0xpbms6IGh0 dHBzOi8vYnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1MjQxCj4+Pj4+Pj4g U2lnbmVkLW9mZi1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KPj4+Pj4+ PiBUZXN0ZWQtYnk6IHRhZ29yZXJlZGR5IDx0YWdvcmUuY2hhbmRhbkBnbWFpbC5jb20+Cj4+Pj4+ Pj4gLS0tCj4+Pj4+Pj4gQ2hhbmdlcyBpbiB2MjoKPj4+Pj4+PiAtU3BlbGxpbmc6IFAtVW5pdCwg UE1JQwo+Pj4+Pj4+IC1BZGp1c3QgZm9yIGlvc2ZfbWJpX3B1bml0X2xvY2svX3VubG9jayB0byBf YWNxdWlyZS9fcmVsZWFzZSByZW5hbWUKPj4+Pj4+PiAtLS0KPj4+Pj4+PiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICAgIHwgNiArKysrKysKPj4+Pj4+PiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgIHwgOSArKysrKysrKysKPj4+Pj4+PiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwgOSArKysrKysrKysKPj4+Pj4+ PiAgMyBmaWxlcyBjaGFuZ2VkLCAyNCBpbnNlcnRpb25zKCspCj4+Pj4+Pj4KPj4+Pj4+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4+Pj4gaW5kZXggNTYwNDcwMS4uMTNlNTE1 MiAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+ Pj4+PiBAQCAtNDcsNiArNDcsNyBAQAo+Pj4+Pj4+ICAjaW5jbHVkZSA8ZHJtL2RybV9yZWN0Lmg+ Cj4+Pj4+Pj4gICNpbmNsdWRlIDxsaW51eC9kbWFfcmVtYXBwaW5nLmg+Cj4+Pj4+Pj4gICNpbmNs dWRlIDxsaW51eC9yZXNlcnZhdGlvbi5oPgo+Pj4+Pj4+ICsjaW5jbHVkZSA8YXNtL2lvc2ZfbWJp Lmg+Cj4+Pj4+Pj4KPj4+Pj4+PiAgc3RhdGljIGJvb2wgaXNfbW1pb193b3JrKHN0cnVjdCBpbnRl bF9mbGlwX3dvcmsgKndvcmspCj4+Pj4+Pj4gIHsKPj4+Pj4+PiBAQCAtNjQyMSw2ICs2NDIyLDgg QEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19zZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgaW50IGNkY2xrKQo+Pj4+Pj4+ICAgICAgICAgIGNtZCA9IDA7Cj4+Pj4+Pj4KPj4+Pj4+PiAg ICAgIG11dGV4X2xvY2soJmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4+Pj4+Pj4gKyAgICBpb3Nm X21iaV9wdW5pdF9hY3F1aXJlKCk7Cj4+Pj4+Pj4gKwo+Pj4+Pj4+ICAgICAgdmFsID0gdmx2X3B1 bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JFR19EU1BGUkVRKTsKPj4+Pj4+PiAgICAgIHZhbCAm PSB+RFNQRlJFUUdVQVJfTUFTSzsKPj4+Pj4+PiAgICAgIHZhbCB8PSAoY21kIDw8IERTUEZSRVFH VUFSX1NISUZUKTsKPj4+Pj4+PiBAQCAtNjQzMCw2ICs2NDMzLDcgQEAgc3RhdGljIHZvaWQgdmFs bGV5dmlld19zZXRfY2RjbGsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgaW50IGNkY2xrKQo+Pj4+ Pj4+ICAgICAgICAgICAgICAgNTApKSB7Cj4+Pj4+Pj4gICAgICAgICAgRFJNX0VSUk9SKCJ0aW1l ZCBvdXQgd2FpdGluZyBmb3IgQ0RjbGsgY2hhbmdlXG4iKTsKPj4+Pj4+PiAgICAgIH0KPj4+Pj4+ PiArICAgIGlvc2ZfbWJpX3B1bml0X3JlbGVhc2UoKTsKPj4+Pj4+PiAgICAgIG11dGV4X3VubG9j aygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgbXV0ZXhfbG9j aygmZGV2X3ByaXYtPnNiX2xvY2spOwo+Pj4+Pj4+IEBAIC02NDk3LDYgKzY1MDEsNyBAQCBzdGF0 aWMgdm9pZCBjaGVycnl2aWV3X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBpbnQg Y2RjbGspCj4+Pj4+Pj4gICAgICBjbWQgPSBESVZfUk9VTkRfQ0xPU0VTVChkZXZfcHJpdi0+aHBs bF9mcmVxIDw8IDEsIGNkY2xrKSAtIDE7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgIG11dGV4X2xvY2so JmRldl9wcml2LT5ycHMuaHdfbG9jayk7Cj4+Pj4+Pj4gKyAgICBpb3NmX21iaV9wdW5pdF9hY3F1 aXJlKCk7Cj4+Pj4+Pj4gICAgICB2YWwgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRf UkVHX0RTUEZSRVEpOwo+Pj4+Pj4+ICAgICAgdmFsICY9IH5EU1BGUkVRR1VBUl9NQVNLX0NIVjsK Pj4+Pj4+PiAgICAgIHZhbCB8PSAoY21kIDw8IERTUEZSRVFHVUFSX1NISUZUX0NIVik7Cj4+Pj4+ Pj4gQEAgLTY1MDYsNiArNjUxMSw3IEBAIHN0YXRpYyB2b2lkIGNoZXJyeXZpZXdfc2V0X2NkY2xr KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBjZGNsaykKPj4+Pj4+PiAgICAgICAgICAgICAg IDUwKSkgewo+Pj4+Pj4+ICAgICAgICAgIERSTV9FUlJPUigidGltZWQgb3V0IHdhaXRpbmcgZm9y IENEY2xrIGNoYW5nZVxuIik7Cj4+Pj4+Pj4gICAgICB9Cj4+Pj4+Pj4gKyAgICBpb3NmX21iaV9w dW5pdF9yZWxlYXNlKCk7Cj4+Pj4+Pj4gICAgICBtdXRleF91bmxvY2soJmRldl9wcml2LT5ycHMu aHdfbG9jayk7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgIGludGVsX3VwZGF0ZV9jZGNsayhkZXZfcHJp dik7Cj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+Pj4+Pj4gaW5kZXggMjQ5NjIzZC4u YWRmZjg0YSAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5jCj4+Pj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+Pj4+Pj4+ IEBAIC0zMiw2ICszMiw3IEBACj4+Pj4+Pj4gICNpbmNsdWRlICIuLi8uLi8uLi9wbGF0Zm9ybS94 ODYvaW50ZWxfaXBzLmgiCj4+Pj4+Pj4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPj4+Pj4+ PiAgI2luY2x1ZGUgPGRybS9kcm1fYXRvbWljX2hlbHBlci5oPgo+Pj4+Pj4+ICsjaW5jbHVkZSA8 YXNtL2lvc2ZfbWJpLmg+Cj4+Pj4+Pj4KPj4+Pj4+PiAgLyoqCj4+Pj4+Pj4gICAqIERPQzogUkM2 Cj4+Pj4+Pj4gQEAgLTI3Niw2ICsyNzcsNyBAQCBzdGF0aWMgdm9pZCBjaHZfc2V0X21lbW9yeV9k dmZzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgYm9vbCBlbmFibGUpCj4+Pj4+ Pj4gICAgICB1MzIgdmFsOwo+Pj4+Pj4+Cj4+Pj4+Pj4gICAgICBtdXRleF9sb2NrKCZkZXZfcHJp di0+cnBzLmh3X2xvY2spOwo+Pj4+Pj4+ICsgICAgaW9zZl9tYmlfcHVuaXRfYWNxdWlyZSgpOwo+ Pj4+Pj4+Cj4+Pj4+Pj4gICAgICB2YWwgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRf UkVHX0REUl9TRVRVUDIpOwo+Pj4+Pj4+ICAgICAgaWYgKGVuYWJsZSkKPj4+Pj4+PiBAQCAtMjkw LDYgKzI5Miw3IEBAIHN0YXRpYyB2b2lkIGNodl9zZXRfbWVtb3J5X2R2ZnMoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGVuYWJsZSkKPj4+Pj4+PiAgICAgICAgICAgICAg ICBGT1JDRV9ERFJfRlJFUV9SRVFfQUNLKSA9PSAwLCAzKSkKPj4+Pj4+PiAgICAgICAgICBEUk1f RVJST1IoInRpbWVkIG91dCB3YWl0aW5nIGZvciBQdW5pdCBERFIgRFZGUyByZXF1ZXN0XG4iKTsK Pj4+Pj4+Pgo+Pj4+Pj4+ICsgICAgaW9zZl9tYmlfcHVuaXRfcmVsZWFzZSgpOwo+Pj4+Pj4+ICAg ICAgbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+Pj4+Pj4+ICB9Cj4+Pj4+ Pj4KPj4+Pj4+PiBAQCAtMjk4LDYgKzMwMSw3IEBAIHN0YXRpYyB2b2lkIGNodl9zZXRfbWVtb3J5 X3BtNShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgZW5hYmxlKQo+Pj4+ Pj4+ICAgICAgdTMyIHZhbDsKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgbXV0ZXhfbG9jaygmZGV2X3By aXYtPnJwcy5od19sb2NrKTsKPj4+Pj4+PiArICAgIGlvc2ZfbWJpX3B1bml0X2FjcXVpcmUoKTsK Pj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgdmFsID0gdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklU X1JFR19EU1BGUkVRKTsKPj4+Pj4+PiAgICAgIGlmIChlbmFibGUpCj4+Pj4+Pj4gQEAgLTMwNiw2 ICszMTAsNyBAQCBzdGF0aWMgdm9pZCBjaHZfc2V0X21lbW9yeV9wbTUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBib29sIGVuYWJsZSkKPj4+Pj4+PiAgICAgICAgICB2YWwgJj0g fkRTUF9NQVhGSUZPX1BNNV9FTkFCTEU7Cj4+Pj4+Pj4gICAgICB2bHZfcHVuaXRfd3JpdGUoZGV2 X3ByaXYsIFBVTklUX1JFR19EU1BGUkVRLCB2YWwpOwo+Pj4+Pj4+Cj4+Pj4+Pj4gKyAgICBpb3Nm X21iaV9wdW5pdF9yZWxlYXNlKCk7Cj4+Pj4+Pj4gICAgICBtdXRleF91bmxvY2soJmRldl9wcml2 LT5ycHMuaHdfbG9jayk7Cj4+Pj4+Pj4gIH0KPj4+Pj4+Pgo+Pj4+Pj4+IEBAIC00NTUzLDYgKzQ1 NTgsNyBAQCB2b2lkIHZsdl93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikK Pj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgaWYgKElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4+Pj4+ Pj4gICAgICAgICAgbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnJwcy5od19sb2NrKTsKPj4+Pj4+PiAr ICAgICAgICBpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7Cj4+Pj4+Pj4KPj4+Pj4+PiAgICAgICAg ICB2YWwgPSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRfUkVHX0RTUEZSRVEpOwo+Pj4+ Pj4+ICAgICAgICAgIGlmICh2YWwgJiBEU1BfTUFYRklGT19QTTVfRU5BQkxFKQo+Pj4+Pj4+IEBA IC00NTgyLDYgKzQ1ODgsNyBAQCB2b2lkIHZsdl93bV9nZXRfaHdfc3RhdGUoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPj4+Pj4+PiAgICAgICAgICAgICAgICAgIHdtLT5sZXZlbCA9IFZMVl9XTV9M RVZFTF9ERFJfRFZGUzsKPj4+Pj4+PiAgICAgICAgICB9Cj4+Pj4+Pj4KPj4+Pj4+PiArICAgICAg ICBpb3NmX21iaV9wdW5pdF9yZWxlYXNlKCk7Cj4+Pj4+Pj4gICAgICAgICAgbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+cnBzLmh3X2xvY2spOwo+Pj4+Pj4+ICAgICAgfQo+Pj4+Pj4+Cj4+Pj4+Pj4g QEAgLTQ5ODgsNyArNDk5NSw5IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0X3JwcyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU4IHZhbCkKPj4+Pj4+PiAgICAgIEk5MTVf V1JJVEUoR0VONl9QTUlOVFJNU0ssIGdlbjZfcnBzX3BtX21hc2soZGV2X3ByaXYsIHZhbCkpOwo+ Pj4+Pj4+Cj4+Pj4+Pj4gICAgICBpZiAodmFsICE9IGRldl9wcml2LT5ycHMuY3VyX2ZyZXEpIHsK Pj4+Pj4+PiArICAgICAgICBpb3NmX21iaV9wdW5pdF9hY3F1aXJlKCk7Cj4+Pj4+Pj4gICAgICAg ICAgdmx2X3B1bml0X3dyaXRlKGRldl9wcml2LCBQVU5JVF9SRUdfR1BVX0ZSRVFfUkVRLCB2YWwp Owo+Pj4+Pj4+ICsgICAgICAgIGlvc2ZfbWJpX3B1bml0X3JlbGVhc2UoKTsKPj4+Pj4+PiAgICAg ICAgICBpZiAoIUlTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKQo+Pj4+Pj4+ICAgICAgICAgICAgICBn ZW42X3NldF9ycHNfdGhyZXNob2xkcyhkZXZfcHJpdiwgdmFsKTsKPj4+Pj4+PiAgICAgIH0KPj4+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jCj4+Pj4+Pj4gaW5kZXgg YzBiN2U5NS4uZTY2YmNjOCAxMDA2NDQKPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ydW50aW1lX3BtLmMKPj4+Pj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9ydW50aW1lX3BtLmMKPj4+Pj4+PiBAQCAtMjgsNiArMjgsNyBAQAo+Pj4+Pj4+Cj4+Pj4+ Pj4gICNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+Cj4+Pj4+Pj4gICNpbmNsdWRlIDxsaW51 eC92Z2FhcmIuaD4KPj4+Pj4+PiArI2luY2x1ZGUgPGFzbS9pb3NmX21iaS5oPgo+Pj4+Pj4+Cj4+ Pj4+Pj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+Pj4+Pj4+ICAjaW5jbHVkZSAiaW50ZWxfZHJ2 LmgiCj4+Pj4+Pj4gQEAgLTEwMjcsNiArMTAyOCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfcG93 ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Pj4+Pj4gICAgICBp ZiAoQ09ORCkKPj4+Pj4+PiAgICAgICAgICBnb3RvIG91dDsKPj4+Pj4+Pgo+Pj4+Pj4+ICsgICAg aW9zZl9tYmlfcHVuaXRfYWNxdWlyZSgpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAgICAgIGN0cmwgPSB2 bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRfUkVHX1BXUkdUX0NUUkwpOwo+Pj4+Pj4+ICAg ICAgY3RybCAmPSB+bWFzazsKPj4+Pj4+PiAgICAgIGN0cmwgfD0gc3RhdGU7Cj4+Pj4+Pj4gQEAg LTEwMzcsNiArMTA0MCw4IEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfcG93ZXJfd2VsbChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Pj4+Pj4gICAgICAgICAgICAgICAgc3RhdGUs Cj4+Pj4+Pj4gICAgICAgICAgICAgICAgdmx2X3B1bml0X3JlYWQoZGV2X3ByaXYsIFBVTklUX1JF R19QV1JHVF9DVFJMKSk7Cj4+Pj4+Pj4KPj4+Pj4+PiArICAgIGlvc2ZfbWJpX3B1bml0X3JlbGVh c2UoKTsKPj4+Pj4+PiArCj4+Pj4+Pj4gICN1bmRlZiBDT05ECj4+Pj4+Pj4KPj4+Pj4+PiAgb3V0 Ogo+Pj4+Pj4+IEBAIC0xNjQzLDYgKzE2NDgsOCBAQCBzdGF0aWMgdm9pZCBjaHZfc2V0X3BpcGVf cG93ZXJfd2VsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+Pj4+Pj4gICAg ICBpZiAoQ09ORCkKPj4+Pj4+PiAgICAgICAgICBnb3RvIG91dDsKPj4+Pj4+Pgo+Pj4+Pj4+ICsg ICAgaW9zZl9tYmlfcHVuaXRfYWNxdWlyZSgpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAgICAgIGN0cmwg PSB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwgUFVOSVRfUkVHX0RTUEZSRVEpOwo+Pj4+Pj4+ICAg ICAgY3RybCAmPSB+RFBfU1NDX01BU0socGlwZSk7Cj4+Pj4+Pj4gICAgICBjdHJsIHw9IGVuYWJs ZSA/IERQX1NTQ19QV1JfT04ocGlwZSkgOiBEUF9TU0NfUFdSX0dBVEUocGlwZSk7Cj4+Pj4+Pj4g QEAgLTE2NTMsNiArMTY2MCw4IEBAIHN0YXRpYyB2b2lkIGNodl9zZXRfcGlwZV9wb3dlcl93ZWxs KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPj4+Pj4+PiAgICAgICAgICAgICAg ICBzdGF0ZSwKPj4+Pj4+PiAgICAgICAgICAgICAgICB2bHZfcHVuaXRfcmVhZChkZXZfcHJpdiwg UFVOSVRfUkVHX0RTUEZSRVEpKTsKPj4+Pj4+Pgo+Pj4+Pj4+ICsgICAgaW9zZl9tYmlfcHVuaXRf cmVsZWFzZSgpOwo+Pj4+Pj4+ICsKPj4+Pj4+PiAgI3VuZGVmIENPTkQKPj4+Pj4+Pgo+Pj4+Pj4+ ICBvdXQ6Cj4+Pj4+Pj4gLS0KPj4+Pj4+PiAyLjkuMwo+Pj4+Pj4KPj4+Cj4KX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==