From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 13/16] drm/i915/gen9: Propagate watermark calculation failures up the call chain Date: Sun, 24 Apr 2016 12:01:38 +0200 Message-ID: <571C9982.3030700@linux.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> <20160421232054.GF14697@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id E468A6E0BB for ; Sun, 24 Apr 2016 10:01:41 +0000 (UTC) In-Reply-To: <20160421232054.GF14697@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 T3AgMjItMDQtMTYgb20gMDE6MjAgc2NocmVlZiBNYXR0IFJvcGVyOgo+IE9uIFRodSwgQXByIDIx LCAyMDE2IGF0IDAyOjE5OjMzUE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+PiBP cCAyMC0wNC0xNiBvbSAwNDoyNiBzY2hyZWVmIE1hdHQgUm9wZXI6Cj4+PiBPbmNlIHdlIG1vdmUg d2F0ZXJtYXJrIGNhbGN1bGF0aW9uIHRvIHRoZSBhdG9taWMgY2hlY2sgcGhhc2UsIHdlJ2xsIHdh bnQKPj4+IHRvIHN0YXJ0IHJlamVjdGluZyBkaXNwbGF5IGNvbmZpZ3VyYXRpb25zIHRoYXQgZXhj ZWVkIG91dCB3YXRlcm1hcmsKPj4+IGxpbWl0cy4gIEF0IHRoZSBtb21lbnQgd2UganVzdCBhc3N1 bWUgdGhhdCB0aGVyZSdzIGFsd2F5cyBhIHZhbGlkIHNldCBvZgo+Pj4gd2F0ZXJtYXJrcywgZXZl biB0aG91Z2ggdGhpcyBtYXkgbm90IGFjdHVhbGx5IGJlIHRydWUuICBMZXQncyBwcmVwYXJlIGJ5 Cj4+PiBwYXNzaW5nIHJldHVybiBjb2RlcyB1cCB0aHJvdWdoIHRoZSBjYWxsIHN0YWNrIGluIHBy ZXBhcmF0aW9uLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5y b3BlckBpbnRlbC5jb20+Cj4+PiBSZXZpZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KPj4+IC0tLQo+Pj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8IDEwICsrLS0KPj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jICAgICAgfCA5MCArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0KPj4+ICAyIGZpbGVzIGNoYW5nZWQsIDYxIGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygt KQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPj4+IGluZGV4IDgwZDhm NzcuLjdlOGZhODggMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ Pj4gQEAgLTEzMzEyLDcgKzEzMzEyLDcgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNr cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+PiAgICogcGhhc2UuICBUaGUgY29k ZSBoZXJlIHNob3VsZCBiZSBydW4gYWZ0ZXIgdGhlIHBlci1jcnRjIGFuZCBwZXItcGxhbmUgJ2No ZWNrJwo+Pj4gICAqIGhhbmRsZXJzIHRvIGVuc3VyZSB0aGF0IGFsbCBkZXJpdmVkIHN0YXRlIGhh cyBiZWVuIHVwZGF0ZWQuCj4+PiAgICovCj4+PiAtc3RhdGljIHZvaWQgY2FsY193YXRlcm1hcmtf ZGF0YShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+PiArc3RhdGljIGludCBjYWxj X3dhdGVybWFya19kYXRhKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPj4+ICB7Cj4+ PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+Pj4gIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4+PiBAQCAtMTMzNDgsNyAr MTMzNDgsOSBAQCBzdGF0aWMgdm9pZCBjYWxjX3dhdGVybWFya19kYXRhKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKPj4+ICAKPj4+ICAJLyogSXMgdGhlcmUgcGxhdGZvcm0tc3BlY2lm aWMgd2F0ZXJtYXJrIGluZm9ybWF0aW9uIHRvIGNhbGN1bGF0ZT8gKi8KPj4+ICAJaWYgKGRldl9w cml2LT5kaXNwbGF5LmNvbXB1dGVfZ2xvYmFsX3dhdGVybWFya3MpCj4+PiAtCQlkZXZfcHJpdi0+ ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzKHN0YXRlKTsKPj4+ICsJCXJldHVybiBk ZXZfcHJpdi0+ZGlzcGxheS5jb21wdXRlX2dsb2JhbF93YXRlcm1hcmtzKHN0YXRlKTsKPj4+ICsK Pj4+ICsJcmV0dXJuIDA7Cj4+PiAgfQo+Pj4gIAo+Pj4gIC8qKgo+Pj4gQEAgLTEzNDMyLDkgKzEz NDM0LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPj4+ICAJCXJldHVybiByZXQ7Cj4+PiAgCj4+PiAgCWludGVsX2ZiY19jaG9vc2VfY3J0 YyhkZXZfcHJpdiwgc3RhdGUpOwo+Pj4gLQljYWxjX3dhdGVybWFya19kYXRhKHN0YXRlKTsKPj4+ IC0KPj4+IC0JcmV0dXJuIDA7Cj4+PiArCXJldHVybiBjYWxjX3dhdGVybWFya19kYXRhKHN0YXRl KTsKPj4+ICB9Cj4+PiAgCj4+PiAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfcHJlcGFyZV9jb21t aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+Pj4g aW5kZXggMjFmZGUwNS4uZjA3MDU0YSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMK Pj4+IEBAIC0zMjQxLDEzICszMjQxLDE0IEBAIHN0YXRpYyBib29sIHNrbF9kZGJfYWxsb2NhdGlv bl9jaGFuZ2VkKGNvbnN0IHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKm5ld19kZGIsCj4+PiAg CXJldHVybiBmYWxzZTsKPj4+ICB9Cj4+PiAgCj4+PiAtc3RhdGljIGJvb2wgc2tsX2NvbXB1dGVf cGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gLQkJ CQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNzdGF0ZSwKPj4+IC0JCQkJIHN0cnVjdCBpbnRl bF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlLAo+Pj4gLQkJCQkgdWludDE2X3QgZGRiX2FsbG9j YXRpb24sCj4+PiAtCQkJCSBpbnQgbGV2ZWwsCj4+PiAtCQkJCSB1aW50MTZfdCAqb3V0X2Jsb2Nr cywgLyogb3V0ICovCj4+PiAtCQkJCSB1aW50OF90ICpvdXRfbGluZXMgLyogb3V0ICovKQo+Pj4g K3N0YXRpYyBpbnQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAo+Pj4gKwkJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRl LAo+Pj4gKwkJCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKmludGVsX3BzdGF0ZSwKPj4+ICsJ CQkJdWludDE2X3QgZGRiX2FsbG9jYXRpb24sCj4+PiArCQkJCWludCBsZXZlbCwKPj4+ICsJCQkJ dWludDE2X3QgKm91dF9ibG9ja3MsIC8qIG91dCAqLwo+Pj4gKwkJCQl1aW50OF90ICpvdXRfbGlu ZXMsIC8qIG91dCAqLwo+Pj4gKwkJCQlib29sICplbmFibGVkIC8qIG91dCAqLykKPj4+ICB7Cj4+ PiAgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBzdGF0ZSA9ICZpbnRlbF9wc3RhdGUtPmJhc2U7 Cj4+PiAgCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcHN0YXRlLT5mYjsKPj4+IEBAIC0z MjU5LDggKzMyNjAsMTAgQEAgc3RhdGljIGJvb2wgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qg c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gIAl1aW50OF90IGNwcDsKPj4+ ICAJdWludDMyX3Qgd2lkdGggPSAwLCBoZWlnaHQgPSAwOwo+Pj4gIAo+Pj4gLQlpZiAobGF0ZW5j eSA9PSAwIHx8ICFjc3RhdGUtPmJhc2UuYWN0aXZlIHx8ICFpbnRlbF9wc3RhdGUtPnZpc2libGUp Cj4+PiAtCQlyZXR1cm4gZmFsc2U7Cj4+PiArCWlmIChsYXRlbmN5ID09IDAgfHwgIWNzdGF0ZS0+ YmFzZS5hY3RpdmUgfHwgIWludGVsX3BzdGF0ZS0+dmlzaWJsZSkgewo+Pj4gKwkJKmVuYWJsZWQg PSBmYWxzZTsKPj4+ICsJCXJldHVybiAwOwo+Pj4gKwl9Cj4+PiAgCj4+PiAgCXdpZHRoID0gZHJt X3JlY3Rfd2lkdGgoJmludGVsX3BzdGF0ZS0+c3JjKSA+PiAxNjsKPj4+ICAJaGVpZ2h0ID0gZHJt X3JlY3RfaGVpZ2h0KCZpbnRlbF9wc3RhdGUtPnNyYykgPj4gMTY7Cj4+PiBAQCAtMzMyMSwxMyAr MzMyNCwxNiBAQCBzdGF0aWMgYm9vbCBza2xfY29tcHV0ZV9wbGFuZV93bShjb25zdCBzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgCQkJcmVzX2Jsb2NrcysrOwo+Pj4gIAl9 Cj4+PiAgCj4+PiAtCWlmIChyZXNfYmxvY2tzID49IGRkYl9hbGxvY2F0aW9uIHx8IHJlc19saW5l cyA+IDMxKQo+Pj4gLQkJcmV0dXJuIGZhbHNlOwo+Pj4gKwlpZiAocmVzX2Jsb2NrcyA+PSBkZGJf YWxsb2NhdGlvbiB8fCByZXNfbGluZXMgPiAzMSkgewo+Pj4gKwkJKmVuYWJsZWQgPSBmYWxzZTsK Pj4+ICsJCXJldHVybiAwOwo+Pj4gKwl9Cj4+PiAgCj4+PiAgCSpvdXRfYmxvY2tzID0gcmVzX2Js b2NrczsKPj4+ICAJKm91dF9saW5lcyA9IHJlc19saW5lczsKPj4+ICsJKmVuYWJsZWQgPSB0cnVl Owo+Pj4gIAo+Pj4gLQlyZXR1cm4gdHJ1ZTsKPj4+ICsJcmV0dXJuIDA7Cj4+PiAgfQo+Pj4gIAo+ Pj4gIHN0YXRpYyBpbnQKPj4+IEBAIC0zMzQ1LDYgKzMzNTEsNyBAQCBza2xfY29tcHV0ZV93bV9s ZXZlbChjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4+PiAgCXN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqaW50ZWxfcHN0YXRlOwo+Pj4gIAl1aW50MTZfdCBkZGJfYmxv Y2tzOwo+Pj4gIAllbnVtIHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4+PiArCWludCBy ZXQ7Cj4+PiAgCj4+PiAgCWZvcl9lYWNoX2ludGVsX3BsYW5lX29uX2NydGMoZGV2LCBpbnRlbF9j cnRjLCBpbnRlbF9wbGFuZSkgewo+Pj4gIAkJaW50IGkgPSBza2xfd21fcGxhbmVfaWQoaW50ZWxf cGxhbmUpOwo+Pj4gQEAgLTMzNzQsMTMgKzMzODEsMTYgQEAgc2tsX2NvbXB1dGVfd21fbGV2ZWwo Y29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+Pj4gIAo+Pj4gIAkJZGRi X2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5wbGFuZVtwaXBlXVtpXSk7Cj4+PiAg Cj4+PiAtCQlyZXN1bHQtPnBsYW5lX2VuW2ldID0gc2tsX2NvbXB1dGVfcGxhbmVfd20oZGV2X3By aXYsCj4+PiAtCQkJCQkJY3N0YXRlLAo+Pj4gLQkJCQkJCWludGVsX3BzdGF0ZSwKPj4+IC0JCQkJ CQlkZGJfYmxvY2tzLAo+Pj4gLQkJCQkJCWxldmVsLAo+Pj4gLQkJCQkJCSZyZXN1bHQtPnBsYW5l X3Jlc19iW2ldLAo+Pj4gLQkJCQkJCSZyZXN1bHQtPnBsYW5lX3Jlc19sW2ldKTsKPj4+ICsJCXJl dCA9IHNrbF9jb21wdXRlX3BsYW5lX3dtKGRldl9wcml2LAo+Pj4gKwkJCQkJICAgY3N0YXRlLAo+ Pj4gKwkJCQkJICAgaW50ZWxfcHN0YXRlLAo+Pj4gKwkJCQkJICAgZGRiX2Jsb2NrcywKPj4+ICsJ CQkJCSAgIGxldmVsLAo+Pj4gKwkJCQkJICAgJnJlc3VsdC0+cGxhbmVfcmVzX2JbaV0sCj4+PiAr CQkJCQkgICAmcmVzdWx0LT5wbGFuZV9yZXNfbFtpXSwKPj4+ICsJCQkJCSAgICZyZXN1bHQtPnBs YW5lX2VuW2ldKTsKPj4+ICsJCWlmIChyZXQpCj4+PiArCQkJcmV0dXJuIHJldDsKPj4+ICAJfQo+ Pj4gIAo+Pj4gIAlyZXR1cm4gMDsKPj4+IEBAIC0zNDE3LDIxICszNDI3LDI2IEBAIHN0YXRpYyB2 b2lkIHNrbF9jb21wdXRlX3RyYW5zaXRpb25fd20oc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNz dGF0ZSwKPj4+ICAJfQo+Pj4gIH0KPj4+ICAKPj4+IC1zdGF0aWMgdm9pZCBza2xfYnVpbGRfcGlw ZV93bShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+Pj4gLQkJCSAgICAgIHN0cnVj dCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwKPj4+IC0JCQkgICAgICBzdHJ1Y3Qgc2tsX3BpcGVf d20gKnBpcGVfd20pCj4+PiArc3RhdGljIGludCBza2xfYnVpbGRfcGlwZV93bShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlLAo+Pj4gKwkJCSAgICAgc3RydWN0IHNrbF9kZGJfYWxsb2Nh dGlvbiAqZGRiLAo+Pj4gKwkJCSAgICAgc3RydWN0IHNrbF9waXBlX3dtICpwaXBlX3dtKQo+Pj4g IHsKPj4+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNzdGF0ZS0+YmFzZS5jcnRjLT5kZXY7 Cj4+PiAgCWNvbnN0IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4+PiAgCWludCBsZXZlbCwgbWF4X2xldmVsID0gaWxrX3dtX21heF9sZXZlbChk ZXYpOwo+Pj4gKwlpbnQgcmV0Owo+Pj4gIAo+Pj4gIAlmb3IgKGxldmVsID0gMDsgbGV2ZWwgPD0g bWF4X2xldmVsOyBsZXZlbCsrKSB7Cj4+PiAtCQlza2xfY29tcHV0ZV93bV9sZXZlbChkZXZfcHJp diwgZGRiLCBjc3RhdGUsCj4+PiAtCQkJCSAgICAgbGV2ZWwsICZwaXBlX3dtLT53bVtsZXZlbF0p Owo+Pj4gKwkJcmV0ID0gc2tsX2NvbXB1dGVfd21fbGV2ZWwoZGV2X3ByaXYsIGRkYiwgY3N0YXRl LAo+Pj4gKwkJCQkJICAgbGV2ZWwsICZwaXBlX3dtLT53bVtsZXZlbF0pOwo+Pj4gKwkJaWYgKHJl dCkKPj4+ICsJCQlyZXR1cm4gcmV0Owo+Pj4gIAl9Cj4+PiAgCXBpcGVfd20tPmxpbmV0aW1lID0g c2tsX2NvbXB1dGVfbGluZXRpbWVfd20oY3N0YXRlKTsKPj4+ICAKPj4+ICAJc2tsX2NvbXB1dGVf dHJhbnNpdGlvbl93bShjc3RhdGUsICZwaXBlX3dtLT50cmFuc193bSk7Cj4+PiArCj4+PiArCXJl dHVybiAwOwo+Pj4gIH0KPj4+ICAKPj4+ICBzdGF0aWMgdm9pZCBza2xfY29tcHV0ZV93bV9yZXN1 bHRzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiBAQCAtMzY3OCwyMSArMzY5MywyNyBAQCBz dGF0aWMgdm9pZCBza2xfZmx1c2hfd21fdmFsdWVzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKPj4+ICAJfQo+Pj4gIH0KPj4+ICAKPj4+IC1zdGF0aWMgYm9vbCBza2xfdXBkYXRl X3BpcGVfd20oc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUsCj4+PiAtCQkJICAgICAgIHN0 cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gKmRkYiwgLyogb3V0ICovCj4+PiAtCQkJICAgICAgIHN0 cnVjdCBza2xfcGlwZV93bSAqcGlwZV93bSAvKiBvdXQgKi8pCj4+PiArc3RhdGljIGludCBza2xf dXBkYXRlX3BpcGVfd20oc3RydWN0IGRybV9jcnRjX3N0YXRlICpjc3RhdGUsCj4+PiArCQkJICAg ICAgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAqZGRiLCAvKiBvdXQgKi8KPj4+ICsJCQkgICAg ICBzdHJ1Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20sIC8qIG91dCAqLwo+Pj4gKwkJCSAgICAgIGJv b2wgKmNoYW5nZWQgLyogb3V0ICovKQo+Pj4gIHsKPj4+ICAJc3RydWN0IGludGVsX2NydGMgKmlu dGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNzdGF0ZS0+Y3J0Yyk7Cj4+PiAgCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICppbnRlbF9jc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKGNzdGF0ZSk7 Cj4+PiArCWludCByZXQ7Cj4+PiAgCj4+PiAtCXNrbF9idWlsZF9waXBlX3dtKGludGVsX2NzdGF0 ZSwgZGRiLCBwaXBlX3dtKTsKPj4+ICsJcmV0ID0gc2tsX2J1aWxkX3BpcGVfd20oaW50ZWxfY3N0 YXRlLCBkZGIsIHBpcGVfd20pOwo+Pj4gKwlpZiAocmV0KQo+Pj4gKwkJcmV0dXJuIHJldDsKPj4+ ICAKPj4+ICAJaWYgKCFtZW1jbXAoJmludGVsX2NydGMtPndtLmFjdGl2ZS5za2wsIHBpcGVfd20s IHNpemVvZigqcGlwZV93bSkpKQo+Pj4gLQkJcmV0dXJuIGZhbHNlOwo+Pj4gKwkJKmNoYW5nZWQg PSBmYWxzZTsKPj4+ICsJZWxzZQo+Pj4gKwkJKmNoYW5nZWQgPSB0cnVlOwo+Pj4gIAo+Pj4gIAlp bnRlbF9jcnRjLT53bS5hY3RpdmUuc2tsID0gKnBpcGVfd207Cj4+PiAgCj4+PiAtCXJldHVybiB0 cnVlOwo+Pj4gKwlyZXR1cm4gMDsKPj4+ICB9Cj4+PiAgCj4+PiAgc3RhdGljIHZvaWQgc2tsX3Vw ZGF0ZV9vdGhlcl9waXBlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+PiBAQCAtMzcyNSw4 ICszNzQ2LDggQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV9vdGhlcl9waXBlX3dtKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4+PiAgCQlpZiAoIWludGVsX2NydGMtPmFjdGl2ZSkKPj4+ICAJCQlj b250aW51ZTsKPj4+ICAKPj4+IC0JCXdtX2NoYW5nZWQgPSBza2xfdXBkYXRlX3BpcGVfd20oaW50 ZWxfY3J0Yy0+YmFzZS5zdGF0ZSwKPj4+IC0JCQkJCQkmci0+ZGRiLCAmcGlwZV93bSk7Cj4+PiAr CQlza2xfdXBkYXRlX3BpcGVfd20oaW50ZWxfY3J0Yy0+YmFzZS5zdGF0ZSwKPj4+ICsJCQkJICAg JnItPmRkYiwgJnBpcGVfd20sICZ3bV9jaGFuZ2VkKTsKPj4+ICAKPj4+ICAJCS8qCj4+PiAgCQkg KiBJZiB3ZSBlbmQgdXAgcmUtY29tcHV0aW5nIHRoZSBvdGhlciBwaXBlIFdNIHZhbHVlcywgaXQn cwo+Pj4gQEAgLTM4MjcsMTQgKzM4NDgsMTUgQEAgc3RhdGljIHZvaWQgc2tsX3VwZGF0ZV93bShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+PiAgCXN0cnVjdCBza2xfd21fdmFsdWVzICpyZXN1bHRz ID0gJmRldl9wcml2LT53bS5za2xfcmVzdWx0czsKPj4+ICAJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNzdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOwo+Pj4gIAlzdHJ1 Y3Qgc2tsX3BpcGVfd20gKnBpcGVfd20gPSAmY3N0YXRlLT53bS5za2wub3B0aW1hbDsKPj4+IC0K Pj4+ICsJYm9vbCB3bV9jaGFuZ2VkOwo+Pj4gIAo+Pj4gIAkvKiBDbGVhciBhbGwgZGlydHkgZmxh Z3MgKi8KPj4+ICAJcmVzdWx0cy0+ZGlydHlfcGlwZXMgPSAwOwo+Pj4gIAo+Pj4gIAlza2xfY2xl YXJfd20ocmVzdWx0cywgaW50ZWxfY3J0Yy0+cGlwZSk7Cj4+PiAgCj4+PiAtCWlmICghc2tsX3Vw ZGF0ZV9waXBlX3dtKGNydGMtPnN0YXRlLCAmcmVzdWx0cy0+ZGRiLCBwaXBlX3dtKSkKPj4+ICsJ c2tsX3VwZGF0ZV9waXBlX3dtKGNydGMtPnN0YXRlLCAmcmVzdWx0cy0+ZGRiLCBwaXBlX3dtLCAm d21fY2hhbmdlZCk7Cj4+PiArCWlmICghd21fY2hhbmdlZCkKPj4+ICAJCXJldHVybjsKPj4+ICAK Pj4+ICAJc2tsX2NvbXB1dGVfd21fcmVzdWx0cyhkZXYsIHBpcGVfd20sIHJlc3VsdHMsIGludGVs X2NydGMpOwo+PiBXaXRoIHRoZSBuaXRwaWNrcyBmaXhlZCwgYW5kIHdpdGggQ0kgaGFwcHkuCj4+ Cj4+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGlu dXguaW50ZWwuY29tPgo+IEknbSBpbnRlcnByZXRpbmcgdGhpcyB0byByZWZlciB0byB0aGUgZW50 aXJlIHNlcmllcyAoYW5kIG5vdCBqdXN0IHRoaXMKPiBvbmUgcGF0Y2ggdGhhdCBhbHJlYWR5IGhh ZCB5b3VyIHItYiBhbmQgbm8gbml0cGlja3MpOyBpZiB0aGF0J3Mgbm90IHdoYXQKPiB5b3UgbWVh bnQsIHBsZWFzZSBsZXQgbWUga25vdy4gIDotKQo+Ck9vcHMgaW5kZWVkLiBUaGF0J3MgdGhlIGNh c2UuIDotKQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK