From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v7 1/4] drm: Add driver-private objects to atomic state Date: Tue, 25 Apr 2017 09:37:51 +0200 Message-ID: References: <1492753893-3748-1-git-send-email-dhinakaran.pandiyan@intel.com> <1492753893-3748-2-git-send-email-dhinakaran.pandiyan@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1492753893-3748-2-git-send-email-dhinakaran.pandiyan@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Dhinakaran Pandiyan , intel-gfx@lists.freedesktop.org Cc: daniel.vetter@ffwll.ch, architt@codeaurora.org, Harry.wentland@amd.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMjEtMDQtMTcgMDc6NTEsIERoaW5ha2FyYW4gUGFuZGl5YW4gd3JvdGU6Cj4gRnJvbTogIlBh bmRpeWFuLCBEaGluYWthcmFuIiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+Cj4KPiBJ dCBpcyBuZWNlc3NhcnkgdG8gdHJhY2sgc3RhdGVzIGZvciBvYmplY3RzIG90aGVyIHRoYW4gY29u bmVjdG9yLCBjcnRjCj4gYW5kIHBsYW5lIGZvciBhdG9taWMgbW9kZXNldHMuIEJ1dCBhZGRpbmcg b2JqZWN0cyBsaWtlIERQIE1TVCBsaW5rCj4gYmFuZHdpZHRoIHRvIGRybV9hdG9taWNfc3RhdGUg d291bGQgbWVhbiB0aGF0IGEgbm9uLWNvcmUgb2JqZWN0IHdpbGwgYmUKPiBtb2RpZmllZCBieSB0 aGUgY29yZSBoZWxwZXIgZnVuY3Rpb25zIGZvciBzd2FwcGluZyBhbmQgY2xlYXJpbmcKPiBpdCdz IHN0YXRlLiBTbywgbGV0cyBhZGQgdm9pZCAqIG9iamVjdHMgYW5kIGhlbHBlciBmdW5jdGlvbnMg dGhhdCBvcGVyYXRlCj4gb24gdm9pZCAqIHR5cGVzIHRvIGtlZXAgdGhlc2Ugb2JqZWN0cyBhbmQg c3RhdGVzIHByaXZhdGUgdG8gdGhlIGNvcmUuCj4gRHJpdmVycyBjYW4gdGhlbiBpbXBsZW1lbnQg c3BlY2lmaWMgZnVuY3Rpb25zIHRvIHN3YXAgYW5kIGNsZWFyIHN0YXRlcy4KPiBUaGUgb3RoZXIg YWR2YW50YWdlIGhhdmluZyBqdXN0IHZvaWQgKiBmb3IgdGhlc2Ugb2JqZWN0cyBpbgo+IGRybV9h dG9taWNfc3RhdGUgaXMgdGhhdCBvYmplY3RzIG9mIGRpZmZlcmVudCB0eXBlcyBjYW4gYmUgbWFu YWdlZCBpbiB0aGUKPiBzYW1lIHN0YXRlIGFycmF5Lgo+Cj4gdjY6IE1vcmUga2VybmVsLWRvYyB0 byBrZWVwIDAtZGF5IGhhcHB5Cj4gdjU6IFJlbW92ZSBtb3JlIE5VTEwgY2hlY2tzIChNYWFydGVu KQo+IHY0OiBBdm9pZCByZWR1bmRhbnQgTlVMTCBjaGVja3Mgd2hlbiBwcml2YXRlX29ianMgYXJy YXkgaXMgZW1wdHkgKE1hYXJ0ZW4pCj4gdjM6IE1hY3JvIGFsaWdubWVudCAoQ2hyaXMpCj4gdjI6 IEFkZGVkIGRvY3MgYW5kIG5ldyBpdGVyYXRvciB0byBmaWx0ZXIgcHJpdmF0ZSBvYmplY3RzIChE YW5pZWwpCj4KPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBD YzogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K PiBDYzogQXJjaGl0IFRhbmVqYSA8YXJjaGl0dEBjb2RlYXVyb3JhLm9yZz4KPiBDYzogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IEhhcnJ5IFdlbnRsYW5kIDxI YXJyeS53ZW50bGFuZEBhbWQuY29tPgo+Cj4gQWNrZWQtYnk6IEhhcnJ5IFdlbnRsYW5kIDxoYXJy eS53ZW50bGFuZEBhbWQuY29tPgo+IFN1Z2dlc3RlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KPiBTaWduZWQtb2ZmLWJ5OiBEaGluYWthcmFuIFBhbmRpeWFuIDxk aGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWMuYyAgICAgICAgfCAgNjUgKysrKysrKysrKysrKysrKysrKysrKysKPiAgZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgIDUgKysKPiAgaW5jbHVkZS9kcm0vZHJt X2F0b21pYy5oICAgICAgICAgICAgfCAxMDEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwgMTcxIGluc2VydGlvbnMoKykKPgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWMuYwo+IGluZGV4IDMwMjI5YWIuLjhlNWYzZWIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK PiBAQCAtNTcsNiArNTcsNyBAQCB2b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNl KHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWtmcmVlKHN0YXRlLT5jb25uZWN0 b3JzKTsKPiAgCWtmcmVlKHN0YXRlLT5jcnRjcyk7Cj4gIAlrZnJlZShzdGF0ZS0+cGxhbmVzKTsK PiArCWtmcmVlKHN0YXRlLT5wcml2YXRlX29ianMpOwo+ICB9Cj4gIEVYUE9SVF9TWU1CT0woZHJt X2F0b21pY19zdGF0ZV9kZWZhdWx0X3JlbGVhc2UpOwo+ICAKPiBAQCAtMTg0LDYgKzE4NSwxNyBA QCB2b2lkIGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcihzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCj4gIAkJc3RhdGUtPnBsYW5lc1tpXS5wdHIgPSBOVUxMOwo+ICAJCXN0YXRl LT5wbGFuZXNbaV0uc3RhdGUgPSBOVUxMOwo+ICAJfQo+ICsKPiArCWZvciAoaSA9IDA7IGkgPCBz dGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsgaSsrKSB7Cj4gKwkJdm9pZCAqb2JqX3N0YXRlID0gc3Rh dGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7Cj4gKwo+ICsJCXN0YXRlLT5wcml2YXRlX29i anNbaV0uZnVuY3MtPmRlc3Ryb3lfc3RhdGUob2JqX3N0YXRlKTsKPiArCQlzdGF0ZS0+cHJpdmF0 ZV9vYmpzW2ldLm9iaiA9IE5VTEw7Cj4gKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3Rh dGUgPSBOVUxMOwo+ICsJCXN0YXRlLT5wcml2YXRlX29ianNbaV0uZnVuY3MgPSBOVUxMOwo+ICsJ fQo+ICsJc3RhdGUtPm51bV9wcml2YXRlX29ianMgPSAwOwo+ICsKPiAgfQo+ICBFWFBPUlRfU1lN Qk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcik7Cj4gIAo+IEBAIC05NzgsNiArOTkw LDU5IEBAIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfcGxhbmVfcHJpbnRfc3RhdGUoc3RydWN0IGRy bV9wcmludGVyICpwLAo+ICB9Cj4gIAo+ICAvKioKPiArICogZHJtX2F0b21pY19nZXRfcHJpdmF0 ZV9vYmpfc3RhdGUgLSBnZXQgcHJpdmF0ZSBvYmplY3Qgc3RhdGUKPiArICogQHN0YXRlOiBnbG9i YWwgYXRvbWljIHN0YXRlCj4gKyAqIEBvYmo6IHByaXZhdGUgb2JqZWN0IHRvIGdldCB0aGUgc3Rh dGUgZm9yCj4gKyAqIEBmdW5jczogcG9pbnRlciB0byB0aGUgc3RydWN0IG9mIGZ1bmN0aW9uIHBv aW50ZXJzIHRoYXQgaWRlbnRpZnkgdGhlIG9iamVjdAo+ICsgKiB0eXBlCj4gKyAqCj4gKyAqIFRo aXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcHJpdmF0ZSBvYmplY3Qgc3RhdGUgZm9yIHRoZSBnaXZl biBwcml2YXRlIG9iamVjdCwKPiArICogYWxsb2NhdGluZyB0aGUgc3RhdGUgaWYgbmVlZGVkLiBJ dCBkb2VzIG5vdCBncmFiIGFueSBsb2NrcyBhcyB0aGUgY2FsbGVyIGlzCj4gKyAqIGV4cGVjdGVk IHRvIGNhcmUgb2YgYW55IHJlcXVpcmVkIGxvY2tpbmcuCj4gKyAqCj4gKyAqIFJFVFVSTlM6Cj4g KyAqCj4gKyAqIEVpdGhlciB0aGUgYWxsb2NhdGVkIHN0YXRlIG9yIHRoZSBlcnJvciBjb2RlIGVu Y29kZWQgaW50byBhIHBvaW50ZXIuCj4gKyAqLwo+ICt2b2lkICoKPiArZHJtX2F0b21pY19nZXRf cHJpdmF0ZV9vYmpfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLCB2b2lkICpv YmosCj4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVu Y3MpCj4gK3sKPiArCWludCBpbmRleCwgbnVtX29ianMsIGk7Cj4gKwlzaXplX3Qgc2l6ZTsKPiAr CXN0cnVjdCBfX2RybV9wcml2YXRlX29ianNfc3RhdGUgKmFycjsKPiArCj4gKwlmb3IgKGkgPSAw OyBpIDwgc3RhdGUtPm51bV9wcml2YXRlX29ianM7IGkrKykKPiArCQlpZiAob2JqID09IHN0YXRl LT5wcml2YXRlX29ianNbaV0ub2JqICYmCj4gKwkJICAgIHN0YXRlLT5wcml2YXRlX29ianNbaV0u b2JqX3N0YXRlKQo+ICsJCQlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGU7 Cj4gKwo+ICsJbnVtX29ianMgPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyArIDE7Cj4gKwlzaXpl ID0gc2l6ZW9mKCpzdGF0ZS0+cHJpdmF0ZV9vYmpzKSAqIG51bV9vYmpzOwo+ICsJYXJyID0ga3Jl YWxsb2Moc3RhdGUtPnByaXZhdGVfb2Jqcywgc2l6ZSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIWFy cikKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCj4gKwlzdGF0ZS0+cHJpdmF0ZV9v YmpzID0gYXJyOwo+ICsJaW5kZXggPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqczsKPiArCW1lbXNl dCgmc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0sIDAsIHNpemVvZigqc3RhdGUtPnByaXZhdGVf b2JqcykpOwo+ICsKPiArCXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9zdGF0ZSA9IGZ1 bmNzLT5kdXBsaWNhdGVfc3RhdGUoc3RhdGUsIG9iaik7Cj4gKwlpZiAoIXN0YXRlLT5wcml2YXRl X29ianNbaW5kZXhdLm9ial9zdGF0ZSkKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAr Cj4gKwlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmogPSBvYmo7Cj4gKwlzdGF0ZS0+cHJp dmF0ZV9vYmpzW2luZGV4XS5mdW5jcyA9IGZ1bmNzOwo+ICsJc3RhdGUtPm51bV9wcml2YXRlX29i anMgPSBudW1fb2JqczsKPiArCj4gKwlEUk1fREVCVUdfQVRPTUlDKCJBZGRlZCBuZXcgcHJpdmF0 ZSBvYmplY3Qgc3RhdGUgJXAgdG8gJXBcbiIsCj4gKwkJCSBzdGF0ZS0+cHJpdmF0ZV9vYmpzW2lu ZGV4XS5vYmpfc3RhdGUsIHN0YXRlKTsKPiArCj4gKwlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jq c1tpbmRleF0ub2JqX3N0YXRlOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJtX2F0b21pY19nZXRf cHJpdmF0ZV9vYmpfc3RhdGUpOwo+ICsKPiArLyoqCj4gICAqIGRybV9hdG9taWNfZ2V0X2Nvbm5l Y3Rvcl9zdGF0ZSAtIGdldCBjb25uZWN0b3Igc3RhdGUKPiAgICogQHN0YXRlOiBnbG9iYWwgYXRv bWljIHN0YXRlIG9iamVjdAo+ICAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3IgdG8gZ2V0IHN0YXRl IG9iamVjdCBmb3IKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IGluZGV4IGNmZWRh NWYuLmNjZTA1ZmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVs cGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+IEBAIC0y MDMyLDYgKzIwMzIsOCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7Cj4g IAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3Rh dGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gKwl2b2lkICpvYmosICpv Ympfc3RhdGU7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNz Owo+ICAKPiAgCWlmIChzdGFsbCkgewo+ICAJCWZvcl9lYWNoX25ld19jcnRjX2luX3N0YXRlKHN0 YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+IEBAIC0yMDkyLDYgKzIwOTQsOSBAQCB2 b2lkIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUg KnN0YXRlLAo+ICAJCXN0YXRlLT5wbGFuZXNbaV0uc3RhdGUgPSBvbGRfcGxhbmVfc3RhdGU7Cj4g IAkJcGxhbmUtPnN0YXRlID0gbmV3X3BsYW5lX3N0YXRlOwo+ICAJfQo+ICsKPiArCV9fZm9yX2Vh Y2hfcHJpdmF0ZV9vYmooc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBpLCBmdW5jcykKPiArCQlmdW5j cy0+c3dhcF9zdGF0ZShvYmosICZzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSk7Cj4g IH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0YXRlKTsKPiAgCj4g ZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9h dG9taWMuaAo+IGluZGV4IDc4OGRhZjcuLjI4NWIzYTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9k cm0vZHJtX2F0b21pYy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gQEAgLTE1 NSw2ICsxNTUsNTMgQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRlIHsKPiAgfTsKPiAg Cj4gIC8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgLSBhdG9taWMgc3Rh dGUgZnVuY3Rpb25zIGZvciBwcml2YXRlIG9iamVjdHMKPiArICoKPiArICogVGhlc2UgaG9va3Mg YXJlIHVzZWQgYnkgYXRvbWljIGhlbHBlcnMgdG8gY3JlYXRlLCBzd2FwIGFuZCBkZXN0cm95IHN0 YXRlcyBvZgo+ICsgKiBwcml2YXRlIG9iamVjdHMuIFRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIHVz ZWQgYXMgYSB2dGFibGUgdG8gaWRlbnRpZnkgdGhlCj4gKyAqIGFzc29jaWF0ZWQgcHJpdmF0ZSBv YmplY3QgdHlwZS4gRWFjaCBwcml2YXRlIG9iamVjdCB0eXBlIHRoYXQgbmVlZHMgdG8gYmUKPiAr ICogYWRkZWQgdG8gdGhlIGF0b21pYyBzdGF0ZXMgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbXBs ZW1lbnRhdGlvbiBvZiB0aGVzZQo+ICsgKiBob29rcyBhbmQgcGFzcyBhIHBvaW50ZXIgdG8gaXQn cyBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBzdHJ1Y3QgdG8KPiArICogZHJtX2F0b21pY19nZXRf cHJpdmF0ZV9vYmpfc3RhdGUoKS4KPiArICovCj4gK3N0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9m dW5jcyB7Cj4gKwkvKioKPiArCSAqIEBkdXBsaWNhdGVfc3RhdGU6Cj4gKwkgKgo+ICsJICogRHVw bGljYXRlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwcml2YXRlIG9iamVjdCBhbmQgcmV0dXJu IGl0LiBJdAo+ICsJICogaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIGJlZm9yZSBvYmotPnN0YXRl IGhhcyBiZWVuIGluaXRpYWxpemVkLgo+ICsJICoKPiArCSAqIFJFVFVSTlM6Cj4gKwkgKgo+ICsJ ICogRHVwbGljYXRlZCBhdG9taWMgc3RhdGUgb3IgTlVMTCB3aGVuIG9iai0+c3RhdGUgaXMgbm90 Cj4gKwkgKiBpbml0aWFsaXplZCBvciBhbGxvY2F0aW9uIGZhaWxlZC4KPiArCSAqLwo+ICsJdm9p ZCAqKCpkdXBsaWNhdGVfc3RhdGUpKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgdm9p ZCAqb2JqKTsKPiArCj4gKwkvKioKPiArCSAqIEBzd2FwX3N0YXRlOgo+ICsJICoKPiArCSAqIFRo aXMgZnVuY3Rpb24gc3dhcHMgdGhlIGV4aXN0aW5nIHN0YXRlIG9mIGEgcHJpdmF0ZSBvYmplY3Qg QG9iaiB3aXRoCj4gKwkgKiBpdCdzIG5ld2x5IGNyZWF0ZWQgc3RhdGUsIHRoZSBwb2ludGVyIHRv IHdoaWNoIGlzIHBhc3NlZCBhcwo+ICsJICogQG9ial9zdGF0ZV9wdHIuCj4gKwkgKi8KPiArCXZv aWQgKCpzd2FwX3N0YXRlKSh2b2lkICpvYmosIHZvaWQgKipvYmpfc3RhdGVfcHRyKTsKPiArCj4g KwkvKioKPiArCSAqIEBkZXN0cm95X3N0YXRlOgo+ICsJICoKPiArCSAqIEZyZWVzIHRoZSBwcml2 YXRlIG9iamVjdCBzdGF0ZSBjcmVhdGVkIHdpdGggQGR1cGxpY2F0ZV9zdGF0ZS4KPiArCSAqLwo+ ICsJdm9pZCAoKmRlc3Ryb3lfc3RhdGUpKHZvaWQgKm9ial9zdGF0ZSk7Cj4gK307Cj4gKwo+ICtz dHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlIHsKPiArCXZvaWQgKm9iajsKPiArCXZvaWQg Km9ial9zdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVu Y3M7Cj4gK307Cj4gKwo+ICsvKioKPiAgICogc3RydWN0IGRybV9hdG9taWNfc3RhdGUgLSB0aGUg Z2xvYmFsIHN0YXRlIG9iamVjdCBmb3IgYXRvbWljIHVwZGF0ZXMKPiAgICogQHJlZjogY291bnQg b2YgYWxsIHJlZmVyZW5jZXMgdG8gdGhpcyBzdGF0ZSAod2lsbCBub3QgYmUgZnJlZWQgdW50aWwg emVybykKPiAgICogQGRldjogcGFyZW50IERSTSBkZXZpY2UKPiBAQCAtMTY0LDYgKzIxMSw4IEBA IHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7Cj4gICAqIEBjcnRjczogcG9pbnRlciB0 byBhcnJheSBvZiBDUlRDIHBvaW50ZXJzCj4gICAqIEBudW1fY29ubmVjdG9yOiBzaXplIG9mIHRo ZSBAY29ubmVjdG9ycyBhbmQgQGNvbm5lY3Rvcl9zdGF0ZXMgYXJyYXlzCj4gICAqIEBjb25uZWN0 b3JzOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBwZXItY29ubmVjdG9yIGRh dGEKPiArICogQG51bV9wcml2YXRlX29ianM6IHNpemUgb2YgdGhlIEBwcml2YXRlX29ianMgYXJy YXkKPiArICogQHByaXZhdGVfb2JqczogcG9pbnRlciB0byBhcnJheSBvZiBwcml2YXRlIG9iamVj dCBwb2ludGVycwo+ICAgKiBAYWNxdWlyZV9jdHg6IGFjcXVpcmUgY29udGV4dCBmb3IgdGhpcyBh dG9taWMgbW9kZXNldCBzdGF0ZSB1cGRhdGUKPiAgICovCj4gIHN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlIHsKPiBAQCAtMTc2LDYgKzIyNSw4IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsKPiAg CXN0cnVjdCBfX2RybV9jcnRjc19zdGF0ZSAqY3J0Y3M7Cj4gIAlpbnQgbnVtX2Nvbm5lY3RvcjsK PiAgCXN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSAqY29ubmVjdG9yczsKPiArCWludCBu dW1fcHJpdmF0ZV9vYmpzOwo+ICsJc3RydWN0IF9fZHJtX3ByaXZhdGVfb2Jqc19zdGF0ZSAqcHJp dmF0ZV9vYmpzOwo+ICAKPiAgCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCAqYWNxdWly ZV9jdHg7Cj4gIAo+IEBAIC0yNjgsNiArMzE5LDExIEBAIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rv cl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3Bl cnR5LAo+ICAJCXVpbnQ2NF90IHZhbCk7Cj4gIAo+ICt2b2lkICogX19tdXN0X2NoZWNrCj4gK2Ry bV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSwKPiArCQkJICAgICAgdm9pZCAqb2JqLAo+ICsJCQkgICAgICBjb25zdCBzdHJ1Y3QgZHJt X3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzKTsKPiArCj4gIC8qKgo+ICAgKiBkcm1fYXRvbWlj X2dldF9leGlzdGluZ19jcnRjX3N0YXRlIC0gZ2V0IGNydGMgc3RhdGUsIGlmIGl0IGV4aXN0cwo+ ICAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0Cj4gQEAgLTc1Myw2ICs4MDks NTEgQEAgdm9pZCBkcm1fc3RhdGVfZHVtcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3Qg ZHJtX3ByaW50ZXIgKnApOwo+ICAJCWZvcl9lYWNoX2lmIChwbGFuZSkKPiAgCj4gIC8qKgo+ICsg KiBfX2Zvcl9lYWNoX3ByaXZhdGVfb2JqIC0gaXRlcmF0ZSBvdmVyIGFsbCBwcml2YXRlIG9iamVj dHMKPiArICogQF9fc3RhdGU6ICZzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSBwb2ludGVyCj4gKyAq IEBvYmo6IHByaXZhdGUgb2JqZWN0IGl0ZXJhdGlvbiBjdXJzb3IKPiArICogQG9ial9zdGF0ZTog cHJpdmF0ZSBvYmplY3Qgc3RhdGUgaXRlcmF0aW9uIGN1cnNvcgo+ICsgKiBAX19pOiBpbnQgaXRl cmF0aW9uIGN1cnNvciwgZm9yIG1hY3JvLWludGVybmFsIHVzZQo+ICsgKiBAX19mdW5jczogJnN0 cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBpdGVyYXRpb24gY3Vyc29yCj4gKyAqCj4gKyAq IFRoaXMgbWFjcm8gaXRlcmF0ZXMgb3ZlciB0aGUgYXJyYXkgY29udGFpbmluZyBwcml2YXRlIG9i amVjdCBkYXRhIGluIGF0b21pYwo+ICsgKiBzdGF0ZQo+ICsgKi8KPiArI2RlZmluZSBfX2Zvcl9l YWNoX3ByaXZhdGVfb2JqKF9fc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBfX2ksIF9fZnVuY3MpCVwK PiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcCj4gKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5u dW1fcHJpdmF0ZV9vYmpzICYmCQkJXAo+ICsJICAgICAoKG9iaikgPSAoX19zdGF0ZSktPnByaXZh dGVfb2Jqc1tfX2ldLm9iaiwJCQlcCj4gKwkgICAgICAoX19mdW5jcykgPSAoX19zdGF0ZSktPnBy aXZhdGVfb2Jqc1tfX2ldLmZ1bmNzLAkJXAo+ICsJICAgICAgKG9ial9zdGF0ZSkgPSAoX19zdGF0 ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9ial9zdGF0ZSwJXAo+ICsJICAgICAgMSk7CQkJCQkJCVwK PiArCSAgICAgKF9faSkrKykJCQkJCQkJXAo+ICsKPiArLyoqCj4gKyAqIGZvcl9lYWNoX3ByaXZh dGVfb2JqIC0gaXRlcmF0ZSBvdmVyIGEgc3BlY2lmeSB0eXBlIG9mIHByaXZhdGUgb2JqZWN0Cj4g KyAqIEBfX3N0YXRlOiAmc3RydWN0IGRybV9hdG9taWNfc3RhdGUgcG9pbnRlcgo+ICsgKiBAb2Jq X2Z1bmNzOiAmc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzIGZ1bmN0aW9uIHRhYmxlIHRv IGZpbHRlcgo+ICsgKiAJcHJpdmF0ZSBvYmplY3RzCj4gKyAqIEBvYmo6IHByaXZhdGUgb2JqZWN0 IGl0ZXJhdGlvbiBjdXJzb3IKPiArICogQG9ial9zdGF0ZTogcHJpdmF0ZSBvYmplY3Qgc3RhdGUg aXRlcmF0aW9uIGN1cnNvcgo+ICsgKiBAX19pOiBpbnQgaXRlcmF0aW9uIGN1cnNvciwgZm9yIG1h Y3JvLWludGVybmFsIHVzZQo+ICsgKiBAX19mdW5jczogJnN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0 ZV9mdW5jcyBpdGVyYXRpb24gY3Vyc29yCj4gKyAqCj4gKyAqIFRoaXMgbWFjcm8gaXRlcmF0ZXMg b3ZlciB0aGUgcHJpdmF0ZSBvYmplY3RzIHN0YXRlIGFycmF5IHdoaWxlIGZpbHRlcmluZyB0aGUK PiArICogb2JqZWN0cyBiYXNlZCBvbiB0aGUgdmZ1bmMgdGFibGUgdGhhdCBpcyBwYXNzZWQgYXMg QG9ial9mdW5jcy4gTmV3IG1hY3Jvcwo+ICsgKiBjYW4gYmUgY3JlYXRlZCBieSBwYXNzaW5nIGlu IHRoZSB2ZnVuYyB0YWJsZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYwo+ICsgKiBwcml2YXRl IG9iamVjdC4KPiArICovCj4gKyNkZWZpbmUgZm9yX2VhY2hfcHJpdmF0ZV9vYmooX19zdGF0ZSwg b2JqX2Z1bmNzLCBvYmosIG9ial9zdGF0ZSwgX19pLCBfX2Z1bmNzKQlcCj4gKwlmb3IgKChfX2kp ID0gMDsJCQkJCQkJXAo+ICsJICAgICAoX19pKSA8IChfX3N0YXRlKS0+bnVtX3ByaXZhdGVfb2Jq cyAmJgkJCVwKPiArCSAgICAgKChvYmopID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5v YmosCQkJXAo+ICsJICAgICAgKF9fZnVuY3MpID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19p XS5mdW5jcywJCVwKPiArCSAgICAgIChvYmpfc3RhdGUpID0gKF9fc3RhdGUpLT5wcml2YXRlX29i anNbX19pXS5vYmpfc3RhdGUsCVwKPiArCSAgICAgIDEpOwkJCQkJCQlcCj4gKwkgICAgIChfX2kp KyspCQkJCQkJCVwKPiArCQlmb3JfZWFjaF9pZiAoX19mdW5jcyA9PSBvYmpfZnVuY3MpCj4gKwoK TWF5YmUgdXNlIF9fZm9yX2VhY2hfcHJpdmF0ZV9vYmogaW4gdGhpcyBtYWNybyBmb3IgY2xhcml0 eT8KCiNkZWZpbmUgZm9yX2VhY2hfcHJpdmF0ZV9vYmooLi4uKSBcCglfX2Zvcl9lYWNoX3ByaXZh dGVfb2JqKC4uLikgXAoJCWZvcl9lYWNoX2lmIChfX2Z1bmNzID09IG9ial9mdW5jcykgPwoKUmV2 aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK