From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak S Subject: Re: [PATCH v5 4/4] drm/i915/bdw: Pin the ringbuffer backing object to GGTT on-demand Date: Tue, 18 Nov 2014 12:07:02 +0530 Message-ID: <546AE90E.8060505@intel.com> References: <1414576373-25121-4-git-send-email-thomas.daniel@intel.com> <1415874536-459-1-git-send-email-thomas.daniel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 BC8406E1E0 for ; Sun, 16 Nov 2014 22:40:24 -0800 (PST) In-Reply-To: <1415874536-459-1-git-send-email-thomas.daniel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIFRodXJzZGF5IDEzIE5vdmVtYmVyIDIwMTQgMDM6NTggUE0sIFRob21hcyBEYW5pZWwgd3Jv dGU6Cj4gU2FtZSBhcyB3aXRoIHRoZSBjb250ZXh0LCBwaW5uaW5nIHRvIEdHVFQgcmVnYXJkbGVz cyBpcyBoYXJtZnVsIChpdAo+IGJhZGx5IGZyYWdtZW50cyB0aGUgR0dUVCBhbmQgY2FuIGV2ZW4g ZXhoYXVzdCBpdCkuCj4KPiBVbmZvcnR1bmF0ZWx5LCB0aGlzIGNhc2UgaXMgYWxzbyBtb3JlIGNv bXBsZXggdGhhbiB0aGUgcHJldmlvdXMgb25lCj4gYmVjYXVzZSB3ZSBuZWVkIHRvIG1hcCBhbmQg YWNjZXNzIHRoZSByaW5nYnVmZmVyIGluIHNldmVyYWwgcGxhY2VzCj4gYWxvbmcgdGhlIGV4ZWNi dWZmZXIgcGF0aCAoYW5kIHdlIGNhbm5vdCBtYWtlIGRvIGJ5IGxlYXZpbmcgdGhlCj4gZGVmYXVs dCByaW5nYnVmZmVyIHBpbm5lZCwgYXMgYmVmb3JlKS4gQWxzbywgdGhlIGNvbnRleHQgb2JqZWN0 Cj4gaXRzZWxmIGNvbnRhaW5zIGEgcG9pbnRlciB0byB0aGUgcmluZ2J1ZmZlciBhZGRyZXNzIHRo YXQgd2UgaGF2ZSB0bwo+IGtlZXAgdXBkYXRlZCBpZiB3ZSBhcmUgZ29pbmcgdG8gYWxsb3cgdGhl IHJpbmdidWZmZXIgdG8gbW92ZSBhcm91bmQuCj4KPiB2MjogU2FtZSBhcyB3aXRoIHRoZSBjb250 ZXh0IHBpbm5pbmcsIHdlIGNhbm5vdCByZWFsbHkgZG8gaXQgZHVyaW5nCj4gYW4gaW50ZXJydXB0 LiBBbHNvLCBwaW4gdGhlIGRlZmF1bHQgcmluZ2J1ZmZlcnMgb2JqZWN0cyByZWdhcmRsZXNzCj4g KG1ha2VzIGVycm9yIGNhcHR1cmUgYSBsb3QgZWFzaWVyKS4KPgo+IHYzOiBSZWJhc2VkLiBUYWtl IGEgcGluIHJlZmVyZW5jZSBvZiB0aGUgcmluZ2J1ZmZlciBmb3IgZWFjaCBpdGVtCj4gaW4gdGhl IGV4ZWNsaXN0IHJlcXVlc3QgcXVldWUgYmVjYXVzZSB0aGUgaGFyZHdhcmUgbWF5IHN0aWxsIGJl IHVzaW5nCj4gdGhlIHJpbmdidWZmZXIgYWZ0ZXIgdGhlIE1JX1VTRVJfSU5URVJSVVBUIHRvIG5v dGlmeSB0aGUgc2Vxbm8gdXBkYXRlCj4gaXMgZXhlY3V0ZWQuICBUaGUgcmluZ2J1ZmZlciBtdXN0 IHJlbWFpbiBwaW5uZWQgdW50aWwgdGhlIGNvbnRleHQgc2F2ZQo+IGlzIGNvbXBsZXRlLiAgTm8g bG9uZ2VyIHBpbiBhbmQgdW5waW4gcmluZ2J1ZmZlciBpbgo+IHBvcHVsYXRlX2xyX2NvbnRleHQo KSAtIHRoaXMgdHJhbnNpZW50IGFkZHJlc3MgaXMgbWVhbmluZ2xlc3MgYW5kIHRoZQo+IHBpbm5p bmcgY2FuIGNhdXNlIGEgc2xlZXAgd2hpbGUgYXRvbWljLgo+Cj4gdjQ6IE1vdmVkIHJpbmdidWZm ZXIgcGluIGFuZCB1bnBpbiBpbnRvIHRoZSBscl9jb250ZXh0X3BpbiBmdW5jdGlvbnMuCj4gRG93 bmdyYWRlZCBwaW5uaW5nIGNoZWNrIEJVR19PTnMgdG8gV0FSTl9PTnMuCj4KPiB2NTogUmVpbnN0 YXRlZCBXQVJOX09OcyBmb3IgdW5leHBlY3RlZCBleGVjbGlzdCBzdGF0ZXMuICBSZW1vdmVkIHVu dXNlZAo+IHZhcmlhYmxlLgo+Cj4gSXNzdWU6IFZJWi00Mjc3Cj4gU2lnbmVkLW9mZi1ieTogT3Nj YXIgTWF0ZW8gPG9zY2FyLm1hdGVvQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBUaG9tYXMg RGFuaWVsIDx0aG9tYXMuZGFuaWVsQGludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2xyYy5jICAgICAgICB8ICAxMDIgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIHwgICA4 NSArKysrKysrKysrKysrKystLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oIHwgICAgMyArCj4gICAzIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRp b25zKCspLCA2MiBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5k ZXggZjdmYTBmNy4uY2EyMGY5MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAg LTIwMiw2ICsyMDIsOSBAQCBlbnVtIHsKPiAgIH07Cj4gICAjZGVmaW5lIEdFTjhfQ1RYX0lEX1NI SUZUIDMyCj4gICAKPiArc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICpyaW5nLAo+ICsJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpOwo+ICsK PiAgIC8qKgo+ICAgICogaW50ZWxfc2FuaXRpemVfZW5hYmxlX2V4ZWNsaXN0cygpIC0gc2FuaXRp emUgaTkxNS5lbmFibGVfZXhlY2xpc3RzCj4gICAgKiBAZGV2OiBEUk0gZGV2aWNlLgo+IEBAIC0z MzksNyArMzQyLDkgQEAgc3RhdGljIHZvaWQgZXhlY2xpc3RzX2Vsc3Bfd3JpdGUoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJp di0+dW5jb3JlLmxvY2ssIGZsYWdzKTsKPiAgIH0KPiAgIAo+IC1zdGF0aWMgaW50IGV4ZWNsaXN0 c19jdHhfd3JpdGVfdGFpbChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iaiwgdTMy IHRhaWwpCj4gK3N0YXRpYyBpbnQgZXhlY2xpc3RzX3VwZGF0ZV9jb250ZXh0KHN0cnVjdCBkcm1f aTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqLAo+ICsJCQkJICAgIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpyaW5nX29iaiwKPiArCQkJCSAgICB1MzIgdGFpbCkKPiAgIHsKPiAgIAlzdHJ1Y3Qg cGFnZSAqcGFnZTsKPiAgIAl1aW50MzJfdCAqcmVnX3N0YXRlOwo+IEBAIC0zNDgsNiArMzUzLDcg QEAgc3RhdGljIGludCBleGVjbGlzdHNfY3R4X3dyaXRlX3RhaWwoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmosIHUzMiB0YWkKPiAgIAlyZWdfc3RhdGUgPSBrbWFwX2F0b21pYyhw YWdlKTsKPiAgIAo+ICAgCXJlZ19zdGF0ZVtDVFhfUklOR19UQUlMKzFdID0gdGFpbDsKPiArCXJl Z19zdGF0ZVtDVFhfUklOR19CVUZGRVJfU1RBUlQrMV0gPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZz ZXQocmluZ19vYmopOwo+ICAgCj4gICAJa3VubWFwX2F0b21pYyhyZWdfc3RhdGUpOwo+ICAgCj4g QEAgLTM1OCwyMSArMzY0LDI1IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX3N1Ym1pdF9jb250ZXh0 KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCQkJICAgIHN0cnVjdCBpbnRlbF9j b250ZXh0ICp0bzAsIHUzMiB0YWlsMCwKPiAgIAkJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQg KnRvMSwgdTMyIHRhaWwxKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0 eF9vYmowOwo+ICsJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmowID0gdG8wLT5l bmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ICsJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYwID0gdG8wLT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Cj4gICAJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKmN0eF9vYmoxID0gTlVMTDsKPiArCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmMSA9IE5VTEw7Cj4gICAKPiAtCWN0eF9vYmowID0gdG8wLT5lbmdpbmVbcmluZy0+ aWRdLnN0YXRlOwo+ICAgCUJVR19PTighY3R4X29iajApOwo+ICAgCVdBUk5fT04oIWk5MTVfZ2Vt X29ial9pc19waW5uZWQoY3R4X29iajApKTsKPiArCVdBUk5fT04oIWk5MTVfZ2VtX29ial9pc19w aW5uZWQocmluZ2J1ZjAtPm9iaikpOwo+ICAgCj4gLQlleGVjbGlzdHNfY3R4X3dyaXRlX3RhaWwo Y3R4X29iajAsIHRhaWwwKTsKPiArCWV4ZWNsaXN0c191cGRhdGVfY29udGV4dChjdHhfb2JqMCwg cmluZ2J1ZjAtPm9iaiwgdGFpbDApOwo+ICAgCj4gICAJaWYgKHRvMSkgewo+ICsJCXJpbmdidWYx ID0gdG8xLT5lbmdpbmVbcmluZy0+aWRdLnJpbmdidWY7Cj4gICAJCWN0eF9vYmoxID0gdG8xLT5l bmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ICAgCQlCVUdfT04oIWN0eF9vYmoxKTsKPiAgIAkJV0FS Tl9PTighaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChjdHhfb2JqMSkpOwo+ICsJCVdBUk5fT04oIWk5 MTVfZ2VtX29ial9pc19waW5uZWQocmluZ2J1ZjEtPm9iaikpOwo+ICAgCj4gLQkJZXhlY2xpc3Rz X2N0eF93cml0ZV90YWlsKGN0eF9vYmoxLCB0YWlsMSk7Cj4gKwkJZXhlY2xpc3RzX3VwZGF0ZV9j b250ZXh0KGN0eF9vYmoxLCByaW5nYnVmMS0+b2JqLCB0YWlsMSk7Cj4gICAJfQo+ICAgCj4gICAJ ZXhlY2xpc3RzX2Vsc3Bfd3JpdGUocmluZywgY3R4X29iajAsIGN0eF9vYmoxKTsKPiBAQCAtNTI0 LDYgKzUzNCwxMCBAQCBzdGF0aWMgaW50IGV4ZWNsaXN0c19jb250ZXh0X3F1ZXVlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4gICAJCXJldHVybiAtRU5PTUVNOwo+ICAgCXJlcS0+Y3R4 ID0gdG87Cj4gICAJaTkxNV9nZW1fY29udGV4dF9yZWZlcmVuY2UocmVxLT5jdHgpOwo+ICsKPiAr CWlmICh0byAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpCj4gKwkJaW50ZWxfbHJfY29udGV4dF9w aW4ocmluZywgdG8pOwo+ICsKPiAgIAlyZXEtPnJpbmcgPSByaW5nOwo+ICAgCXJlcS0+dGFpbCA9 IHRhaWw7Cj4gICAKPiBAQCAtNTQ0LDcgKzU1OCw3IEBAIHN0YXRpYyBpbnQgZXhlY2xpc3RzX2Nv bnRleHRfcXVldWUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiAgIAo+ICAgCQlpZiAo dG8gPT0gdGFpbF9yZXEtPmN0eCkgewo+ICAgCQkJV0FSTih0YWlsX3JlcS0+ZWxzcF9zdWJtaXR0 ZWQgIT0gMCwKPiAtCQkJICAgICAiTW9yZSB0aGFuIDIgYWxyZWFkeS1zdWJtaXR0ZWQgcmVxcyBx dWV1ZWRcbiIpOwo+ICsJCQkJIk1vcmUgdGhhbiAyIGFscmVhZHktc3VibWl0dGVkIHJlcXMgcXVl dWVkXG4iKTsKPiAgIAkJCWxpc3RfZGVsKCZ0YWlsX3JlcS0+ZXhlY2xpc3RfbGluayk7Cj4gICAJ CQlsaXN0X2FkZF90YWlsKCZ0YWlsX3JlcS0+ZXhlY2xpc3RfbGluaywKPiAgIAkJCQkmcmluZy0+ ZXhlY2xpc3RfcmV0aXJlZF9yZXFfbGlzdCk7Cj4gQEAgLTczMiw2ICs3NDYsMTIgQEAgdm9pZCBp bnRlbF9leGVjbGlzdHNfcmV0aXJlX3JlcXVlc3RzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCj4gICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmcmluZy0+ZXhlY2xpc3RfbG9jaywgZmxh Z3MpOwo+ICAgCj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHJlcSwgdG1wLCAmcmV0aXJl ZF9saXN0LCBleGVjbGlzdF9saW5rKSB7Cj4gKwkJc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCA9 IHJlcS0+Y3R4Owo+ICsJCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfb2JqID0KPiAr CQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZTsKPiArCj4gKwkJaWYgKGN0eF9vYmogJiYg KGN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQpKQo+ICsJCQlpbnRlbF9scl9jb250ZXh0X3Vu cGluKHJpbmcsIGN0eCk7Cj4gICAJCWludGVsX3J1bnRpbWVfcG1fcHV0KGRldl9wcml2KTsKPiAg IAkJaTkxNV9nZW1fY29udGV4dF91bnJlZmVyZW5jZShyZXEtPmN0eCk7Cj4gICAJCWxpc3RfZGVs KCZyZXEtPmV4ZWNsaXN0X2xpbmspOwo+IEBAIC04MDMsNiArODIzLDcgQEAgc3RhdGljIGludCBp bnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgCQlz dHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpjdHhfb2JqID0gY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+ICsJc3RydWN0 IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBjdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1 ZjsKPiAgIAlpbnQgcmV0ID0gMDsKPiAgIAo+ICAgCVdBUk5fT04oIW11dGV4X2lzX2xvY2tlZCgm cmluZy0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiBAQCAtODEwLDIxICs4MzEsMzUgQEAgc3RhdGlj IGludCBpbnRlbF9scl9jb250ZXh0X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ ICAgCQlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4oY3R4X29iaiwKPiAgIAkJCQlHRU44X0xS X0NPTlRFWFRfQUxJR04sIDApOwo+ICAgCQlpZiAocmV0KQo+IC0JCQljdHgtPmVuZ2luZVtyaW5n LT5pZF0udW5waW5fY291bnQgPSAwOwo+ICsJCQlnb3RvIHJlc2V0X3VucGluX2NvdW50Owo+ICsK PiArCQlyZXQgPSBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihyaW5nLT5kZXYsIHJp bmdidWYpOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gdW5waW5fY3R4X29iajsKPiAgIAl9Cj4g ICAKPiAgIAlyZXR1cm4gcmV0Owo+ICsKPiArdW5waW5fY3R4X29iajoKPiArCWk5MTVfZ2VtX29i amVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICtyZXNldF91bnBpbl9jb3VudDoKPiArCWN0eC0+ ZW5naW5lW3JpbmctPmlkXS51bnBpbl9jb3VudCA9IDA7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiAg IH0KPiAgIAo+ICAgdm9pZCBpbnRlbF9scl9jb250ZXh0X3VucGluKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsCj4gICAJCXN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgpCj4gICB7Cj4gICAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmN0eF9vYmogPSBjdHgtPmVuZ2luZVtyaW5nLT5p ZF0uc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IGN0eC0+ZW5n aW5lW3JpbmctPmlkXS5yaW5nYnVmOwo+ICAgCj4gICAJaWYgKGN0eF9vYmopIHsKPiAgIAkJV0FS Tl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwoKV2l0aCBw aW4gc3BlY2lmaWMgbXV0ZXggZnJvbSBwcmV2aW91cyBwYXRjaCBzZXQgcmVtb3ZlZApSZXZpZXdl ZC1ieTogRGVlcGFrIFM8ZGVlcGFrLnNAbGludXguaW50ZWwuY29tPgoKPiAtCQlpZiAoLS1jdHgt PmVuZ2luZVtyaW5nLT5pZF0udW5waW5fY291bnQgPT0gMCkKPiArCQlpZiAoLS1jdHgtPmVuZ2lu ZVtyaW5nLT5pZF0udW5waW5fY291bnQgPT0gMCkgewo+ICsJCQlpbnRlbF91bnBpbl9yaW5nYnVm ZmVyX29iaihyaW5nYnVmKTsKPiAgIAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9v YmopOwo+ICsJCX0KPiAgIAl9Cj4gICB9Cj4gICAKPiBAQCAtMTU0MSw3ICsxNTc2LDYgQEAgcG9w dWxhdGVfbHJfY29udGV4dChzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LCBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqY3R4X28KPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g cmluZy0+ZGV2Owo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqcmluZ19vYmogPSBy aW5nYnVmLT5vYmo7Cj4gICAJc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0ID0gY3R4LT5wcGd0 dDsKPiAgIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiAgIAl1aW50MzJfdCAqcmVnX3N0YXRlOwo+IEBA IC0xNTg3LDcgKzE2MjEsOSBAQCBwb3B1bGF0ZV9scl9jb250ZXh0KHN0cnVjdCBpbnRlbF9jb250 ZXh0ICpjdHgsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpjdHhfbwo+ICAgCXJlZ19zdGF0 ZVtDVFhfUklOR19UQUlMXSA9IFJJTkdfVEFJTChyaW5nLT5tbWlvX2Jhc2UpOwo+ICAgCXJlZ19z dGF0ZVtDVFhfUklOR19UQUlMKzFdID0gMDsKPiAgIAlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVGRkVS X1NUQVJUXSA9IFJJTkdfU1RBUlQocmluZy0+bW1pb19iYXNlKTsKPiAtCXJlZ19zdGF0ZVtDVFhf UklOR19CVUZGRVJfU1RBUlQrMV0gPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQocmluZ19vYmop Owo+ICsJLyogUmluZyBidWZmZXIgc3RhcnQgYWRkcmVzcyBpcyBub3Qga25vd24gdW50aWwgdGhl IGJ1ZmZlciBpcyBwaW5uZWQuCj4gKwkgKiBJdCBpcyB3cml0dGVuIHRvIHRoZSBjb250ZXh0IGlt YWdlIGluIGV4ZWNsaXN0c191cGRhdGVfY29udGV4dCgpCj4gKwkgKi8KPiAgIAlyZWdfc3RhdGVb Q1RYX1JJTkdfQlVGRkVSX0NPTlRST0xdID0gUklOR19DVEwocmluZy0+bW1pb19iYXNlKTsKPiAg IAlyZWdfc3RhdGVbQ1RYX1JJTkdfQlVGRkVSX0NPTlRST0wrMV0gPQo+ICAgCQkJKChyaW5nYnVm LT5zaXplIC0gUEFHRV9TSVpFKSAmIFJJTkdfTlJfUEFHRVMpIHwgUklOR19WQUxJRDsKPiBAQCAt MTY2OSwxMCArMTcwNSwxMiBAQCB2b2lkIGludGVsX2xyX2NvbnRleHRfZnJlZShzdHJ1Y3QgaW50 ZWxfY29udGV4dCAqY3R4KQo+ICAgCQkJCQljdHgtPmVuZ2luZVtpXS5yaW5nYnVmOwo+ICAgCQkJ c3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJpbmdidWYtPnJpbmc7Cj4gICAKPiArCQkJ aWYgKGN0eCA9PSByaW5nLT5kZWZhdWx0X2NvbnRleHQpIHsKPiArCQkJCWludGVsX3VucGluX3Jp bmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ICsJCQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4o Y3R4X29iaik7Cj4gKwkJCX0KPiAgIAkJCWludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmlu Z2J1Zik7Cj4gICAJCQlrZnJlZShyaW5nYnVmKTsKPiAtCQkJaWYgKGN0eCA9PSByaW5nLT5kZWZh dWx0X2NvbnRleHQpCj4gLQkJCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsK PiAgIAkJCWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZjdHhfb2JqLT5iYXNlKTsKPiAgIAkJ fQo+ICAgCX0KPiBAQCAtMTc3MCwxMSArMTgwOCw4IEBAIGludCBpbnRlbF9scl9jb250ZXh0X2Rl ZmVycmVkX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4LAo+ICAgCWlmICghcmluZ2J1 Zikgewo+ICAgCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZl ciAlc1xuIiwKPiAgIAkJCQlyaW5nLT5uYW1lKTsKPiAtCQlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRf Y3R4KQo+IC0JCQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihjdHhfb2JqKTsKPiAtCQlkcm1f Z2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+YmFzZSk7Cj4gICAJCXJldCA9IC1FTk9N RU07Cj4gLQkJcmV0dXJuIHJldDsKPiArCQlnb3RvIGVycm9yX3VucGluX2N0eDsKPiAgIAl9Cj4g ICAKPiAgIAlyaW5nYnVmLT5yaW5nID0gcmluZzsKPiBAQCAtMTc4NywyMiArMTgyMiwzMCBAQCBp bnQgaW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQg KmN0eCwKPiAgIAlyaW5nYnVmLT5zcGFjZSA9IHJpbmdidWYtPnNpemU7Cj4gICAJcmluZ2J1Zi0+ bGFzdF9yZXRpcmVkX2hlYWQgPSAtMTsKPiAgIAo+IC0JLyogVE9ETzogRm9yIG5vdyB3ZSBwdXQg dGhpcyBpbiB0aGUgbWFwcGFibGUgcmVnaW9uIHNvIHRoYXQgd2UgY2FuIHJldXNlCj4gLQkgKiB0 aGUgZXhpc3RpbmcgcmluZ2J1ZmZlciBjb2RlIHdoaWNoIGlvcmVtYXBzIGl0LiBXaGVuIHdlIHN0 YXJ0Cj4gLQkgKiBjcmVhdGluZyBtYW55IGNvbnRleHRzLCB0aGlzIHdpbGwgbm8gbG9uZ2VyIHdv cmsgYW5kIHdlIG11c3Qgc3dpdGNoCj4gLQkgKiB0byBhIGttYXBpc2ggaW50ZXJmYWNlLgo+IC0J ICovCj4gLQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwo+ IC0JaWYgKHJldCkgewo+IC0JCURSTV9ERUJVR19EUklWRVIoIkZhaWxlZCB0byBhbGxvY2F0ZSBy aW5nYnVmZmVyIG9iaiAlczogJWRcbiIsCj4gKwlpZiAocmluZ2J1Zi0+b2JqID09IE5VTEwpIHsK PiArCQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwo+ICsJ CWlmIChyZXQpIHsKPiArCQkJRFJNX0RFQlVHX0RSSVZFUigKPiArCQkJCSJGYWlsZWQgdG8gYWxs b2NhdGUgcmluZ2J1ZmZlciBvYmogJXM6ICVkXG4iLAo+ICAgCQkJCXJpbmctPm5hbWUsIHJldCk7 Cj4gLQkJZ290byBlcnJvcjsKPiArCQkJZ290byBlcnJvcl9mcmVlX3JidWY7Cj4gKwkJfQo+ICsK PiArCQlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4KSB7Cj4gKwkJCXJldCA9IGludGVsX3Bpbl9h bmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1Zik7Cj4gKwkJCWlmIChyZXQpIHsKPiAr CQkJCURSTV9FUlJPUigKPiArCQkJCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIg JXM6ICVkXG4iLAo+ICsJCQkJCXJpbmctPm5hbWUsIHJldCk7Cj4gKwkJCQlnb3RvIGVycm9yX2Rl c3Ryb3lfcmJ1ZjsKPiArCQkJfQo+ICsJCX0KPiArCj4gICAJfQo+ICAgCj4gICAJcmV0ID0gcG9w dWxhdGVfbHJfY29udGV4dChjdHgsIGN0eF9vYmosIHJpbmcsIHJpbmdidWYpOwo+ICAgCWlmIChy ZXQpIHsKPiAgIAkJRFJNX0RFQlVHX0RSSVZFUigiRmFpbGVkIHRvIHBvcHVsYXRlIExSQzogJWRc biIsIHJldCk7Cj4gLQkJaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAg IAkJZ290byBlcnJvcjsKPiAgIAl9Cj4gICAKPiBAQCAtMTgyMyw3ICsxODY2LDYgQEAgaW50IGlu dGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgs Cj4gICAJCQlEUk1fRVJST1IoIkluaXQgcmVuZGVyIHN0YXRlIGZhaWxlZDogJWRcbiIsIHJldCk7 Cj4gICAJCQljdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiA9IE5VTEw7Cj4gICAJCQljdHgt PmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUgPSBOVUxMOwo+IC0JCQlpbnRlbF9kZXN0cm95X3Jpbmdi dWZmZXJfb2JqKHJpbmdidWYpOwo+ICAgCQkJZ290byBlcnJvcjsKPiAgIAkJfQo+ICAgCQljdHgt PnJjc19pbml0aWFsaXplZCA9IHRydWU7Cj4gQEAgLTE4MzIsNyArMTg3NCwxMyBAQCBpbnQgaW50 ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9jcmVhdGUoc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCwK PiAgIAlyZXR1cm4gMDsKPiAgIAo+ICAgZXJyb3I6Cj4gKwlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRf Y3R4KQo+ICsJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ICtlcnJvcl9k ZXN0cm95X3JidWY6Cj4gKwlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2JqKHJpbmdidWYpOwo+ ICtlcnJvcl9mcmVlX3JidWY6Cj4gICAJa2ZyZWUocmluZ2J1Zik7Cj4gK2Vycm9yX3VucGluX2N0 eDoKPiAgIAlpZiAoaXNfZ2xvYmFsX2RlZmF1bHRfY3R4KQo+ICAgCQlpOTE1X2dlbV9vYmplY3Rf Z2d0dF91bnBpbihjdHhfb2JqKTsKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4 X29iai0+YmFzZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+IGlu ZGV4IGE4ZjcyZTguLjBjNGFhYjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4gQEAgLTE3MjEsMTMgKzE3MjEsNDIgQEAgc3RhdGljIGludCBpbml0X3BoeXNf c3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlyZXR1cm4gMDsK PiAgIH0KPiAgIAo+IC12b2lkIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK3ZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9v Ymooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gICB7Cj4gLQlpZiAoIXJpbmdi dWYtPm9iaikKPiAtCQlyZXR1cm47Cj4gLQo+ICAgCWlvdW5tYXAocmluZ2J1Zi0+dmlydHVhbF9z dGFydCk7Cj4gKwlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gTlVMTDsKPiAgIAlpOTE1X2dlbV9v YmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5vYmopOwo+ICt9Cj4gKwo+ICtpbnQgaW50ZWxfcGlu X2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiArCQkJCSAg ICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkx NV9nZW1fb2JqZWN0ICpvYmogPSByaW5nYnVmLT5vYmo7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJl dCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihvYmosIFBBR0VfU0laRSwgUElOX01BUFBBQkxFKTsK PiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmpl Y3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCB0cnVlKTsKPiArCWlmIChyZXQpIHsKPiArCQlpOTE1 X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gKwo+ ICsJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9IGlvcmVtYXBfd2MoZGV2X3ByaXYtPmd0dC5tYXBw YWJsZV9iYXNlICsKPiArCQkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaiksIHJpbmdidWYt PnNpemUpOwo+ICsJaWYgKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgewo+ICsJCWk5 MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7Cj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwl9 Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVm ZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiArewo+ICAgCWRybV9n ZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZyaW5nYnVmLT5vYmotPmJhc2UpOwo+ICAgCXJpbmdidWYt Pm9iaiA9IE5VTEw7Cj4gICB9Cj4gQEAgLTE3MzUsMTIgKzE3NjQsNyBAQCB2b2lkIGludGVsX2Rl c3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4g ICBpbnQgaW50ZWxfYWxsb2NfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiAgIAkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiAgIAlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+IC0JaW50IHJldDsKPiAtCj4gLQlpZiAo cmluZ2J1Zi0+b2JqKQo+IC0JCXJldHVybiAwOwo+ICAgCj4gICAJb2JqID0gTlVMTDsKPiAgIAlp ZiAoIUhBU19MTEMoZGV2KSkKPiBAQCAtMTc1MywzMCArMTc3Nyw5IEBAIGludCBpbnRlbF9hbGxv Y19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCS8qIG1hcmsgcmlu ZyBidWZmZXJzIGFzIHJlYWQtb25seSBmcm9tIEdQVSBzaWRlIGJ5IGRlZmF1bHQgKi8KPiAgIAlv YmotPmd0X3JvID0gMTsKPiAgIAo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwg UEFHRV9TSVpFLCBQSU5fTUFQUEFCTEUpOwo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIGVycl91bnJl ZjsKPiAtCj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3RvX2d0dF9kb21haW4ob2JqLCB0 cnVlKTsKPiAtCWlmIChyZXQpCj4gLQkJZ290byBlcnJfdW5waW47Cj4gLQo+IC0JcmluZ2J1Zi0+ dmlydHVhbF9zdGFydCA9Cj4gLQkJaW9yZW1hcF93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jh c2UgKyBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKSwKPiAtCQkJCXJpbmdidWYtPnNpemUp Owo+IC0JaWYgKHJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPT0gTlVMTCkgewo+IC0JCXJldCA9IC1F SU5WQUw7Cj4gLQkJZ290byBlcnJfdW5waW47Cj4gLQl9Cj4gLQo+ICAgCXJpbmdidWYtPm9iaiA9 IG9iajsKPiAtCXJldHVybiAwOwo+ICAgCj4gLWVycl91bnBpbjoKPiAtCWk5MTVfZ2VtX29iamVj dF9nZ3R0X3VucGluKG9iaik7Cj4gLWVycl91bnJlZjoKPiAtCWRybV9nZW1fb2JqZWN0X3VucmVm ZXJlbmNlKCZvYmotPmJhc2UpOwo+IC0JcmV0dXJuIHJldDsKPiArCXJldHVybiAwOwo+ICAgfQo+ ICAgCj4gICBzdGF0aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiBAQCAtMTgxMywxMCArMTgxNiwyMSBAQCBzdGF0aWMgaW50IGludGVsX2luaXRf cmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJCWdvdG8gZXJyb3I7Cj4g ICAJfQo+ICAgCj4gLQlyZXQgPSBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihkZXYsIHJpbmdi dWYpOwo+IC0JaWYgKHJldCkgewo+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHJp bmdidWZmZXIgJXM6ICVkXG4iLCByaW5nLT5uYW1lLCByZXQpOwo+IC0JCWdvdG8gZXJyb3I7Cj4g KwlpZiAocmluZ2J1Zi0+b2JqID09IE5VTEwpIHsKPiArCQlyZXQgPSBpbnRlbF9hbGxvY19yaW5n YnVmZmVyX29iaihkZXYsIHJpbmdidWYpOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gYWxsb2NhdGUgcmluZ2J1ZmZlciAlczogJWRcbiIsCj4gKwkJCQkJcmluZy0+ bmFtZSwgcmV0KTsKPiArCQkJZ290byBlcnJvcjsKPiArCQl9Cj4gKwo+ICsJCXJldCA9IGludGVs X3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRldiwgcmluZ2J1Zik7Cj4gKwkJaWYgKHJldCkg ewo+ICsJCQlEUk1fRVJST1IoIkZhaWxlZCB0byBwaW4gYW5kIG1hcCByaW5nYnVmZmVyICVzOiAl ZFxuIiwKPiArCQkJCQlyaW5nLT5uYW1lLCByZXQpOwo+ICsJCQlpbnRlbF9kZXN0cm95X3Jpbmdi dWZmZXJfb2JqKHJpbmdidWYpOwo+ICsJCQlnb3RvIGVycm9yOwo+ICsJCX0KPiAgIAl9Cj4gICAK PiAgIAkvKiBXb3JrYXJvdW5kIGFuIGVycmF0dW0gb24gdGhlIGk4MzAgd2hpY2ggY2F1c2VzIGEg aGFuZyBpZgo+IEBAIC0xODU0LDYgKzE4NjgsNyBAQCB2b2lkIGludGVsX2NsZWFudXBfcmluZ19i dWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKPiAgIAlpbnRlbF9zdG9wX3Jpbmdf YnVmZmVyKHJpbmcpOwo+ICAgCVdBUk5fT04oIUlTX0dFTjIocmluZy0+ZGV2KSAmJiAoSTkxNV9S RUFEX01PREUocmluZykgJiBNT0RFX0lETEUpID09IDApOwo+ICAgCj4gKwlpbnRlbF91bnBpbl9y aW5nYnVmZmVyX29iaihyaW5nYnVmKTsKPiAgIAlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2Jq KHJpbmdidWYpOwo+ICAgCXJpbmctPnByZWFsbG9jYXRlZF9sYXp5X3JlcXVlc3QgPSBOVUxMOwo+ ICAgCXJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8gPSAwOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA4YzAwMmQyLi4zNjU4NTRhZCAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMzgyLDYgKzM4Miw5IEBA IGludGVsX3dyaXRlX3N0YXR1c19wYWdlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCj4g ICAjZGVmaW5lIEk5MTVfR0VNX0hXU19TQ1JBVENIX0lOREVYCTB4MzAKPiAgICNkZWZpbmUgSTkx NV9HRU1fSFdTX1NDUkFUQ0hfQUREUiAoSTkxNV9HRU1fSFdTX1NDUkFUQ0hfSU5ERVggPDwgTUlf U1RPUkVfRFdPUkRfSU5ERVhfU0hJRlQpCj4gICAKPiArdm9pZCBpbnRlbF91bnBpbl9yaW5nYnVm ZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gK2ludCBpbnRlbF9w aW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCQkJ ICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gICB2b2lkIGludGVsX2Rl c3Ryb3lfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+ ICAgaW50IGludGVsX2FsbG9jX3JpbmdidWZmZXJfb2JqKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gICAJCQkgICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK