From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH v2 2/2] drm/i915: Try to print INSTDONE bits for all slice/subslice Date: Tue, 20 Sep 2016 16:09:27 +0300 Message-ID: <87mvj267lk.fsf@gaia.fi.intel.com> References: <1473087178-4847-1-git-send-email-imre.deak@intel.com> <1473087178-4847-3-git-send-email-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6E4E96E042 for ; Tue, 20 Sep 2016 13:12:03 +0000 (UTC) In-Reply-To: <1473087178-4847-3-git-send-email-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak , intel-gfx@lists.freedesktop.org Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org SW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPiB3cml0ZXM6Cgo+IEZyb206IEJlbiBXaWRh d3NreSA8YmVuamFtaW4ud2lkYXdza3lAaW50ZWwuY29tPgo+Cj4gdjI6IChJbXJlKQo+IC0gQWNj ZXNzIG9ubHkgc3Vic2xpY2VzIHRoYXQgYXJlIGtub3duIHRvIGV4aXN0Lgo+IC0gUmVzZXQgZXhw bGljdGx5IHRoZSBNQ1Igc2VsZWN0b3IgdG8gc2xpY2Uvc3ViLXNsaWNlIElEIDAgYWZ0ZXIgdGhl Cj4gICByZWFkb3V0Lgo+IC0gVXNlIHRoZSBzdWJzbGljZSBJTlNURE9ORSBiaXRzIGZvciB0aGUg aGFuZ2NoZWNrL3N1YnVuaXRzLXN0dWNrCj4gICBkZXRlY3Rpb24gdG9vLgo+IC0gVGFrZSB0aGUg dW5jb3JlIGxvY2sgZm9yIHRoZSBNQ1Itc2VsZWN0L3N1YnNsaWNlLXJlYWRvdXQgc2VxdWVuY2Uu Cj4KPiBTaWduZWQtb2ZmLWJ5OiBCZW4gV2lkYXdza3kgPGJlbkBid2lkYXdzay5uZXQ+Cj4gU2ln bmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6 IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgIHwgMTQgKysrKy0tCj4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgICB8IDc2ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jICAgICAgICAg fCAyNSArKysrKysrKy0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oICAgICAg ICAgfCAgNSArKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwg MjMgKysrKysrKysrLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCAxOCBk ZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggNDUy NDRmOS4uMGY4NDE2NSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rl YnVnZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gQEAg LTEyODEsNiArMTI4MSw5IEBAIHN0YXRpYyB2b2lkIGk5MTVfaW5zdGRvbmVfaW5mbyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAgICBzdHJ1Y3Qgc2VxX2ZpbGUg Km0sCj4gIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfaW5zdGRvbmUgKmluc3Rkb25lKQo+ICB7Cj4g KwlpbnQgc2xpY2U7Cj4gKwlpbnQgc3Vic2xpY2U7Cj4gKwo+ICAJc2VxX3ByaW50ZihtLCAiXHRc dElOU1RET05FOiAweCUwOHhcbiIsCj4gIAkJICAgaW5zdGRvbmUtPmluc3Rkb25lKTsKPiAgCj4g QEAgLTEyOTMsMTAgKzEyOTYsMTMgQEAgc3RhdGljIHZvaWQgaTkxNV9pbnN0ZG9uZV9pbmZvKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3By aXYpIDw9IDYpCj4gIAkJcmV0dXJuOwo+ICAKPiAtCXNlcV9wcmludGYobSwgIlx0XHRTQU1QTEVS X0lOU1RET05FOiAweCUwOHhcbiIsCj4gLQkJICAgaW5zdGRvbmUtPnNhbXBsZXIpOwo+IC0Jc2Vx X3ByaW50ZihtLCAiXHRcdFJPV19JTlNURE9ORTogMHglMDh4XG4iLAo+IC0JCSAgIGluc3Rkb25l LT5yb3cpOwo+ICsJZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXYsIHNs aWNlLCBzdWJzbGljZSkKPiArCQlzZXFfcHJpbnRmKG0sICJcdFx0U0FNUExFUl9JTlNURE9ORVsl ZF1bJWRdOiAweCUwOHhcbiIsCj4gKwkJCSAgIHNsaWNlLCBzdWJzbGljZSwgaW5zdGRvbmUtPnNh bXBsZXJbc2xpY2VdW3N1YnNsaWNlXSk7Cj4gKwo+ICsJZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vf c3Vic2xpY2UoZGV2X3ByaXYsIHNsaWNlLCBzdWJzbGljZSkKPiArCQlzZXFfcHJpbnRmKG0sICJc dFx0Uk9XX0lOU1RET05FWyVkXVslZF06IDB4JTA4eFxuIiwKPiArCQkJICAgc2xpY2UsIHN1YnNs aWNlLCBpbnN0ZG9uZS0+cm93W3NsaWNlXVtzdWJzbGljZV0pOwo+ICB9Cj4gIAo+ICBzdGF0aWMg aW50IGk5MTVfaGFuZ2NoZWNrX2luZm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp1bnVzZWQp Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCj4gaW5kZXggODBmZTEwMS4uMDZk NDMwOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYwo+IEBAIC0yMzEs NiArMjMxLDkgQEAgc3RhdGljIGNvbnN0IGNoYXIgKmhhbmdjaGVja19hY3Rpb25fdG9fc3RyKGVu dW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19hY3Rpb24gYSkKPiAgc3RhdGljIHZvaWQgZXJyb3Jf cHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1X2Vycm9yX3N0YXRlX2J1ZiAqbSwKPiAgCQkJ CSBzdHJ1Y3QgZHJtX2k5MTVfZXJyb3JfZW5naW5lICplZSkKPiAgewo+ICsJaW50IHNsaWNlOwo+ ICsJaW50IHN1YnNsaWNlOwo+ICsKPiAgCWVycl9wcmludGYobSwgIiAgSU5TVERPTkU6IDB4JTA4 eFxuIiwKPiAgCQkgICBlZS0+aW5zdGRvbmUuaW5zdGRvbmUpOwo+ICAKPiBAQCAtMjQzLDEwICsy NDYsMTUgQEAgc3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1 X2Vycm9yX3N0YXRlX2J1ZiAqbSwKPiAgCWlmIChJTlRFTF9HRU4obS0+aTkxNSkgPD0gNikKPiAg CQlyZXR1cm47Cj4gIAo+IC0JZXJyX3ByaW50ZihtLCAiICBTQU1QTEVSX0lOU1RET05FOiAweCUw OHhcbiIsCj4gLQkJICAgZWUtPmluc3Rkb25lLnNhbXBsZXIpOwo+IC0JZXJyX3ByaW50ZihtLCAi ICBST1dfSU5TVERPTkU6IDB4JTA4eFxuIiwKPiAtCQkgICBlZS0+aW5zdGRvbmUucm93KTsKPiAr CWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKG0tPmk5MTUsIHNsaWNlLCBzdWJzbGlj ZSkKPiArCQllcnJfcHJpbnRmKG0sICIgIFNBTVBMRVJfSU5TVERPTkVbJWRdWyVkXTogMHglMDh4 XG4iLAo+ICsJCQkgICBzbGljZSwgc3Vic2xpY2UsCj4gKwkJCSAgIGVlLT5pbnN0ZG9uZS5zYW1w bGVyW3NsaWNlXVtzdWJzbGljZV0pOwo+ICsKPiArCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1 YnNsaWNlKG0tPmk5MTUsIHNsaWNlLCBzdWJzbGljZSkKPiArCQllcnJfcHJpbnRmKG0sICIgIFJP V19JTlNURE9ORVslZF1bJWRdOiAweCUwOHhcbiIsCj4gKwkJCSAgIHNsaWNlLCBzdWJzbGljZSwK PiArCQkJICAgZWUtPmluc3Rkb25lLnJvd1tzbGljZV1bc3Vic2xpY2VdKTsKPiAgfQo+ICAKPiAg c3RhdGljIHZvaWQgZXJyb3JfcHJpbnRfZW5naW5lKHN0cnVjdCBkcm1faTkxNV9lcnJvcl9zdGF0 ZV9idWYgKm0sCj4gQEAgLTE1MzQsMTIgKzE1NDIsNTIgQEAgY29uc3QgY2hhciAqaTkxNV9jYWNo ZV9sZXZlbF9zdHIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsIGludCB0eXBlKQo+ICAJ fQo+ICB9Cj4gIAo+ICtzdGF0aWMgaW5saW5lIHVpbnQzMl90Cj4gK3JlYWRfc3Vic2xpY2VfcmVn KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHNsaWNlLAo+ICsJCSAgaW50 IHN1YnNsaWNlLCBpOTE1X3JlZ190IHJlZykKPiArewo+ICsJdWludDMyX3QgbWNyOwo+ICsJdWlu dDMyX3QgcmV0Owo+ICsJZW51bSBmb3JjZXdha2VfZG9tYWlucyBmd19kb21haW5zOwo+ICsKPiAr CWZ3X2RvbWFpbnMgPSBpbnRlbF91bmNvcmVfZm9yY2V3YWtlX2Zvcl9yZWcoZGV2X3ByaXYsIHJl ZywKPiArCQkJCQkJICAgIEZXX1JFR19SRUFEKTsKPiArCWZ3X2RvbWFpbnMgfD0gaW50ZWxfdW5j b3JlX2ZvcmNld2FrZV9mb3JfcmVnKGRldl9wcml2LAo+ICsJCQkJCQkgICAgIEdFTjhfTUNSX1NF TEVDVE9SLAo+ICsJCQkJCQkgICAgIEZXX1JFR19SRUFEIHwgRldfUkVHX1dSSVRFKTsKPiArCj4g KwlzcGluX2xvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwo+ICsJaW50ZWxfdW5jb3Jl X2ZvcmNld2FrZV9nZXRfX2xvY2tlZChkZXZfcHJpdiwgZndfZG9tYWlucyk7Cj4gKwo+ICsJbWNy ID0gSTkxNV9SRUFEX0ZXKEdFTjhfTUNSX1NFTEVDVE9SKTsKPiArCS8qCj4gKwkgKiBUaGUgSFcg ZXhwZWN0cyB0aGUgc2xpY2UgYW5kIHN1YmxpY2Ugc2VsZWN0b3JzIHRvIGJlIHJlc2V0IHRvIDAK PiArCSAqIGFmdGVyIHJlYWRpbmcgb3V0IHRoZSByZWdpc3RlcnMuCj4gKwkgKi8KPiArCVdBUk5f T05fT05DRShtY3IgJiAoR0VOOF9NQ1JfU0xJQ0VfTUFTSyB8IEdFTjhfTUNSX1NVQlNMSUNFX01B U0spKTsKPiArCW1jciAmPSB+KEdFTjhfTUNSX1NMSUNFX01BU0sgfCBHRU44X01DUl9TVUJTTElD RV9NQVNLKTsKPiArCW1jciB8PSBHRU44X01DUl9TTElDRShzbGljZSkgfCBHRU44X01DUl9TVUJT TElDRShzdWJzbGljZSk7Cj4gKwlJOTE1X1dSSVRFX0ZXKEdFTjhfTUNSX1NFTEVDVE9SLCBtY3Ip Owo+ICsKPiArCXJldCA9IEk5MTVfUkVBRF9GVyhyZWcpOwo+ICsKPiArCW1jciAmPSB+KEdFTjhf TUNSX1NMSUNFX01BU0sgfCBHRU44X01DUl9TVUJTTElDRV9NQVNLKTsKPiArCUk5MTVfV1JJVEVf RlcoR0VOOF9NQ1JfU0VMRUNUT1IsIG1jcik7Cj4gKwo+ICsJaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9wdXRfX2xvY2tlZChkZXZfcHJpdiwgZndfZG9tYWlucyk7Cj4gKwlzcGluX3VubG9ja19pcnEo JmRldl9wcml2LT51bmNvcmUubG9jayk7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAg LyogTkI6IHBsZWFzZSBub3RpY2UgdGhlIG1lbXNldCAqLwo+ICB2b2lkIGk5MTVfZ2V0X2VuZ2lu ZV9pbnN0ZG9uZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAg IGVudW0gaW50ZWxfZW5naW5lX2lkIGVuZ2luZV9pZCwKPiAgCQkJICAgICAgc3RydWN0IGludGVs X2luc3Rkb25lICppbnN0ZG9uZSkKPiAgewo+ICAJdTMyIG1taW9fYmFzZSA9IGRldl9wcml2LT5l bmdpbmVbZW5naW5lX2lkXS5tbWlvX2Jhc2U7Cj4gKwlpbnQgc2xpY2U7Cj4gKwlpbnQgc3Vic2xp Y2U7Cj4gIAo+ICAJbWVtc2V0KGluc3Rkb25lLCAwLCBzaXplb2YoKmluc3Rkb25lKSk7Cj4gIAo+ IEBAIC0xNTUxLDggKzE1OTksMjQgQEAgdm9pZCBpOTE1X2dldF9lbmdpbmVfaW5zdGRvbmUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQlicmVhazsKPiAgCj4gIAkJaW5z dGRvbmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVBRChHRU43X1NDX0lOU1RET05FKTsKPiAtCQlp bnN0ZG9uZS0+c2FtcGxlciA9IEk5MTVfUkVBRChHRU43X1NBTVBMRVJfSU5TVERPTkUpOwo+IC0J CWluc3Rkb25lLT5yb3cgPSBJOTE1X1JFQUQoR0VON19ST1dfSU5TVERPTkUpOwo+ICsJCWZvcl9l YWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRldl9wcml2LCBzbGljZSwgc3Vic2xpY2UpIHsK PiArCQkJaW5zdGRvbmUtPnNhbXBsZXJbc2xpY2VdW3N1YnNsaWNlXSA9Cj4gKwkJCQlyZWFkX3N1 YnNsaWNlX3JlZyhkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlLAo+ICsJCQkJCQkgIEdFTjdfU0FN UExFUl9JTlNURE9ORSk7Cj4gKwkJCWluc3Rkb25lLT5yb3dbc2xpY2VdW3N1YnNsaWNlXSA9Cj4g KwkJCQlyZWFkX3N1YnNsaWNlX3JlZyhkZXZfcHJpdiwgc2xpY2UsIHN1YnNsaWNlLAo+ICsJCQkJ CQkgIEdFTjdfUk9XX0lOU1RET05FKTsKPiArCQl9Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIDc6Cj4g KwkJaW5zdGRvbmUtPmluc3Rkb25lID0gSTkxNV9SRUFEKFJJTkdfSU5TVERPTkUobW1pb19iYXNl KSk7Cj4gKwo+ICsJCWlmIChlbmdpbmVfaWQgIT0gUkNTKQo+ICsJCQlicmVhazsKPiArCj4gKwkJ aW5zdGRvbmUtPnNsaWNlX2NvbW1vbiA9IEk5MTVfUkVBRChHRU43X1NDX0lOU1RET05FKTsKPiAr CQlpbnN0ZG9uZS0+c2FtcGxlclswXVswXSA9IEk5MTVfUkVBRChHRU43X1NBTVBMRVJfSU5TVERP TkUpOwo+ICsJCWluc3Rkb25lLT5yb3dbMF1bMF0gPSBJOTE1X1JFQUQoR0VON19ST1dfSU5TVERP TkUpOwo+ICAKPiAgCQlicmVhazsKPiAgCWNhc2UgNjoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMK PiBpbmRleCA4MmNmODIzLi5kNDRmNGQ4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCj4g QEAgLTI1NTQsNiArMjU1NCw5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZAo+ICBpOTE1X2Vycl9wcmlu dF9pbnN0ZG9uZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCXN0cnVj dCBpbnRlbF9pbnN0ZG9uZSAqaW5zdGRvbmUpCj4gIHsKPiArCWludCBzbGljZTsKPiArCWludCBz dWJzbGljZTsKPiArCj4gIAlwcl9lcnIoIiAgSU5TVERPTkU6IDB4JTA4eFxuIiwgaW5zdGRvbmUt Pmluc3Rkb25lKTsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8PSAzKQo+IEBAIC0y NTY0LDggKzI1NjcsMTMgQEAgaTkxNV9lcnJfcHJpbnRfaW5zdGRvbmUoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPD0gNikKPiAg CQlyZXR1cm47Cj4gIAo+IC0JcHJfZXJyKCIgIFNBTVBMRVJfSU5TVERPTkU6IDB4JTA4eFxuIiwg aW5zdGRvbmUtPnNhbXBsZXIpOwo+IC0JcHJfZXJyKCIgIFJPV19JTlNURE9ORTogMHglMDh4XG4i LCBpbnN0ZG9uZS0+cm93KTsKPiArCWZvcl9lYWNoX2luc3Rkb25lX3NsaWNlX3N1YnNsaWNlKGRl dl9wcml2LCBzbGljZSwgc3Vic2xpY2UpCj4gKwkJcHJfZXJyKCIgIFNBTVBMRVJfSU5TVERPTkVb JWRdWyVkXTogMHglMDh4XG4iLAo+ICsJCSAgICAgICBzbGljZSwgc3Vic2xpY2UsIGluc3Rkb25l LT5zYW1wbGVyW3NsaWNlXVtzdWJzbGljZV0pOwo+ICsKPiArCWZvcl9lYWNoX2luc3Rkb25lX3Ns aWNlX3N1YnNsaWNlKGRldl9wcml2LCBzbGljZSwgc3Vic2xpY2UpCj4gKwkJcHJfZXJyKCIgIFJP V19JTlNURE9ORVslZF1bJWRdOiAweCUwOHhcbiIsCj4gKwkJICAgICAgIHNsaWNlLCBzdWJzbGlj ZSwgaW5zdGRvbmUtPnJvd1tzbGljZV1bc3Vic2xpY2VdKTsKPiAgfQo+ICAKPiAgc3RhdGljIHZv aWQgaTkxNV9yZXBvcnRfYW5kX2NsZWFyX2VpcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gQEAgLTI5ODIsNiArMjk5MCw4IEBAIHN0YXRpYyBib29sIHN1YnVuaXRzX3N0dWNr KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCXN0cnVjdCBpbnRlbF9pbnN0ZG9u ZSBpbnN0ZG9uZTsKPiAgCXN0cnVjdCBpbnRlbF9pbnN0ZG9uZSAqYWNjdV9pbnN0ZG9uZSA9ICZl bmdpbmUtPmhhbmdjaGVjay5pbnN0ZG9uZTsKPiAgCWJvb2wgc3R1Y2s7Cj4gKwlpbnQgc2xpY2U7 Cj4gKwlpbnQgc3Vic2xpY2U7Cj4gIAo+ICAJaWYgKGVuZ2luZS0+aWQgIT0gUkNTKQo+ICAJCXJl dHVybiB0cnVlOwo+IEBAIC0yOTk3LDEwICszMDA3LDEzIEBAIHN0YXRpYyBib29sIHN1YnVuaXRz X3N0dWNrKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgCQkJCSAgICZhY2N1X2lu c3Rkb25lLT5pbnN0ZG9uZSk7Cj4gIAlzdHVjayAmPSBpbnN0ZG9uZV91bmNoYW5nZWQoaW5zdGRv bmUuc2xpY2VfY29tbW9uLAo+ICAJCQkJICAgICZhY2N1X2luc3Rkb25lLT5zbGljZV9jb21tb24p Owo+IC0Jc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnNhbXBsZXIsCj4gLQkJ CQkgICAgJmFjY3VfaW5zdGRvbmUtPnNhbXBsZXIpOwo+IC0Jc3R1Y2sgJj0gaW5zdGRvbmVfdW5j aGFuZ2VkKGluc3Rkb25lLnJvdywKPiAtCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+cm93KTsKPiAr Cj4gKwlmb3JfZWFjaF9pbnN0ZG9uZV9zbGljZV9zdWJzbGljZShkZXZfcHJpdiwgc2xpY2UsIHN1 YnNsaWNlKSB7Cj4gKwkJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rkb25lLnNhbXBs ZXJbc2xpY2VdW3N1YnNsaWNlXSwKPiArCQkJCQkgICAgJmFjY3VfaW5zdGRvbmUtPnNhbXBsZXJb c2xpY2VdW3N1YnNsaWNlXSk7Cj4gKwkJc3R1Y2sgJj0gaW5zdGRvbmVfdW5jaGFuZ2VkKGluc3Rk b25lLnJvd1tzbGljZV1bc3Vic2xpY2VdLAo+ICsJCQkJCSAgICAmYWNjdV9pbnN0ZG9uZS0+cm93 W3NsaWNlXVtzdWJzbGljZV0pOwo+ICsJfQo+ICAKPiAgCXJldHVybiBzdHVjazsKPiAgfQo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+IGluZGV4IGU4NGJjMmUuLjI0ZTc0MWQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmgKPiBAQCAtMTcwOCw2ICsxNzA4LDExIEBAIGVudW0gc2tsX2Rpc3Bf cG93ZXJfd2VsbHMgewo+ICAjZGVmaW5lIEdFTjdfU0NfSU5TVERPTkUJX01NSU8oMHg3MTAwKQo+ ICAjZGVmaW5lIEdFTjdfU0FNUExFUl9JTlNURE9ORQlfTU1JTygweGUxNjApCj4gICNkZWZpbmUg R0VON19ST1dfSU5TVERPTkUJX01NSU8oMHhlMTY0KQo+ICsjZGVmaW5lIEdFTjhfTUNSX1NFTEVD VE9SCQlfTU1JTygweGZkYykKPiArI2RlZmluZSAgIEdFTjhfTUNSX1NMSUNFKHNsaWNlKQkJKCgo c2xpY2UpICYgMykgPDwgMjYpCj4gKyNkZWZpbmUgICBHRU44X01DUl9TTElDRV9NQVNLCQlHRU44 X01DUl9TTElDRSgzKQo+ICsjZGVmaW5lICAgR0VOOF9NQ1JfU1VCU0xJQ0Uoc3Vic2xpY2UpCSgo KHN1YnNsaWNlKSAmIDMpIDw8IDI0KQo+ICsjZGVmaW5lICAgR0VOOF9NQ1JfU1VCU0xJQ0VfTUFT SwlHRU44X01DUl9TVUJTTElDRSgzKQo+ICAjZGVmaW5lIFJJTkdfSVBFSVIoYmFzZSkJX01NSU8o KGJhc2UpKzB4NjQpCj4gICNkZWZpbmUgUklOR19JUEVIUihiYXNlKQlfTU1JTygoYmFzZSkrMHg2 OCkKPiAgLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCj4gaW5kZXgg YWZjM2YxZS4uOTgzZDdkYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmgKPiBAQCAtNzMsMTIgKzczLDMxIEBAIGVudW0gaW50ZWxfZW5naW5lX2hhbmdjaGVja19h Y3Rpb24gewo+ICAKPiAgI2RlZmluZSBIQU5HQ0hFQ0tfU0NPUkVfUklOR19IVU5HIDMxCj4gIAo+ ICsjZGVmaW5lIEk5MTVfTUFYX1NMSUNFUwkzCj4gKyNkZWZpbmUgSTkxNV9NQVhfU1VCU0xJQ0VT IDMKPiArCj4gKyNkZWZpbmUgaW5zdGRvbmVfc2xpY2VfbWFzayhkZXZfcHJpdl9fKSBcCj4gKwko SU5URUxfR0VOKGRldl9wcml2X18pID09IDcgPyBcCj4gKwkgMSA6IElOVEVMX0lORk8oZGV2X3By aXZfXyktPnNzZXUuc2xpY2VfbWFzaykKPiArCj4gKyNkZWZpbmUgaW5zdGRvbmVfc3Vic2xpY2Vf bWFzayhkZXZfcHJpdl9fKSBcCj4gKwkoSU5URUxfR0VOKGRldl9wcml2X18pID09IDcgPyBcCj4g KwkgMSA6IElOVEVMX0lORk8oZGV2X3ByaXZfXyktPnNzZXUuc3Vic2xpY2VfbWFzaykKPiArCj4g KyNkZWZpbmUgZm9yX2VhY2hfaW5zdGRvbmVfc2xpY2Vfc3Vic2xpY2UoZGV2X3ByaXZfXywgc2xp Y2VfXywgc3Vic2xpY2VfXykgXAo+ICsJZm9yICgoc2xpY2VfXykgPSAwLCAoc3Vic2xpY2VfXykg PSAwOyBcCj4gKwkgICAgIChzbGljZV9fKSA8IEk5MTVfTUFYX1NMSUNFUzsgXAo+ICsJICAgICAo c3Vic2xpY2VfXykgPSAoKHN1YnNsaWNlX18pICsgMSkgPCBJOTE1X01BWF9TVUJTTElDRVMgPyAo c3Vic2xpY2VfXykgKyAxIDogMCwgXAo+ICsJICAgICAgIChzbGljZV9fKSArPSAoKHN1YnNsaWNl X18pID09IDApKSBcCj4gKwkJZm9yX2VhY2hfaWYoKEJJVChzbGljZV9fKSAmIGluc3Rkb25lX3Ns aWNlX21hc2soZGV2X3ByaXZfXykpICYmIFwKPiArCQkJICAgIChCSVQoc3Vic2xpY2VfXykgJiBp bnN0ZG9uZV9zdWJzbGljZV9tYXNrKGRldl9wcml2X18pKSkKPiArCj4gIHN0cnVjdCBpbnRlbF9p bnN0ZG9uZSB7Cj4gIAl1MzIgaW5zdGRvbmU7Cj4gIAkvKiBUaGUgZm9sbG93aW5nIGV4aXN0IG9u bHkgaW4gdGhlIFJDUyBlbmdpbmUgKi8KPiAgCXUzMiBzbGljZV9jb21tb247Cj4gLQl1MzIgc2Ft cGxlcjsKPiAtCXUzMiByb3c7Cj4gKwl1MzIgc2FtcGxlcltJOTE1X01BWF9TTElDRVNdW0k5MTVf TUFYX1NVQlNMSUNFU107Cj4gKwl1MzIgcm93W0k5MTVfTUFYX1NMSUNFU11bSTkxNV9NQVhfU1VC U0xJQ0VTXTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9lbmdpbmVfaGFuZ2NoZWNrIHsKPiAt LSAKPiAyLjUuMApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcK aHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK