From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH] drm/i915: tame the chattermouth (v2) Date: Mon, 15 Dec 2014 22:22:49 +0200 Message-ID: <871to0k6hy.fsf@intel.com> References: <1418669792-25949-1-git-send-email-robdclark@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 024D66E2D0 for ; Mon, 15 Dec 2014 12:23:12 -0800 (PST) In-Reply-To: <1418669792-25949-1-git-send-email-robdclark@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCAxNSBEZWMgMjAxNCwgUm9iIENsYXJrIDxyb2JkY2xhcmtAZ21haWwuY29tPiB3cm90 ZToKPiBNYW55IGRpc3RybydzIGhhdmUgbWVjaGFuaXNtIGluIHBsYWNlIHRvIGNvbGxlY3QgYW5k IGF1dG9tYXRpY2FsbHkgZmlsZQo+IGJ1Z3MgZm9yIGZhaWxlZCBXQVJOKClzLiAgQW5kIHNpbmNl IGk5MTUgaGFzIGEgbG90IG9mIGh3IHN0YXRlIHNhbml0eQo+IGNoZWNrcyB3aGljaCByZXN1bHQg aW4gV0FSTigpLCBpdCBnZW5lcmF0ZXMgcXVpdGUgYSBsb3Qgb2Ygbm9pc2Ugd2hpY2gKPiBpcyBz b21ld2hhdCBkaXNjb25jZXJ0aW5nIHRvIHRoZSBlbmQgdXNlci4KPgo+IFNlcGFyYXRlIG91dCB0 aGUgaW50ZXJuYWwgaHctaXMtaW4tdGhlLXN0YXRlLUktZXhwZWN0ZWQgY2hlY2tzIGludG8KPiBJ OTE1X1NUQVRFX1dBUk4oKXMgYW5kIGFsbG93IGNvbmZpZ3VyYXRpb24gdmlhIGk5MTUudmVyYm9z ZV9jaGVja3MgbW9kdWxlCj4gcGFyYW0gYWJvdXQgd2hldGhlciB0aGlzIHdpbGwgZ2VuZXJhdGUg YSBmdWxsIGJsb3duIHN0YWNrdHJhY2Ugb3IganVzdAo+IERSTV9FUlJPUigpLiAgVGhlIG5ldyBt b2R1bGVwYXJhbSBkZWZhdWx0cyB0byB0cnVlLCBzbyBieSBkZWZhdWx0IHRoZXJlCj4gaXMgbm8g Y2hhbmdlIGluIGJlaGF2aW9yLiAgQW5kIGV2ZW4gd2hlbiBkaXNhYmxlZCwgeW91IHdpbGwgc3Rp bGwgZ2V0Cj4gYW4gZXJyb3IgbWVzc2FnZSBsb2dnZWQuCj4KPiB2MjogcGFpbnQgdGhlIG1hY3Jv IG5hbWVzIGJsdWUsIGNsYXJpZnkgdGhhdCB0aGUgZGVmYXVsdCBiZWhhdmlvcgo+ICAgICByZW1h aW5zIHRoZSBzYW1lIGFzIGJlZm9yZQo+Cj4gU2lnbmVkLW9mZi1ieTogUm9iIENsYXJrIDxyb2Jk Y2xhcmtAZ21haWwuY29tPgoKRldJVyB0aGlzIGlzCgpBY2tlZC1ieTogSmFuaSBOaWt1bGEgPGph bmkubmlrdWxhQGludGVsLmNvbT4KCmV2ZW4gdGhvdWdoIEkgb3Bwb3NlZCB2MS4gV2hpbGUgSSdt IHN0aWxsIG5vdCB0aHJpbGxlZCBieSBhbiBleHRyYQptb2R1bGUgcGFyYW0sIG15IG1haW4gY29u Y2VybiB3YXMgYWxsZXZpYXRlZCBieSBSb2IgcG9pbnRpbmcgb3V0IHRvIG1lCnRoZSBkZWZhdWx0 IG9mIHRoYXQgcGFyYW0gbGVhdmVzIG9sZCBiZWhhdmlvdXIgdW5jaGFuZ2VkLgoKPiAtLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgIHwgIDMwICsrKysrKysKPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYyAgICAgIHwgICA1ICsrCj4gIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgICB8IDEzNCArKysrKysrKysrKysrKysr LS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAg ICAgfCAgIDQgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcnVudGltZV9wbS5jIHwg ICAyICstCj4gIDUgZmlsZXMgY2hhbmdlZCwgMTA1IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9u cygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5kZXggYmIxODkyZC4uYTk3OTNlOSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC02MCw2ICs2MCwzNSBAQAo+ICAjdW5k ZWYgV0FSTl9PTgo+ICAjZGVmaW5lIFdBUk5fT04oeCkJCVdBUk4oeCwgIldBUk5fT04oIiAjeCAi KSIpCj4gIAo+ICsvKiBVc2UgSTkxNV9TVEFURV9XQVJOKHgpIGFuZCBJOTE1X1NUQVRFX1dBUk5f T04oKSAocmF0aGVyIHRoYW4gV0FSTigpIGFuZAo+ICsgKiBXQVJOX09OKCkpIGZvciBodyBzdGF0 ZSBzYW5pdHkgY2hlY2tzIHRvIGNoZWNrIGZvciB1bmV4cGVjdGVkIGNvbmRpdGlvbnMKPiArICog d2hpY2ggbWF5IG5vdCBuZWNlc3NhcmlseSBiZSBhIHVzZXIgdmlzaWJsZSBwcm9ibGVtLiAgVGhp cyB3aWxsIGVpdGhlcgo+ICsgKiBXQVJOKCkgb3IgRFJNX0VSUk9SKCkgZGVwZW5kaW5nIG9uIHRo ZSB2ZXJib3NlX2NoZWNrcyBtb2R1bGVwYXJhbSwgdG8KPiArICogZW5hYmxlIGRpc3Ryb3MgYW5k IHVzZXJzIHRvIHRhaWxvciB0aGVpciBwcmVmZXJyZWQgYW1vdW50IG9mIGk5MTUgYWJydAo+ICsg KiBzcGFtLgo+ICsgKi8KPiArI2RlZmluZSBJOTE1X1NUQVRFX1dBUk4oY29uZGl0aW9uLCBmb3Jt YXQuLi4pICh7CQkJXAo+ICsJaW50IF9fcmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOwkJCQlc Cj4gKwlpZiAodW5saWtlbHkoX19yZXRfd2Fybl9vbikpIHsJCQkJCVwKPiArCQlpZiAoaTkxNS52 ZXJib3NlX3N0YXRlX2NoZWNrcykJCQkJXAo+ICsJCQlfX1dBUk5fcHJpbnRmKGZvcm1hdCk7CQkJ CVwKPiArCQllbHNlIAkJCQkJCQlcCj4gKwkJCURSTV9FUlJPUihmb3JtYXQpOwkJCQlcCj4gKwl9 CQkJCQkJCQlcCj4gKwl1bmxpa2VseShfX3JldF93YXJuX29uKTsJCQkJCVwKPiArfSkKPiArCj4g KyNkZWZpbmUgSTkxNV9TVEFURV9XQVJOX09OKGNvbmRpdGlvbikgKHsJCQkJXAo+ICsJaW50IF9f cmV0X3dhcm5fb24gPSAhIShjb25kaXRpb24pOwkJCQlcCj4gKwlpZiAodW5saWtlbHkoX19yZXRf d2Fybl9vbikpIHsJCQkJCVwKPiArCQlpZiAoaTkxNS52ZXJib3NlX3N0YXRlX2NoZWNrcykJCQkJ XAo+ICsJCQlfX1dBUk5fcHJpbnRmKCJXQVJOX09OKCIgI2NvbmRpdGlvbiAiKVxuIik7CVwKPiAr CQllbHNlIAkJCQkJCQlcCj4gKwkJCURSTV9FUlJPUigiV0FSTl9PTigiICNjb25kaXRpb24gIilc biIpOwkJXAo+ICsJfQkJCQkJCQkJXAo+ICsJdW5saWtlbHkoX19yZXRfd2Fybl9vbik7CQkJCQlc Cj4gK30pCj4gKwo+ICBlbnVtIHBpcGUgewo+ICAJSU5WQUxJRF9QSVBFID0gLTEsCj4gIAlQSVBF X0EgPSAwLAo+IEBAIC0yMzExLDYgKzIzNDAsNyBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMgewo+ICAJ Ym9vbCBkaXNhYmxlX3Z0ZF93YTsKPiAgCWludCB1c2VfbW1pb19mbGlwOwo+ICAJYm9vbCBtbWlv X2RlYnVnOwo+ICsJYm9vbCB2ZXJib3NlX3N0YXRlX2NoZWNrczsKPiAgfTsKPiAgZXh0ZXJuIHN0 cnVjdCBpOTE1X3BhcmFtcyBpOTE1IF9fcmVhZF9tb3N0bHk7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9wYXJhbXMuYwo+IGluZGV4IGM5MWNiMjAuLmRiMDcxNTMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wYXJhbXMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGFyYW1zLmMKPiBAQCAtNTEsNiArNTEsNyBAQCBzdHJ1Y3QgaTkxNV9wYXJhbXMg aTkxNSBfX3JlYWRfbW9zdGx5ID0gewo+ICAJLmRpc2FibGVfdnRkX3dhID0gMCwKPiAgCS51c2Vf bW1pb19mbGlwID0gMCwKPiAgCS5tbWlvX2RlYnVnID0gMCwKPiArCS52ZXJib3NlX3N0YXRlX2No ZWNrcyA9IDEsCj4gIH07Cj4gIAo+ICBtb2R1bGVfcGFyYW1fbmFtZWQobW9kZXNldCwgaTkxNS5t b2Rlc2V0LCBpbnQsIDA0MDApOwo+IEBAIC0xNzMsMyArMTc0LDcgQEAgbW9kdWxlX3BhcmFtX25h bWVkKG1taW9fZGVidWcsIGk5MTUubW1pb19kZWJ1ZywgYm9vbCwgMDYwMCk7Cj4gIE1PRFVMRV9Q QVJNX0RFU0MobW1pb19kZWJ1ZywKPiAgCSJFbmFibGUgdGhlIE1NSU8gZGVidWcgY29kZSAoZGVm YXVsdDogZmFsc2UpLiBUaGlzIG1heSBuZWdhdGl2ZWx5ICIKPiAgCSJhZmZlY3QgcGVyZm9ybWFu Y2UuIik7Cj4gKwo+ICttb2R1bGVfcGFyYW1fbmFtZWQodmVyYm9zZV9zdGF0ZV9jaGVja3MsIGk5 MTUudmVyYm9zZV9zdGF0ZV9jaGVja3MsIGJvb2wsIDA2MDApOwo+ICtNT0RVTEVfUEFSTV9ERVND KHZlcmJvc2Vfc3RhdGVfY2hlY2tzLAo+ICsJIkVuYWJsZSB2ZXJib3NlIGxvZ3MgKGllLiBXQVJO X09OKCkpIGluIGNhc2Ugb2YgdW5leHBlY3RlZCBodyBzdGF0ZSBjb25kaXRpb25zLiIpOwo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCA2MzI0N2M2Li5lZWM5ZTY2IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMDI0LDcgKzEwMjQs NyBAQCB2b2lkIGFzc2VydF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ICAJcmVnID0gRFBMTChwaXBlKTsKPiAgCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAJY3VyX3N0 YXRlID0gISEodmFsICYgRFBMTF9WQ09fRU5BQkxFKTsKPiAtCVdBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAo+ICsJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAgCSAgICAgIlBM TCBzdGF0ZSBhc3NlcnRpb24gZmFpbHVyZSAoZXhwZWN0ZWQgJXMsIGN1cnJlbnQgJXMpXG4iLAo+ ICAJICAgICBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9zdHJpbmcoY3VyX3N0YXRlKSk7Cj4g IH0KPiBAQCAtMTA0MCw3ICsxMDQwLDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2RzaV9wbGwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBib29sIHN0YXRlKQo+ICAJbXV0ZXhfdW5s b2NrKCZkZXZfcHJpdi0+ZHBpb19sb2NrKTsKPiAgCj4gIAljdXJfc3RhdGUgPSB2YWwgJiBEU0lf UExMX1ZDT19FTjsKPiAtCVdBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ICsJSTkxNV9TVEFURV9X QVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAgCSAgICAgIkRTSSBQTEwgc3RhdGUgYXNzZXJ0aW9u IGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxuIiwKPiAgCSAgICAgc3RhdGVfc3Ry aW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gQEAgLTEwNzEsNyAr MTA3MSw3IEBAIHZvaWQgYXNzZXJ0X3NoYXJlZF9kcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCQlyZXR1cm47Cj4gIAo+ICAJY3VyX3N0YXRlID0gcGxsLT5nZXRfaHdf c3RhdGUoZGV2X3ByaXYsIHBsbCwgJmh3X3N0YXRlKTsKPiAtCVdBUk4oY3VyX3N0YXRlICE9IHN0 YXRlLAo+ICsJSTkxNV9TVEFURV9XQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiAgCSAgICAgIiVz IGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gIAkgICAg IHBsbC0+bmFtZSwgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVfc3RyaW5nKGN1cl9zdGF0ZSkp Owo+ICB9Cj4gQEAgLTEwOTUsNyArMTA5NSw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9mZGlfdHgo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCXZhbCA9IEk5MTVfUkVBRChy ZWcpOwo+ICAJCWN1cl9zdGF0ZSA9ICEhKHZhbCAmIEZESV9UWF9FTkFCTEUpOwo+ICAJfQo+IC0J V0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9 IHN0YXRlLAo+ICAJICAgICAiRkRJIFRYIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3Rl ZCAlcywgY3VycmVudCAlcylcbiIsCj4gIAkgICAgIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRl X3N0cmluZyhjdXJfc3RhdGUpKTsKPiAgfQo+IEBAIC0xMTEyLDcgKzExMTIsNyBAQCBzdGF0aWMg dm9pZCBhc3NlcnRfZmRpX3J4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CXJlZyA9IEZESV9SWF9DVEwocGlwZSk7Cj4gIAl2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiAgCWN1 cl9zdGF0ZSA9ICEhKHZhbCAmIEZESV9SWF9FTkFCTEUpOwo+IC0JV0FSTihjdXJfc3RhdGUgIT0g c3RhdGUsCj4gKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ICAJICAgICAi RkRJIFJYIHN0YXRlIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylc biIsCj4gIAkgICAgIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUp KTsKPiAgfQo+IEBAIC0xMTM1LDcgKzExMzUsNyBAQCBzdGF0aWMgdm9pZCBhc3NlcnRfZmRpX3R4 X3BsbF9lbmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCj4gIAly ZWcgPSBGRElfVFhfQ1RMKHBpcGUpOwo+ICAJdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gLQlXQVJO KCEodmFsICYgRkRJX1RYX1BMTF9FTkFCTEUpLCAiRkRJIFRYIFBMTCBhc3NlcnRpb24gZmFpbHVy ZSwgc2hvdWxkIGJlIGFjdGl2ZSBidXQgaXMgZGlzYWJsZWRcbiIpOwo+ICsJSTkxNV9TVEFURV9X QVJOKCEodmFsICYgRkRJX1RYX1BMTF9FTkFCTEUpLCAiRkRJIFRYIFBMTCBhc3NlcnRpb24gZmFp bHVyZSwgc2hvdWxkIGJlIGFjdGl2ZSBidXQgaXMgZGlzYWJsZWRcbiIpOwo+ICB9Cj4gIAo+ICB2 b2lkIGFzc2VydF9mZGlfcnhfcGxsKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK PiBAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgdm9pZCBhc3NlcnRfZmRpX3J4X3BsbChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAlyZWcgPSBGRElfUlhfQ1RMKHBpcGUpOwo+ICAJ dmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gIAljdXJfc3RhdGUgPSAhISh2YWwgJiBGRElfUlhfUExM X0VOQUJMRSk7Cj4gLQlXQVJOKGN1cl9zdGF0ZSAhPSBzdGF0ZSwKPiArCUk5MTVfU1RBVEVfV0FS TihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gIAkgICAgICJGREkgUlggUExMIGFzc2VydGlvbiBmYWls dXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylcbiIsCj4gIAkgICAgIHN0YXRlX3N0cmluZyhz dGF0ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKPiAgfQo+IEBAIC0xMTkwLDcgKzExOTAs NyBAQCB2b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAkgICAgKCh2YWwgJiBQQU5FTF9VTkxPQ0tfTUFTSykgPT0gUEFORUxfVU5M T0NLX1JFR1MpKQo+ICAJCWxvY2tlZCA9IGZhbHNlOwo+ICAKPiAtCVdBUk4ocGFuZWxfcGlwZSA9 PSBwaXBlICYmIGxvY2tlZCwKPiArCUk5MTVfU1RBVEVfV0FSTihwYW5lbF9waXBlID09IHBpcGUg JiYgbG9ja2VkLAo+ICAJICAgICAicGFuZWwgYXNzZXJ0aW9uIGZhaWx1cmUsIHBpcGUgJWMgcmVn cyBsb2NrZWRcbiIsCj4gIAkgICAgIHBpcGVfbmFtZShwaXBlKSk7Cj4gIH0KPiBAQCAtMTIwNiw3 ICsxMjA2LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X2N1cnNvcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gIAllbHNlCj4gIAkJY3VyX3N0YXRlID0gSTkxNV9SRUFEKENVUkNO VFIocGlwZSkpICYgQ1VSU09SX01PREU7Cj4gIAo+IC0JV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUs Cj4gKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ICAJICAgICAiY3Vyc29y IG9uIHBpcGUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxu IiwKPiAgCSAgICAgcGlwZV9uYW1lKHBpcGUpLCBzdGF0ZV9zdHJpbmcoc3RhdGUpLCBzdGF0ZV9z dHJpbmcoY3VyX3N0YXRlKSk7Cj4gIH0KPiBAQCAtMTIzNiw3ICsxMjM2LDcgQEAgdm9pZCBhc3Nl cnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJY3VyX3N0YXRl ID0gISEodmFsICYgUElQRUNPTkZfRU5BQkxFKTsKPiAgCX0KPiAgCj4gLQlXQVJOKGN1cl9zdGF0 ZSAhPSBzdGF0ZSwKPiArCUk5MTVfU1RBVEVfV0FSTihjdXJfc3RhdGUgIT0gc3RhdGUsCj4gIAkg ICAgICJwaXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywgY3VycmVudCAlcylc biIsCj4gIAkgICAgIHBpcGVfbmFtZShwaXBlKSwgc3RhdGVfc3RyaW5nKHN0YXRlKSwgc3RhdGVf c3RyaW5nKGN1cl9zdGF0ZSkpOwo+ICB9Cj4gQEAgLTEyNTEsNyArMTI1MSw3IEBAIHN0YXRpYyB2 b2lkIGFzc2VydF9wbGFuZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAly ZWcgPSBEU1BDTlRSKHBsYW5lKTsKPiAgCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAJY3VyX3N0 YXRlID0gISEodmFsICYgRElTUExBWV9QTEFORV9FTkFCTEUpOwo+IC0JV0FSTihjdXJfc3RhdGUg IT0gc3RhdGUsCj4gKwlJOTE1X1NUQVRFX1dBUk4oY3VyX3N0YXRlICE9IHN0YXRlLAo+ICAJICAg ICAicGxhbmUgJWMgYXNzZXJ0aW9uIGZhaWx1cmUgKGV4cGVjdGVkICVzLCBjdXJyZW50ICVzKVxu IiwKPiAgCSAgICAgcGxhbmVfbmFtZShwbGFuZSksIHN0YXRlX3N0cmluZyhzdGF0ZSksIHN0YXRl X3N0cmluZyhjdXJfc3RhdGUpKTsKPiAgfQo+IEBAIC0xMjcxLDcgKzEyNzEsNyBAQCBzdGF0aWMg dm9pZCBhc3NlcnRfcGxhbmVzX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA0KSB7Cj4gIAkJcmVnID0gRFNQ Q05UUihwaXBlKTsKPiAgCQl2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiAtCQlXQVJOKHZhbCAmIERJ U1BMQVlfUExBTkVfRU5BQkxFLAo+ICsJCUk5MTVfU1RBVEVfV0FSTih2YWwgJiBESVNQTEFZX1BM QU5FX0VOQUJMRSwKPiAgCQkgICAgICJwbGFuZSAlYyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxk IGJlIGRpc2FibGVkIGJ1dCBub3RcbiIsCj4gIAkJICAgICBwbGFuZV9uYW1lKHBpcGUpKTsKPiAg CQlyZXR1cm47Cj4gQEAgLTEyODMsNyArMTI4Myw3IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9wbGFu ZXNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCXZhbCA9 IEk5MTVfUkVBRChyZWcpOwo+ICAJCWN1cl9waXBlID0gKHZhbCAmIERJU1BQTEFORV9TRUxfUElQ RV9NQVNLKSA+Pgo+ICAJCQlESVNQUExBTkVfU0VMX1BJUEVfU0hJRlQ7Cj4gLQkJV0FSTigodmFs ICYgRElTUExBWV9QTEFORV9FTkFCTEUpICYmIHBpcGUgPT0gY3VyX3BpcGUsCj4gKwkJSTkxNV9T VEFURV9XQVJOKCh2YWwgJiBESVNQTEFZX1BMQU5FX0VOQUJMRSkgJiYgcGlwZSA9PSBjdXJfcGlw ZSwKPiAgCQkgICAgICJwbGFuZSAlYyBhc3NlcnRpb24gZmFpbHVyZSwgc2hvdWxkIGJlIG9mZiBv biBwaXBlICVjIGJ1dCBpcyBzdGlsbCBhY3RpdmVcbiIsCj4gIAkJICAgICBwbGFuZV9uYW1lKGkp LCBwaXBlX25hbWUocGlwZSkpOwo+ICAJfQo+IEBAIC0xMjk5LDcgKzEyOTksNyBAQCBzdGF0aWMg dm9pZCBhc3NlcnRfc3ByaXRlc19kaXNhYmxlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkgewo+ICAJCWZvcl9lYWNo X3Nwcml0ZShwaXBlLCBzcHJpdGUpIHsKPiAgCQkJdmFsID0gSTkxNV9SRUFEKFBMQU5FX0NUTChw aXBlLCBzcHJpdGUpKTsKPiAtCQkJV0FSTih2YWwgJiBQTEFORV9DVExfRU5BQkxFLAo+ICsJCQlJ OTE1X1NUQVRFX1dBUk4odmFsICYgUExBTkVfQ1RMX0VOQUJMRSwKPiAgCQkJICAgICAicGxhbmUg JWQgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBvZmYgb24gcGlwZSAlYyBidXQgaXMgc3Rp bGwgYWN0aXZlXG4iLAo+ICAJCQkgICAgIHNwcml0ZSwgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCQl9 Cj4gQEAgLTEzMDcsMjAgKzEzMDcsMjAgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3Nwcml0ZXNfZGlz YWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCWZvcl9lYWNoX3Nw cml0ZShwaXBlLCBzcHJpdGUpIHsKPiAgCQkJcmVnID0gU1BDTlRSKHBpcGUsIHNwcml0ZSk7Cj4g IAkJCXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+IC0JCQlXQVJOKHZhbCAmIFNQX0VOQUJMRSwKPiAr CQkJSTkxNV9TVEFURV9XQVJOKHZhbCAmIFNQX0VOQUJMRSwKPiAgCQkJICAgICAic3ByaXRlICVj IGFzc2VydGlvbiBmYWlsdXJlLCBzaG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxs IGFjdGl2ZVxuIiwKPiAgCQkJICAgICBzcHJpdGVfbmFtZShwaXBlLCBzcHJpdGUpLCBwaXBlX25h bWUocGlwZSkpOwo+ICAJCX0KPiAgCX0gZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0g Nykgewo+ICAJCXJlZyA9IFNQUkNUTChwaXBlKTsKPiAgCQl2YWwgPSBJOTE1X1JFQUQocmVnKTsK PiAtCQlXQVJOKHZhbCAmIFNQUklURV9FTkFCTEUsCj4gKwkJSTkxNV9TVEFURV9XQVJOKHZhbCAm IFNQUklURV9FTkFCTEUsCj4gIAkJICAgICAic3ByaXRlICVjIGFzc2VydGlvbiBmYWlsdXJlLCBz aG91bGQgYmUgb2ZmIG9uIHBpcGUgJWMgYnV0IGlzIHN0aWxsIGFjdGl2ZVxuIiwKPiAgCQkgICAg IHBsYW5lX25hbWUocGlwZSksIHBpcGVfbmFtZShwaXBlKSk7Cj4gIAl9IGVsc2UgaWYgKElOVEVM X0lORk8oZGV2KS0+Z2VuID49IDUpIHsKPiAgCQlyZWcgPSBEVlNDTlRSKHBpcGUpOwo+ICAJCXZh bCA9IEk5MTVfUkVBRChyZWcpOwo+IC0JCVdBUk4odmFsICYgRFZTX0VOQUJMRSwKPiArCQlJOTE1 X1NUQVRFX1dBUk4odmFsICYgRFZTX0VOQUJMRSwKPiAgCQkgICAgICJzcHJpdGUgJWMgYXNzZXJ0 aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBvZmYgb24gcGlwZSAlYyBidXQgaXMgc3RpbGwgYWN0aXZl XG4iLAo+ICAJCSAgICAgcGxhbmVfbmFtZShwaXBlKSwgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCX0K PiBAQCAtMTMyOCw3ICsxMzI4LDcgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3Nwcml0ZXNfZGlzYWJs ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAKPiAgc3RhdGljIHZvaWQg YXNzZXJ0X3ZibGFua19kaXNhYmxlZChzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gIHsKPiAtCWlm IChXQVJOX09OKGRybV9jcnRjX3ZibGFua19nZXQoY3J0YykgPT0gMCkpCj4gKwlpZiAoSTkxNV9T VEFURV9XQVJOX09OKGRybV9jcnRjX3ZibGFua19nZXQoY3J0YykgPT0gMCkpCj4gIAkJZHJtX2Ny dGNfdmJsYW5rX3B1dChjcnRjKTsKPiAgfQo+ICAKPiBAQCAtMTMzNywxMiArMTMzNywxMiBAQCBz dGF0aWMgdm9pZCBpYnhfYXNzZXJ0X3BjaF9yZWZjbGtfZW5hYmxlZChzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYpCj4gIAl1MzIgdmFsOwo+ICAJYm9vbCBlbmFibGVkOwo+ICAKPiAt CVdBUk5fT04oIShIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2KSB8fCBIQVNfUENIX0NQVChkZXZf cHJpdi0+ZGV2KSkpOwo+ICsJSTkxNV9TVEFURV9XQVJOX09OKCEoSEFTX1BDSF9JQlgoZGV2X3By aXYtPmRldikgfHwgSEFTX1BDSF9DUFQoZGV2X3ByaXYtPmRldikpKTsKPiAgCj4gIAl2YWwgPSBJ OTE1X1JFQUQoUENIX0RSRUZfQ09OVFJPTCk7Cj4gIAllbmFibGVkID0gISEodmFsICYgKERSRUZf U1NDX1NPVVJDRV9NQVNLIHwgRFJFRl9OT05TUFJFQURfU09VUkNFX01BU0sgfAo+ICAJCQkgICAg RFJFRl9TVVBFUlNQUkVBRF9TT1VSQ0VfTUFTSykpOwo+IC0JV0FSTighZW5hYmxlZCwgIlBDSCBy ZWZjbGsgYXNzZXJ0aW9uIGZhaWx1cmUsIHNob3VsZCBiZSBhY3RpdmUgYnV0IGlzIGRpc2FibGVk XG4iKTsKPiArCUk5MTVfU1RBVEVfV0FSTighZW5hYmxlZCwgIlBDSCByZWZjbGsgYXNzZXJ0aW9u IGZhaWx1cmUsIHNob3VsZCBiZSBhY3RpdmUgYnV0IGlzIGRpc2FibGVkXG4iKTsKPiAgfQo+ICAK PiAgc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF90cmFuc2NvZGVyX2Rpc2FibGVkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBAQCAtMTM1NSw3ICsxMzU1LDcgQEAgc3RhdGljIHZv aWQgYXNzZXJ0X3BjaF90cmFuc2NvZGVyX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKPiAgCXJlZyA9IFBDSF9UUkFOU0NPTkYocGlwZSk7Cj4gIAl2YWwgPSBJOTE1 X1JFQUQocmVnKTsKPiAgCWVuYWJsZWQgPSAhISh2YWwgJiBUUkFOU19FTkFCTEUpOwo+IC0JV0FS TihlbmFibGVkLAo+ICsJSTkxNV9TVEFURV9XQVJOKGVuYWJsZWQsCj4gIAkgICAgICJ0cmFuc2Nv ZGVyIGFzc2VydGlvbiBmYWlsZWQsIHNob3VsZCBiZSBvZmYgb24gcGlwZSAlYyBidXQgaXMgc3Rp bGwgYWN0aXZlXG4iLAo+ICAJICAgICBwaXBlX25hbWUocGlwZSkpOwo+ICB9Cj4gQEAgLTE0MzUs MTEgKzE0MzUsMTEgQEAgc3RhdGljIHZvaWQgYXNzZXJ0X3BjaF9kcF9kaXNhYmxlZChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCQkgICBlbnVtIHBpcGUgcGlwZSwgaW50 IHJlZywgdTMyIHBvcnRfc2VsKQo+ICB7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4g LQlXQVJOKGRwX3BpcGVfZW5hYmxlZChkZXZfcHJpdiwgcGlwZSwgcG9ydF9zZWwsIHZhbCksCj4g KwlJOTE1X1NUQVRFX1dBUk4oZHBfcGlwZV9lbmFibGVkKGRldl9wcml2LCBwaXBlLCBwb3J0X3Nl bCwgdmFsKSwKPiAgCSAgICAgIlBDSCBEUCAoMHglMDh4KSBlbmFibGVkIG9uIHRyYW5zY29kZXIg JWMsIHNob3VsZCBiZSBkaXNhYmxlZFxuIiwKPiAgCSAgICAgcmVnLCBwaXBlX25hbWUocGlwZSkp Owo+ICAKPiAtCVdBUk4oSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikgJiYgKHZhbCAmIERQX1BP UlRfRU4pID09IDAKPiArCUk5MTVfU1RBVEVfV0FSTihIQVNfUENIX0lCWChkZXZfcHJpdi0+ZGV2 KSAmJiAodmFsICYgRFBfUE9SVF9FTikgPT0gMAo+ICAJICAgICAmJiAodmFsICYgRFBfUElQRUJf U0VMRUNUKSwKPiAgCSAgICAgIklCWCBQQ0ggZHAgcG9ydCBzdGlsbCB1c2luZyB0cmFuc2NvZGVy IEJcbiIpOwo+ICB9Cj4gQEAgLTE0NDgsMTEgKzE0NDgsMTEgQEAgc3RhdGljIHZvaWQgYXNzZXJ0 X3BjaF9oZG1pX2Rpc2FibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg CQkJCSAgICAgZW51bSBwaXBlIHBpcGUsIGludCByZWcpCj4gIHsKPiAgCXUzMiB2YWwgPSBJOTE1 X1JFQUQocmVnKTsKPiAtCVdBUk4oaGRtaV9waXBlX2VuYWJsZWQoZGV2X3ByaXYsIHBpcGUsIHZh bCksCj4gKwlJOTE1X1NUQVRFX1dBUk4oaGRtaV9waXBlX2VuYWJsZWQoZGV2X3ByaXYsIHBpcGUs IHZhbCksCj4gIAkgICAgICJQQ0ggSERNSSAoMHglMDh4KSBlbmFibGVkIG9uIHRyYW5zY29kZXIg JWMsIHNob3VsZCBiZSBkaXNhYmxlZFxuIiwKPiAgCSAgICAgcmVnLCBwaXBlX25hbWUocGlwZSkp Owo+ICAKPiAtCVdBUk4oSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRldikgJiYgKHZhbCAmIFNEVk9f RU5BQkxFKSA9PSAwCj4gKwlJOTE1X1NUQVRFX1dBUk4oSEFTX1BDSF9JQlgoZGV2X3ByaXYtPmRl dikgJiYgKHZhbCAmIFNEVk9fRU5BQkxFKSA9PSAwCj4gIAkgICAgICYmICh2YWwgJiBTRFZPX1BJ UEVfQl9TRUxFQ1QpLAo+ICAJICAgICAiSUJYIFBDSCBoZG1pIHBvcnQgc3RpbGwgdXNpbmcgdHJh bnNjb2RlciBCXG4iKTsKPiAgfQo+IEBAIC0xNDY5LDEzICsxNDY5LDEzIEBAIHN0YXRpYyB2b2lk IGFzc2VydF9wY2hfcG9ydHNfZGlzYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAo+ICAKPiAgCXJlZyA9IFBDSF9BRFBBOwo+ICAJdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4g LQlXQVJOKGFkcGFfcGlwZV9lbmFibGVkKGRldl9wcml2LCBwaXBlLCB2YWwpLAo+ICsJSTkxNV9T VEFURV9XQVJOKGFkcGFfcGlwZV9lbmFibGVkKGRldl9wcml2LCBwaXBlLCB2YWwpLAo+ICAJICAg ICAiUENIIFZHQSBlbmFibGVkIG9uIHRyYW5zY29kZXIgJWMsIHNob3VsZCBiZSBkaXNhYmxlZFxu IiwKPiAgCSAgICAgcGlwZV9uYW1lKHBpcGUpKTsKPiAgCj4gIAlyZWcgPSBQQ0hfTFZEUzsKPiAg CXZhbCA9IEk5MTVfUkVBRChyZWcpOwo+IC0JV0FSTihsdmRzX3BpcGVfZW5hYmxlZChkZXZfcHJp diwgcGlwZSwgdmFsKSwKPiArCUk5MTVfU1RBVEVfV0FSTihsdmRzX3BpcGVfZW5hYmxlZChkZXZf cHJpdiwgcGlwZSwgdmFsKSwKPiAgCSAgICAgIlBDSCBMVkRTIGVuYWJsZWQgb24gdHJhbnNjb2Rl ciAlYywgc2hvdWxkIGJlIGRpc2FibGVkXG4iLAo+ICAJICAgICBwaXBlX25hbWUocGlwZSkpOwo+ ICAKPiBAQCAtNTM4MiwyNSArNTM4MiwyNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3Jf Y2hlY2tfc3RhdGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAJCWlmIChj b25uZWN0b3ItPm1zdF9wb3J0KQo+ICAJCQlyZXR1cm47Cj4gIAo+IC0JCVdBUk4oY29ubmVjdG9y LT5iYXNlLmRwbXMgPT0gRFJNX01PREVfRFBNU19PRkYsCj4gKwkJSTkxNV9TVEFURV9XQVJOKGNv bm5lY3Rvci0+YmFzZS5kcG1zID09IERSTV9NT0RFX0RQTVNfT0ZGLAo+ICAJCSAgICAgIndyb25n IGNvbm5lY3RvciBkcG1zIHN0YXRlXG4iKTsKPiAtCQlXQVJOKGNvbm5lY3Rvci0+YmFzZS5lbmNv ZGVyICE9ICZlbmNvZGVyLT5iYXNlLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihjb25uZWN0b3ItPmJh c2UuZW5jb2RlciAhPSAmZW5jb2Rlci0+YmFzZSwKPiAgCQkgICAgICJhY3RpdmUgY29ubmVjdG9y IG5vdCBsaW5rZWQgdG8gZW5jb2RlclxuIik7Cj4gIAo+ICAJCWlmIChlbmNvZGVyKSB7Cj4gLQkJ CVdBUk4oIWVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlLAo+ICsJCQlJOTE1X1NUQVRFX1dBUk4o IWVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlLAo+ICAJCQkgICAgICJlbmNvZGVyLT5jb25uZWN0 b3JzX2FjdGl2ZSBub3Qgc2V0XG4iKTsKPiAgCj4gIAkJCWVuY29kZXJfZW5hYmxlZCA9IGVuY29k ZXItPmdldF9od19zdGF0ZShlbmNvZGVyLCAmcGlwZSk7Cj4gLQkJCVdBUk4oIWVuY29kZXJfZW5h YmxlZCwgImVuY29kZXIgbm90IGVuYWJsZWRcbiIpOwo+IC0JCQlpZiAoV0FSTl9PTighZW5jb2Rl ci0+YmFzZS5jcnRjKSkKPiArCQkJSTkxNV9TVEFURV9XQVJOKCFlbmNvZGVyX2VuYWJsZWQsICJl bmNvZGVyIG5vdCBlbmFibGVkXG4iKTsKPiArCQkJaWYgKEk5MTVfU1RBVEVfV0FSTl9PTighZW5j b2Rlci0+YmFzZS5jcnRjKSkKPiAgCQkJCXJldHVybjsKPiAgCj4gIAkJCWNydGMgPSBlbmNvZGVy LT5iYXNlLmNydGM7Cj4gIAo+IC0JCQlXQVJOKCFjcnRjLT5lbmFibGVkLCAiY3J0YyBub3QgZW5h YmxlZFxuIik7Cj4gLQkJCVdBUk4oIXRvX2ludGVsX2NydGMoY3J0YyktPmFjdGl2ZSwgImNydGMg bm90IGFjdGl2ZVxuIik7Cj4gLQkJCVdBUk4ocGlwZSAhPSB0b19pbnRlbF9jcnRjKGNydGMpLT5w aXBlLAo+ICsJCQlJOTE1X1NUQVRFX1dBUk4oIWNydGMtPmVuYWJsZWQsICJjcnRjIG5vdCBlbmFi bGVkXG4iKTsKPiArCQkJSTkxNV9TVEFURV9XQVJOKCF0b19pbnRlbF9jcnRjKGNydGMpLT5hY3Rp dmUsICJjcnRjIG5vdCBhY3RpdmVcbiIpOwo+ICsJCQlJOTE1X1NUQVRFX1dBUk4ocGlwZSAhPSB0 b19pbnRlbF9jcnRjKGNydGMpLT5waXBlLAo+ICAJCQkgICAgICJlbmNvZGVyIGFjdGl2ZSBvbiB0 aGUgd3JvbmcgcGlwZVxuIik7Cj4gIAkJfQo+ICAJfQo+IEBAIC03ODEwLDI0ICs3ODEwLDI0IEBA IHN0YXRpYyB2b2lkIGFzc2VydF9jYW5fZGlzYWJsZV9sY3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYpCj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKPiAgCj4gIAlmb3Jf ZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0YykKPiAtCQlXQVJOKGNydGMtPmFjdGl2ZSwgIkNSVEMg Zm9yIHBpcGUgJWMgZW5hYmxlZFxuIiwKPiArCQlJOTE1X1NUQVRFX1dBUk4oY3J0Yy0+YWN0aXZl LCAiQ1JUQyBmb3IgcGlwZSAlYyBlbmFibGVkXG4iLAo+ICAJCSAgICAgcGlwZV9uYW1lKGNydGMt PnBpcGUpKTsKPiAgCj4gLQlXQVJOKEk5MTVfUkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKSwgIlBv d2VyIHdlbGwgb25cbiIpOwo+IC0JV0FSTihJOTE1X1JFQUQoU1BMTF9DVEwpICYgU1BMTF9QTExf RU5BQkxFLCAiU1BMTCBlbmFibGVkXG4iKTsKPiAtCVdBUk4oSTkxNV9SRUFEKFdSUExMX0NUTDEp ICYgV1JQTExfUExMX0VOQUJMRSwgIldSUExMMSBlbmFibGVkXG4iKTsKPiAtCVdBUk4oSTkxNV9S RUFEKFdSUExMX0NUTDIpICYgV1JQTExfUExMX0VOQUJMRSwgIldSUExMMiBlbmFibGVkXG4iKTsK PiAtCVdBUk4oSTkxNV9SRUFEKFBDSF9QUF9TVEFUVVMpICYgUFBfT04sICJQYW5lbCBwb3dlciBv blxuIik7Cj4gLQlXQVJOKEk5MTVfUkVBRChCTENfUFdNX0NQVV9DVEwyKSAmIEJMTV9QV01fRU5B QkxFLAo+ICsJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChIU1dfUFdSX1dFTExfRFJJVkVSKSwg IlBvd2VyIHdlbGwgb25cbiIpOwo+ICsJSTkxNV9TVEFURV9XQVJOKEk5MTVfUkVBRChTUExMX0NU TCkgJiBTUExMX1BMTF9FTkFCTEUsICJTUExMIGVuYWJsZWRcbiIpOwo+ICsJSTkxNV9TVEFURV9X QVJOKEk5MTVfUkVBRChXUlBMTF9DVEwxKSAmIFdSUExMX1BMTF9FTkFCTEUsICJXUlBMTDEgZW5h YmxlZFxuIik7Cj4gKwlJOTE1X1NUQVRFX1dBUk4oSTkxNV9SRUFEKFdSUExMX0NUTDIpICYgV1JQ TExfUExMX0VOQUJMRSwgIldSUExMMiBlbmFibGVkXG4iKTsKPiArCUk5MTVfU1RBVEVfV0FSTihJ OTE1X1JFQUQoUENIX1BQX1NUQVRVUykgJiBQUF9PTiwgIlBhbmVsIHBvd2VyIG9uXG4iKTsKPiAr CUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoQkxDX1BXTV9DUFVfQ1RMMikgJiBCTE1fUFdNX0VO QUJMRSwKPiAgCSAgICAgIkNQVSBQV00xIGVuYWJsZWRcbiIpOwo+ICAJaWYgKElTX0hBU1dFTEwo ZGV2KSkKPiAtCQlXQVJOKEk5MTVfUkVBRChIU1dfQkxDX1BXTTJfQ1RMKSAmIEJMTV9QV01fRU5B QkxFLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihJOTE1X1JFQUQoSFNXX0JMQ19QV00yX0NUTCkgJiBC TE1fUFdNX0VOQUJMRSwKPiAgCQkgICAgICJDUFUgUFdNMiBlbmFibGVkXG4iKTsKPiAtCVdBUk4o STkxNV9SRUFEKEJMQ19QV01fUENIX0NUTDEpICYgQkxNX1BDSF9QV01fRU5BQkxFLAo+ICsJSTkx NV9TVEFURV9XQVJOKEk5MTVfUkVBRChCTENfUFdNX1BDSF9DVEwxKSAmIEJMTV9QQ0hfUFdNX0VO QUJMRSwKPiAgCSAgICAgIlBDSCBQV00xIGVuYWJsZWRcbiIpOwo+IC0JV0FSTihJOTE1X1JFQUQo VVRJTF9QSU5fQ1RMKSAmIFVUSUxfUElOX0VOQUJMRSwKPiArCUk5MTVfU1RBVEVfV0FSTihJOTE1 X1JFQUQoVVRJTF9QSU5fQ1RMKSAmIFVUSUxfUElOX0VOQUJMRSwKPiAgCSAgICAgIlV0aWxpdHkg cGluIGVuYWJsZWRcbiIpOwo+IC0JV0FSTihJOTE1X1JFQUQoUENIX0dUQ19DVEwpICYgUENIX0dU Q19FTkFCTEUsICJQQ0ggR1RDIGVuYWJsZWRcbiIpOwo+ICsJSTkxNV9TVEFURV9XQVJOKEk5MTVf UkVBRChQQ0hfR1RDX0NUTCkgJiBQQ0hfR1RDX0VOQUJMRSwgIlBDSCBHVEMgZW5hYmxlZFxuIik7 Cj4gIAo+ICAJLyoKPiAgCSAqIEluIHRoZW9yeSB3ZSBjYW4gc3RpbGwgbGVhdmUgSVJRcyBlbmFi bGVkLCBhcyBsb25nIGFzIG9ubHkgdGhlIEhQRAo+IEBAIC03ODM1LDcgKzc4MzUsNyBAQCBzdGF0 aWMgdm9pZCBhc3NlcnRfY2FuX2Rpc2FibGVfbGNwbGwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ICAJICogZ2VuLXNwZWNpZmljIGFuZCBzaW5jZSB3ZSBvbmx5IGRpc2FibGUg TENQTEwgYWZ0ZXIgd2UgZnVsbHkgZGlzYWJsZQo+ICAJICogdGhlIGludGVycnVwdHMsIHRoZSBj aGVjayBiZWxvdyBzaG91bGQgYmUgZW5vdWdoLgo+ICAJICovCj4gLQlXQVJOKGludGVsX2lycXNf ZW5hYmxlZChkZXZfcHJpdiksICJJUlFzIGVuYWJsZWRcbiIpOwo+ICsJSTkxNV9TVEFURV9XQVJO KGludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdiksICJJUlFzIGVuYWJsZWRcbiIpOwo+ICB9Cj4g IAo+ICBzdGF0aWMgdWludDMyX3QgaHN3X3JlYWRfZGNvbXAoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQo+IEBAIC0xMDc0Miw3ICsxMDc0Miw3IEBAIGNoZWNrX2Nvbm5lY3Rvcl9z dGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCSAqIC0+Z2V0X2h3X3N0YXRlIGNhbGxi YWNrcy4gKi8KPiAgCQlpbnRlbF9jb25uZWN0b3JfY2hlY2tfc3RhdGUoY29ubmVjdG9yKTsKPiAg Cj4gLQkJV0FSTigmY29ubmVjdG9yLT5uZXdfZW5jb2Rlci0+YmFzZSAhPSBjb25uZWN0b3ItPmJh c2UuZW5jb2RlciwKPiArCQlJOTE1X1NUQVRFX1dBUk4oJmNvbm5lY3Rvci0+bmV3X2VuY29kZXIt PmJhc2UgIT0gY29ubmVjdG9yLT5iYXNlLmVuY29kZXIsCj4gIAkJICAgICAiY29ubmVjdG9yJ3Mg c3RhZ2VkIGVuY29kZXIgZG9lc24ndCBtYXRjaCBjdXJyZW50IGVuY29kZXJcbiIpOwo+ICAJfQo+ ICB9Cj4gQEAgLTEwNzYyLDkgKzEwNzYyLDkgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAJCQkgICAgICBlbmNvZGVyLT5iYXNlLmJhc2UuaWQsCj4gIAkJ CSAgICAgIGVuY29kZXItPmJhc2UubmFtZSk7Cj4gIAo+IC0JCVdBUk4oJmVuY29kZXItPm5ld19j cnRjLT5iYXNlICE9IGVuY29kZXItPmJhc2UuY3J0YywKPiArCQlJOTE1X1NUQVRFX1dBUk4oJmVu Y29kZXItPm5ld19jcnRjLT5iYXNlICE9IGVuY29kZXItPmJhc2UuY3J0YywKPiAgCQkgICAgICJl bmNvZGVyJ3Mgc3RhZ2UgY3J0YyBkb2Vzbid0IG1hdGNoIGN1cnJlbnQgY3J0Y1xuIik7Cj4gLQkJ V0FSTihlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSAmJiAhZW5jb2Rlci0+YmFzZS5jcnRjLAo+ ICsJCUk5MTVfU1RBVEVfV0FSTihlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSAmJiAhZW5jb2Rl ci0+YmFzZS5jcnRjLAo+ICAJCSAgICAgImVuY29kZXIncyBhY3RpdmVfY29ubmVjdG9ycyBzZXQs IGJ1dCBubyBjcnRjXG4iKTsKPiAgCj4gIAkJbGlzdF9mb3JfZWFjaF9lbnRyeShjb25uZWN0b3Is ICZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rvcl9saXN0LAo+IEBAIC0xMDc4MywxOSArMTA3ODMs MTkgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCWlm ICghZW5hYmxlZCAmJiBlbmNvZGVyLT5iYXNlLmVuY29kZXJfdHlwZSA9PSBEUk1fTU9ERV9FTkNP REVSX0RQTVNUKQo+ICAJCQljb250aW51ZTsKPiAgCj4gLQkJV0FSTighIWVuY29kZXItPmJhc2Uu Y3J0YyAhPSBlbmFibGVkLAo+ICsJCUk5MTVfU1RBVEVfV0FSTighIWVuY29kZXItPmJhc2UuY3J0 YyAhPSBlbmFibGVkLAo+ICAJCSAgICAgImVuY29kZXIncyBlbmFibGVkIHN0YXRlIG1pc21hdGNo ICIKPiAgCQkgICAgICIoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKPiAgCQkgICAgICEhZW5j b2Rlci0+YmFzZS5jcnRjLCBlbmFibGVkKTsKPiAtCQlXQVJOKGFjdGl2ZSAmJiAhZW5jb2Rlci0+ YmFzZS5jcnRjLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgIWVuY29kZXItPmJhc2Uu Y3J0YywKPiAgCQkgICAgICJhY3RpdmUgZW5jb2RlciB3aXRoIG5vIGNydGNcbiIpOwo+ICAKPiAt CQlXQVJOKGVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlICE9IGFjdGl2ZSwKPiArCQlJOTE1X1NU QVRFX1dBUk4oZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUgIT0gYWN0aXZlLAo+ICAJCSAgICAg ImVuY29kZXIncyBjb21wdXRlZCBhY3RpdmUgc3RhdGUgZG9lc24ndCBtYXRjaCB0cmFja2VkIGFj dGl2ZSBzdGF0ZSAiCj4gIAkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsIGFjdGl2 ZSwgZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUpOwo+ICAKPiAgCQlhY3RpdmUgPSBlbmNvZGVy LT5nZXRfaHdfc3RhdGUoZW5jb2RlciwgJnBpcGUpOwo+IC0JCVdBUk4oYWN0aXZlICE9IGVuY29k ZXItPmNvbm5lY3RvcnNfYWN0aXZlLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgIT0gZW5j b2Rlci0+Y29ubmVjdG9yc19hY3RpdmUsCj4gIAkJICAgICAiZW5jb2RlcidzIGh3IHN0YXRlIGRv ZXNuJ3QgbWF0Y2ggc3cgdHJhY2tpbmcgIgo+ICAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQg JWkpXG4iLAo+ICAJCSAgICAgZW5jb2Rlci0+Y29ubmVjdG9yc19hY3RpdmUsIGFjdGl2ZSk7Cj4g QEAgLTEwODA0LDcgKzEwODA0LDcgQEAgY2hlY2tfZW5jb2Rlcl9zdGF0ZShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJdHJhY2tlZF9waXBlID0gdG9faW50 ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpLT5waXBlOwo+IC0JCVdBUk4oYWN0aXZlICYmIHBp cGUgIT0gdHJhY2tlZF9waXBlLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihhY3RpdmUgJiYgcGlwZSAh PSB0cmFja2VkX3BpcGUsCj4gIAkJICAgICAiYWN0aXZlIGVuY29kZXIncyBwaXBlIGRvZXNuJ3Qg bWF0Y2giCj4gIAkJICAgICAiKGV4cGVjdGVkICVpLCBmb3VuZCAlaSlcbiIsCj4gIAkJICAgICB0 cmFja2VkX3BpcGUsIHBpcGUpOwo+IEBAIC0xMDgyOSw3ICsxMDgyOSw3IEBAIGNoZWNrX2NydGNf c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlEUk1fREVCVUdfS01TKCJbQ1JUQzol ZF1cbiIsCj4gIAkJCSAgICAgIGNydGMtPmJhc2UuYmFzZS5pZCk7Cj4gIAo+IC0JCVdBUk4oY3J0 Yy0+YWN0aXZlICYmICFjcnRjLT5iYXNlLmVuYWJsZWQsCj4gKwkJSTkxNV9TVEFURV9XQVJOKGNy dGMtPmFjdGl2ZSAmJiAhY3J0Yy0+YmFzZS5lbmFibGVkLAo+ICAJCSAgICAgImFjdGl2ZSBjcnRj LCBidXQgbm90IGVuYWJsZWQgaW4gc3cgdHJhY2tpbmdcbiIpOwo+ICAKPiAgCQlmb3JfZWFjaF9p bnRlbF9lbmNvZGVyKGRldiwgZW5jb2Rlcikgewo+IEBAIC0xMDg0MCwxMCArMTA4NDAsMTAgQEAg Y2hlY2tfY3J0Y19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJCQkJYWN0aXZlID0g dHJ1ZTsKPiAgCQl9Cj4gIAo+IC0JCVdBUk4oYWN0aXZlICE9IGNydGMtPmFjdGl2ZSwKPiArCQlJ OTE1X1NUQVRFX1dBUk4oYWN0aXZlICE9IGNydGMtPmFjdGl2ZSwKPiAgCQkgICAgICJjcnRjJ3Mg Y29tcHV0ZWQgYWN0aXZlIHN0YXRlIGRvZXNuJ3QgbWF0Y2ggdHJhY2tlZCBhY3RpdmUgc3RhdGUg Igo+ICAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBhY3RpdmUsIGNydGMtPmFj dGl2ZSk7Cj4gLQkJV0FSTihlbmFibGVkICE9IGNydGMtPmJhc2UuZW5hYmxlZCwKPiArCQlJOTE1 X1NUQVRFX1dBUk4oZW5hYmxlZCAhPSBjcnRjLT5iYXNlLmVuYWJsZWQsCj4gIAkJICAgICAiY3J0 YydzIGNvbXB1dGVkIGVuYWJsZWQgc3RhdGUgZG9lc24ndCBtYXRjaCB0cmFja2VkIGVuYWJsZWQg c3RhdGUgIgo+ICAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBlbmFibGVkLCBj cnRjLT5iYXNlLmVuYWJsZWQpOwo+ICAKPiBAQCAtMTA4NjMsMTMgKzEwODYzLDEzIEBAIGNoZWNr X2NydGNfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQkJCWVuY29kZXItPmdldF9j b25maWcoZW5jb2RlciwgJnBpcGVfY29uZmlnKTsKPiAgCQl9Cj4gIAo+IC0JCVdBUk4oY3J0Yy0+ YWN0aXZlICE9IGFjdGl2ZSwKPiArCQlJOTE1X1NUQVRFX1dBUk4oY3J0Yy0+YWN0aXZlICE9IGFj dGl2ZSwKPiAgCQkgICAgICJjcnRjIGFjdGl2ZSBzdGF0ZSBkb2Vzbid0IG1hdGNoIHdpdGggaHcg c3RhdGUgIgo+ICAJCSAgICAgIihleHBlY3RlZCAlaSwgZm91bmQgJWkpXG4iLCBjcnRjLT5hY3Rp dmUsIGFjdGl2ZSk7Cj4gIAo+ICAJCWlmIChhY3RpdmUgJiYKPiAgCQkgICAgIWludGVsX3BpcGVf Y29uZmlnX2NvbXBhcmUoZGV2LCAmY3J0Yy0+Y29uZmlnLCAmcGlwZV9jb25maWcpKSB7Cj4gLQkJ CVdBUk4oMSwgInBpcGUgc3RhdGUgZG9lc24ndCBtYXRjaCFcbiIpOwo+ICsJCQlJOTE1X1NUQVRF X1dBUk4oMSwgInBpcGUgc3RhdGUgZG9lc24ndCBtYXRjaCFcbiIpOwo+ICAJCQlpbnRlbF9kdW1w X3BpcGVfY29uZmlnKGNydGMsICZwaXBlX2NvbmZpZywKPiAgCQkJCQkgICAgICAgIltodyBzdGF0 ZV0iKTsKPiAgCQkJaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhjcnRjLCAmY3J0Yy0+Y29uZmlnLAo+ IEBAIC0xMDg5NywxNCArMTA4OTcsMTQgQEAgY2hlY2tfc2hhcmVkX2RwbGxfc3RhdGUoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAkJYWN0aXZlID0gcGxsLT5nZXRfaHdfc3RhdGUoZGV2 X3ByaXYsIHBsbCwgJmRwbGxfaHdfc3RhdGUpOwo+ICAKPiAtCQlXQVJOKHBsbC0+YWN0aXZlID4g aHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzayksCj4gKwkJSTkxNV9TVEFURV9XQVJOKHBs bC0+YWN0aXZlID4gaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzayksCj4gIAkJICAgICAi bW9yZSBhY3RpdmUgcGxsIHVzZXJzIHRoYW4gcmVmZXJlbmNlczogJWkgdnMgJWlcbiIsCj4gIAkJ ICAgICBwbGwtPmFjdGl2ZSwgaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzaykpOwo+IC0J CVdBUk4ocGxsLT5hY3RpdmUgJiYgIXBsbC0+b24sCj4gKwkJSTkxNV9TVEFURV9XQVJOKHBsbC0+ YWN0aXZlICYmICFwbGwtPm9uLAo+ICAJCSAgICAgInBsbCBpbiBhY3RpdmUgdXNlIGJ1dCBub3Qg b24gaW4gc3cgdHJhY2tpbmdcbiIpOwo+IC0JCVdBUk4ocGxsLT5vbiAmJiAhcGxsLT5hY3RpdmUs Cj4gKwkJSTkxNV9TVEFURV9XQVJOKHBsbC0+b24gJiYgIXBsbC0+YWN0aXZlLAo+ICAJCSAgICAg InBsbCBpbiBvbiBidXQgbm90IG9uIGluIHVzZSBpbiBzdyB0cmFja2luZ1xuIik7Cj4gLQkJV0FS TihwbGwtPm9uICE9IGFjdGl2ZSwKPiArCQlJOTE1X1NUQVRFX1dBUk4ocGxsLT5vbiAhPSBhY3Rp dmUsCj4gIAkJICAgICAicGxsIG9uIHN0YXRlIG1pc21hdGNoIChleHBlY3RlZCAlaSwgZm91bmQg JWkpXG4iLAo+ICAJCSAgICAgcGxsLT5vbiwgYWN0aXZlKTsKPiAgCj4gQEAgLTEwOTE0LDE0ICsx MDkxNCwxNCBAQCBjaGVja19zaGFyZWRfZHBsbF9zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+ICAJCQlpZiAoY3J0Yy0+YWN0aXZlICYmIGludGVsX2NydGNfdG9fc2hhcmVkX2RwbGwoY3J0 YykgPT0gcGxsKQo+ICAJCQkJYWN0aXZlX2NydGNzKys7Cj4gIAkJfQo+IC0JCVdBUk4ocGxsLT5h Y3RpdmUgIT0gYWN0aXZlX2NydGNzLAo+ICsJCUk5MTVfU1RBVEVfV0FSTihwbGwtPmFjdGl2ZSAh PSBhY3RpdmVfY3J0Y3MsCj4gIAkJICAgICAicGxsIGFjdGl2ZSBjcnRjcyBtaXNtYXRjaCAoZXhw ZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKPiAgCQkgICAgIHBsbC0+YWN0aXZlLCBhY3RpdmVfY3J0 Y3MpOwo+IC0JCVdBUk4oaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNfbWFzaykgIT0gZW5hYmxl ZF9jcnRjcywKPiArCQlJOTE1X1NUQVRFX1dBUk4oaHdlaWdodDMyKHBsbC0+Y29uZmlnLmNydGNf bWFzaykgIT0gZW5hYmxlZF9jcnRjcywKPiAgCQkgICAgICJwbGwgZW5hYmxlZCBjcnRjcyBtaXNt YXRjaCAoZXhwZWN0ZWQgJWksIGZvdW5kICVpKVxuIiwKPiAgCQkgICAgIGh3ZWlnaHQzMihwbGwt PmNvbmZpZy5jcnRjX21hc2spLCBlbmFibGVkX2NydGNzKTsKPiAgCj4gLQkJV0FSTihwbGwtPm9u ICYmIG1lbWNtcCgmcGxsLT5jb25maWcuaHdfc3RhdGUsICZkcGxsX2h3X3N0YXRlLAo+ICsJCUk5 MTVfU1RBVEVfV0FSTihwbGwtPm9uICYmIG1lbWNtcCgmcGxsLT5jb25maWcuaHdfc3RhdGUsICZk cGxsX2h3X3N0YXRlLAo+ICAJCQkJICAgICAgIHNpemVvZihkcGxsX2h3X3N0YXRlKSksCj4gIAkJ ICAgICAicGxsIGh3IHN0YXRlIG1pc21hdGNoXG4iKTsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RwLmMKPiBpbmRleCA1Y2VjYzIwLi44NDFlM2QwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jCj4gQEAgLTE1NTgsNyArMTU1OCw3IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9vbihz dHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJdmRkID0gZWRwX3BhbmVsX3ZkZF9vbihpbnRl bF9kcCk7Cj4gIAlwcHNfdW5sb2NrKGludGVsX2RwKTsKPiAgCj4gLQlXQVJOKCF2ZGQsICJlRFAg cG9ydCAlYyBWREQgYWxyZWFkeSByZXF1ZXN0ZWQgb25cbiIsCj4gKwlJOTE1X1NUQVRFX1dBUk4o IXZkZCwgImVEUCBwb3J0ICVjIFZERCBhbHJlYWR5IHJlcXVlc3RlZCBvblxuIiwKPiAgCSAgICAg cG9ydF9uYW1lKGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydCkpOwo+ICB9Cj4gIAo+IEBA IC0xNjQyLDcgKzE2NDIsNyBAQCBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfdmRkX29mZihzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwLCBib29sIHN5bmMpCj4gIAlpZiAoIWlzX2VkcChpbnRlbF9kcCkp Cj4gIAkJcmV0dXJuOwo+ICAKPiAtCVdBUk4oIWludGVsX2RwLT53YW50X3BhbmVsX3ZkZCwgImVE UCBwb3J0ICVjIFZERCBub3QgZm9yY2VkIG9uIiwKPiArCUk5MTVfU1RBVEVfV0FSTighaW50ZWxf ZHAtPndhbnRfcGFuZWxfdmRkLCAiZURQIHBvcnQgJWMgVkREIG5vdCBmb3JjZWQgb24iLAo+ICAJ ICAgICBwb3J0X25hbWUoZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0KSk7Cj4gIAo+ICAJ aW50ZWxfZHAtPndhbnRfcGFuZWxfdmRkID0gZmFsc2U7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3J1bnRpbWVfcG0uYwo+IGluZGV4IGY1YTc4ZDUuLjQ2OTA5OTM1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3J1bnRpbWVfcG0uYwo+IEBAIC02MzMsNyArNjMzLDcgQEAgc3Rh dGljIHZvaWQgY2hlY2tfcG93ZXJfd2VsbF9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCj4gIAlyZXR1cm47Cj4gIAo+ICBtaXNtYXRjaDoKPiAtCVdBUk4oMSwgInN0YXRl IG1pc21hdGNoIGZvciAnJXMnIChhbHdheXNfb24gJWQgaHcgc3RhdGUgJWQgdXNlLWNvdW50ICVk IGRpc2FibGVfcG93ZXJfd2VsbCAlZFxuIiwKPiArCUk5MTVfU1RBVEVfV0FSTigxLCAic3RhdGUg bWlzbWF0Y2ggZm9yICclcycgKGFsd2F5c19vbiAlZCBodyBzdGF0ZSAlZCB1c2UtY291bnQgJWQg ZGlzYWJsZV9wb3dlcl93ZWxsICVkXG4iLAo+ICAJCSAgcG93ZXJfd2VsbC0+bmFtZSwgcG93ZXJf d2VsbC0+YWx3YXlzX29uLCBlbmFibGVkLAo+ICAJCSAgcG93ZXJfd2VsbC0+Y291bnQsIGk5MTUu ZGlzYWJsZV9wb3dlcl93ZWxsKTsKPiAgfQo+IC0tIAo+IDIuMS4wCj4KCi0tIApKYW5pIE5pa3Vs YSwgSW50ZWwgT3BlbiBTb3VyY2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK