From mboxrd@z Thu Jan 1 00:00:00 1970 From: Harry Wentland Subject: Re: [PATCH v2 4/9] drm: Add driver private objects to atomic state Date: Wed, 25 Jan 2017 16:33:16 -0500 Message-ID: <227ecbd6-0986-af85-c8e2-de31a839a5be@amd.com> References: <1485301777-3465-1-git-send-email-dhinakaran.pandiyan@intel.com> <1485301777-3465-5-git-send-email-dhinakaran.pandiyan@intel.com> <20170125055938.luw374a2mbml7kqz@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20170125055938.luw374a2mbml7kqz@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Dhinakaran Pandiyan Cc: Alex Deucher , Daniel Vetter , intel-gfx@lists.freedesktop.org, Ben Skeggs , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMjAxNy0wMS0yNSAxMjo1OSBBTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUdWUsIEph biAyNCwgMjAxNyBhdCAwMzo0OTozMlBNIC0wODAwLCBEaGluYWthcmFuIFBhbmRpeWFuIHdyb3Rl Ogo+PiBJdCBpcyBuZWNlc3NhcnkgdG8gdHJhY2sgc3RhdGVzIGZvciBvYmplY3RzIG90aGVyIHRo YW4gY29ubmVjdG9yLCBjcnRjCj4+IGFuZCBwbGFuZSBmb3IgYXRvbWljIG1vZGVzZXRzLiBCdXQg YWRkaW5nIG9iamVjdHMgbGlrZSBEUCBNU1QgbGluawo+PiBiYW5kd2lkdGggdG8gZHJtX2F0b21p Y19zdGF0ZSB3b3VsZCBtZWFuIHRoYXQgYSBub24tY29yZSBvYmplY3Qgd2lsbCBiZQo+PiBtb2Rp ZmllZCBieSB0aGUgY29yZSBoZWxwZXIgZnVuY3Rpb25zIGZvciBzd2FwcGluZyBhbmQgY2xlYXJp bmcKPj4gaXQncyBzdGF0ZS4gU28sIGxldHMgYWRkIHZvaWQgKiBvYmplY3RzIGFuZCBoZWxwZXIg ZnVuY3Rpb25zIHRoYXQgb3BlcmF0ZQo+PiBvbiB2b2lkICogdHlwZXMgdG8ga2VlcCB0aGVzZSBv YmplY3RzIGFuZCBzdGF0ZXMgcHJpdmF0ZSB0byB0aGUgY29yZS4KPj4gRHJpdmVycyBjYW4gdGhl biBpbXBsZW1lbnQgc3BlY2lmaWMgZnVuY3Rpb25zIHRvIHN3YXAgYW5kIGNsZWFyIHN0YXRlcy4K Pj4gVGhlIG90aGVyIGFkdmFudGFnZSBoYXZpbmcganVzdCB2b2lkICogZm9yIHRoZXNlIG9iamVj dHMgaW4KPj4gZHJtX2F0b21pY19zdGF0ZSBpcyB0aGF0IG9iamVjdHMgb2YgZGlmZmVyZW50IHR5 cGVzIGNhbiBiZSBtYW5hZ2VkIGluIHRoZQo+PiBzYW1lIHN0YXRlIGFycmF5Lgo+Pgo+PiBTdWdn ZXN0ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4+IFNpZ25l ZC1vZmYtYnk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwu Y29tPgo+IAo+IEkgdGhpbmsgYW4gb3ZlcnZpZXcgRE9DOiBzZWN0aW9uIHRvIGV4cGxhaW4gaG93 IHRvIHN1YmNsYXNzIGF0b21pYyBzdGF0ZQo+IGFuZCBob3cgdG8gZG8gcHJpdmF0ZSBzdGF0ZSBv YmplY3RzIHdvdWxkIGJlIGdyZWF0LiBCdXQgSSBjYW4gZG8gdGhhdCBvbmNlCj4geW91ciBwYXRj aCBoYXMgbGFuZGVkLCBzaW5jZSBpdCdkIGJlIG11Y2ggbW9yZSBhYm91dCB0aGUgb3ZlcmFsbCBk ZXNpZ24gb2YKPiBhdG9taWMgKGFuZCBJIHByb21pc2VkIHRvIGRvIHRoYXQgYW55d2F5KS4KPiAK PiBMb29rcyBwcmV0dHkgZ29vZCwgYSBmZXcgbml0cyBiZWxvdyBzdGlsbC4gSSdsbCBhbHNvIGFz ayBhbWQgZm9sa3MgdG8KPiBjaGVjayB0aGlzIG91dCwgYW5kIEkgdGhpbmsgVmlsbGUgY291bGQg dXNlIGl0IGZvciBoaXMgY2RjbGsgc3R1ZmYuCgpUaGFua3MgZm9yIHBpbmdpbmcgbWUgYWdhaW4g YWJvdXQgdGhpcy4gVGhpcyBzaG91bGQgaGVscCB3aXRoIGF0dGFjaGluZwpvdXIgY29udGV4dCB0 byBhdG9taWNfc3RhdGUgaW4gYSBjbGVhbiBmYXNoaW9uLiBJIGhvcGUgdG8gc2hvdyBzb21lCnBh dGNoZXMgb2YgaXQgc29vbiBhZnRlciBJIHJlYmFzZSBvbiB0b3Agb2YgZHJtLW5leHQgKyB0aGVz ZSBwYXRjaGVzLgoKPiAKPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAg ICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDYgKysrKwo+PiAgaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oICAgICAgICAgICAgfCAzMCArKysrKysrKysrKysrKysrKysrKwo+PiAgMyBm aWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+PiBp bmRleCA3MjMzOTJmLi5mM2E3MWNjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2F0b21pYy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPj4gQEAgLTU3 LDYgKzU3LDcgQEAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4+ICAJa2ZyZWUoc3RhdGUtPmNvbm5lY3RvcnMpOwo+ PiAgCWtmcmVlKHN0YXRlLT5jcnRjcyk7Cj4+ICAJa2ZyZWUoc3RhdGUtPnBsYW5lcyk7Cj4+ICsJ a2ZyZWUoc3RhdGUtPnByaXZhdGVfb2Jqcyk7Cj4+ICB9Cj4+ICBFWFBPUlRfU1lNQk9MKGRybV9h dG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKTsKPj4gIAo+PiBAQCAtMTg0LDYgKzE4NSwyMCBA QCB2b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4+ICAJCXN0YXRlLT5wbGFuZXNbaV0ucHRyID0gTlVMTDsKPj4gIAkJc3Rh dGUtPnBsYW5lc1tpXS5zdGF0ZSA9IE5VTEw7Cj4+ICAJfQo+PiArCj4+ICsJZm9yIChpID0gMDsg aSA8IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzOyBpKyspIHsKPj4gKwkJdm9pZCAqcHJpdl9vYmog PSBzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iajsKPj4gKwkJdm9pZCAqb2JqX3N0YXRlID0gc3Rh dGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7Cj4+ICsKPj4gKwkJaWYgKCFwcml2X29iaikK Pj4gKwkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCXN0YXRlLT5wcml2YXRlX29ianNbaV0uZnVuY3Mt PmRlc3Ryb3lfc3RhdGUob2JqX3N0YXRlKTsKPj4gKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5v YmogPSBOVUxMOwo+PiArCQlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSA9IE5VTEw7 Cj4+ICsJCXN0YXRlLT5wcml2YXRlX29ianNbaV0uZnVuY3MgPSBOVUxMOwo+PiArCX0KPj4gKwo+ PiAgfQo+PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfY2xlYXIpOwo+ PiAgCj4+IEBAIC05NzYsNiArOTkxLDQ2IEBAIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfcGxhbmVf cHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+PiAgCQlwbGFuZS0+ZnVuY3MtPmF0 b21pY19wcmludF9zdGF0ZShwLCBzdGF0ZSk7Cj4+ICB9Cj4+ICAKPj4gKwo+IAo+IE5lZWRzIGtl cm5lbGRvYyBoZXJlLgo+IAo+PiArdm9pZCAqCj4+ICtkcm1fYXRvbWljX2dldF9wcml2X29ial9z dGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIHZvaWQgKm9iaiwKPiAKPiBvY2Qg YmlrZXNoZWQ6IHByaXZfb2JqIHZzIHByaXZhdGVfb2JqIGluY29uc2lzdGVuY3kgaGVyZSwgcGxl YXNlIHN0aWNrIHRvCj4gb25lIChJIGRvbid0IGNhcmUgd2hpY2ggb25lKS4KPiAKPj4gKwkJCSAg ICAgIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVuY3MpCj4+ICt7Cj4+ ICsJaW50IGluZGV4LCBudW1fb2JqcywgaTsKPj4gKwlzaXplX3Qgc2l6ZTsKPj4gKwlzdHJ1Y3Qg X19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlICphcnI7Cj4+ICsKPj4gKwlmb3IgKGkgPSAwOyBpIDwg c3RhdGUtPm51bV9wcml2YXRlX29ianM7IGkrKykKPj4gKwkJaWYgKG9iaiA9PSBzdGF0ZS0+cHJp dmF0ZV9vYmpzW2ldLm9iaiAmJgo+PiArCQkgICAgc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpf c3RhdGUpCj4+ICsJCQlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7Cj4+ ICsKPj4gKwludW1fb2JqcyA9IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzICsgMTsKPj4gKwlzaXpl ID0gc2l6ZW9mKCpzdGF0ZS0+cHJpdmF0ZV9vYmpzKSAqIG51bV9vYmpzOwo+PiArCWFyciA9IGty ZWFsbG9jKHN0YXRlLT5wcml2YXRlX29ianMsIHNpemUsIEdGUF9LRVJORUwpOwo+PiArCWlmICgh YXJyKQo+PiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPj4gKwo+PiArCXN0YXRlLT5wcml2 YXRlX29ianMgPSBhcnI7Cj4+ICsJaW5kZXggPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsKPj4g KwltZW1zZXQoJnN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLCAwLCBzaXplb2YoKnN0YXRlLT5w cml2YXRlX29ianMpKTsKPj4gKwo+PiArCXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9z dGF0ZSA9IGZ1bmNzLT5kdXBsaWNhdGVfc3RhdGUoc3RhdGUsIG9iaik7Cj4+ICsJaWYgKCFzdGF0 ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGUpCj4+ICsJCXJldHVybiBFUlJfUFRSKC1F Tk9NRU0pOwo+IAo+IEkgd29uZGVyZWQgd2hldGhlciB3ZSBuZWVkIHRvIGFsbG93IG90aGVyIGVy cm9yIGNvZGVzIHRoYW4gRU5PTUVNLCBlLmcuCj4gaWYgZHVwbGljYXRlX3N0YXRlIG5lZWRzIHRv IGFjcXVpcmUgYSB3d19tdXRleC4gQnV0IHdlIGNhbiBhbHdheXMgYWNxdWlyZQo+IHRoZSBuZWNl c3NhcnkgbG9ja3Mgb3V0c2lkZSBvZiBkcm1fYXRvbWljX2dldF9wcml2X29ial9zdGF0ZSBpbiBz b21lCj4gaGVscGVyL2RyaXZlciB3cmFwcGVyLiBTbyBubyBiaWcgZGVhbCwgYnV0IHdvcnRoIGV4 cGxhaW5pbmcgdGhhdAo+IGRybV9hdG9taWNfZ2V0X3ByaXZfb2JqX3N0YXRlIHdvbid0IGFjcXVp cmUgbmVjZXNzYXJpbHkgbG9jc2sgKHNpbmNlIGl0Cj4gZG9lc24ndCBrbm93IGFib3V0IHRoZW0p IGluIHRoZSBrZXJuZWwtZG9jLgo+IAo+PiArCj4+ICsJc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRl eF0ub2JqID0gb2JqOwo+PiArCXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLmZ1bmNzID0gZnVu Y3M7Cj4+ICsJc3RhdGUtPm51bV9wcml2YXRlX29ianMgPSBudW1fb2JqczsKPj4gKwo+PiArCURS TV9ERUJVR19BVE9NSUMoIkFkZGVkIG5ldyBwcml2YXRlIG9iamVjdCBzdGF0ZSAlcCB0byAlcFxu IiwKPj4gKwkJCSBzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGUsIHN0YXRlKTsK Pj4gKwo+PiArCXJldHVybiBzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGU7Cj4+ ICt9Cj4+ICtFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfZ2V0X3ByaXZfb2JqX3N0YXRlKTsKPj4g Kwo+PiArCj4+ICAvKioKPj4gICAqIGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSAtIGdl dCBjb25uZWN0b3Igc3RhdGUKPj4gICAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZSBvYmpl Y3QKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gaW5kZXggMWYwY2Q3ZS4uZGQz NGQyMSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMK Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4gQEAgLTE5Nzcs NiArMTk3Nyw4IEBAIHZvaWQgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJt X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4+ICAJ c3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7Cj4+ICAJc3RydWN0IGRybV9jcnRj X2NvbW1pdCAqY29tbWl0Owo+PiArCXZvaWQgKm9iaiwgKm9ial9zdGF0ZTsKPj4gKwljb25zdCBz dHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzOwo+PiAgCj4+ICAJaWYgKHN0YWxs KSB7Cj4+ICAJCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUs IGkpIHsKPj4gQEAgLTIwMjUsNiArMjAyNywxMCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3N3 YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+PiAgCQlzd2FwKHN0YXRl LT5wbGFuZXNbaV0uc3RhdGUsIHBsYW5lLT5zdGF0ZSk7Cj4+ICAJCXBsYW5lLT5zdGF0ZS0+c3Rh dGUgPSBOVUxMOwo+PiAgCX0KPj4gKwo+PiArCWZvcl9lYWNoX3ByaXZhdGVfb2JqKHN0YXRlLCBv YmosIG9ial9zdGF0ZSwgaSwgZnVuY3MpIHsKPj4gKwkJZnVuY3MtPnN3YXBfc3RhdGUob2JqLCAm c3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGUpOwo+PiArCX0KPj4gIH0KPj4gIEVYUE9S VF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZSk7Cj4+ICAKPj4gZGlmZiAtLWdp dCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaAo+ PiBpbmRleCBmMWNiMmIwLi44MGQ2ZTIxIDEwMDY0NAo+PiAtLS0gYS9pbmNsdWRlL2RybS9kcm1f YXRvbWljLmgKPj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4+IEBAIC0xNTMsNiAr MTUzLDE4IEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7Cj4+ICAJc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlOwo+PiAgfTsKPj4gIAo+IAo+IFRoaXMgb25lIG5lZWRz IGtlcm5lbC1kb2MgdG9vLCBzaW5jZSBpdCdzIGEgc3RydWN0IHRoYXQgZHJpdmVycy9oZWxwZXJz Cj4gd2lsbCBuZWVkIHRvIGltcGxlbWVudC4gUGxlYXNlIHVzZSB0aGUgaW5saW5lIHN0eWxlIGFu ZCBkb2N1bWVudCBleHBlY3RlZAo+IHNlbWFudGljcyBpbiBkZXRhaWwsIGxpa2Ugd2UgZG8gZm9y IG90aGVyIHZmdW5jIHRhYmxlcy4KPiAKCktlcm5lbGRvY3Mgd291bGQgZGVmaW5pdGVseSBoZWxw LgoKPj4gK3N0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyB7Cj4gCj4gSSBhbHNvIHdvbmRl ciB3aGV0aGVyIHdlIHNob3VsZG4ndCBnaXZlIHRoaXMgYSBkcm1fYXRvbWljXyBwcmVmaXggLi4u CgpJIHRoaW5rIGxlYXZpbmcgdGhlIGF0b21pYyBwcmVmaXggb3V0IGlzIG1vcmUgY29uc2lzdGVu dCB3aXRoIHRoZSBvdGhlcgphdG9taWMgc3RhdGUgb2JqZWN0cyAoZHJtX2NydGNfc3RhdGUsIGV0 YykuIGRybV94eXpfc3RhdGUgc2VlbXMgdG8gYXBwbHkKYXRvbWljLgoKSSBkb24ndCBoYXZlIGEg c3Ryb25nIHByZWZlcmVuY2UgZWl0aGVyIHdheSwgdGhvdWdoLgoKSGFycnkKCj4gCj4+ICsJdm9p ZCAoKnN3YXBfc3RhdGUpKHZvaWQgKm9iaiwgdm9pZCAqKm9ial9zdGF0ZV9wdHIpOwo+PiArCXZv aWQgKCpkZXN0cm95X3N0YXRlKSh2b2lkICpvYmpfc3RhdGUpOwo+PiArCXZvaWQgKigqZHVwbGlj YXRlX3N0YXRlKShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIHZvaWQgKm9iaik7Cj4+ ICt9Owo+PiArCj4+ICtzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlIHsKPj4gKwl2b2lk ICpvYmo7Cj4+ICsJdm9pZCAqb2JqX3N0YXRlOwo+PiArCWNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0 ZV9zdGF0ZV9mdW5jcyAqZnVuY3M7Cj4+ICt9Owo+PiArCj4+ICAvKioKPj4gICAqIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlIC0gdGhlIGdsb2JhbCBzdGF0ZSBvYmplY3QgZm9yIGF0b21pYyB1cGRh dGVzCj4+ICAgKiBAcmVmOiBjb3VudCBvZiBhbGwgcmVmZXJlbmNlcyB0byB0aGlzIHN0YXRlICh3 aWxsIG5vdCBiZSBmcmVlZCB1bnRpbCB6ZXJvKQo+PiBAQCAtMTY0LDYgKzE3Niw4IEBAIHN0cnVj dCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7Cj4+ICAgKiBAY3J0Y3M6IHBvaW50ZXIgdG8gYXJy YXkgb2YgQ1JUQyBwb2ludGVycwo+PiAgICogQG51bV9jb25uZWN0b3I6IHNpemUgb2YgdGhlIEBj b25uZWN0b3JzIGFuZCBAY29ubmVjdG9yX3N0YXRlcyBhcnJheXMKPj4gICAqIEBjb25uZWN0b3Jz OiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBwZXItY29ubmVjdG9yIGRhdGEK Pj4gKyAqIEBudW1fcHJpdmF0ZV9vYmpzOiBzaXplIG9mIHRoZSBAcHJpdmF0ZV9vYmpzIGFycmF5 Cj4+ICsgKiBAcHJpdmF0ZV9vYmpzOiBwb2ludGVyIHRvIGFycmF5IG9mIHByaXZhdGUgb2JqZWN0 IHBvaW50ZXJzCj4+ICAgKiBAYWNxdWlyZV9jdHg6IGFjcXVpcmUgY29udGV4dCBmb3IgdGhpcyBh dG9taWMgbW9kZXNldCBzdGF0ZSB1cGRhdGUKPj4gICAqLwo+PiAgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgewo+PiBAQCAtMTc3LDYgKzE5MSw4IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsK Pj4gIAlzdHJ1Y3QgX19kcm1fY3J0Y3Nfc3RhdGUgKmNydGNzOwo+PiAgCWludCBudW1fY29ubmVj dG9yOwo+PiAgCXN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSAqY29ubmVjdG9yczsKPj4g KwlpbnQgbnVtX3ByaXZhdGVfb2JqczsKPj4gKwlzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0 YXRlICpwcml2YXRlX29ianM7Cj4+ICAKPj4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggKmFjcXVpcmVfY3R4Owo+PiAgCj4+IEBAIC0yNjksNiArMjg1LDExIEBAIGludCBkcm1fYXRv bWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPj4gIAkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3By b3BlcnR5ICpwcm9wZXJ0eSwKPj4gIAkJdWludDY0X3QgdmFsKTsKPj4gIAo+PiArdm9pZCAqIF9f bXVzdF9jaGVjawo+PiArZHJtX2F0b21pY19nZXRfcHJpdl9vYmpfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+PiArCQkJICAgICAgdm9pZCAqb2JqLAo+PiArCQkJICAgICAg Y29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jcyk7Cj4+ICsKPj4gIC8q Kgo+PiAgICogZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZSAtIGdldCBjcnRjIHN0 YXRlLCBpZiBpdCBleGlzdHMKPj4gICAqIEBzdGF0ZTogZ2xvYmFsIGF0b21pYyBzdGF0ZSBvYmpl Y3QKPj4gQEAgLTQxMyw2ICs0MzQsMTUgQEAgdm9pZCBkcm1fc3RhdGVfZHVtcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOwo+PiAgCSAgICAgKF9faSkrKykJ CQkJCQkJXAo+PiAgCQlmb3JfZWFjaF9pZiAocGxhbmVfc3RhdGUpCj4+ICAKPj4gKyNkZWZpbmUg Zm9yX2VhY2hfcHJpdmF0ZV9vYmooX19zdGF0ZSwgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5j cykJXAo+PiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4+ICsJICAgICAoX19pKSA8IChfX3N0 YXRlKS0+bnVtX3ByaXZhdGVfb2JqcyAmJgkJCVwKPj4gKwkgICAgICgob2JqKSA9IChfX3N0YXRl KS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqLAkJCVwKPj4gKwkgICAgICAoX19mdW5jcykgPSAoX19z dGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLmZ1bmNzLAkJXAo+PiArCSAgICAgIChvYmpfc3RhdGUp ID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5vYmpfc3RhdGUsIDEpOwlcCj4+ICsJICAg ICAgKF9faSkrKykJCQkJCQkJXAo+PiArCQlmb3JfZWFjaF9pZiAoX19mdW5jcykKPiAKPiBZb3Ug YXJlIG5vdCBmaWx0ZXJpbmcgZm9yIHRoZSBmdW5jdGlvbiB0YWJsZSBoZXJlLCB3aGljaCBpcyBp bXBvcnRhbnQgdG8KPiBtYWtlIHN1cmUgdGhhdCB0aGlzIGNhbiBiZSB1c2VkIHRvIG9ubHkgd2Fs ayBvdmVyIG9iamVjdHMgd2l0aCBhIGdpdmVuCj4gdnRhYmxlLiBXaXRoIHRoYXQgd2UgY2FuIHRo ZW4gI2RlZmluZSBzcGVjaWZpYyBtYWNyb3MgZm9yIGUuZy4gbXN0Ogo+IAo+IHN0cnVjdCBkcm1f cHJpdmF0ZV9zdGF0ZV9mdW5jcyBtc3Rfc3RhdGVfZnVuY3M7Cj4gCj4gI2RlZmluZSBmb3JfZWFj aF9tc3Rfc3RhdGUoX19zdGF0ZSwgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5jcykgXAo+IAlm b3JfZWFjaF9wcml2YXRlX29iaihfX3N0YXRlLCAmbXN0X3N0YXRlX2Z1bmNzLCBvYmosIG9ial9z dGF0ZSwgX19pLCBfX2Z1bmNzKQo+IAo+IEknZCBwbGFjZSB0aGUgdmZ1bmMgcmlnaHQgYWZ0ZXIg dGhlIHN0YXRlLCBzaW5jZSB0aG9zZSBhcmUgYm90aCBpbnB1dAo+IHBhcmFtZXRlcnMgdG8gdGhl IG1hY3JvLCBhbmQgc3BlY2lmeSB3aGF0IGV4YWN0bHkgd2UncmUgbG9vcGluZyBvdmVyLiBUbwo+ IG1ha2UgdGhpcyB3b3JrIHlvdSBuZWVkIHNvbWV0aGluZyBsaWtlOgo+IAo+ICNkZWZpbmUgZm9y X2VhY2hfcHJpdmF0ZV9vYmooX19zdGF0ZSwgb2JqX2Z1bmNzLCBvYmosIG9ial9zdGF0ZSwgX19p LCBfX2Z1bmNzKQlcCj4gCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4gCSAgICAgKF9faSkgPCAo X19zdGF0ZSktPm51bV9wcml2YXRlX29ianMgJiYJCQlcCj4gCSAgICAgKChvYmopID0gKF9fc3Rh dGUpLT5wcml2YXRlX29ianNbX19pXS5vYmosCQkJXAo+IAkgICAgICAoX19mdW5jcykgPSAoX19z dGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLmZ1bmNzLAkJXAo+IAkgICAgICAob2JqX3N0YXRlKSA9 IChfX3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqX3N0YXRlLCAxKTsJXAo+IAkgICAgICAo X19pKSsrKQkJCQkJCQlcCj4gCQlmb3JfZWFjaF9pZiAoX19mdW5jcyA9PSBvYmpfZnVuY3MpCj4g Cj4gTm90ZSB0aGUgY2hlY2sgdG8gY29tcGFyZSBfX2Z1bmNzID09IG9ial9mdW5jcy4KPiAKPiBX aXRoIHRoYXQgb3RoZXIgc3Vic3l0ZW0gY2FuIHRoZSBmaWx0ZXIgZm9yIHRoZWlyIG93biBvYmpl Y3RzIG9ubHkgd2l0aAo+IGUuZy4KPiAKPiAjZGVmaW5lIGludGVsX2Zvcl9lYWNoX2NkY2xrX3N0 YXRlKF9fc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBfX2ksIF9fZnVuY3MpIFwKPiAJZm9yX2VhY2hf cHJpdmF0ZV9vYmooX19zdGF0ZSwgJmludGVsX2NkY2xrX3N0YXRlX2Z1bmNzLCBvYmosIG9ial9z dGF0ZSwgX19pLCBfX2Z1bmNzKQo+IAo+IFdvdWxkIGJlIGdvb2QgdG8gYWxzbyB0aGVuIGhhdmUg a2VybmVsZG9jIGZvciB0aGlzIGl0ZXJhdG9yLCB0byBleHBsYWluCj4gaG93IHRvIHVzZSBpdC4K PiAtRGFuaWVsCj4gCj4+ICAvKioKPj4gICAqIGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0 IC0gY29tcHV0ZSBjb21iaW5lZCBtb2Rlc2V0IG5lZWQKPj4gICAqIEBzdGF0ZTogJmRybV9jcnRj X3N0YXRlIGZvciB0aGUgQ1JUQwo+PiAtLSAKPj4gMi43LjQKPj4KPiAKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==