From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v5 4/8] drm: Add driver-private objects to atomic state Date: Mon, 27 Mar 2017 08:16:17 +0200 Message-ID: <14c2d74c-ec26-d8c1-aac2-be3843a6e50e@linux.intel.com> References: <1490221849-11073-1-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: <1490221849-11073-1-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 , Archit Taneja , Harry Wentland , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org SGV5LAoKVGhlcmUgYXJlIHN0aWxsIDIgdW5uZWNlc3NhcnkgTlVMTCBjaGVja3MsIGFmYWljdC4K Ck9wIDIyLTAzLTE3IG9tIDIzOjMwIHNjaHJlZWYgRGhpbmFrYXJhbiBQYW5kaXlhbjoKPiBGcm9t OiAiUGFuZGl5YW4sIERoaW5ha2FyYW4iIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4K Pgo+IEl0IGlzIG5lY2Vzc2FyeSB0byB0cmFjayBzdGF0ZXMgZm9yIG9iamVjdHMgb3RoZXIgdGhh biBjb25uZWN0b3IsIGNydGMKPiBhbmQgcGxhbmUgZm9yIGF0b21pYyBtb2Rlc2V0cy4gQnV0IGFk ZGluZyBvYmplY3RzIGxpa2UgRFAgTVNUIGxpbmsKPiBiYW5kd2lkdGggdG8gZHJtX2F0b21pY19z dGF0ZSB3b3VsZCBtZWFuIHRoYXQgYSBub24tY29yZSBvYmplY3Qgd2lsbCBiZQo+IG1vZGlmaWVk IGJ5IHRoZSBjb3JlIGhlbHBlciBmdW5jdGlvbnMgZm9yIHN3YXBwaW5nIGFuZCBjbGVhcmluZwo+ IGl0J3Mgc3RhdGUuIFNvLCBsZXRzIGFkZCB2b2lkICogb2JqZWN0cyBhbmQgaGVscGVyIGZ1bmN0 aW9ucyB0aGF0IG9wZXJhdGUKPiBvbiB2b2lkICogdHlwZXMgdG8ga2VlcCB0aGVzZSBvYmplY3Rz IGFuZCBzdGF0ZXMgcHJpdmF0ZSB0byB0aGUgY29yZS4KPiBEcml2ZXJzIGNhbiB0aGVuIGltcGxl bWVudCBzcGVjaWZpYyBmdW5jdGlvbnMgdG8gc3dhcCBhbmQgY2xlYXIgc3RhdGVzLgo+IFRoZSBv dGhlciBhZHZhbnRhZ2UgaGF2aW5nIGp1c3Qgdm9pZCAqIGZvciB0aGVzZSBvYmplY3RzIGluCj4g ZHJtX2F0b21pY19zdGF0ZSBpcyB0aGF0IG9iamVjdHMgb2YgZGlmZmVyZW50IHR5cGVzIGNhbiBi ZSBtYW5hZ2VkIGluIHRoZQo+IHNhbWUgc3RhdGUgYXJyYXkuCj4KPiB2NDogQXZvaWQgcmVkdW5k YW50IE5VTEwgY2hlY2tzIHdoZW4gcHJpdmF0ZV9vYmpzIGFycmF5IGlzIGVtcHR5IChNYWFydGVu KQo+IHYzOiBNYWNybyBhbGlnbm1lbnQgKENocmlzKQo+IHYyOiBBZGRlZCBkb2NzIGFuZCBuZXcg aXRlcmF0b3IgdG8gZmlsdGVyIHByaXZhdGUgb2JqZWN0cyAoRGFuaWVsKQo+Cj4gQWNrZWQtYnk6 IEhhcnJ5IFdlbnRsYW5kIDxoYXJyeS53ZW50bGFuZEBhbWQuY29tPgo+IFN1Z2dlc3RlZC1ieTog RGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiBTaWduZWQtb2ZmLWJ5OiBE aGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVsLmNvbT4KPiAtLS0K PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCA2OSArKysrKysrKysrKysr KysrKysrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAg NSArKwo+ICBpbmNsdWRlL2RybS9kcm1fYXRvbWljLmggICAgICAgICAgICB8IDkzICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNjcgaW5z ZXJ0aW9ucygrKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gaW5kZXggOWI4OTJhZi4uZTU5MDE0OCAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWMuYwo+IEBAIC01Nyw2ICs1Nyw3IEBAIHZvaWQgZHJtX2F0b21p Y19zdGF0ZV9kZWZhdWx0X3JlbGVhc2Uoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ ICAJa2ZyZWUoc3RhdGUtPmNvbm5lY3RvcnMpOwo+ICAJa2ZyZWUoc3RhdGUtPmNydGNzKTsKPiAg CWtmcmVlKHN0YXRlLT5wbGFuZXMpOwo+ICsJa2ZyZWUoc3RhdGUtPnByaXZhdGVfb2Jqcyk7Cj4g IH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVsZWFzZSk7Cj4g IAo+IEBAIC0xODQsNiArMTg1LDIxIEBAIHZvaWQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0X2Ns ZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCQlzdGF0ZS0+cGxhbmVzW2ld LnB0ciA9IE5VTEw7Cj4gIAkJc3RhdGUtPnBsYW5lc1tpXS5zdGF0ZSA9IE5VTEw7Cj4gIAl9Cj4g Kwo+ICsJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzOyBpKyspIHsKPiAr CQl2b2lkICpwcml2YXRlX29iaiA9IHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqOwo+ICsJCXZv aWQgKm9ial9zdGF0ZSA9IHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqX3N0YXRlOwo+ICsKPiAr CQlpZiAoIXByaXZhdGVfb2JqKQo+ICsJCQljb250aW51ZTsKXlRoaXMgb25lLgo+ICsJCXN0YXRl LT5wcml2YXRlX29ianNbaV0uZnVuY3MtPmRlc3Ryb3lfc3RhdGUob2JqX3N0YXRlKTsKPiArCQlz dGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iaiA9IE5VTEw7Cj4gKwkJc3RhdGUtPnByaXZhdGVfb2Jq c1tpXS5vYmpfc3RhdGUgPSBOVUxMOwo+ICsJCXN0YXRlLT5wcml2YXRlX29ianNbaV0uZnVuY3Mg PSBOVUxMOwo+ICsJfQo+ICsJc3RhdGUtPm51bV9wcml2YXRlX29ianMgPSAwOwo+ICsKPiAgfQo+ ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcik7Cj4gIAo+IEBA IC05NzgsNiArOTk0LDU5IEBAIHN0YXRpYyB2b2lkIGRybV9hdG9taWNfcGxhbmVfcHJpbnRfc3Rh dGUoc3RydWN0IGRybV9wcmludGVyICpwLAo+ICB9Cj4gIAo+ICAvKioKPiArICogZHJtX2F0b21p Y19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUgLSBnZXQgcHJpdmF0ZSBvYmplY3Qgc3RhdGUKPiArICog QHN0YXRlOiBnbG9iYWwgYXRvbWljIHN0YXRlCj4gKyAqIEBvYmo6IHByaXZhdGUgb2JqZWN0IHRv IGdldCB0aGUgc3RhdGUgZm9yCj4gKyAqIEBmdW5jczogcG9pbnRlciB0byB0aGUgc3RydWN0IG9m IGZ1bmN0aW9uIHBvaW50ZXJzIHRoYXQgaWRlbnRpZnkgdGhlIG9iamVjdAo+ICsgKiB0eXBlCj4g KyAqCj4gKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgcHJpdmF0ZSBvYmplY3Qgc3RhdGUg Zm9yIHRoZSBnaXZlbiBwcml2YXRlIG9iamVjdCwKPiArICogYWxsb2NhdGluZyB0aGUgc3RhdGUg aWYgbmVlZGVkLiBJdCBkb2VzIG5vdCBncmFiIGFueSBsb2NrcyBhcyB0aGUgY2FsbGVyIGlzCj4g KyAqIGV4cGVjdGVkIHRvIGNhcmUgb2YgYW55IHJlcXVpcmVkIGxvY2tpbmcuCj4gKyAqCj4gKyAq IFJFVFVSTlM6Cj4gKyAqCj4gKyAqIEVpdGhlciB0aGUgYWxsb2NhdGVkIHN0YXRlIG9yIHRoZSBl cnJvciBjb2RlIGVuY29kZWQgaW50byBhIHBvaW50ZXIuCj4gKyAqLwo+ICt2b2lkICoKPiArZHJt X2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlLCB2b2lkICpvYmosCj4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0 ZV9mdW5jcyAqZnVuY3MpCj4gK3sKPiArCWludCBpbmRleCwgbnVtX29ianMsIGk7Cj4gKwlzaXpl X3Qgc2l6ZTsKPiArCXN0cnVjdCBfX2RybV9wcml2YXRlX29ianNfc3RhdGUgKmFycjsKPiArCj4g Kwlmb3IgKGkgPSAwOyBpIDwgc3RhdGUtPm51bV9wcml2YXRlX29ianM7IGkrKykKPiArCQlpZiAo b2JqID09IHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2JqICYmCj4gKwkJICAgIHN0YXRlLT5wcml2 YXRlX29ianNbaV0ub2JqX3N0YXRlKQo+ICsJCQlyZXR1cm4gc3RhdGUtPnByaXZhdGVfb2Jqc1tp XS5vYmpfc3RhdGU7Cj4gKwo+ICsJbnVtX29ianMgPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyAr IDE7Cj4gKwlzaXplID0gc2l6ZW9mKCpzdGF0ZS0+cHJpdmF0ZV9vYmpzKSAqIG51bV9vYmpzOwo+ ICsJYXJyID0ga3JlYWxsb2Moc3RhdGUtPnByaXZhdGVfb2Jqcywgc2l6ZSwgR0ZQX0tFUk5FTCk7 Cj4gKwlpZiAoIWFycikKPiArCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiArCj4gKwlzdGF0 ZS0+cHJpdmF0ZV9vYmpzID0gYXJyOwo+ICsJaW5kZXggPSBzdGF0ZS0+bnVtX3ByaXZhdGVfb2Jq czsKPiArCW1lbXNldCgmc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0sIDAsIHNpemVvZigqc3Rh dGUtPnByaXZhdGVfb2JqcykpOwo+ICsKPiArCXN0YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9i al9zdGF0ZSA9IGZ1bmNzLT5kdXBsaWNhdGVfc3RhdGUoc3RhdGUsIG9iaik7Cj4gKwlpZiAoIXN0 YXRlLT5wcml2YXRlX29ianNbaW5kZXhdLm9ial9zdGF0ZSkKPiArCQlyZXR1cm4gRVJSX1BUUigt RU5PTUVNKTsKPiArCj4gKwlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5vYmogPSBvYmo7Cj4g KwlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XS5mdW5jcyA9IGZ1bmNzOwo+ICsJc3RhdGUtPm51 bV9wcml2YXRlX29ianMgPSBudW1fb2JqczsKPiArCj4gKwlEUk1fREVCVUdfQVRPTUlDKCJBZGRl ZCBuZXcgcHJpdmF0ZSBvYmplY3Qgc3RhdGUgJXAgdG8gJXBcbiIsCj4gKwkJCSBzdGF0ZS0+cHJp dmF0ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGUsIHN0YXRlKTsKPiArCj4gKwlyZXR1cm4gc3RhdGUt PnByaXZhdGVfb2Jqc1tpbmRleF0ub2JqX3N0YXRlOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZHJt X2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUpOwo+ICsKPiArLyoqCj4gICAqIGRybV9hdG9t aWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSAtIGdldCBjb25uZWN0b3Igc3RhdGUKPiAgICogQHN0YXRl OiBnbG9iYWwgYXRvbWljIHN0YXRlIG9iamVjdAo+ICAgKiBAY29ubmVjdG9yOiBjb25uZWN0b3Ig dG8gZ2V0IHN0YXRlIG9iamVjdCBmb3IKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ IGluZGV4IDRlMjZiNzMuLjE0MDMzMzQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuYwo+IEBAIC0yMDAxLDYgKzIwMDEsOCBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3N3YXBf c3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJc3RydWN0IGRybV9wbGFu ZSAqcGxhbmU7Cj4gIAlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpu ZXdfcGxhbmVfc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7Cj4gKwl2 b2lkICpvYmosICpvYmpfc3RhdGU7Cj4gKwljb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVf ZnVuY3MgKmZ1bmNzOwo+ICAKPiAgCWlmIChzdGFsbCkgewo+ICAJCWZvcl9lYWNoX25ld19jcnRj X2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkgewo+IEBAIC0yMDYxLDYg KzIwNjMsOSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVyX3N3YXBfc3RhdGUoc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCXN0YXRlLT5wbGFuZXNbaV0uc3RhdGUgPSBvbGRfcGxh bmVfc3RhdGU7Cj4gIAkJcGxhbmUtPnN0YXRlID0gbmV3X3BsYW5lX3N0YXRlOwo+ICAJfQo+ICsK PiArCV9fZm9yX2VhY2hfcHJpdmF0ZV9vYmooc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBpLCBmdW5j cykKPiArCQlmdW5jcy0+c3dhcF9zdGF0ZShvYmosICZzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9i al9zdGF0ZSk7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zd2FwX3N0 YXRlKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1 ZGUvZHJtL2RybV9hdG9taWMuaAo+IGluZGV4IDAxNDdhMDQuLmMxN2RhMzkgMTAwNjQ0Cj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oCj4gQEAgLTE1NSw2ICsxNTUsNTMgQEAgc3RydWN0IF9fZHJtX2Nvbm5uZWN0b3JzX3N0YXRl IHsKPiAgfTsKPiAgCj4gIC8qKgo+ICsgKiBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3Mg LSBhdG9taWMgc3RhdGUgZnVuY3Rpb25zIGZvciBwcml2YXRlIG9iamVjdHMKPiArICoKPiArICog VGhlc2UgaG9va3MgYXJlIHVzZWQgYnkgYXRvbWljIGhlbHBlcnMgdG8gY3JlYXRlLCBzd2FwIGFu ZCBkZXN0cm95IHN0YXRlcyBvZgo+ICsgKiBwcml2YXRlIG9iamVjdHMuIFRoZSBzdHJ1Y3R1cmUg aXRzZWxmIGlzIHVzZWQgYXMgYSB2dGFibGUgdG8gaWRlbnRpZnkgdGhlCj4gKyAqIGFzc29jaWF0 ZWQgcHJpdmF0ZSBvYmplY3QgdHlwZS4gRWFjaCBwcml2YXRlIG9iamVjdCB0eXBlIHRoYXQgbmVl ZHMgdG8gYmUKPiArICogYWRkZWQgdG8gdGhlIGF0b21pYyBzdGF0ZXMgaXMgZXhwZWN0ZWQgdG8g aGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGVzZQo+ICsgKiBob29rcyBhbmQgcGFzcyBhIHBv aW50ZXIgdG8gaXQncyBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyBzdHJ1Y3QgdG8KPiArICogZHJt X2F0b21pY19nZXRfcHJpdmF0ZV9vYmpfc3RhdGUoKS4KPiArICovCj4gK3N0cnVjdCBkcm1fcHJp dmF0ZV9zdGF0ZV9mdW5jcyB7Cj4gKwkvKioKPiArCSAqIEBkdXBsaWNhdGVfc3RhdGU6Cj4gKwkg Kgo+ICsJICogRHVwbGljYXRlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwcml2YXRlIG9iamVj dCBhbmQgcmV0dXJuIGl0LiBJdAo+ICsJICogaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIGJlZm9y ZSBvYmotPnN0YXRlIGhhcyBiZWVuIGluaXRpYWxpemVkLgo+ICsJICoKPiArCSAqIFJFVFVSTlM6 Cj4gKwkgKgo+ICsJICogRHVwbGljYXRlZCBhdG9taWMgc3RhdGUgb3IgTlVMTCB3aGVuIG9iai0+ c3RhdGUgaXMgbm90Cj4gKwkgKiBpbml0aWFsaXplZCBvciBhbGxvY2F0aW9uIGZhaWxlZC4KPiAr CSAqLwo+ICsJdm9pZCAqKCpkdXBsaWNhdGVfc3RhdGUpKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSwgdm9pZCAqb2JqKTsKPiArCj4gKwkvKioKPiArCSAqIEBzd2FwX3N0YXRlOgo+ICsJ ICoKPiArCSAqIFRoaXMgZnVuY3Rpb24gc3dhcHMgdGhlIGV4aXN0aW5nIHN0YXRlIG9mIGEgcHJp dmF0ZSBvYmplY3QgQG9iaiB3aXRoCj4gKwkgKiBpdCdzIG5ld2x5IGNyZWF0ZWQgc3RhdGUsIHRo ZSBwb2ludGVyIHRvIHdoaWNoIGlzIHBhc3NlZCBhcwo+ICsJICogQG9ial9zdGF0ZV9wdHIuCj4g KwkgKi8KPiArCXZvaWQgKCpzd2FwX3N0YXRlKSh2b2lkICpvYmosIHZvaWQgKipvYmpfc3RhdGVf cHRyKTsKPiArCj4gKwkvKioKPiArCSAqIEBkZXN0cm95X3N0YXRlOgo+ICsJICoKPiArCSAqIEZy ZWVzIHRoZSBwcml2YXRlIG9iamVjdCBzdGF0ZSBjcmVhdGVkIHdpdGggQGR1cGxpY2F0ZV9zdGF0 ZS4KPiArCSAqLwo+ICsJdm9pZCAoKmRlc3Ryb3lfc3RhdGUpKHZvaWQgKm9ial9zdGF0ZSk7Cj4g K307Cj4gKwo+ICtzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlIHsKPiArCXZvaWQgKm9i ajsKPiArCXZvaWQgKm9ial9zdGF0ZTsKPiArCWNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0 ZV9mdW5jcyAqZnVuY3M7Cj4gK307Cj4gKwo+ICsvKioKPiAgICogc3RydWN0IGRybV9hdG9taWNf c3RhdGUgLSB0aGUgZ2xvYmFsIHN0YXRlIG9iamVjdCBmb3IgYXRvbWljIHVwZGF0ZXMKPiAgICog QHJlZjogY291bnQgb2YgYWxsIHJlZmVyZW5jZXMgdG8gdGhpcyBzdGF0ZSAod2lsbCBub3QgYmUg ZnJlZWQgdW50aWwgemVybykKPiAgICogQGRldjogcGFyZW50IERSTSBkZXZpY2UKPiBAQCAtMTY1 LDYgKzIxMiw4IEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7Cj4gICAqIEBjcnRj czogcG9pbnRlciB0byBhcnJheSBvZiBDUlRDIHBvaW50ZXJzCj4gICAqIEBudW1fY29ubmVjdG9y OiBzaXplIG9mIHRoZSBAY29ubmVjdG9ycyBhbmQgQGNvbm5lY3Rvcl9zdGF0ZXMgYXJyYXlzCj4g ICAqIEBjb25uZWN0b3JzOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBwZXIt Y29ubmVjdG9yIGRhdGEKPiArICogQG51bV9wcml2YXRlX29ianM6IHNpemUgb2YgdGhlIEBwcml2 YXRlX29ianMgYXJyYXkKPiArICogQHByaXZhdGVfb2JqczogcG9pbnRlciB0byBhcnJheSBvZiBw cml2YXRlIG9iamVjdCBwb2ludGVycwo+ICAgKiBAYWNxdWlyZV9jdHg6IGFjcXVpcmUgY29udGV4 dCBmb3IgdGhpcyBhdG9taWMgbW9kZXNldCBzdGF0ZSB1cGRhdGUKPiAgICovCj4gIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlIHsKPiBAQCAtMTc4LDYgKzIyNyw4IEBAIHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlIHsKPiAgCXN0cnVjdCBfX2RybV9jcnRjc19zdGF0ZSAqY3J0Y3M7Cj4gIAlpbnQgbnVt X2Nvbm5lY3RvcjsKPiAgCXN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSAqY29ubmVjdG9y czsKPiArCWludCBudW1fcHJpdmF0ZV9vYmpzOwo+ICsJc3RydWN0IF9fZHJtX3ByaXZhdGVfb2Jq c19zdGF0ZSAqcHJpdmF0ZV9vYmpzOwo+ICAKPiAgCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJl X2N0eCAqYWNxdWlyZV9jdHg7Cj4gIAo+IEBAIC0yNzAsNiArMzIxLDExIEBAIGludCBkcm1fYXRv bWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAgCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsIHN0cnVjdCBkcm1fcHJv cGVydHkgKnByb3BlcnR5LAo+ICAJCXVpbnQ2NF90IHZhbCk7Cj4gIAo+ICt2b2lkICogX19tdXN0 X2NoZWNrCj4gK2RybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSwKPiArCQkJICAgICAgdm9pZCAqb2JqLAo+ICsJCQkgICAgICBjb25z dCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzKTsKPiArCj4gIC8qKgo+ICAg KiBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlIC0gZ2V0IGNydGMgc3RhdGUsIGlm IGl0IGV4aXN0cwo+ICAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0Cj4gQEAg LTU5OCw2ICs2NTQsNDMgQEAgdm9pZCBkcm1fc3RhdGVfZHVtcChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOwo+ICAJCWZvcl9lYWNoX2lmIChwbGFuZSkKPiAg Cj4gIC8qKgo+ICsgKiBfX2Zvcl9lYWNoX3ByaXZhdGVfb2JqIC0gaXRlcmF0ZSBvdmVyIGFsbCBw cml2YXRlIG9iamVjdHMKPiArICogQF9fc3RhdGU6IHRoZSBhdG9taWMgc3RhdGUKPiArICoKPiAr ICogVGhpcyBtYWNybyBpdGVyYXRlcyBvdmVyIHRoZSBhcnJheSBjb250YWluaW5nIHByaXZhdGUg b2JqZWN0IGRhdGEgaW4gYXRvbWljCj4gKyAqIHN0YXRlCj4gKyAqLwo+ICsjZGVmaW5lIF9fZm9y X2VhY2hfcHJpdmF0ZV9vYmooX19zdGF0ZSwgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5jcykJ XAo+ICsJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwKPiArCSAgICAgKF9faSkgPCAoX19zdGF0ZSkt Pm51bV9wcml2YXRlX29ianMgJiYJCQlcCj4gKwkgICAgICgob2JqKSA9IChfX3N0YXRlKS0+cHJp dmF0ZV9vYmpzW19faV0ub2JqLAkJCVwKPiArCSAgICAgIChfX2Z1bmNzKSA9IChfX3N0YXRlKS0+ cHJpdmF0ZV9vYmpzW19faV0uZnVuY3MsCQlcCj4gKwkgICAgICAob2JqX3N0YXRlKSA9IChfX3N0 YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqX3N0YXRlLAlcCj4gKwkgICAgICAxKTsJCQkJCQkJ XAo+ICsJICAgICAoX19pKSsrKQkJCQkJCQlcCj4gKwkJZm9yX2VhY2hfaWYgKF9fZnVuY3MpCl5U aGlzLgo+ICsvKioKPiArICogZm9yX2VhY2hfcHJpdmF0ZV9vYmogLSBpdGVyYXRlIG92ZXIgYSBz cGVjaWZ5IHR5cGUgb2YgcHJpdmF0ZSBvYmplY3QKPiArICogQF9fc3RhdGU6IHRoZSBhdG9taWMg c3RhdGUKPiArICogQG9ial9mdW5jczogZnVuY3Rpb24gdGFibGUgdG8gZmlsdGVyIHRoZSBwcml2 YXRlIG9iamVjdHMKPiArICoKPiArICogVGhpcyBtYWNybyBpdGVyYXRlcyBvdmVyIHRoZSBwcml2 YXRlIG9iamVjdHMgc3RhdGUgYXJyYXkgd2hpbGUgZmlsdGVyaW5nIHRoZQo+ICsgKiBvYmplY3Rz IGJhc2VkIG9uIHRoZSB2ZnVuYyB0YWJsZSB0aGF0IGlzIHBhc3NlZCBhcyBAb2JqX2Z1bmNzLiBO ZXcgbWFjcm9zCj4gKyAqIGNhbiBiZSBjcmVhdGVkIGJ5IHBhc3NpbmcgaW4gdGhlIHZmdW5jIHRh YmxlIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljCj4gKyAqIHByaXZhdGUgb2JqZWN0Lgo+ICsg Ki8KPiArI2RlZmluZSBmb3JfZWFjaF9wcml2YXRlX29iaihfX3N0YXRlLCBvYmpfZnVuY3MsIG9i aiwgb2JqX3N0YXRlLCBfX2ksIF9fZnVuY3MpCVwKPiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlc Cj4gKwkgICAgIChfX2kpIDwgKF9fc3RhdGUpLT5udW1fcHJpdmF0ZV9vYmpzICYmCQkJXAo+ICsJ ICAgICAoKG9iaikgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9iaiwJCQlcCj4gKwkg ICAgICAoX19mdW5jcykgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLmZ1bmNzLAkJXAo+ ICsJICAgICAgKG9ial9zdGF0ZSkgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9ial9z dGF0ZSwJXAo+ICsJICAgICAgMSk7CQkJCQkJCVwKPiArCSAgICAgKF9faSkrKykJCQkJCQkJXAo+ ICsJCWZvcl9lYWNoX2lmIChfX2Z1bmNzID09IG9ial9mdW5jcykKPiArCj4gKy8qKgo+ICAgKiBk cm1fYXRvbWljX2NydGNfbmVlZHNfbW9kZXNldCAtIGNvbXB1dGUgY29tYmluZWQgbW9kZXNldCBu ZWVkCj4gICAqIEBzdGF0ZTogJmRybV9jcnRjX3N0YXRlIGZvciB0aGUgQ1JUQwo+ICAgKgoKfk1h YXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=