From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Grodzovsky, Andrey" Subject: Re: [PATCH v3 2/2] drm/sched: Rework HW fence processing. Date: Tue, 11 Dec 2018 16:01:51 +0000 Message-ID: <28c3bebc-9661-198c-7ea9-e59260d658c9@amd.com> References: <1544478238-13310-1-git-send-email-andrey.grodzovsky@amd.com> <1544478238-13310-2-git-send-email-andrey.grodzovsky@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US Content-ID: List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Zhou, David(ChunMing)" , "dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "ckoenig.leichtzumerken-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org" , "eric-WhKQ6XTQaPysTnJN9+BGXg@public.gmane.org" , "etnaviv-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Liu, Monk" QSBJIHVuZGVyc3RhbmQgeW91IHNheSB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBmZW5jZSBjYWxsYmFj ayBydW5zIHRoZSBqb2IgDQptaWdodCBoYXZlIGFscmVhZHkgYmVlbiByZWxlYXNlZCwNCg0KYnV0 IGhvdyBzbyBpZiB0aGUgam9iIGdldHMgcmVsZWFzZWQgZnJvbSBkcm1fc2NoZWRfam9iX2Zpbmlz aCB3b3JrIA0KaGFuZGxlciBpbiB0aGUgbm9ybWFsIGZsb3cgLSBzbywgYWZ0ZXIgdGhlIEhXDQoN CmZlbmNlIChzX2ZlbmNlLT5wYXJlbnQpIGNiIGlzIGV4ZWN1dGVkLiBPdGhlciAyIGZsb3dzIGFy ZSBlcnJvciB1c2UgDQpjYXNlcyB3aGVyZSBhbWRncHVfam9iX2ZyZWUgaXMgY2FsbGVkIGRpcmVj dGx5IGluIHdoaWNoDQoNCmNhc2VzIEkgYXNzdW1lIHRoZSBqb2Igd2Fzbid0IHN1Ym1pdHRlZCB0 byBIVy4gTGFzdCBmbG93IEkgc2VlIGlzIA0KZHJtX3NjaGVkX2VudGl0eV9raWxsX2pvYnNfY2Ig YW5kIGhlcmUgSSBhY3R1YWxseSBzZWUgYSBwcm9ibGVtDQoNCndpdGggdGhlIGNvZGUgYXMgaXQn cyB0b2RheSAtIGRybV9zY2hlZF9mZW5jZV9maW5pc2hlZCBpcyBjYWxsZWQgd2hpY2ggDQp3aWxs IHRyaWdnZXIgc19mZW5jZS0+ZmluaXNoZWQgY2FsbGJhY2sgdG8gcnVuIHdoaWNoIHRvZGF5DQoN CnNjaGVkdWxlcyBkcm1fc2NoZWRfam9iX2ZpbmlzaCB3aGljaCByZWxlYXNlcyB0aGUgam9iLCBi dXQgd2UgZG9uJ3QgZXZlbiANCndhaXQgZm9yIHRoYXQgYW5kIGNhbGwgZnJlZV9qb2IgY2IgZGly ZWN0bHkgZnJvbQ0KDQphZnRlciB0aGF0IHdoaWNoIHNlZW1zIHdyb25nIHRvIG1lLg0KDQpBbmRy ZXkNCg0KDQpPbiAxMi8xMC8yMDE4IDA5OjQ1IFBNLCBaaG91LCBEYXZpZChDaHVuTWluZykgd3Jv dGU6DQo+IEkgZG9uJ3QgdGhpbmsgYWRkaW5nIGNiIHRvIHNjaGVkIGpvYiB3b3VsZCB3b3JrIGFz IHNvb24gYXMgdGhlaXIgbGlmZXRpbWUgaXMgZGlmZmVyZW50IHdpdGggZmVuY2UuDQo+IFVubGVz cyB5b3UgbWFrZSB0aGUgc2NoZWQgam9iIHJlZmVyZW5jZSwgb3RoZXJ3aXNlIHdlIHdpbGwgZ2V0 IHRyb3VibGUgc29vbmVyIG9yIGxhdGVyLg0KPg0KPiAtRGF2aWQNCj4NCj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+PiBGcm9tOiBhbWQtZ2Z4IDxhbWQtZ2Z4LWJvdW5jZXNAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnPiBPbiBCZWhhbGYgT2YNCj4+IEFuZHJleSBHcm9kem92c2t5DQo+PiBT ZW50OiBUdWVzZGF5LCBEZWNlbWJlciAxMSwgMjAxOCA1OjQ0IEFNDQo+PiBUbzogZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZzsgYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmc7DQo+ PiBja29lbmlnLmxlaWNodHp1bWVya2VuQGdtYWlsLmNvbTsgZXJpY0BhbmhvbHQubmV0Ow0KPj4g ZXRuYXZpdkBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+IENjOiBaaG91LCBEYXZpZChDaHVuTWlu ZykgPERhdmlkMS5aaG91QGFtZC5jb20+OyBMaXUsIE1vbmsNCj4+IDxNb25rLkxpdUBhbWQuY29t PjsgR3JvZHpvdnNreSwgQW5kcmV5DQo+PiA8QW5kcmV5Lkdyb2R6b3Zza3lAYW1kLmNvbT4NCj4+ IFN1YmplY3Q6IFtQQVRDSCB2MyAyLzJdIGRybS9zY2hlZDogUmV3b3JrIEhXIGZlbmNlIHByb2Nl c3NpbmcuDQo+Pg0KPj4gRXhwZWRpdGUgam9iIGRlbGV0aW9uIGZyb20gcmluZyBtaXJyb3IgbGlz dCB0byB0aGUgSFcgZmVuY2Ugc2lnbmFsIGNhbGxiYWNrDQo+PiBpbnN0ZWFkIGZyb20gZmluaXNo X3dvcmssIHRvZ2V0aGVyIHdpdGggd2FpdGluZyBmb3IgYWxsIHN1Y2ggZmVuY2VzIHRvIHNpZ25h bCBpbg0KPj4gZHJtX3NjaGVkX3N0b3Agd2UgZ2FyYW50ZWUgdGhhdCBhbHJlYWR5IHNpZ25hbGVk IGpvYiB3aWxsIG5vdCBiZSBwcm9jZXNzZWQNCj4+IHR3aWNlLg0KPj4gUmVtb3ZlIHRoZSBzY2hl ZCBmaW5pc2ggZmVuY2UgY2FsbGJhY2sgYW5kIGp1c3Qgc3VibWl0IGZpbmlzaF93b3JrIGRpcmVj dGx5DQo+PiBmcm9tIHRoZSBIVyBmZW5jZSBjYWxsYmFjay4NCj4+DQo+PiB2MjogRml4IGNvbW1l bnRzLg0KPj4NCj4+IHYzOiBBdHRhY2ggIGh3IGZlbmNlIGNiIHRvIHNjaGVkX2pvYg0KPj4NCj4+ IFN1Z2dlc3RlZC1ieTogQ2hyaXN0aWFuIEtvZW5pZyA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29t Pg0KPj4gU2lnbmVkLW9mZi1ieTogQW5kcmV5IEdyb2R6b3Zza3kgPGFuZHJleS5ncm9kem92c2t5 QGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hlZF9t YWluLmMgfCA1OCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLQ0KPj4gLS0tLS0tLS0NCj4+ICAg aW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oICAgICAgICAgICAgfCAgNiArKy0tDQo+PiAgIDIg ZmlsZXMgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25zKC0pDQo+Pg0KPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jDQo+PiBi L2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5jDQo+PiBpbmRleCBjZGY5NWUy Li5mMGMxZjMyIDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3NjaGVkdWxlci9zY2hl ZF9tYWluLmMNCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9zY2hlZHVsZXIvc2NoZWRfbWFpbi5j DQo+PiBAQCAtMjg0LDggKzI4NCw2IEBAIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfZmluaXNo KHN0cnVjdCB3b3JrX3N0cnVjdA0KPj4gKndvcmspDQo+PiAgIAljYW5jZWxfZGVsYXllZF93b3Jr X3N5bmMoJnNjaGVkLT53b3JrX3Rkcik7DQo+Pg0KPj4gICAJc3Bpbl9sb2NrX2lycXNhdmUoJnNj aGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiAtCS8qIHJlbW92ZSBqb2IgZnJvbSByaW5n X21pcnJvcl9saXN0ICovDQo+PiAtCWxpc3RfZGVsX2luaXQoJnNfam9iLT5ub2RlKTsNCj4+ICAg CS8qIHF1ZXVlIFREUiBmb3IgbmV4dCBqb2IgKi8NCj4+ICAgCWRybV9zY2hlZF9zdGFydF90aW1l b3V0KHNjaGVkKTsNCj4+ICAgCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnNjaGVkLT5qb2JfbGlz dF9sb2NrLCBmbGFncyk7IEBAIC0yOTMsMjINCj4+ICsyOTEsMTEgQEAgc3RhdGljIHZvaWQgZHJt X3NjaGVkX2pvYl9maW5pc2goc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPj4gICAJc2NoZWQt Pm9wcy0+ZnJlZV9qb2Ioc19qb2IpOw0KPj4gICB9DQo+Pg0KPj4gLXN0YXRpYyB2b2lkIGRybV9z Y2hlZF9qb2JfZmluaXNoX2NiKHN0cnVjdCBkbWFfZmVuY2UgKmYsDQo+PiAtCQkJCSAgICBzdHJ1 Y3QgZG1hX2ZlbmNlX2NiICpjYikNCj4+IC17DQo+PiAtCXN0cnVjdCBkcm1fc2NoZWRfam9iICpq b2IgPSBjb250YWluZXJfb2YoY2IsIHN0cnVjdCBkcm1fc2NoZWRfam9iLA0KPj4gLQkJCQkJCSBm aW5pc2hfY2IpOw0KPj4gLQlzY2hlZHVsZV93b3JrKCZqb2ItPmZpbmlzaF93b3JrKTsNCj4+IC19 DQo+PiAtDQo+PiAgIHN0YXRpYyB2b2lkIGRybV9zY2hlZF9qb2JfYmVnaW4oc3RydWN0IGRybV9z Y2hlZF9qb2IgKnNfam9iKSAgew0KPj4gICAJc3RydWN0IGRybV9ncHVfc2NoZWR1bGVyICpzY2hl ZCA9IHNfam9iLT5zY2hlZDsNCj4+ICAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+Pg0KPj4gLQlk bWFfZmVuY2VfYWRkX2NhbGxiYWNrKCZzX2pvYi0+c19mZW5jZS0+ZmluaXNoZWQsICZzX2pvYi0N Cj4+PiBmaW5pc2hfY2IsDQo+PiAtCQkJICAgICAgIGRybV9zY2hlZF9qb2JfZmluaXNoX2NiKTsN Cj4+IC0NCj4+ICAgCXNwaW5fbG9ja19pcnFzYXZlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxh Z3MpOw0KPj4gICAJbGlzdF9hZGRfdGFpbCgmc19qb2ItPm5vZGUsICZzY2hlZC0+cmluZ19taXJy b3JfbGlzdCk7DQo+PiAgIAlkcm1fc2NoZWRfc3RhcnRfdGltZW91dChzY2hlZCk7DQo+PiBAQCAt MzU5LDEyICszNDYsMTEgQEAgdm9pZCBkcm1fc2NoZWRfc3RvcChzdHJ1Y3QgZHJtX2dwdV9zY2hl ZHVsZXINCj4+ICpzY2hlZCwgc3RydWN0IGRybV9zY2hlZF9qb2IgKmJhZCwNCj4+ICAgCWxpc3Rf Zm9yX2VhY2hfZW50cnlfcmV2ZXJzZShzX2pvYiwgJnNjaGVkLT5yaW5nX21pcnJvcl9saXN0LCBu b2RlKQ0KPj4gew0KPj4gICAJCWlmIChzX2pvYi0+c19mZW5jZS0+cGFyZW50ICYmDQo+PiAgIAkJ ICAgIGRtYV9mZW5jZV9yZW1vdmVfY2FsbGJhY2soc19qb2ItPnNfZmVuY2UtPnBhcmVudCwNCj4+ IC0JCQkJCSAgICAgICZzX2pvYi0+c19mZW5jZS0+Y2IpKSB7DQo+PiArCQkJCQkgICAgICAmc19q b2ItPmNiKSkgew0KPj4gICAJCQlkbWFfZmVuY2VfcHV0KHNfam9iLT5zX2ZlbmNlLT5wYXJlbnQp Ow0KPj4gICAJCQlzX2pvYi0+c19mZW5jZS0+cGFyZW50ID0gTlVMTDsNCj4+ICAgCQkJYXRvbWlj X2RlYygmc2NoZWQtPmh3X3JxX2NvdW50KTsNCj4+IC0JCX0NCj4+IC0JCWVsc2Ugew0KPj4gKwkJ fSBlbHNlIHsNCj4+ICAgCQkJLyogVE9ETyBJcyBpdCBnZXQvcHV0IG5lY2Nlc3NleSBoZXJlID8g Ki8NCj4+ICAgCQkJZG1hX2ZlbmNlX2dldCgmc19qb2ItPnNfZmVuY2UtPmZpbmlzaGVkKTsNCj4+ ICAgCQkJbGlzdF9hZGQoJnNfam9iLT5maW5pc2hfbm9kZSwgJndhaXRfbGlzdCk7IEBAIC0NCj4+ IDQxNywzMSArNDAzLDM0IEBAIEVYUE9SVF9TWU1CT0woZHJtX3NjaGVkX3N0b3ApOyAgdm9pZA0K Pj4gZHJtX3NjaGVkX3N0YXJ0KHN0cnVjdCBkcm1fZ3B1X3NjaGVkdWxlciAqc2NoZWQsIGJvb2wg dW5wYXJrX29ubHkpICB7DQo+PiAgIAlzdHJ1Y3QgZHJtX3NjaGVkX2pvYiAqc19qb2IsICp0bXA7 DQo+PiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiAgIAlpbnQgcjsNCj4+DQo+PiAgIAlpZiAo dW5wYXJrX29ubHkpDQo+PiAgIAkJZ290byB1bnBhcms7DQo+Pg0KPj4gLQlzcGluX2xvY2tfaXJx c2F2ZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZsYWdzKTsNCj4+ICsJLyoNCj4+ICsJICogTG9j a2luZyB0aGUgbGlzdCBpcyBub3QgcmVxdWlyZWQgaGVyZSBhcyB0aGUgc2NoZWQgdGhyZWFkIGlz IHBhcmtlZA0KPj4gKwkgKiBzbyBubyBuZXcgam9icyBhcmUgYmVpbmcgcHVzaGVkIGluIHRvIEhX IGFuZCBpbiBkcm1fc2NoZWRfc3RvcA0KPj4gd2UNCj4+ICsJICogZmx1c2hlZCBhbGwgdGhlIGpv YnMgd2hvIHdlcmUgc3RpbGwgaW4gbWlycm9yIGxpc3QgYnV0IHdobyBhbHJlYWR5DQo+PiArCSAq IHNpZ25hbGVkIGFuZCByZW1vdmVkIHRoZW0gc2VsZiBmcm9tIHRoZSBsaXN0LiBBbHNvIGNvbmN1 cnJlbnQNCj4+ICsJICogR1BVIHJlY292ZXJzIGNhbid0IHJ1biBpbiBwYXJhbGxlbC4NCj4+ICsJ ICovDQo+PiAgIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc19qb2IsIHRtcCwgJnNjaGVkLT5y aW5nX21pcnJvcl9saXN0LA0KPj4gbm9kZSkgew0KPj4gLQkJc3RydWN0IGRybV9zY2hlZF9mZW5j ZSAqc19mZW5jZSA9IHNfam9iLT5zX2ZlbmNlOw0KPj4gICAJCXN0cnVjdCBkbWFfZmVuY2UgKmZl bmNlID0gc19qb2ItPnNfZmVuY2UtPnBhcmVudDsNCj4+DQo+PiAgIAkJaWYgKGZlbmNlKSB7DQo+ PiAtCQkJciA9IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzX2ZlbmNlLT5jYiwNCj4+ ICsJCQlyID0gZG1hX2ZlbmNlX2FkZF9jYWxsYmFjayhmZW5jZSwgJnNfam9iLT5jYiwNCj4+ICAg CQkJCQkJICAgZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKTsNCj4+ICAgCQkJaWYgKHIgPT0gLUVOT0VO VCkNCj4+IC0JCQkJZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKGZlbmNlLCAmc19mZW5jZS0NCj4+PiBj Yik7DQo+PiArCQkJCWRybV9zY2hlZF9wcm9jZXNzX2pvYihmZW5jZSwgJnNfam9iLT5jYik7DQo+ PiAgIAkJCWVsc2UgaWYgKHIpDQo+PiAgIAkJCQlEUk1fRVJST1IoImZlbmNlIGFkZCBjYWxsYmFj ayBmYWlsZWQNCj4+ICglZClcbiIsDQo+PiAgIAkJCQkJICByKTsNCj4+ICAgCQl9IGVsc2UNCj4+ IC0JCQlkcm1fc2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNfZmVuY2UtPmNiKTsNCj4+ICsJCQlk cm1fc2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNfam9iLT5jYik7DQo+PiAgIAl9DQo+Pg0KPj4g ICAJZHJtX3NjaGVkX3N0YXJ0X3RpbWVvdXQoc2NoZWQpOw0KPj4gLQlzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZzY2hlZC0+am9iX2xpc3RfbG9jaywgZmxhZ3MpOw0KPj4NCj4+ICAgdW5wYXJrOg0K Pj4gICAJa3RocmVhZF91bnBhcmsoc2NoZWQtPnRocmVhZCk7DQo+PiBAQCAtNTkwLDE4ICs1Nzks MjcgQEAgZHJtX3NjaGVkX3NlbGVjdF9lbnRpdHkoc3RydWN0DQo+PiBkcm1fZ3B1X3NjaGVkdWxl ciAqc2NoZWQpDQo+PiAgICAqLw0KPj4gICBzdGF0aWMgdm9pZCBkcm1fc2NoZWRfcHJvY2Vzc19q b2Ioc3RydWN0IGRtYV9mZW5jZSAqZiwgc3RydWN0DQo+PiBkbWFfZmVuY2VfY2IgKmNiKSAgew0K Pj4gLQlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0NCj4+IC0JCWNvbnRhaW5lcl9v ZihjYiwgc3RydWN0IGRybV9zY2hlZF9mZW5jZSwgY2IpOw0KPj4gKwlzdHJ1Y3QgZHJtX3NjaGVk X2pvYiAqc19qb2IgPSBjb250YWluZXJfb2YoY2IsIHN0cnVjdA0KPj4gZHJtX3NjaGVkX2pvYiwg Y2IpOw0KPj4gKwlzdHJ1Y3QgZHJtX3NjaGVkX2ZlbmNlICpzX2ZlbmNlID0gc19qb2ItPnNfZmVu Y2U7DQo+PiAgIAlzdHJ1Y3QgZHJtX2dwdV9zY2hlZHVsZXIgKnNjaGVkID0gc19mZW5jZS0+c2No ZWQ7DQo+PiArCXVuc2lnbmVkIGxvbmcgZmxhZ3M7DQo+PiArDQo+PiArCWNhbmNlbF9kZWxheWVk X3dvcmsoJnNjaGVkLT53b3JrX3Rkcik7DQo+Pg0KPj4gLQlkbWFfZmVuY2VfZ2V0KCZzX2ZlbmNl LT5maW5pc2hlZCk7DQo+PiAgIAlhdG9taWNfZGVjKCZzY2hlZC0+aHdfcnFfY291bnQpOw0KPj4g ICAJYXRvbWljX2RlYygmc2NoZWQtPm51bV9qb2JzKTsNCj4+ICsNCj4+ICsJc3Bpbl9sb2NrX2ly cXNhdmUoJnNjaGVkLT5qb2JfbGlzdF9sb2NrLCBmbGFncyk7DQo+PiArCS8qIHJlbW92ZSBqb2Ig ZnJvbSByaW5nX21pcnJvcl9saXN0ICovDQo+PiArCWxpc3RfZGVsX2luaXQoJnNfam9iLT5ub2Rl KTsNCj4+ICsJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmc2NoZWQtPmpvYl9saXN0X2xvY2ssIGZs YWdzKTsNCj4+ICsNCj4+ICAgCWRybV9zY2hlZF9mZW5jZV9maW5pc2hlZChzX2ZlbmNlKTsNCj4+ DQo+PiAgIAl0cmFjZV9kcm1fc2NoZWRfcHJvY2Vzc19qb2Ioc19mZW5jZSk7DQo+PiAtCWRtYV9m ZW5jZV9wdXQoJnNfZmVuY2UtPmZpbmlzaGVkKTsNCj4+ICAgCXdha2VfdXBfaW50ZXJydXB0aWJs ZSgmc2NoZWQtPndha2VfdXBfd29ya2VyKTsNCj4+ICsNCj4+ICsJc2NoZWR1bGVfd29yaygmc19q b2ItPmZpbmlzaF93b3JrKTsNCj4+ICAgfQ0KPj4NCj4+ICAgLyoqDQo+PiBAQCAtNjY0LDE2ICs2 NjIsMTYgQEAgc3RhdGljIGludCBkcm1fc2NoZWRfbWFpbih2b2lkICpwYXJhbSkNCj4+DQo+PiAg IAkJaWYgKGZlbmNlKSB7DQo+PiAgIAkJCXNfZmVuY2UtPnBhcmVudCA9IGRtYV9mZW5jZV9nZXQo ZmVuY2UpOw0KPj4gLQkJCXIgPSBkbWFfZmVuY2VfYWRkX2NhbGxiYWNrKGZlbmNlLCAmc19mZW5j ZS0+Y2IsDQo+PiArCQkJciA9IGRtYV9mZW5jZV9hZGRfY2FsbGJhY2soZmVuY2UsICZzY2hlZF9q b2ItPmNiLA0KPj4gICAJCQkJCQkgICBkcm1fc2NoZWRfcHJvY2Vzc19qb2IpOw0KPj4gICAJCQlp ZiAociA9PSAtRU5PRU5UKQ0KPj4gLQkJCQlkcm1fc2NoZWRfcHJvY2Vzc19qb2IoZmVuY2UsICZz X2ZlbmNlLQ0KPj4+IGNiKTsNCj4+ICsJCQkJZHJtX3NjaGVkX3Byb2Nlc3Nfam9iKGZlbmNlLCAm c2NoZWRfam9iLQ0KPj4+IGNiKTsNCj4+ICAgCQkJZWxzZSBpZiAocikNCj4+ICAgCQkJCURSTV9F UlJPUigiZmVuY2UgYWRkIGNhbGxiYWNrIGZhaWxlZA0KPj4gKCVkKVxuIiwNCj4+ICAgCQkJCQkg IHIpOw0KPj4gICAJCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsNCj4+ICAgCQl9IGVsc2UNCj4+IC0J CQlkcm1fc2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNfZmVuY2UtPmNiKTsNCj4+ICsJCQlkcm1f c2NoZWRfcHJvY2Vzc19qb2IoTlVMTCwgJnNjaGVkX2pvYi0+Y2IpOw0KPj4NCj4+ICAgCQl3YWtl X3VwKCZzY2hlZC0+am9iX3NjaGVkdWxlZCk7DQo+PiAgIAl9DQo+PiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oIGIvaW5jbHVkZS9kcm0vZ3B1X3NjaGVkdWxlci5oDQo+ PiBpbmRleCBjOTRiNTkyLi5mMjlhYTFjIDEwMDY0NA0KPj4gLS0tIGEvaW5jbHVkZS9kcm0vZ3B1 X3NjaGVkdWxlci5oDQo+PiArKysgYi9pbmNsdWRlL2RybS9ncHVfc2NoZWR1bGVyLmgNCj4+IEBA IC0xMzgsMTAgKzEzOCw2IEBAIHN0cnVjdCBkcm1fc2NoZWRfZmVuY2Ugew0KPj4gICAJc3RydWN0 IGRtYV9mZW5jZQkJZmluaXNoZWQ7DQo+Pg0KPj4gICAgICAgICAgIC8qKg0KPj4gLSAgICAgICAg ICogQGNiOiB0aGUgY2FsbGJhY2sgZm9yIHRoZSBwYXJlbnQgZmVuY2UgYmVsb3cuDQo+PiAtICAg ICAgICAgKi8NCj4+IC0Jc3RydWN0IGRtYV9mZW5jZV9jYgkJY2I7DQo+PiAtICAgICAgICAvKioN Cj4+ICAgICAgICAgICAgKiBAcGFyZW50OiB0aGUgZmVuY2UgcmV0dXJuZWQgYnkgJmRybV9zY2hl ZF9iYWNrZW5kX29wcy5ydW5fam9iDQo+PiAgICAgICAgICAgICogd2hlbiBzY2hlZHVsaW5nIHRo ZSBqb2Igb24gaGFyZHdhcmUuIFdlIHNpZ25hbCB0aGUNCj4+ICAgICAgICAgICAgKiAmZHJtX3Nj aGVkX2ZlbmNlLmZpbmlzaGVkIGZlbmNlIG9uY2UgcGFyZW50IGlzIHNpZ25hbGxlZC4NCj4+IEBA IC0xODIsNiArMTc4LDcgQEAgc3RydWN0IGRybV9zY2hlZF9mZW5jZQ0KPj4gKnRvX2RybV9zY2hl ZF9mZW5jZShzdHJ1Y3QgZG1hX2ZlbmNlICpmKTsNCj4+ICAgICogICAgICAgICBiZSBzY2hlZHVs ZWQgZnVydGhlci4NCj4+ICAgICogQHNfcHJpb3JpdHk6IHRoZSBwcmlvcml0eSBvZiB0aGUgam9i Lg0KPj4gICAgKiBAZW50aXR5OiB0aGUgZW50aXR5IHRvIHdoaWNoIHRoaXMgam9iIGJlbG9uZ3Mu DQo+PiArICogQGNiOiB0aGUgY2FsbGJhY2sgZm9yIHRoZSBwYXJlbnQgZmVuY2UgaW4gc19mZW5j ZS4NCj4+ICAgICoNCj4+ICAgICogQSBqb2IgaXMgY3JlYXRlZCBieSB0aGUgZHJpdmVyIHVzaW5n IGRybV9zY2hlZF9qb2JfaW5pdCgpLCBhbmQNCj4+ICAgICogc2hvdWxkIGNhbGwgZHJtX3NjaGVk X2VudGl0eV9wdXNoX2pvYigpIG9uY2UgaXQgd2FudHMgdGhlIHNjaGVkdWxlcg0KPj4gQEAgLTE5 OSw2ICsxOTYsNyBAQCBzdHJ1Y3QgZHJtX3NjaGVkX2pvYiB7DQo+PiAgIAlhdG9taWNfdAkJCWth cm1hOw0KPj4gICAJZW51bSBkcm1fc2NoZWRfcHJpb3JpdHkJCXNfcHJpb3JpdHk7DQo+PiAgIAlz dHJ1Y3QgZHJtX3NjaGVkX2VudGl0eSAgKmVudGl0eTsNCj4+ICsJc3RydWN0IGRtYV9mZW5jZV9j YgkJY2I7DQo+PiAgIH07DQo+Pg0KPj4gICBzdGF0aWMgaW5saW5lIGJvb2wgZHJtX3NjaGVkX2lu dmFsaWRhdGVfam9iKHN0cnVjdCBkcm1fc2NoZWRfam9iICpzX2pvYiwNCj4+IC0tDQo+PiAyLjcu NA0KPj4NCj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f DQo+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdA0KPj4gYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcNCj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1k LWdmeA0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwph bWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK