From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [PATCH v2 13/16] drm/i915/gen9: Propagate watermark calculation failures up the call chain Date: Thu, 21 Apr 2016 16:20:54 -0700 Message-ID: <20160421232054.GF14697@intel.com> References: <1461119183-14267-1-git-send-email-matthew.d.roper@intel.com> <1461119183-14267-14-git-send-email-matthew.d.roper@intel.com> <5718C555.1000709@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 22C006EDD3 for ; Thu, 21 Apr 2016 23:20:55 +0000 (UTC) Content-Disposition: inline In-Reply-To: <5718C555.1000709@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMjEsIDIwMTYgYXQgMDI6MTk6MzNQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMjAtMDQtMTYgb20gMDQ6MjYgc2NocmVlZiBNYXR0IFJvcGVyOgo+ID4g T25jZSB3ZSBtb3ZlIHdhdGVybWFyayBjYWxjdWxhdGlvbiB0byB0aGUgYXRvbWljIGNoZWNrIHBo YXNlLCB3ZSdsbCB3YW50Cj4gPiB0byBzdGFydCByZWplY3RpbmcgZGlzcGxheSBjb25maWd1cmF0 aW9ucyB0aGF0IGV4Y2VlZCBvdXQgd2F0ZXJtYXJrCj4gPiBsaW1pdHMuICBBdCB0aGUgbW9tZW50 IHdlIGp1c3QgYXNzdW1lIHRoYXQgdGhlcmUncyBhbHdheXMgYSB2YWxpZCBzZXQgb2YKPiA+IHdh dGVybWFya3MsIGV2ZW4gdGhvdWdoIHRoaXMgbWF5IG5vdCBhY3R1YWxseSBiZSB0cnVlLiAgTGV0 J3MgcHJlcGFyZSBieQo+ID4gcGFzc2luZyByZXR1cm4gY29kZXMgdXAgdGhyb3VnaCB0aGUgY2Fs bCBzdGFjayBpbiBwcmVwYXJhdGlvbi4KPiA+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVy IDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29tPgo+ID4gUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMCArKy0tCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgIHwgOTAgKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAz OSBkZWxldGlvbnMoLSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBpbmRleCA4MGQ4Zjc3Li43ZThmYTg4IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+IEBAIC0xMzMxMiw3ICsxMzMxMiw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf bW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gICAqIHBo YXNlLiAgVGhlIGNvZGUgaGVyZSBzaG91bGQgYmUgcnVuIGFmdGVyIHRoZSBwZXItY3J0YyBhbmQg cGVyLXBsYW5lICdjaGVjaycKPiA+ICAgKiBoYW5kbGVycyB0byBlbnN1cmUgdGhhdCBhbGwgZGVy aXZlZCBzdGF0ZSBoYXMgYmVlbiB1cGRhdGVkLgo+ID4gICAqLwo+ID4gLXN0YXRpYyB2b2lkIGNh bGNfd2F0ZXJtYXJrX2RhdGEoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gK3N0 YXRpYyBpbnQgY2FsY193YXRlcm1hcmtfZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmRldjsKPiA+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4g QEAgLTEzMzQ4LDcgKzEzMzQ4LDkgQEAgc3RhdGljIHZvaWQgY2FsY193YXRlcm1hcmtfZGF0YShz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgCj4gPiAgCS8qIElzIHRoZXJlIHBs YXRmb3JtLXNwZWNpZmljIHdhdGVybWFyayBpbmZvcm1hdGlvbiB0byBjYWxjdWxhdGU/ICovCj4g PiAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzKQo+ID4g LQkJZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcyhzdGF0ZSk7Cj4g PiArCQlyZXR1cm4gZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcyhz dGF0ZSk7Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+IEBA IC0xMzQzMiw5ICsxMzQzNCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCQlyZXR1cm4gcmV0Owo+ID4gIAo+ID4gIAlpbnRlbF9m YmNfY2hvb3NlX2NydGMoZGV2X3ByaXYsIHN0YXRlKTsKPiA+IC0JY2FsY193YXRlcm1hcmtfZGF0 YShzdGF0ZSk7Cj4gPiAtCj4gPiAtCXJldHVybiAwOwo+ID4gKwlyZXR1cm4gY2FsY193YXRlcm1h cmtfZGF0YShzdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWlj X3ByZXBhcmVfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMKPiA+IGluZGV4IDIxZmRlMDUuLmYwNzA1NGEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gPiBAQCAtMzI0MSwxMyArMzI0MSwxNCBAQCBzdGF0aWMgYm9vbCBza2xf ZGRiX2FsbG9jYXRpb25fY2hhbmdlZChjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpu ZXdfZGRiLAo+ID4gIAlyZXR1cm4gZmFsc2U7Cj4gPiAgfQo+ID4gIAo+ID4gLXN0YXRpYyBib29s IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiA+IC0JCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUsCj4gPiAtCQkJ CSBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSwKPiA+IC0JCQkJIHVpbnQx Nl90IGRkYl9hbGxvY2F0aW9uLAo+ID4gLQkJCQkgaW50IGxldmVsLAo+ID4gLQkJCQkgdWludDE2 X3QgKm91dF9ibG9ja3MsIC8qIG91dCAqLwo+ID4gLQkJCQkgdWludDhfdCAqb3V0X2xpbmVzIC8q IG91dCAqLykKPiA+ICtzdGF0aWMgaW50IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICsJCQkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNzdGF0ZSwKPiA+ICsJCQkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9w c3RhdGUsCj4gPiArCQkJCXVpbnQxNl90IGRkYl9hbGxvY2F0aW9uLAo+ID4gKwkJCQlpbnQgbGV2 ZWwsCj4gPiArCQkJCXVpbnQxNl90ICpvdXRfYmxvY2tzLCAvKiBvdXQgKi8KPiA+ICsJCQkJdWlu dDhfdCAqb3V0X2xpbmVzLCAvKiBvdXQgKi8KPiA+ICsJCQkJYm9vbCAqZW5hYmxlZCAvKiBvdXQg Ki8pCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwc3RhdGUgPSAmaW50ZWxf cHN0YXRlLT5iYXNlOwo+ID4gIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBzdGF0ZS0+ ZmI7Cj4gPiBAQCAtMzI1OSw4ICszMjYwLDEwIEBAIHN0YXRpYyBib29sIHNrbF9jb21wdXRlX3Bs YW5lX3dtKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ICAJdWlu dDhfdCBjcHA7Cj4gPiAgCXVpbnQzMl90IHdpZHRoID0gMCwgaGVpZ2h0ID0gMDsKPiA+ICAKPiA+ IC0JaWYgKGxhdGVuY3kgPT0gMCB8fCAhY3N0YXRlLT5iYXNlLmFjdGl2ZSB8fCAhaW50ZWxfcHN0 YXRlLT52aXNpYmxlKQo+ID4gLQkJcmV0dXJuIGZhbHNlOwo+ID4gKwlpZiAobGF0ZW5jeSA9PSAw IHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZlIHx8ICFpbnRlbF9wc3RhdGUtPnZpc2libGUpIHsKPiA+ ICsJCSplbmFibGVkID0gZmFsc2U7Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICsJfQo+ID4gIAo+ID4g IAl3aWR0aCA9IGRybV9yZWN0X3dpZHRoKCZpbnRlbF9wc3RhdGUtPnNyYykgPj4gMTY7Cj4gPiAg CWhlaWdodCA9IGRybV9yZWN0X2hlaWdodCgmaW50ZWxfcHN0YXRlLT5zcmMpID4+IDE2Owo+ID4g QEAgLTMzMjEsMTMgKzMzMjQsMTYgQEAgc3RhdGljIGJvb2wgc2tsX2NvbXB1dGVfcGxhbmVfd20o Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIAkJCXJlc19ibG9j a3MrKzsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpZiAocmVzX2Jsb2NrcyA+PSBkZGJfYWxsb2NhdGlv biB8fCByZXNfbGluZXMgPiAzMSkKPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ICsJaWYgKHJlc19i bG9ja3MgPj0gZGRiX2FsbG9jYXRpb24gfHwgcmVzX2xpbmVzID4gMzEpIHsKPiA+ICsJCSplbmFi bGVkID0gZmFsc2U7Cj4gPiArCQlyZXR1cm4gMDsKPiA+ICsJfQo+ID4gIAo+ID4gIAkqb3V0X2Js b2NrcyA9IHJlc19ibG9ja3M7Cj4gPiAgCSpvdXRfbGluZXMgPSByZXNfbGluZXM7Cj4gPiArCSpl bmFibGVkID0gdHJ1ZTsKPiA+ICAKPiA+IC0JcmV0dXJuIHRydWU7Cj4gPiArCXJldHVybiAwOwo+ ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgaW50Cj4gPiBAQCAtMzM0NSw2ICszMzUxLDcgQEAgc2ts X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gIAlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZTsKPiA+ICAJdWlu dDE2X3QgZGRiX2Jsb2NrczsKPiA+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBl Owo+ID4gKwlpbnQgcmV0Owo+ID4gIAo+ID4gIAlmb3JfZWFjaF9pbnRlbF9wbGFuZV9vbl9jcnRj KGRldiwgaW50ZWxfY3J0YywgaW50ZWxfcGxhbmUpIHsKPiA+ICAJCWludCBpID0gc2tsX3dtX3Bs YW5lX2lkKGludGVsX3BsYW5lKTsKPiA+IEBAIC0zMzc0LDEzICszMzgxLDE2IEBAIHNrbF9jb21w dXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ICAKPiA+ICAJCWRkYl9ibG9ja3MgPSBza2xfZGRiX2VudHJ5X3NpemUoJmRkYi0+cGxhbmVbcGlw ZV1baV0pOwo+ID4gIAo+ID4gLQkJcmVzdWx0LT5wbGFuZV9lbltpXSA9IHNrbF9jb21wdXRlX3Bs YW5lX3dtKGRldl9wcml2LAo+ID4gLQkJCQkJCWNzdGF0ZSwKPiA+IC0JCQkJCQlpbnRlbF9wc3Rh dGUsCj4gPiAtCQkJCQkJZGRiX2Jsb2NrcywKPiA+IC0JCQkJCQlsZXZlbCwKPiA+IC0JCQkJCQkm cmVzdWx0LT5wbGFuZV9yZXNfYltpXSwKPiA+IC0JCQkJCQkmcmVzdWx0LT5wbGFuZV9yZXNfbFtp XSk7Cj4gPiArCQlyZXQgPSBza2xfY29tcHV0ZV9wbGFuZV93bShkZXZfcHJpdiwKPiA+ICsJCQkJ CSAgIGNzdGF0ZSwKPiA+ICsJCQkJCSAgIGludGVsX3BzdGF0ZSwKPiA+ICsJCQkJCSAgIGRkYl9i bG9ja3MsCj4gPiArCQkJCQkgICBsZXZlbCwKPiA+ICsJCQkJCSAgICZyZXN1bHQtPnBsYW5lX3Jl c19iW2ldLAo+ID4gKwkJCQkJICAgJnJlc3VsdC0+cGxhbmVfcmVzX2xbaV0sCj4gPiArCQkJCQkg ICAmcmVzdWx0LT5wbGFuZV9lbltpXSk7Cj4gPiArCQlpZiAocmV0KQo+ID4gKwkJCXJldHVybiBy ZXQ7Cj4gPiAgCX0KPiA+ICAKPiA+ICAJcmV0dXJuIDA7Cj4gPiBAQCAtMzQxNywyMSArMzQyNywy NiBAQCBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV90cmFuc2l0aW9uX3dtKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjc3RhdGUsCj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQg c2tsX2J1aWxkX3BpcGVfd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+IC0J CQkgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsCj4gPiAtCQkJICAgICAgc3Ry dWN0IHNrbF9waXBlX3dtICpwaXBlX3dtKQo+ID4gK3N0YXRpYyBpbnQgc2tsX2J1aWxkX3BpcGVf d20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPiA+ICsJCQkgICAgIHN0cnVjdCBz a2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKPiA+ICsJCQkgICAgIHN0cnVjdCBza2xfcGlwZV93bSAq cGlwZV93bSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjc3RhdGUtPmJh c2UuY3J0Yy0+ZGV2Owo+ID4gIAljb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAlpbnQgbGV2ZWwsIG1heF9sZXZlbCA9IGlsa193 bV9tYXhfbGV2ZWwoZGV2KTsKPiA+ICsJaW50IHJldDsKPiA+ICAKPiA+ICAJZm9yIChsZXZlbCA9 IDA7IGxldmVsIDw9IG1heF9sZXZlbDsgbGV2ZWwrKykgewo+ID4gLQkJc2tsX2NvbXB1dGVfd21f bGV2ZWwoZGV2X3ByaXYsIGRkYiwgY3N0YXRlLAo+ID4gLQkJCQkgICAgIGxldmVsLCAmcGlwZV93 bS0+d21bbGV2ZWxdKTsKPiA+ICsJCXJldCA9IHNrbF9jb21wdXRlX3dtX2xldmVsKGRldl9wcml2 LCBkZGIsIGNzdGF0ZSwKPiA+ICsJCQkJCSAgIGxldmVsLCAmcGlwZV93bS0+d21bbGV2ZWxdKTsK PiA+ICsJCWlmIChyZXQpCj4gPiArCQkJcmV0dXJuIHJldDsKPiA+ICAJfQo+ID4gIAlwaXBlX3dt LT5saW5ldGltZSA9IHNrbF9jb21wdXRlX2xpbmV0aW1lX3dtKGNzdGF0ZSk7Cj4gPiAgCj4gPiAg CXNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oY3N0YXRlLCAmcGlwZV93bS0+dHJhbnNfd20pOwo+ ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgc2tsX2Nv bXB1dGVfd21fcmVzdWx0cyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gQEAgLTM2NzgsMjEg KzM2OTMsMjcgQEAgc3RhdGljIHZvaWQgc2tsX2ZsdXNoX3dtX3ZhbHVlcyhzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCX0KPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIGJv b2wgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRlLAo+ID4g LQkJCSAgICAgICBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIsIC8qIG91dCAqLwo+ID4g LQkJCSAgICAgICBzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gLyogb3V0ICovKQo+ID4gK3N0 YXRpYyBpbnQgc2tsX3VwZGF0ZV9waXBlX3dtKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3N0YXRl LAo+ID4gKwkJCSAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwgLyogb3V0ICov Cj4gPiArCQkJICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtLCAvKiBvdXQgKi8KPiA+ ICsJCQkgICAgICBib29sICpjaGFuZ2VkIC8qIG91dCAqLykKPiA+ICB7Cj4gPiAgCXN0cnVjdCBp bnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0Yyhjc3RhdGUtPmNydGMpOwo+ID4g IAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqaW50ZWxfY3N0YXRlID0gdG9faW50ZWxfY3J0Y19z dGF0ZShjc3RhdGUpOwo+ID4gKwlpbnQgcmV0Owo+ID4gIAo+ID4gLQlza2xfYnVpbGRfcGlwZV93 bShpbnRlbF9jc3RhdGUsIGRkYiwgcGlwZV93bSk7Cj4gPiArCXJldCA9IHNrbF9idWlsZF9waXBl X3dtKGludGVsX2NzdGF0ZSwgZGRiLCBwaXBlX3dtKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCXJl dHVybiByZXQ7Cj4gPiAgCj4gPiAgCWlmICghbWVtY21wKCZpbnRlbF9jcnRjLT53bS5hY3RpdmUu c2tsLCBwaXBlX3dtLCBzaXplb2YoKnBpcGVfd20pKSkKPiA+IC0JCXJldHVybiBmYWxzZTsKPiA+ ICsJCSpjaGFuZ2VkID0gZmFsc2U7Cj4gPiArCWVsc2UKPiA+ICsJCSpjaGFuZ2VkID0gdHJ1ZTsK PiA+ICAKPiA+ICAJaW50ZWxfY3J0Yy0+d20uYWN0aXZlLnNrbCA9ICpwaXBlX3dtOwo+ID4gIAo+ ID4gLQlyZXR1cm4gdHJ1ZTsKPiA+ICsJcmV0dXJuIDA7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRp YyB2b2lkIHNrbF91cGRhdGVfb3RoZXJfcGlwZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ID4gQEAgLTM3MjUsOCArMzc0Niw4IEBAIHN0YXRpYyB2b2lkIHNrbF91cGRhdGVfb3RoZXJfcGlw ZV93bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIAkJaWYgKCFpbnRlbF9jcnRjLT5hY3Rp dmUpCj4gPiAgCQkJY29udGludWU7Cj4gPiAgCj4gPiAtCQl3bV9jaGFuZ2VkID0gc2tsX3VwZGF0 ZV9waXBlX3dtKGludGVsX2NydGMtPmJhc2Uuc3RhdGUsCj4gPiAtCQkJCQkJJnItPmRkYiwgJnBp cGVfd20pOwo+ID4gKwkJc2tsX3VwZGF0ZV9waXBlX3dtKGludGVsX2NydGMtPmJhc2Uuc3RhdGUs Cj4gPiArCQkJCSAgICZyLT5kZGIsICZwaXBlX3dtLCAmd21fY2hhbmdlZCk7Cj4gPiAgCj4gPiAg CQkvKgo+ID4gIAkJICogSWYgd2UgZW5kIHVwIHJlLWNvbXB1dGluZyB0aGUgb3RoZXIgcGlwZSBX TSB2YWx1ZXMsIGl0J3MKPiA+IEBAIC0zODI3LDE0ICszODQ4LDE1IEBAIHN0YXRpYyB2b2lkIHNr bF91cGRhdGVfd20oc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ID4gIAlzdHJ1Y3Qgc2tsX3dtX3Zh bHVlcyAqcmVzdWx0cyA9ICZkZXZfcHJpdi0+d20uc2tsX3Jlc3VsdHM7Cj4gPiAgCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMtPnN0YXRl KTsKPiA+ICAJc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtID0gJmNzdGF0ZS0+d20uc2tsLm9w dGltYWw7Cj4gPiAtCj4gPiArCWJvb2wgd21fY2hhbmdlZDsKPiA+ICAKPiA+ICAJLyogQ2xlYXIg YWxsIGRpcnR5IGZsYWdzICovCj4gPiAgCXJlc3VsdHMtPmRpcnR5X3BpcGVzID0gMDsKPiA+ICAK PiA+ICAJc2tsX2NsZWFyX3dtKHJlc3VsdHMsIGludGVsX2NydGMtPnBpcGUpOwo+ID4gIAo+ID4g LQlpZiAoIXNrbF91cGRhdGVfcGlwZV93bShjcnRjLT5zdGF0ZSwgJnJlc3VsdHMtPmRkYiwgcGlw ZV93bSkpCj4gPiArCXNrbF91cGRhdGVfcGlwZV93bShjcnRjLT5zdGF0ZSwgJnJlc3VsdHMtPmRk YiwgcGlwZV93bSwgJndtX2NoYW5nZWQpOwo+ID4gKwlpZiAoIXdtX2NoYW5nZWQpCj4gPiAgCQly ZXR1cm47Cj4gPiAgCj4gPiAgCXNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoZGV2LCBwaXBlX3dtLCBy ZXN1bHRzLCBpbnRlbF9jcnRjKTsKPiBXaXRoIHRoZSBuaXRwaWNrcyBmaXhlZCwgYW5kIHdpdGgg Q0kgaGFwcHkuCj4gCj4gUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+CgpJJ20gaW50ZXJwcmV0aW5nIHRoaXMgdG8gcmVmZXIg dG8gdGhlIGVudGlyZSBzZXJpZXMgKGFuZCBub3QganVzdCB0aGlzCm9uZSBwYXRjaCB0aGF0IGFs cmVhZHkgaGFkIHlvdXIgci1iIGFuZCBubyBuaXRwaWNrcyk7IGlmIHRoYXQncyBub3Qgd2hhdAp5 b3UgbWVhbnQsIHBsZWFzZSBsZXQgbWUga25vdy4gIDotKQoKCk1hdHQKCi0tIApNYXR0IFJvcGVy CkdyYXBoaWNzIFNvZnR3YXJlIEVuZ2luZWVyCklvVEcgUGxhdGZvcm0gRW5hYmxpbmcgJiBEZXZl bG9wbWVudApJbnRlbCBDb3Jwb3JhdGlvbgooOTE2KSAzNTYtMjc5NQpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK