From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 3/4] drm/i915: Sanitize watermarks after hardware state readout (v2) Date: Thu, 05 Nov 2015 14:55:20 +0200 Message-ID: <87a8qsmwqv.fsf@intel.com> References: <87k2pzo0yd.fsf@intel.com> <1446569697-17425-1-git-send-email-matthew.d.roper@intel.com> <871tc5onu6.fsf@intel.com> <20151105004613.GA9715@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 ESMTP id EDE96721E4 for ; Thu, 5 Nov 2015 04:51:38 -0800 (PST) In-Reply-To: <20151105004613.GA9715@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAwNSBOb3YgMjAxNSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGludGVsLmNv bT4gd3JvdGU6Cj4gT24gV2VkLCBOb3YgMDQsIDIwMTUgYXQgMDQ6MTI6MzNQTSArMDIwMCwgSmFu aSBOaWt1bGEgd3JvdGU6Cj4+IE9uIFR1ZSwgMDMgTm92IDIwMTUsIE1hdHQgUm9wZXIgPG1hdHRo ZXcuZC5yb3BlckBpbnRlbC5jb20+IHdyb3RlOgo+PiA+IEFsdGhvdWdoIHdlIGNhbiBkbyBhIGdv b2Qgam9iIG9mIHJlYWRpbmcgb3V0IGhhcmR3YXJlIHN0YXRlLCB0aGUKPj4gPiBncmFwaGljcyBm aXJtd2FyZSBtYXkgaGF2ZSBwcm9ncmFtbWVkIHRoZSB3YXRlcm1hcmtzIGluIGEgY3JlYXRpdmUg d2F5Cj4+ID4gdGhhdCBkb2Vzbid0IG1hdGNoIGhvdyBpOTE1IHdvdWxkIGhhdmUgY2hvc2VuIHRv IHByb2dyYW0gdGhlbS4gIFdlCj4+ID4gc2hvdWxkbid0IHRydXN0IHRoZSBmaXJtd2FyZSdzIHdh dGVybWFyayBwcm9ncmFtbWluZywgYnV0IHNob3VsZCByYXRoZXIKPj4gPiByZS1jYWxjdWxhdGUg aG93IHdlIHRoaW5rIFdNJ3Mgc2hvdWxkIGJlIHByb2dyYW1tZWQgYW5kIHRoZW4gc2hvdmUgdGhv c2UKPj4gPiB2YWx1ZXMgaW50byB0aGUgaGFyZHdhcmUuCj4+ID4KPj4gPiBXZSBjYW4gZG8gdGhp cyBwcmV0dHkgZWFzaWx5IGJ5IGNyZWF0aW5nIGEgZHVtbXkgdG9wLWxldmVsIHN0YXRlLAo+PiA+ IHJ1bm5pbmcgaXQgdGhyb3VnaCB0aGUgY2hlY2sgcHJvY2VzcyB0byBjYWxjdWxhdGUgYWxsIHRo ZSB2YWx1ZXMsIGFuZAo+PiA+IHRoZW4ganVzdCBwcm9ncmFtbWluZyB0aGUgd2F0ZXJtYXJrcyBm b3IgZWFjaCBDUlRDLgo+PiA+Cj4+ID4gdjI6ICBNb3ZlIHdhdGVybWFyayBzYW5pdGl6YXRpb24g YWZ0ZXIgb3VyIEJJT1MgZmIgcmVjb25zdHJ1Y3Rpb247IHRoZQo+PiA+ICAgICAgd2F0ZXJtYXJr IGNhbGN1bGF0aW9ucyB0aGF0IHdlIGRvIGhlcmUgbmVlZCB0byBsb29rIGF0IHBzdGF0ZS0+ZmIs Cj4+ID4gICAgICB3aGljaCBpc24ndCBzZXR1cCB5ZXQgaW4gaW50ZWxfbW9kZXNldF9zZXR1cF9o d19zdGF0ZSgpLCBldmVuCj4+ID4gICAgICB0aG91Z2ggd2UgaGF2ZSBhbiBlbmFibGVkICYgdmlz aWJsZSBwbGFuZS4KPj4gPgo+PiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwu Y29tPgo+PiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgo+PiA+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3Bl ckBpbnRlbC5jb20+Cj4+ID4gLS0tCj4+ID4gSmFuaSwgYmFzZWQgb24geW91ciBsb2dzIGl0IGxv b2tzIGxpa2UgdGhlIGN1bHByaXQgaXMgdGhhdCB3ZSdyZSBjYWxjdWxhdGluZwo+PiA+IHdhdGVy bWFya3MgYXQgc3RhcnR1cCB0aW1lIGFmdGVyIHdlJ3ZlIHJlYWQgb3V0IHByZWxpbWluYXJ5IGhh cmR3YXJlIHN0YXRlIChzbwo+PiA+IHdlIGtub3cgdGhlIHByaW1hcnkgcGxhbmUgaXMgZW5hYmxl ZCAmIHZpc2libGUpLCBidXQgYmVmb3JlIHdlIHJlY29uc3RydWN0IHRoZQo+PiA+IEJJT1MgZmIg KHNvIHBzdGF0ZS0+ZmIgaXMgTlVMTCkuICBJIHRoaW5rIG1vdmluZyB0aGUgd2F0ZXJtYXJrIHNh bml0aXphdGlvbgo+PiA+IGxhdGVyIGluIHRoZSBwcm9jZXNzIHNvIHRoYXQgd2UnbGwgaGF2ZSBh IHByb3BlciBmYiBzZXR1cCBzaG91bGQgaG9wZWZ1bGx5Cj4+ID4gc29sdmUgdGhlIGlzc3VlLiAg Q2FuIHlvdSB0ZXN0IHRoaXMgdmVyc2lvbiB3aGVuIHlvdSBnZXQgYSBjaGFuY2U/ICBJJ2xsIGFs c28KPj4gPiBzZW5kIGEgcmViYXNlZCBwYXRjaCAjNCBzaW5jZSB0aGUgY29kZSBtb3ZlbWVudCBo ZXJlIG1lYW5zIHRoYXQgdGhlIHByZXZpb3VzCj4+ID4gdmVyc2lvbiB3b24ndCBhcHBseSBjbGVh bmx5Lgo+PiAKPj4gU29ycnkgTWF0dCwgYmxhY2sgc2NyZWVuIHdpdGggbmV3IHZlcnNpb25zIG9m IHBhdGNoZXMgMy00LiBEbWVzZyBhdAo+PiBodHRwOi8vcGFzdGViaW4uY29tLzNMWFp3dld1Cj4K PiBIbW0sIG9rYXksIGxvb2tzIGxpa2Ugd2UncmUgZ2V0dGluZyBjbG9zZXIgKHN1Y2Nlc3NmdWxs eSBhdm9pZGVkIHRoZQo+IGRpdmlkZSBieSB6ZXJvIHByb2JsZW0pLCBidXQgSSBuZWdsZWN0ZWQg dG8gZ3JhYiB0aGUgbmVjZXNzYXJ5IGxvY2tzIHNvCj4gdGhlIHNhbml0aXphdGlvbiBkb2Vzbid0 IGFjdHVhbGx5IGhhcHBlbi4gIERvZXMgYXBwbHlpbmcKPiBodHRwOi8vcGFzdGUuZGViaWFuLm5l dC8zMjI5MzIgb24gdG9wIG9mIHRoZSBzZXJpZXMgd29yayBhbnkgYmV0dGVyIGZvcgo+IHlvdT8g IEkgaGF2ZW4ndCBoYWQgdGltZSB0byBwdWxsIGJhY2sgb3V0IGFuIElMSy1zdHlsZSBzeXN0ZW0s IHNvIHRoYXQncwo+IG9ubHkgY29tcGlsZS10ZXN0ZWQgYXQgdGhlIG1vbWVudC4KClN0aWxsIHdh cm5zIGh0dHA6Ly9wYXN0ZWJpbi5jb20veUd0ZGU1WDIKCkJSLApKYW5pLgoKCj4KPgo+IE1hdHQK Pgo+PiAKPj4gQlIsCj4+IEphbmkuCj4+IAo+PiAKPj4gCj4+ID4KPj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgIHwgIDEgKwo+PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKPj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgMTQgKysrKyst LS0tCj4+ID4gIDMgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMo LSkKPj4gPgo+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+PiA+IGluZGV4IDIwY2Q2ZDguLjA5 ODA3YzggMTAwNjQ0Cj4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4gPiBAQCAtNjI5LDYg KzYyOSw3IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1bmNzIHsKPj4gPiAgCQkJICBzdHJ1 Y3QgZHBsbCAqYmVzdF9jbG9jayk7Cj4+ID4gIAlpbnQgKCpjb21wdXRlX3BpcGVfd20pKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjLAo+PiA+ICAJCQkgICAgICAgc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKTsKPj4gPiArCXZvaWQgKCpwcm9ncmFtX3dhdGVybWFya3MpKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjc3RhdGUpOwo+PiA+ICAJdm9pZCAoKnVwZGF0ZV93bSkoc3RydWN0IGRy bV9jcnRjICpjcnRjKTsKPj4gPiAgCWludCAoKm1vZGVzZXRfY2FsY19jZGNsaykoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPj4gPiAgCXZvaWQgKCptb2Rlc2V0X2NvbW1pdF9jZGNs aykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4+ID4gaW5kZXggN2IzY2ZiNi4uZTI4OTMxMSAxMDA2NDQKPj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4gPiBAQCAtMTQ5MzYsNiArMTQ5MzYs NTQgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRybV9kZXZpY2UgKmRldikK Pj4gPiAgCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUoZGV2KTsKPj4gPiAgfQo+PiA+ICAKPj4g PiArLyoKPj4gPiArICogQ2FsY3VsYXRlIHdoYXQgd2UgdGhpbmsgdGhlIHdhdGVybWFya3Mgc2hv dWxkIGJlIGZvciB0aGUgc3RhdGUgd2UndmUgcmVhZAo+PiA+ICsgKiBvdXQgb2YgdGhlIGhhcmR3 YXJlIGFuZCB0aGVuIGltbWVkaWF0ZWx5IHByb2dyYW0gdGhvc2Ugd2F0ZXJtYXJrcyBzbyB0aGF0 Cj4+ID4gKyAqIHdlIGVuc3VyZSB0aGUgaGFyZHdhcmUgc2V0dGluZ3MgbWF0Y2ggb3VyIGludGVy bmFsIHN0YXRlLgo+PiA+ICsgKi8KPj4gPiArc3RhdGljIHZvaWQgc2FuaXRpemVfd2F0ZXJtYXJr cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiA+ICt7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGU7Cj4+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+ID4gKwlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNzdGF0ZTsKPj4gPiArCWludCByZXQ7Cj4+ID4gKwlpbnQgaTsK Pj4gPiArCj4+ID4gKwkvKiBPbmx5IHN1cHBvcnRlZCBvbiBwbGF0Zm9ybXMgdGhhdCB1c2UgYXRv bWljIHdhdGVybWFyayBkZXNpZ24gKi8KPj4gPiArCWlmICghZGV2X3ByaXYtPmRpc3BsYXkucHJv Z3JhbV93YXRlcm1hcmtzKQo+PiA+ICsJCXJldHVybjsKPj4gPiArCj4+ID4gKwkvKgo+PiA+ICsJ ICogQ2FsY3VsYXRlIHdoYXQgd2UgdGhpbmsgV00ncyBzaG91bGQgYmUgYnkgY3JlYXRpbmcgYSBk dW1teSBzdGF0ZSBhbmQKPj4gPiArCSAqIHJ1bm5pbmcgaXQgdGhyb3VnaCB0aGUgYXRvbWljIGNo ZWNrIGNvZGUuCj4+ID4gKwkgKi8KPj4gPiArCXN0YXRlID0gZHJtX2F0b21pY19oZWxwZXJfZHVw bGljYXRlX3N0YXRlKGRldiwKPj4gPiArCQkJCQkJICBkZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVf Y3R4KTsKPj4gPiArCWlmIChXQVJOX09OKElTX0VSUihzdGF0ZSkpKQo+PiA+ICsJCXJldHVybjsK Pj4gPiArCj4+ID4gKwlyZXQgPSBpbnRlbF9hdG9taWNfY2hlY2soZGV2LCBzdGF0ZSk7Cj4+ID4g KwlpZiAocmV0KSB7Cj4+ID4gKwkJLyoKPj4gPiArCQkgKiBKdXN0IGdpdmUgdXAgYW5kIGxlYXZl IHdhdGVybWFya3MgdW50b3VjaGVkIGlmIHdlIGdldCBhbgo+PiA+ICsJCSAqIGVycm9yIGJhY2sg ZnJvbSAnY2hlY2snCj4+ID4gKwkJICovCj4+ID4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90 IGRldGVybWluZSB2YWxpZCB3YXRlcm1hcmtzIGZvciBpbmhlcml0ZWQgc3RhdGVcbiIpOwo+PiA+ ICsJCXJldHVybjsKPj4gPiArCX0KPj4gPiArCj4+ID4gKwkvKiBXcml0ZSBjYWxjdWxhdGVkIHdh dGVybWFyayB2YWx1ZXMgYmFjayAqLwo+PiA+ICsJdG9faTkxNShkZXYpLT53bS5jb25maWcgPSB0 b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT53bV9jb25maWc7Cj4+ID4gKwlmb3JfZWFjaF9j cnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjc3RhdGUsIGkpIHsKPj4gPiArCQlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3MgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNzdGF0ZSk7Cj4+ID4gKwo+ PiA+ICsJCWRldl9wcml2LT5kaXNwbGF5LnByb2dyYW1fd2F0ZXJtYXJrcyhjcyk7Cj4+ID4gKwl9 Cj4+ID4gKwo+PiA+ICsJZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPj4gPiArfQo+PiA+ ICsKPj4gPiAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikK Pj4gPiAgewo+PiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPj4gPiBAQCAtMTUwNTksNiArMTUxMDcsMTMgQEAgdm9pZCBpbnRlbF9tb2Rl c2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4gPiAgCQkgKi8KPj4gPiAgCQlpbnRl bF9maW5kX2luaXRpYWxfcGxhbmVfb2JqKGNydGMsICZwbGFuZV9jb25maWcpOwo+PiA+ICAJfQo+ PiA+ICsKPj4gPiArCS8qCj4+ID4gKwkgKiBNYWtlIHN1cmUgaGFyZHdhcmUgd2F0ZXJtYXJrcyBy ZWFsbHkgbWF0Y2ggdGhlIHN0YXRlIHdlIHJlYWQgb3V0Lgo+PiA+ICsJICogTm90ZSB0aGF0IHdl IG5lZWQgdG8gZG8gdGhpcyBhZnRlciByZWNvbnN0cnVjdGluZyB0aGUgQklPUyBmYidzCj4+ID4g KwkgKiBzaW5jZSB0aGUgd2F0ZXJtYXJrIGNhbGN1bGF0aW9uIGRvbmUgaGVyZSB3aWxsIHVzZSBw c3RhdGUtPmZiLgo+PiA+ICsJICovCj4+ID4gKwlzYW5pdGl6ZV93YXRlcm1hcmtzKGRldik7Cj4+ ID4gIH0KPj4gPiAgCj4+ID4gIHN0YXRpYyB2b2lkIGludGVsX2VuYWJsZV9waXBlX2Eoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPj4gPiBpbmRleCAx ODAzNDhiLi5mYmNiMDcyIDEwMDY0NAo+PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4+ID4g QEAgLTM2MTEsMTUgKzM2MTEsMTkgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShzdHJ1Y3Qg ZHJtX2NydGMgKmNydGMpCj4+ID4gIAlkZXZfcHJpdi0+d20uc2tsX2h3ID0gKnJlc3VsdHM7Cj4+ ID4gIH0KPj4gPiAgCj4+ID4gLXN0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVybWFya3Moc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiA+ICtzdGF0aWMgdm9pZCBpbGtfcHJv Z3JhbV93YXRlcm1hcmtzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpCj4+ID4gIHsK Pj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkZXZfcHJpdi0+ZGV2Owo+PiA+ICsJc3Ry dWN0IGRybV9jcnRjICpjcnRjID0gY3N0YXRlLT5iYXNlLmNydGM7Cj4+ID4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+PiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+PiA+ICAJc3RydWN0IGludGVsX3BpcGVfd20gbHBf d21fMV8yID0ge30sIGxwX3dtXzVfNiA9IHt9LCAqYmVzdF9scF93bTsKPj4gPiAgCXN0cnVjdCBp bGtfd21fbWF4aW11bXMgbWF4Owo+PiA+ICAJc3RydWN0IGludGVsX3dtX2NvbmZpZyAqY29uZmln ID0gJmRldl9wcml2LT53bS5jb25maWc7Cj4+ID4gIAlzdHJ1Y3QgaWxrX3dtX3ZhbHVlcyByZXN1 bHRzID0ge307Cj4+ID4gIAllbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcgcGFydGl0aW9uaW5n Owo+PiA+ICAKPj4gPiArCXRvX2ludGVsX2NydGMoY3J0YyktPndtLmFjdGl2ZS5pbGsgPSBjc3Rh dGUtPndtLm9wdGltYWwuaWxrOwo+PiA+ICsKPj4gPiAgCWlsa19jb21wdXRlX3dtX21heGltdW1z KGRldiwgMSwgY29uZmlnLCBJTlRFTF9EREJfUEFSVF8xXzIsICZtYXgpOwo+PiA+ICAJaWxrX3dt X21lcmdlKGRldiwgY29uZmlnLCAmbWF4LCAmbHBfd21fMV8yKTsKPj4gPiAgCj4+ID4gQEAgLTM2 NDQsNyArMzY0OCw2IEBAIHN0YXRpYyB2b2lkIGlsa19wcm9ncmFtX3dhdGVybWFya3Moc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+PiA+ICAKPj4gPiAgc3RhdGljIHZvaWQgaWxr X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+ID4gIHsKPj4gPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY3J0Yy0+ZGV2KTsKPj4gPiAgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPj4gPiAg CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKTsKPj4gPiAgCj4+ID4gQEAgLTM2NjIsOSArMzY2NSw3IEBAIHN0YXRpYyB2b2lk IGlsa191cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+PiA+ICAJCWludGVsX3dhaXRf Zm9yX3ZibGFuayhjcnRjLT5kZXYsIGludGVsX2NydGMtPnBpcGUpOwo+PiA+ICAJfQo+PiA+ICAK Pj4gPiAtCWludGVsX2NydGMtPndtLmFjdGl2ZS5pbGsgPSBjc3RhdGUtPndtLm9wdGltYWwuaWxr Owo+PiA+IC0KPj4gPiAtCWlsa19wcm9ncmFtX3dhdGVybWFya3MoZGV2X3ByaXYpOwo+PiA+ICsJ aWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhjc3RhdGUpOwo+PiA+ICB9Cj4+ID4gIAo+PiA+ICBzdGF0 aWMgdm9pZCBza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodWludDMyX3QgdmFsLAo+PiA+IEBAIC02 OTcyLDYgKzY5NzMsNyBAQCB2b2lkIGludGVsX2luaXRfcG0oc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPj4gPiAgCQkgICAgIGRldl9wcml2LT53bS5zcHJfbGF0ZW5jeVswXSAmJiBkZXZfcHJpdi0+ d20uY3VyX2xhdGVuY3lbMF0pKSB7Cj4+ID4gIAkJCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV93 bSA9IGlsa191cGRhdGVfd207Cj4+ID4gIAkJCWRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlw ZV93bSA9IGlsa19jb21wdXRlX3BpcGVfd207Cj4+ID4gKwkJCWRldl9wcml2LT5kaXNwbGF5LnBy b2dyYW1fd2F0ZXJtYXJrcyA9IGlsa19wcm9ncmFtX3dhdGVybWFya3M7Cj4+ID4gIAkJfSBlbHNl IHsKPj4gPiAgCQkJRFJNX0RFQlVHX0tNUygiRmFpbGVkIHRvIHJlYWQgZGlzcGxheSBwbGFuZSBs YXRlbmN5LiAiCj4+ID4gIAkJCQkgICAgICAiRGlzYWJsZSBDeFNSXG4iKTsKPj4gCj4+IC0tIAo+ PiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKCi0tIApK YW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK