From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH v3 4/8] drm: Add driver-private objects to atomic state Date: Thu, 16 Feb 2017 00:13:33 +0000 Message-ID: <1487205123.21334.12.camel@dk-H97M-D3H> References: <1486622291-3524-1-git-send-email-dhinakaran.pandiyan@intel.com> <1486622291-3524-5-git-send-email-dhinakaran.pandiyan@intel.com> <76f93609-fa7e-1f0c-f2f8-ae8010662bc2@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <76f93609-fa7e-1f0c-f2f8-ae8010662bc2@codeaurora.org> Content-Language: en-US Content-ID: <9ECC995E0B48CE4F9437B020F8A965A7@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "architt@codeaurora.org" Cc: "daniel.vetter@ffwll.ch" , "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" , "bskeggs@redhat.com" , "alexander.deucher@amd.com" , "Lankhorst, Maarten" List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCAyMDE3LTAyLTE1IGF0IDE2OjUzICswNTMwLCBBcmNoaXQgVGFuZWphIHdyb3RlOg0K PiBIaSwNCj4gDQo+IE9uIDAyLzA5LzIwMTcgMTI6MDggUE0sIERoaW5ha2FyYW4gUGFuZGl5YW4g d3JvdGU6DQo+ID4gSXQgaXMgbmVjZXNzYXJ5IHRvIHRyYWNrIHN0YXRlcyBmb3Igb2JqZWN0cyBv dGhlciB0aGFuIGNvbm5lY3RvciwgY3J0Yw0KPiA+IGFuZCBwbGFuZSBmb3IgYXRvbWljIG1vZGVz ZXRzLiBCdXQgYWRkaW5nIG9iamVjdHMgbGlrZSBEUCBNU1QgbGluaw0KPiA+IGJhbmR3aWR0aCB0 byBkcm1fYXRvbWljX3N0YXRlIHdvdWxkIG1lYW4gdGhhdCBhIG5vbi1jb3JlIG9iamVjdCB3aWxs IGJlDQo+ID4gbW9kaWZpZWQgYnkgdGhlIGNvcmUgaGVscGVyIGZ1bmN0aW9ucyBmb3Igc3dhcHBp bmcgYW5kIGNsZWFyaW5nDQo+ID4gaXQncyBzdGF0ZS4gU28sIGxldHMgYWRkIHZvaWQgKiBvYmpl Y3RzIGFuZCBoZWxwZXIgZnVuY3Rpb25zIHRoYXQgb3BlcmF0ZQ0KPiA+IG9uIHZvaWQgKiB0eXBl cyB0byBrZWVwIHRoZXNlIG9iamVjdHMgYW5kIHN0YXRlcyBwcml2YXRlIHRvIHRoZSBjb3JlLg0K PiA+IERyaXZlcnMgY2FuIHRoZW4gaW1wbGVtZW50IHNwZWNpZmljIGZ1bmN0aW9ucyB0byBzd2Fw IGFuZCBjbGVhciBzdGF0ZXMuDQo+ID4gVGhlIG90aGVyIGFkdmFudGFnZSBoYXZpbmcganVzdCB2 b2lkICogZm9yIHRoZXNlIG9iamVjdHMgaW4NCj4gPiBkcm1fYXRvbWljX3N0YXRlIGlzIHRoYXQg b2JqZWN0cyBvZiBkaWZmZXJlbnQgdHlwZXMgY2FuIGJlIG1hbmFnZWQgaW4gdGhlDQo+ID4gc2Ft ZSBzdGF0ZSBhcnJheS4NCj4gPg0KPiA+IHYyOiBBZGRlZCBkb2NzIGFuZCBuZXcgaXRlcmF0b3Ig dG8gZmlsdGVyIHByaXZhdGUgb2JqZWN0cyAoRGFuaWVsKQ0KPiA+DQo+ID4gU3VnZ2VzdGVkLWJ5 OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPg0KPiA+IFNpZ25lZC1vZmYt Ynk6IERoaW5ha2FyYW4gUGFuZGl5YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPg0K PiA+IC0tLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jICAgICAgICB8IDY4ICsr KysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyB8ICA1ICsrDQo+ID4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWMuaCAgICAgICAg ICAgIHwgOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAzIGZp bGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRpb25zKCspDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMN Cj4gPiBpbmRleCBhNTY3MzEwLi4xYTlmZmU4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j DQo+ID4gQEAgLTU3LDYgKzU3LDcgQEAgdm9pZCBkcm1fYXRvbWljX3N0YXRlX2RlZmF1bHRfcmVs ZWFzZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpDQo+ID4gIAlrZnJlZShzdGF0ZS0+ Y29ubmVjdG9ycyk7DQo+ID4gIAlrZnJlZShzdGF0ZS0+Y3J0Y3MpOw0KPiA+ICAJa2ZyZWUoc3Rh dGUtPnBsYW5lcyk7DQo+ID4gKwlrZnJlZShzdGF0ZS0+cHJpdmF0ZV9vYmpzKTsNCj4gPiAgfQ0K PiA+ICBFWFBPUlRfU1lNQk9MKGRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9yZWxlYXNlKTsNCj4g Pg0KPiA+IEBAIC0xODQsNiArMTg1LDIwIEBAIHZvaWQgZHJtX2F0b21pY19zdGF0ZV9kZWZhdWx0 X2NsZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkNCj4gPiAgCQlzdGF0ZS0+cGxh bmVzW2ldLnB0ciA9IE5VTEw7DQo+ID4gIAkJc3RhdGUtPnBsYW5lc1tpXS5zdGF0ZSA9IE5VTEw7 DQo+ID4gIAl9DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IHN0YXRlLT5udW1fcHJpdmF0 ZV9vYmpzOyBpKyspIHsNCj4gPiArCQl2b2lkICpwcml2YXRlX29iaiA9IHN0YXRlLT5wcml2YXRl X29ianNbaV0ub2JqOw0KPiA+ICsJCXZvaWQgKm9ial9zdGF0ZSA9IHN0YXRlLT5wcml2YXRlX29i anNbaV0ub2JqX3N0YXRlOw0KPiA+ICsNCj4gPiArCQlpZiAoIXByaXZhdGVfb2JqKQ0KPiA+ICsJ CQljb250aW51ZTsNCj4gPiArDQo+ID4gKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5mdW5jcy0+ ZGVzdHJveV9zdGF0ZShvYmpfc3RhdGUpOw0KPiA+ICsJCXN0YXRlLT5wcml2YXRlX29ianNbaV0u b2JqID0gTlVMTDsNCj4gPiArCQlzdGF0ZS0+cHJpdmF0ZV9vYmpzW2ldLm9ial9zdGF0ZSA9IE5V TEw7DQo+ID4gKwkJc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5mdW5jcyA9IE5VTEw7DQo+ID4gKwl9 DQo+ID4gKw0KPiA+ICB9DQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19zdGF0ZV9kZWZh dWx0X2NsZWFyKTsNCj4gPg0KPiA+IEBAIC05NzQsNiArOTg5LDU5IEBAIHN0YXRpYyB2b2lkIGRy bV9hdG9taWNfcGxhbmVfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLA0KPiA+ICB9 DQo+ID4NCj4gPiAgLyoqDQo+ID4gKyAqIGRybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRl IC0gZ2V0IHByaXZhdGUgb2JqZWN0IHN0YXRlDQo+ID4gKyAqIEBzdGF0ZTogZ2xvYmFsIGF0b21p YyBzdGF0ZQ0KPiA+ICsgKiBAb2JqOiBwcml2YXRlIG9iamVjdCB0byBnZXQgdGhlIHN0YXRlIGZv cg0KPiA+ICsgKiBAZnVuY3M6IHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBvZiBmdW5jdGlvbiBwb2lu dGVycyB0aGF0IGlkZW50aWZ5IHRoZSBvYmplY3QNCj4gPiArICogdHlwZQ0KPiA+ICsgKg0KPiA+ ICsgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHByaXZhdGUgb2JqZWN0IHN0YXRlIGZvciB0 aGUgZ2l2ZW4gcHJpdmF0ZSBvYmplY3QsDQo+ID4gKyAqIGFsbG9jYXRpbmcgdGhlIHN0YXRlIGlm IG5lZWRlZC4gSXQgZG9lcyBub3QgZ3JhYiBhbnkgbG9ja3MgYXMgdGhlIGNhbGxlciBpcw0KPiA+ ICsgKiBleHBlY3RlZCB0byBjYXJlIG9mIGFueSByZXF1aXJlZCBsb2NraW5nLg0KPiA+ICsgKg0K PiA+ICsgKiBSRVRVUk5TOg0KPiA+ICsgKg0KPiA+ICsgKiBFaXRoZXIgdGhlIGFsbG9jYXRlZCBz dGF0ZSBvciB0aGUgZXJyb3IgY29kZSBlbmNvZGVkIGludG8gYSBwb2ludGVyLg0KPiA+ICsgKi8N Cj4gPiArdm9pZCAqDQo+ID4gK2RybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgdm9pZCAqb2JqLA0KPiA+ICsJCQkgICAgICBjb25z dCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzKQ0KPiA+ICt7DQo+ID4gKwlp bnQgaW5kZXgsIG51bV9vYmpzLCBpOw0KPiA+ICsJc2l6ZV90IHNpemU7DQo+ID4gKwlzdHJ1Y3Qg X19kcm1fcHJpdmF0ZV9vYmpzX3N0YXRlICphcnI7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsg aSA8IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzOyBpKyspDQo+ID4gKwkJaWYgKG9iaiA9PSBzdGF0 ZS0+cHJpdmF0ZV9vYmpzW2ldLm9iaiAmJg0KPiA+ICsJCSAgICBzdGF0ZS0+cHJpdmF0ZV9vYmpz W2ldLm9ial9zdGF0ZSkNCj4gPiArCQkJcmV0dXJuIHN0YXRlLT5wcml2YXRlX29ianNbaV0ub2Jq X3N0YXRlOw0KPiANCj4gQ29tcGFyaW5nIHRoaXMgZnVuYyB0byBkcm1fYXRvbWljX2dldF9wbGFu ZV9zdGF0ZS9kcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlLCBpdA0KPiBkb2Vzbid0IHNlZW0gdG8g Y2FsbCBkcm1fbW9kZXNldF9sb2NrIGlmIHRoZSBvYmpfc3RhdGUgZG9lc24ndCBhbHJlYWR5IGV4 aXN0LiBJDQo+IGRvbid0IHVuZGVyc3RhbmQgdGhlIGxvY2tpbmcgc3R1ZmYgdG9vd2VsbCwgSSBq dXN0IG5vdGljZWQgdGhpcyBkaWZmZXJlbmNlIHdoZW4NCj4gY29tcGFyaW5nIHRoaXMgYXBwcm9h Y2ggd2l0aCB3aGF0IGlzIGRvbmUgaW4gdGhlIG1zbSBrbXMgZHJpdmVyICh3aGVyZSB3ZQ0KPiBo YXZlIHN1YmNsYXNzZWQgZHJtX2F0b21pY19zdGF0ZSB0byBtc21fa21zX3N0YXRlKS4NCj4gDQo+ IFRoYW5rcywNCj4gQXJjaGl0DQo+IA0KDQoNClRoZSBjYWxsZXIgaXMgZXhwZWN0ZWQgdG8gdGFr ZSBjYXJlIG9mIGFueSByZXF1aXJlZCBsb2NraW5nLiBUaGUNCmRyaXZlci1wcml2YXRlIG9iamVj dHMgYXJlIG9wYXF1ZSBmcm9tIGNvcmUncyBwb3YsIHNvIHRoZSBjb3JlIGlzIG5vdA0KYXdhcmUg b2YgbmVjZXNzYXJ5IGxvY2tzIGZvciB0aGF0IG9iamVjdCB0eXBlLg0KDQotREsgDQoNCj4gPiAr DQo+ID4gKwludW1fb2JqcyA9IHN0YXRlLT5udW1fcHJpdmF0ZV9vYmpzICsgMTsNCj4gPiArCXNp emUgPSBzaXplb2YoKnN0YXRlLT5wcml2YXRlX29ianMpICogbnVtX29ianM7DQo+ID4gKwlhcnIg PSBrcmVhbGxvYyhzdGF0ZS0+cHJpdmF0ZV9vYmpzLCBzaXplLCBHRlBfS0VSTkVMKTsNCj4gPiAr CWlmICghYXJyKQ0KPiA+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOw0KPiA+ICsNCj4gPiAr CXN0YXRlLT5wcml2YXRlX29ianMgPSBhcnI7DQo+ID4gKwlpbmRleCA9IHN0YXRlLT5udW1fcHJp dmF0ZV9vYmpzOw0KPiA+ICsJbWVtc2V0KCZzdGF0ZS0+cHJpdmF0ZV9vYmpzW2luZGV4XSwgMCwg c2l6ZW9mKCpzdGF0ZS0+cHJpdmF0ZV9vYmpzKSk7DQo+ID4gKw0KPiA+ICsJc3RhdGUtPnByaXZh dGVfb2Jqc1tpbmRleF0ub2JqX3N0YXRlID0gZnVuY3MtPmR1cGxpY2F0ZV9zdGF0ZShzdGF0ZSwg b2JqKTsNCj4gPiArCWlmICghc3RhdGUtPnByaXZhdGVfb2Jqc1tpbmRleF0ub2JqX3N0YXRlKQ0K PiA+ICsJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOw0KPiA+ICsNCj4gPiArCXN0YXRlLT5wcml2 YXRlX29ianNbaW5kZXhdLm9iaiA9IG9iajsNCj4gPiArCXN0YXRlLT5wcml2YXRlX29ianNbaW5k ZXhdLmZ1bmNzID0gZnVuY3M7DQo+ID4gKwlzdGF0ZS0+bnVtX3ByaXZhdGVfb2JqcyA9IG51bV9v YmpzOw0KPiA+ICsNCj4gPiArCURSTV9ERUJVR19BVE9NSUMoIkFkZGVkIG5ldyBwcml2YXRlIG9i amVjdCBzdGF0ZSAlcCB0byAlcFxuIiwNCj4gPiArCQkJIHN0YXRlLT5wcml2YXRlX29ianNbaW5k ZXhdLm9ial9zdGF0ZSwgc3RhdGUpOw0KPiA+ICsNCj4gPiArCXJldHVybiBzdGF0ZS0+cHJpdmF0 ZV9vYmpzW2luZGV4XS5vYmpfc3RhdGU7DQo+ID4gK30NCj4gPiArRVhQT1JUX1NZTUJPTChkcm1f YXRvbWljX2dldF9wcml2YXRlX29ial9zdGF0ZSk7DQo+ID4gKw0KPiA+ICsvKioNCj4gPiAgICog ZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlIC0gZ2V0IGNvbm5lY3RvciBzdGF0ZQ0KPiA+ ICAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMgc3RhdGUgb2JqZWN0DQo+ID4gICAqIEBjb25uZWN0 b3I6IGNvbm5lY3RvciB0byBnZXQgc3RhdGUgb2JqZWN0IGZvcg0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jDQo+ID4gaW5kZXggM2E0MzgzZi4uODc5NTA4OCAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYw0KPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jDQo+ID4gQEAgLTE5ODMsNiArMTk4Myw4IEBA IHZvaWQgZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsDQo+ID4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsNCj4gPiAgCXN0cnVjdCBk cm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOw0KPiA+ICAJc3RydWN0IGRybV9jcnRjX2NvbW1p dCAqY29tbWl0Ow0KPiA+ICsJdm9pZCAqb2JqLCAqb2JqX3N0YXRlOw0KPiA+ICsJY29uc3Qgc3Ry dWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzICpmdW5jczsNCj4gPg0KPiA+ICAJaWYgKHN0YWxs KSB7DQo+ID4gIAkJZm9yX2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0 ZSwgaSkgew0KPiA+IEBAIC0yMDMxLDYgKzIwMzMsOSBAQCB2b2lkIGRybV9hdG9taWNfaGVscGVy X3N3YXBfc3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLA0KPiA+ICAJCXN3YXAo c3RhdGUtPnBsYW5lc1tpXS5zdGF0ZSwgcGxhbmUtPnN0YXRlKTsNCj4gPiAgCQlwbGFuZS0+c3Rh dGUtPnN0YXRlID0gTlVMTDsNCj4gPiAgCX0NCj4gPiArDQo+ID4gKwlfX2Zvcl9lYWNoX3ByaXZh dGVfb2JqKHN0YXRlLCBvYmosIG9ial9zdGF0ZSwgaSwgZnVuY3MpDQo+ID4gKwkJZnVuY3MtPnN3 YXBfc3RhdGUob2JqLCAmc3RhdGUtPnByaXZhdGVfb2Jqc1tpXS5vYmpfc3RhdGUpOw0KPiA+ICB9 DQo+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0ZSk7DQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0v ZHJtX2F0b21pYy5oDQo+ID4gaW5kZXggMDUyYWIxNi4uY2FmYTQwNCAxMDA2NDQNCj4gPiAtLS0g YS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgNCj4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fYXRv bWljLmgNCj4gPiBAQCAtMTU1LDYgKzE1NSw1MyBAQCBzdHJ1Y3QgX19kcm1fY29ubm5lY3RvcnNf c3RhdGUgew0KPiA+ICB9Ow0KPiA+DQo+ID4gIC8qKg0KPiA+ICsgKiBzdHJ1Y3QgZHJtX3ByaXZh dGVfc3RhdGVfZnVuY3MgLSBhdG9taWMgc3RhdGUgZnVuY3Rpb25zIGZvciBwcml2YXRlIG9iamVj dHMNCj4gPiArICoNCj4gPiArICogVGhlc2UgaG9va3MgYXJlIHVzZWQgYnkgYXRvbWljIGhlbHBl cnMgdG8gY3JlYXRlLCBzd2FwIGFuZCBkZXN0cm95IHN0YXRlcyBvZg0KPiA+ICsgKiBwcml2YXRl IG9iamVjdHMuIFRoZSBzdHJ1Y3R1cmUgaXRzZWxmIGlzIHVzZWQgYXMgYSB2dGFibGUgdG8gaWRl bnRpZnkgdGhlDQo+ID4gKyAqIGFzc29jaWF0ZWQgcHJpdmF0ZSBvYmplY3QgdHlwZS4gRWFjaCBw cml2YXRlIG9iamVjdCB0eXBlIHRoYXQgbmVlZHMgdG8gYmUNCj4gPiArICogYWRkZWQgdG8gdGhl IGF0b21pYyBzdGF0ZXMgaXMgZXhwZWN0ZWQgdG8gaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0 aGVzZQ0KPiA+ICsgKiBob29rcyBhbmQgcGFzcyBhIHBvaW50ZXIgdG8gaXQncyBkcm1fcHJpdmF0 ZV9zdGF0ZV9mdW5jcyBzdHJ1Y3QgdG8NCj4gPiArICogZHJtX2F0b21pY19nZXRfcHJpdmF0ZV9v Ympfc3RhdGUoKS4NCj4gPiArICovDQo+ID4gK3N0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5j cyB7DQo+ID4gKwkvKioNCj4gPiArCSAqIEBkdXBsaWNhdGVfc3RhdGU6DQo+ID4gKwkgKg0KPiA+ ICsJICogRHVwbGljYXRlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBwcml2YXRlIG9iamVjdCBh bmQgcmV0dXJuIGl0LiBJdA0KPiA+ICsJICogaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIGJlZm9y ZSBvYmotPnN0YXRlIGhhcyBiZWVuIGluaXRpYWxpemVkLg0KPiA+ICsJICoNCj4gPiArCSAqIFJF VFVSTlM6DQo+ID4gKwkgKg0KPiA+ICsJICogRHVwbGljYXRlZCBhdG9taWMgc3RhdGUgb3IgTlVM TCB3aGVuIG9iai0+c3RhdGUgaXMgbm90DQo+ID4gKwkgKiBpbml0aWFsaXplZCBvciBhbGxvY2F0 aW9uIGZhaWxlZC4NCj4gPiArCSAqLw0KPiA+ICsJdm9pZCAqKCpkdXBsaWNhdGVfc3RhdGUpKHN0 cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwgdm9pZCAqb2JqKTsNCj4gPiArDQo+ID4gKwkv KioNCj4gPiArCSAqIEBzd2FwX3N0YXRlOg0KPiA+ICsJICoNCj4gPiArCSAqIFRoaXMgZnVuY3Rp b24gc3dhcHMgdGhlIGV4aXN0aW5nIHN0YXRlIG9mIGEgcHJpdmF0ZSBvYmplY3QgQG9iaiB3aXRo DQo+ID4gKwkgKiBpdCdzIG5ld2x5IGNyZWF0ZWQgc3RhdGUsIHRoZSBwb2ludGVyIHRvIHdoaWNo IGlzIHBhc3NlZCBhcw0KPiA+ICsJICogQG9ial9zdGF0ZV9wdHIuDQo+ID4gKwkgKi8NCj4gPiAr CXZvaWQgKCpzd2FwX3N0YXRlKSh2b2lkICpvYmosIHZvaWQgKipvYmpfc3RhdGVfcHRyKTsNCj4g PiArDQo+ID4gKwkvKioNCj4gPiArCSAqIEBkZXN0cm95X3N0YXRlOg0KPiA+ICsJICoNCj4gPiAr CSAqIEZyZWVzIHRoZSBwcml2YXRlIG9iamVjdCBzdGF0ZSBjcmVhdGVkIHdpdGggQGR1cGxpY2F0 ZV9zdGF0ZS4NCj4gPiArCSAqLw0KPiA+ICsJdm9pZCAoKmRlc3Ryb3lfc3RhdGUpKHZvaWQgKm9i al9zdGF0ZSk7DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgX19kcm1fcHJpdmF0ZV9vYmpz X3N0YXRlIHsNCj4gPiArCXZvaWQgKm9iajsNCj4gPiArCXZvaWQgKm9ial9zdGF0ZTsNCj4gPiAr CWNvbnN0IHN0cnVjdCBkcm1fcHJpdmF0ZV9zdGF0ZV9mdW5jcyAqZnVuY3M7DQo+ID4gK307DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiAgICogc3RydWN0IGRybV9hdG9taWNfc3RhdGUgLSB0aGUgZ2xv YmFsIHN0YXRlIG9iamVjdCBmb3IgYXRvbWljIHVwZGF0ZXMNCj4gPiAgICogQHJlZjogY291bnQg b2YgYWxsIHJlZmVyZW5jZXMgdG8gdGhpcyBzdGF0ZSAod2lsbCBub3QgYmUgZnJlZWQgdW50aWwg emVybykNCj4gPiAgICogQGRldjogcGFyZW50IERSTSBkZXZpY2UNCj4gPiBAQCAtMTY1LDYgKzIx Miw4IEBAIHN0cnVjdCBfX2RybV9jb25ubmVjdG9yc19zdGF0ZSB7DQo+ID4gICAqIEBjcnRjczog cG9pbnRlciB0byBhcnJheSBvZiBDUlRDIHBvaW50ZXJzDQo+ID4gICAqIEBudW1fY29ubmVjdG9y OiBzaXplIG9mIHRoZSBAY29ubmVjdG9ycyBhbmQgQGNvbm5lY3Rvcl9zdGF0ZXMgYXJyYXlzDQo+ ID4gICAqIEBjb25uZWN0b3JzOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBw ZXItY29ubmVjdG9yIGRhdGENCj4gPiArICogQG51bV9wcml2YXRlX29ianM6IHNpemUgb2YgdGhl IEBwcml2YXRlX29ianMgYXJyYXkNCj4gPiArICogQHByaXZhdGVfb2JqczogcG9pbnRlciB0byBh cnJheSBvZiBwcml2YXRlIG9iamVjdCBwb2ludGVycw0KPiA+ICAgKiBAYWNxdWlyZV9jdHg6IGFj cXVpcmUgY29udGV4dCBmb3IgdGhpcyBhdG9taWMgbW9kZXNldCBzdGF0ZSB1cGRhdGUNCj4gPiAg ICovDQo+ID4gIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsNCj4gPiBAQCAtMTc4LDYgKzIyNyw4 IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsNCj4gPiAgCXN0cnVjdCBfX2RybV9jcnRjc19z dGF0ZSAqY3J0Y3M7DQo+ID4gIAlpbnQgbnVtX2Nvbm5lY3RvcjsNCj4gPiAgCXN0cnVjdCBfX2Ry bV9jb25ubmVjdG9yc19zdGF0ZSAqY29ubmVjdG9yczsNCj4gPiArCWludCBudW1fcHJpdmF0ZV9v YmpzOw0KPiA+ICsJc3RydWN0IF9fZHJtX3ByaXZhdGVfb2Jqc19zdGF0ZSAqcHJpdmF0ZV9vYmpz Ow0KPiA+DQo+ID4gIAlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmFjcXVpcmVfY3R4 Ow0KPiA+DQo+ID4gQEAgLTI3MCw2ICszMjEsMTEgQEAgaW50IGRybV9hdG9taWNfY29ubmVjdG9y X3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLA0KPiA+ICAJCXN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cGVydHksDQo+ID4gIAkJdWludDY0X3QgdmFsKTsNCj4gPg0KPiA+ICt2b2lkICogX19tdXN0X2No ZWNrDQo+ID4gK2RybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSwNCj4gPiArCQkJICAgICAgdm9pZCAqb2JqLA0KPiA+ICsJCQkgICAg ICBjb25zdCBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGVfZnVuY3MgKmZ1bmNzKTsNCj4gPiArDQo+ ID4gIC8qKg0KPiA+ICAgKiBkcm1fYXRvbWljX2dldF9leGlzdGluZ19jcnRjX3N0YXRlIC0gZ2V0 IGNydGMgc3RhdGUsIGlmIGl0IGV4aXN0cw0KPiA+ICAgKiBAc3RhdGU6IGdsb2JhbCBhdG9taWMg c3RhdGUgb2JqZWN0DQo+ID4gQEAgLTQxNSw2ICs0NzEsNDEgQEAgdm9pZCBkcm1fc3RhdGVfZHVt cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX3ByaW50ZXIgKnApOw0KPiA+ICAJ CWZvcl9lYWNoX2lmIChwbGFuZV9zdGF0ZSkNCj4gPg0KPiA+ICAvKioNCj4gPiArICogX19mb3Jf ZWFjaF9wcml2YXRlX29iaiAtIGl0ZXJhdGUgb3ZlciBhbGwgcHJpdmF0ZSBvYmplY3RzDQo+ID4g KyAqIEBfX3N0YXRlOiB0aGUgYXRvbWljIHN0YXRlDQo+ID4gKyAqDQo+ID4gKyAqIFRoaXMgbWFj cm8gaXRlcmF0ZXMgb3ZlciB0aGUgYXJyYXkgY29udGFpbmluZyBwcml2YXRlIG9iamVjdCBkYXRh IGluIGF0b21pYw0KPiA+ICsgKiBzdGF0ZQ0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBfX2Zvcl9l YWNoX3ByaXZhdGVfb2JqKF9fc3RhdGUsIG9iaiwgb2JqX3N0YXRlLCBfX2ksIF9fZnVuY3MpCVwN Cj4gPiArCWZvciAoKF9faSkgPSAwOwkJCQkJCQlcDQo+ID4gKwkgICAgIChfX2kpIDwgKF9fc3Rh dGUpLT5udW1fcHJpdmF0ZV9vYmpzICYmCQkJXA0KPiA+ICsJICAgICAoKG9iaikgPSAoX19zdGF0 ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9iaiwJCQlcDQo+ID4gKwkgICAgIChfX2Z1bmNzKSA9IChf X3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0uZnVuY3MsCQlcDQo+ID4gKwkgICAgIChvYmpfc3Rh dGUpID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5vYmpfc3RhdGUsIDEpOwlcDQo+ID4g KwkgICAgIChfX2kpKyspCQkJCQkJCVwNCj4gPiArCQlmb3JfZWFjaF9pZiAoX19mdW5jcykNCj4g PiArDQo+ID4gKy8qKg0KPiA+ICsgKiBmb3JfZWFjaF9wcml2YXRlX29iaiAtIGl0ZXJhdGUgb3Zl ciBhIHNwZWNpZnkgdHlwZSBvZiBwcml2YXRlIG9iamVjdA0KPiA+ICsgKiBAX19zdGF0ZTogdGhl IGF0b21pYyBzdGF0ZQ0KPiA+ICsgKiBAb2JqX2Z1bmNzOiBmdW5jdGlvbiB0YWJsZSB0byBmaWx0 ZXIgdGhlIHByaXZhdGUgb2JqZWN0cw0KPiA+ICsgKg0KPiA+ICsgKiBUaGlzIG1hY3JvIGl0ZXJh dGVzIG92ZXIgdGhlIHByaXZhdGUgb2JqZWN0cyBzdGF0ZSBhcnJheSB3aGlsZSBmaWx0ZXJpbmcg dGhlDQo+ID4gKyAqIG9iamVjdHMgYmFzZWQgb24gdGhlIHZmdW5jIHRhYmxlIHRoYXQgaXMgcGFz c2VkIGFzIEBvYmpfZnVuY3MuIE5ldyBtYWNyb3MNCj4gPiArICogY2FuIGJlIGNyZWF0ZWQgYnkg cGFzc2luZyBpbiB0aGUgdmZ1bmMgdGFibGUgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMNCj4g PiArICogcHJpdmF0ZSBvYmplY3QuDQo+ID4gKyAqLw0KPiA+ICsjZGVmaW5lIGZvcl9lYWNoX3By aXZhdGVfb2JqKF9fc3RhdGUsIG9ial9mdW5jcywgb2JqLCBvYmpfc3RhdGUsIF9faSwgX19mdW5j cykJXA0KPiA+ICsJZm9yICgoX19pKSA9IDA7CQkJCQkJCVwNCj4gPiArCSAgICAgKF9faSkgPCAo X19zdGF0ZSktPm51bV9wcml2YXRlX29ianMgJiYJCQlcDQo+ID4gKwkgICAgICgob2JqKSA9IChf X3N0YXRlKS0+cHJpdmF0ZV9vYmpzW19faV0ub2JqLAkJCVwNCj4gPiArCSAgICAgKF9fZnVuY3Mp ID0gKF9fc3RhdGUpLT5wcml2YXRlX29ianNbX19pXS5mdW5jcywJCVwNCj4gPiArCSAgICAgKG9i al9zdGF0ZSkgPSAoX19zdGF0ZSktPnByaXZhdGVfb2Jqc1tfX2ldLm9ial9zdGF0ZSwgMSk7CVwN Cj4gPiArCSAgICAgKF9faSkrKykJCQkJCQkJXA0KPiA+ICsJCWZvcl9lYWNoX2lmIChfX2Z1bmNz ID09IG9ial9mdW5jcykNCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgKiBkcm1fYXRvbWljX2NydGNf bmVlZHNfbW9kZXNldCAtIGNvbXB1dGUgY29tYmluZWQgbW9kZXNldCBuZWVkDQo+ID4gICAqIEBz dGF0ZTogJmRybV9jcnRjX3N0YXRlIGZvciB0aGUgQ1JUQw0KPiA+ICAgKg0KPiA+DQo+IA0KDQpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK