From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH 3/4] drm/i915: Sanitize watermarks after hardware state readout (v2) Date: Wed, 4 Nov 2015 16:46:13 -0800 Message-ID: <20151105004613.GA9715@intel.com> References: <87k2pzo0yd.fsf@intel.com> <1446569697-17425-1-git-send-email-matthew.d.roper@intel.com> <871tc5onu6.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 4AF706E334 for ; Wed, 4 Nov 2015 16:46:15 -0800 (PST) Content-Disposition: inline In-Reply-To: <871tc5onu6.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBOb3YgMDQsIDIwMTUgYXQgMDQ6MTI6MzNQTSArMDIwMCwgSmFuaSBOaWt1bGEgd3Jv dGU6Cj4gT24gVHVlLCAwMyBOb3YgMjAxNSwgTWF0dCBSb3BlciA8bWF0dGhldy5kLnJvcGVyQGlu dGVsLmNvbT4gd3JvdGU6Cj4gPiBBbHRob3VnaCB3ZSBjYW4gZG8gYSBnb29kIGpvYiBvZiByZWFk aW5nIG91dCBoYXJkd2FyZSBzdGF0ZSwgdGhlCj4gPiBncmFwaGljcyBmaXJtd2FyZSBtYXkgaGF2 ZSBwcm9ncmFtbWVkIHRoZSB3YXRlcm1hcmtzIGluIGEgY3JlYXRpdmUgd2F5Cj4gPiB0aGF0IGRv ZXNuJ3QgbWF0Y2ggaG93IGk5MTUgd291bGQgaGF2ZSBjaG9zZW4gdG8gcHJvZ3JhbSB0aGVtLiAg V2UKPiA+IHNob3VsZG4ndCB0cnVzdCB0aGUgZmlybXdhcmUncyB3YXRlcm1hcmsgcHJvZ3JhbW1p bmcsIGJ1dCBzaG91bGQgcmF0aGVyCj4gPiByZS1jYWxjdWxhdGUgaG93IHdlIHRoaW5rIFdNJ3Mg c2hvdWxkIGJlIHByb2dyYW1tZWQgYW5kIHRoZW4gc2hvdmUgdGhvc2UKPiA+IHZhbHVlcyBpbnRv IHRoZSBoYXJkd2FyZS4KPiA+Cj4gPiBXZSBjYW4gZG8gdGhpcyBwcmV0dHkgZWFzaWx5IGJ5IGNy ZWF0aW5nIGEgZHVtbXkgdG9wLWxldmVsIHN0YXRlLAo+ID4gcnVubmluZyBpdCB0aHJvdWdoIHRo ZSBjaGVjayBwcm9jZXNzIHRvIGNhbGN1bGF0ZSBhbGwgdGhlIHZhbHVlcywgYW5kCj4gPiB0aGVu IGp1c3QgcHJvZ3JhbW1pbmcgdGhlIHdhdGVybWFya3MgZm9yIGVhY2ggQ1JUQy4KPiA+Cj4gPiB2 MjogIE1vdmUgd2F0ZXJtYXJrIHNhbml0aXphdGlvbiBhZnRlciBvdXIgQklPUyBmYiByZWNvbnN0 cnVjdGlvbjsgdGhlCj4gPiAgICAgIHdhdGVybWFyayBjYWxjdWxhdGlvbnMgdGhhdCB3ZSBkbyBo ZXJlIG5lZWQgdG8gbG9vayBhdCBwc3RhdGUtPmZiLAo+ID4gICAgICB3aGljaCBpc24ndCBzZXR1 cCB5ZXQgaW4gaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZSgpLCBldmVuCj4gPiAgICAgIHRo b3VnaCB3ZSBoYXZlIGFuIGVuYWJsZWQgJiB2aXNpYmxlIHBsYW5lLgo+ID4KPiA+IENjOiBKYW5p IE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgo+ID4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0 IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBN YXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiBKYW5pLCBi YXNlZCBvbiB5b3VyIGxvZ3MgaXQgbG9va3MgbGlrZSB0aGUgY3VscHJpdCBpcyB0aGF0IHdlJ3Jl IGNhbGN1bGF0aW5nCj4gPiB3YXRlcm1hcmtzIGF0IHN0YXJ0dXAgdGltZSBhZnRlciB3ZSd2ZSBy ZWFkIG91dCBwcmVsaW1pbmFyeSBoYXJkd2FyZSBzdGF0ZSAoc28KPiA+IHdlIGtub3cgdGhlIHBy aW1hcnkgcGxhbmUgaXMgZW5hYmxlZCAmIHZpc2libGUpLCBidXQgYmVmb3JlIHdlIHJlY29uc3Ry dWN0IHRoZQo+ID4gQklPUyBmYiAoc28gcHN0YXRlLT5mYiBpcyBOVUxMKS4gIEkgdGhpbmsgbW92 aW5nIHRoZSB3YXRlcm1hcmsgc2FuaXRpemF0aW9uCj4gPiBsYXRlciBpbiB0aGUgcHJvY2VzcyBz byB0aGF0IHdlJ2xsIGhhdmUgYSBwcm9wZXIgZmIgc2V0dXAgc2hvdWxkIGhvcGVmdWxseQo+ID4g c29sdmUgdGhlIGlzc3VlLiAgQ2FuIHlvdSB0ZXN0IHRoaXMgdmVyc2lvbiB3aGVuIHlvdSBnZXQg YSBjaGFuY2U/ICBJJ2xsIGFsc28KPiA+IHNlbmQgYSByZWJhc2VkIHBhdGNoICM0IHNpbmNlIHRo ZSBjb2RlIG1vdmVtZW50IGhlcmUgbWVhbnMgdGhhdCB0aGUgcHJldmlvdXMKPiA+IHZlcnNpb24g d29uJ3QgYXBwbHkgY2xlYW5seS4KPiAKPiBTb3JyeSBNYXR0LCBibGFjayBzY3JlZW4gd2l0aCBu ZXcgdmVyc2lvbnMgb2YgcGF0Y2hlcyAzLTQuIERtZXNnIGF0Cj4gaHR0cDovL3Bhc3RlYmluLmNv bS8zTFhad3ZXdQoKSG1tLCBva2F5LCBsb29rcyBsaWtlIHdlJ3JlIGdldHRpbmcgY2xvc2VyIChz dWNjZXNzZnVsbHkgYXZvaWRlZCB0aGUKZGl2aWRlIGJ5IHplcm8gcHJvYmxlbSksIGJ1dCBJIG5l Z2xlY3RlZCB0byBncmFiIHRoZSBuZWNlc3NhcnkgbG9ja3Mgc28KdGhlIHNhbml0aXphdGlvbiBk b2Vzbid0IGFjdHVhbGx5IGhhcHBlbi4gIERvZXMgYXBwbHlpbmcKaHR0cDovL3Bhc3RlLmRlYmlh bi5uZXQvMzIyOTMyIG9uIHRvcCBvZiB0aGUgc2VyaWVzIHdvcmsgYW55IGJldHRlciBmb3IKeW91 PyAgSSBoYXZlbid0IGhhZCB0aW1lIHRvIHB1bGwgYmFjayBvdXQgYW4gSUxLLXN0eWxlIHN5c3Rl bSwgc28gdGhhdCdzCm9ubHkgY29tcGlsZS10ZXN0ZWQgYXQgdGhlIG1vbWVudC4KCgpNYXR0Cgo+ IAo+IEJSLAo+IEphbmkuCj4gCj4gCj4gCj4gPgo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmggICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCAxNCArKysrKy0tLS0KPiA+ICAzIGZp bGVzIGNoYW5nZWQsIDY0IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBpbmRleCAyMGNkNmQ4Li4wOTgwN2M4IDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gQEAgLTYyOSw2ICs2MjksNyBAQCBzdHJ1Y3QgZHJt X2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4gPiAgCQkJICBzdHJ1Y3QgZHBsbCAqYmVzdF9jbG9jayk7 Cj4gPiAgCWludCAoKmNvbXB1dGVfcGlwZV93bSkoc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4g PiAgCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gPiArCXZvaWQg KCpwcm9ncmFtX3dhdGVybWFya3MpKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwo+ ID4gIAl2b2lkICgqdXBkYXRlX3dtKShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwo+ID4gIAlpbnQg KCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4g PiAgCXZvaWQgKCptb2Rlc2V0X2NvbW1pdF9jZGNsaykoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+IGluZGV4IDdi M2NmYjYuLmUyODkzMTEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ID4gQEAgLTE0OTM2LDYgKzE0OTM2LDU0IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0X2h3 KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCWludGVsX2VuYWJsZV9ndF9wb3dlcnNhdmUo ZGV2KTsKPiA+ICB9Cj4gPiAgCj4gPiArLyoKPiA+ICsgKiBDYWxjdWxhdGUgd2hhdCB3ZSB0aGlu ayB0aGUgd2F0ZXJtYXJrcyBzaG91bGQgYmUgZm9yIHRoZSBzdGF0ZSB3ZSd2ZSByZWFkCj4gPiAr ICogb3V0IG9mIHRoZSBoYXJkd2FyZSBhbmQgdGhlbiBpbW1lZGlhdGVseSBwcm9ncmFtIHRob3Nl IHdhdGVybWFya3Mgc28gdGhhdAo+ID4gKyAqIHdlIGVuc3VyZSB0aGUgaGFyZHdhcmUgc2V0dGlu Z3MgbWF0Y2ggb3VyIGludGVybmFsIHN0YXRlLgo+ID4gKyAqLwo+ID4gK3N0YXRpYyB2b2lkIHNh bml0aXplX3dhdGVybWFya3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICsJc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwo+ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 Cj4gPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlOwo+ID4gKwlpbnQgcmV0Owo+ID4g KwlpbnQgaTsKPiA+ICsKPiA+ICsJLyogT25seSBzdXBwb3J0ZWQgb24gcGxhdGZvcm1zIHRoYXQg dXNlIGF0b21pYyB3YXRlcm1hcmsgZGVzaWduICovCj4gPiArCWlmICghZGV2X3ByaXYtPmRpc3Bs YXkucHJvZ3JhbV93YXRlcm1hcmtzKQo+ID4gKwkJcmV0dXJuOwo+ID4gKwo+ID4gKwkvKgo+ID4g KwkgKiBDYWxjdWxhdGUgd2hhdCB3ZSB0aGluayBXTSdzIHNob3VsZCBiZSBieSBjcmVhdGluZyBh IGR1bW15IHN0YXRlIGFuZAo+ID4gKwkgKiBydW5uaW5nIGl0IHRocm91Z2ggdGhlIGF0b21pYyBj aGVjayBjb2RlLgo+ID4gKwkgKi8KPiA+ICsJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9kdXBs aWNhdGVfc3RhdGUoZGV2LAo+ID4gKwkJCQkJCSAgZGV2LT5tb2RlX2NvbmZpZy5hY3F1aXJlX2N0 eCk7Cj4gPiArCWlmIChXQVJOX09OKElTX0VSUihzdGF0ZSkpKQo+ID4gKwkJcmV0dXJuOwo+ID4g Kwo+ID4gKwlyZXQgPSBpbnRlbF9hdG9taWNfY2hlY2soZGV2LCBzdGF0ZSk7Cj4gPiArCWlmIChy ZXQpIHsKPiA+ICsJCS8qCj4gPiArCQkgKiBKdXN0IGdpdmUgdXAgYW5kIGxlYXZlIHdhdGVybWFy a3MgdW50b3VjaGVkIGlmIHdlIGdldCBhbgo+ID4gKwkJICogZXJyb3IgYmFjayBmcm9tICdjaGVj aycKPiA+ICsJCSAqLwo+ID4gKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IGRldGVybWluZSB2 YWxpZCB3YXRlcm1hcmtzIGZvciBpbmhlcml0ZWQgc3RhdGVcbiIpOwo+ID4gKwkJcmV0dXJuOwo+ ID4gKwl9Cj4gPiArCj4gPiArCS8qIFdyaXRlIGNhbGN1bGF0ZWQgd2F0ZXJtYXJrIHZhbHVlcyBi YWNrICovCj4gPiArCXRvX2k5MTUoZGV2KS0+d20uY29uZmlnID0gdG9faW50ZWxfYXRvbWljX3N0 YXRlKHN0YXRlKS0+d21fY29uZmlnOwo+ID4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRl LCBjcnRjLCBjc3RhdGUsIGkpIHsKPiA+ICsJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcyA9 IHRvX2ludGVsX2NydGNfc3RhdGUoY3N0YXRlKTsKPiA+ICsKPiA+ICsJCWRldl9wcml2LT5kaXNw bGF5LnByb2dyYW1fd2F0ZXJtYXJrcyhjcyk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0YXRlKTsKPiA+ICt9Cj4gPiArCj4gPiAgdm9pZCBpbnRlbF9tb2Rlc2V0 X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiBAQCAtMTUwNTksNiAr MTUxMDcsMTMgQEAgdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiA+ICAJCSAqLwo+ID4gIAkJaW50ZWxfZmluZF9pbml0aWFsX3BsYW5lX29iaihjcnRjLCAm cGxhbmVfY29uZmlnKTsKPiA+ICAJfQo+ID4gKwo+ID4gKwkvKgo+ID4gKwkgKiBNYWtlIHN1cmUg aGFyZHdhcmUgd2F0ZXJtYXJrcyByZWFsbHkgbWF0Y2ggdGhlIHN0YXRlIHdlIHJlYWQgb3V0Lgo+ ID4gKwkgKiBOb3RlIHRoYXQgd2UgbmVlZCB0byBkbyB0aGlzIGFmdGVyIHJlY29uc3RydWN0aW5n IHRoZSBCSU9TIGZiJ3MKPiA+ICsJICogc2luY2UgdGhlIHdhdGVybWFyayBjYWxjdWxhdGlvbiBk b25lIGhlcmUgd2lsbCB1c2UgcHN0YXRlLT5mYi4KPiA+ICsJICovCj4gPiArCXNhbml0aXplX3dh dGVybWFya3MoZGV2KTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxl X3BpcGVfYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j Cj4gPiBpbmRleCAxODAzNDhiLi5mYmNiMDcyIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwo+ID4gQEAgLTM2MTEsMTUgKzM2MTEsMTkgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93 bShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgCWRldl9wcml2LT53bS5za2xfaHcgPSAqcmVz dWx0czsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJr cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiArc3RhdGljIHZvaWQgaWxr X3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKQo+ID4g IHsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4gPiArCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGNzdGF0ZS0+YmFzZS5jcnRjOwo+ID4gKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAgCXN0cnVjdCBpbnRlbF9waXBlX3dtIGxwX3dt XzFfMiA9IHt9LCBscF93bV81XzYgPSB7fSwgKmJlc3RfbHBfd207Cj4gPiAgCXN0cnVjdCBpbGtf d21fbWF4aW11bXMgbWF4Owo+ID4gIAlzdHJ1Y3QgaW50ZWxfd21fY29uZmlnICpjb25maWcgPSAm ZGV2X3ByaXYtPndtLmNvbmZpZzsKPiA+ICAJc3RydWN0IGlsa193bV92YWx1ZXMgcmVzdWx0cyA9 IHt9Owo+ID4gIAllbnVtIGludGVsX2RkYl9wYXJ0aXRpb25pbmcgcGFydGl0aW9uaW5nOwo+ID4g IAo+ID4gKwl0b19pbnRlbF9jcnRjKGNydGMpLT53bS5hY3RpdmUuaWxrID0gY3N0YXRlLT53bS5v cHRpbWFsLmlsazsKPiA+ICsKPiA+ICAJaWxrX2NvbXB1dGVfd21fbWF4aW11bXMoZGV2LCAxLCBj b25maWcsIElOVEVMX0REQl9QQVJUXzFfMiwgJm1heCk7Cj4gPiAgCWlsa193bV9tZXJnZShkZXYs IGNvbmZpZywgJm1heCwgJmxwX3dtXzFfMik7Cj4gPiAgCj4gPiBAQCAtMzY0NCw3ICszNjQ4LDYg QEAgc3RhdGljIHZvaWQgaWxrX3Byb2dyYW1fd2F0ZXJtYXJrcyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgaWxrX3VwZGF0ZV93bShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmRldik7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpp bnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ICAJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+ID4gIAo+ ID4gQEAgLTM2NjIsOSArMzY2NSw3IEBAIHN0YXRpYyB2b2lkIGlsa191cGRhdGVfd20oc3RydWN0 IGRybV9jcnRjICpjcnRjKQo+ID4gIAkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGNydGMtPmRldiwg aW50ZWxfY3J0Yy0+cGlwZSk7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaW50ZWxfY3J0Yy0+d20uYWN0 aXZlLmlsayA9IGNzdGF0ZS0+d20ub3B0aW1hbC5pbGs7Cj4gPiAtCj4gPiAtCWlsa19wcm9ncmFt X3dhdGVybWFya3MoZGV2X3ByaXYpOwo+ID4gKwlpbGtfcHJvZ3JhbV93YXRlcm1hcmtzKGNzdGF0 ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIHNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0 ZSh1aW50MzJfdCB2YWwsCj4gPiBAQCAtNjk3Miw2ICs2OTczLDcgQEAgdm9pZCBpbnRlbF9pbml0 X3BtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCQkgICAgIGRldl9wcml2LT53bS5zcHJf bGF0ZW5jeVswXSAmJiBkZXZfcHJpdi0+d20uY3VyX2xhdGVuY3lbMF0pKSB7Cj4gPiAgCQkJZGV2 X3ByaXYtPmRpc3BsYXkudXBkYXRlX3dtID0gaWxrX3VwZGF0ZV93bTsKPiA+ICAJCQlkZXZfcHJp di0+ZGlzcGxheS5jb21wdXRlX3BpcGVfd20gPSBpbGtfY29tcHV0ZV9waXBlX3dtOwo+ID4gKwkJ CWRldl9wcml2LT5kaXNwbGF5LnByb2dyYW1fd2F0ZXJtYXJrcyA9IGlsa19wcm9ncmFtX3dhdGVy bWFya3M7Cj4gPiAgCQl9IGVsc2Ugewo+ID4gIAkJCURSTV9ERUJVR19LTVMoIkZhaWxlZCB0byBy ZWFkIGRpc3BsYXkgcGxhbmUgbGF0ZW5jeS4gIgo+ID4gIAkJCQkgICAgICAiRGlzYWJsZSBDeFNS XG4iKTsKPiAKPiAtLSAKPiBKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9n eSBDZW50ZXIKCi0tIApNYXR0IFJvcGVyCkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcg UGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZlbG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAz NTYtMjc5NQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=