From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH 3/4] drm/amdkfd: Refactor create_queue_nocpsch Date: Fri, 31 May 2019 21:40:47 +0000 Message-ID: <490fb268-862b-2300-2876-f3480d2febab@amd.com> References: <1559337538-14249-1-git-send-email-Oak.Zeng@amd.com> <1559337538-14249-3-git-send-email-Oak.Zeng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1559337538-14249-3-git-send-email-Oak.Zeng-5C7GfCeVMHo@public.gmane.org> 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: "Zeng, Oak" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Zhao, Yong" , "Freehill, Chris" , "Liu, Alex" DQpPbiAyMDE5LTA1LTMxIDU6MTkgcC5tLiwgWmVuZywgT2FrIHdyb3RlOg0KPiBUaGlzIGlzIHBy ZXBhcmUgd29yayB0byBmaXggYSBjaXJjdWxhciBsb2NrIGRlcGVuZGVuY3kuDQo+IE5vIGxvZ2lj IGNoYW5nZQ0KPg0KPiBDaGFuZ2UtSWQ6IEk0ZTBlZTkxODI2MGU3NzgwZGU5NzJkZDcxZjRjZTc4 N2I0ZjZkZGU5DQo+IFNpZ25lZC1vZmYtYnk6IE9hayBaZW5nIDxPYWsuWmVuZ0BhbWQuY29tPg0K PiAtLS0NCj4gICAuLi4vZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZpY2VfcXVldWVfbWFuYWdl ci5jICB8IDE3MiArKysrKysrKy0tLS0tLS0tLS0tLS0NCj4gICAxIGZpbGUgY2hhbmdlZCwgNjIg aW5zZXJ0aW9ucygrKSwgMTEwIGRlbGV0aW9ucygtKQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYw0KPiBpbmRleCA3 NDk0NGVjLi5hYWM3ZjdiIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYw0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYw0KPiBAQCAtNDIsMTAgKzQyLDYgQEAN Cj4gICBzdGF0aWMgaW50IHNldF9wYXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGRldmljZV9xdWV1 ZV9tYW5hZ2VyICpkcW0sDQo+ICAgCQkJCQl1bnNpZ25lZCBpbnQgcGFzaWQsIHVuc2lnbmVkIGlu dCB2bWlkKTsNCj4gICANCj4gLXN0YXRpYyBpbnQgY3JlYXRlX2NvbXB1dGVfcXVldWVfbm9jcHNj aChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwNCj4gLQkJCQkJc3RydWN0IHF1ZXVl ICpxLA0KPiAtCQkJCQlzdHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOw0KPiAtDQo+ICAg c3RhdGljIGludCBleGVjdXRlX3F1ZXVlc19jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFn ZXIgKmRxbSwNCj4gICAJCQkJZW51bSBrZmRfdW5tYXBfcXVldWVzX2ZpbHRlciBmaWx0ZXIsDQo+ ICAgCQkJCXVpbnQzMl90IGZpbHRlcl9wYXJhbSk7DQo+IEBAIC01NSwxNSArNTEsMTYgQEAgc3Rh dGljIGludCB1bm1hcF9xdWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpk cW0sDQo+ICAgDQo+ICAgc3RhdGljIGludCBtYXBfcXVldWVzX2Nwc2NoKHN0cnVjdCBkZXZpY2Vf cXVldWVfbWFuYWdlciAqZHFtKTsNCj4gICANCj4gLXN0YXRpYyBpbnQgY3JlYXRlX3NkbWFfcXVl dWVfbm9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwNCj4gLQkJCQkJc3Ry dWN0IHF1ZXVlICpxLA0KPiAtCQkJCQlzdHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOw0K PiAtDQo+ICAgc3RhdGljIHZvaWQgZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKHN0cnVjdCBkZXZpY2Vf cXVldWVfbWFuYWdlciAqZHFtLA0KPiAgIAkJCQlzdHJ1Y3QgcXVldWUgKnEpOw0KPiAgIHN0YXRp YyB2b2lkIGRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9sb2NrZWQoc3RydWN0IGRldmljZV9xdWV1ZV9t YW5hZ2VyICpkcW0sDQo+ICAgCQkJCXN0cnVjdCBxdWV1ZSAqcSk7DQo+ICAgDQo+ICtzdGF0aWMg aW5saW5lIHZvaWQgZGVhbGxvY2F0ZV9ocWQoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpk cW0sDQo+ICsJCQkJc3RydWN0IHF1ZXVlICpxKTsNCj4gK3N0YXRpYyBpbnQgYWxsb2NhdGVfaHFk KHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLCBzdHJ1Y3QgcXVldWUgKnEpOw0KPiAr c3RhdGljIGludCBhbGxvY2F0ZV9zZG1hX3F1ZXVlKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdl ciAqZHFtLA0KPiArCQkJCXN0cnVjdCBxdWV1ZSAqcSk7DQo+ICAgc3RhdGljIHZvaWQga2ZkX3By b2Nlc3NfaHdfZXhjZXB0aW9uKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7DQo+ICAgDQo+ICAg c3RhdGljIGlubGluZQ0KPiBAQCAtMjcyLDYgKzI2OSw3IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3F1 ZXVlX25vY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sDQo+ICAgCQkJCXN0 cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCkNCj4gICB7DQo+ICAgCWludCByZXR2YWw7DQo+ ICsJc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWdyOw0KDQpSZXZlcnNlIENocmlzdG1hcyB0cmVl IC4uLiBQdXQgdGhlIGxvbmdlciBkZWNsYXJhdGlvbiBmaXJzdC4gSXQgdGVuZHMgdG8gDQptYWtl IGNvZGUgbW9yZSByZWFkYWJsZS4NCg0KDQo+ICAgDQo+ICAgCXByaW50X3F1ZXVlKHEpOw0KPiAg IA0KPiBAQCAtMzAyLDE4ICszMDAsNTEgQEAgc3RhdGljIGludCBjcmVhdGVfcXVldWVfbm9jcHNj aChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwNCj4gICAJcS0+cHJvcGVydGllcy50 YmFfYWRkciA9IHFwZC0+dGJhX2FkZHI7DQo+ICAgCXEtPnByb3BlcnRpZXMudG1hX2FkZHIgPSBx cGQtPnRtYV9hZGRyOw0KPiAgIA0KPiArCW1xZF9tZ3IgPSBkcW0tPm1xZF9tZ3JzW2dldF9tcWRf dHlwZV9mcm9tX3F1ZXVlX3R5cGUoDQo+ICsJCQlxLT5wcm9wZXJ0aWVzLnR5cGUpXTsNCj4gICAJ aWYgKHEtPnByb3BlcnRpZXMudHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9DT01QVVRFKQ0KPiAtCQly ZXR2YWwgPSBjcmVhdGVfY29tcHV0ZV9xdWV1ZV9ub2Nwc2NoKGRxbSwgcSwgcXBkKTsNCj4gLQll bHNlIGlmIChxLT5wcm9wZXJ0aWVzLnR5cGUgPT0gS0ZEX1FVRVVFX1RZUEVfU0RNQSB8fA0KPiAt CQkJcS0+cHJvcGVydGllcy50eXBlID09IEtGRF9RVUVVRV9UWVBFX1NETUFfWEdNSSkNCj4gLQkJ cmV0dmFsID0gY3JlYXRlX3NkbWFfcXVldWVfbm9jcHNjaChkcW0sIHEsIHFwZCk7DQo+IC0JZWxz ZQ0KPiAtCQlyZXR2YWwgPSAtRUlOVkFMOw0KPiArCXsNCg0KVGhlIG9wZW4gYnJhY2Ugc2hvdWxk IGJlIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlICJpZiIuIFBsZWFzZSBydW4gDQpjaGVja19wYXRj aC5wbCwgaXQgc2hvdWxkIGZpbmQgdGhvc2UgY29kaW5nIHN0eWxlIHZpb2xhdGlvbnMuIFRoaXMg DQpjb252ZW5pZW50IGNvbW1hbmQgY2hlY2tzIHRoZSB0b3AgNCBjb21taXRzIG9uIHlvdXIgbG9j YWwgYnJhbmNoIHdpdGhvdXQgDQpldmVuIGhhdmluZyB0byBnZW5lcmF0ZSB0aGUgcGF0Y2ggZmls ZXMgZmlyc3Q6ICJzY3JpcHRzL2NoZWNrcGF0Y2gucGwgLWcgDQpIRUFEfjQuLkhFQUQiLg0KDQoN Cj4gKwkJcmV0dmFsID0gYWxsb2NhdGVfaHFkKGRxbSwgcSk7DQo+ICsJCWlmIChyZXR2YWwpDQo+ ICsJCQlnb3RvIGRlYWxsb2NhdGVfdm1pZDsNCj4gKwl9IGVsc2UgaWYgKHEtPnByb3BlcnRpZXMu dHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9TRE1BIHx8DQo+ICsJCXEtPnByb3BlcnRpZXMudHlwZSA9 PSBLRkRfUVVFVUVfVFlQRV9TRE1BX1hHTUkpIHsNCj4gKwkJcmV0dmFsID0gYWxsb2NhdGVfc2Rt YV9xdWV1ZShkcW0sIHEpOw0KPiArCQlpZiAocmV0dmFsKQ0KPiArCQkJZ290byBkZWFsbG9jYXRl X3ZtaWQ7DQo+ICsJCWRxbS0+YXNpY19vcHMuaW5pdF9zZG1hX3ZtKGRxbSwgcSwgcXBkKTsNCj4g Kwl9DQo+ICAgDQo+IC0JaWYgKHJldHZhbCkgew0KPiAtCQlpZiAobGlzdF9lbXB0eSgmcXBkLT5x dWV1ZXNfbGlzdCkpDQo+IC0JCQlkZWFsbG9jYXRlX3ZtaWQoZHFtLCBxcGQsIHEpOw0KPiAtCQln b3RvIG91dF91bmxvY2s7DQo+ICsJcmV0dmFsID0gYWxsb2NhdGVfZG9vcmJlbGwocXBkLCBxKTsN Cj4gKwlpZiAocmV0dmFsKQ0KPiArCQlnb3RvIG91dF9kZWFsbG9jYXRlX2hxZDsNCj4gKw0KPiAr CXJldHZhbCA9IG1xZF9tZ3ItPmluaXRfbXFkKG1xZF9tZ3IsICZxLT5tcWQsICZxLT5tcWRfbWVt X29iaiwNCj4gKwkJCQkmcS0+Z2FydF9tcWRfYWRkciwgJnEtPnByb3BlcnRpZXMpOw0KPiArCWlm IChyZXR2YWwpDQo+ICsJCWdvdG8gb3V0X2RlYWxsb2NhdGVfZG9vcmJlbGw7DQo+ICsNCj4gKwlw cl9kZWJ1ZygiTG9hZGluZyBtcWQgdG8gaHFkIG9uIHBpcGUgJWQsIHF1ZXVlICVkXG4iLA0KPiAr CQkJcS0+cGlwZSwgcS0+cXVldWUpOw0KPiArDQo+ICsJaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9 PSBLRkRfUVVFVUVfVFlQRV9DT01QVVRFKQ0KPiArCQlkcW0tPmRldi0+a2ZkMmtnZC0+c2V0X3Nj cmF0Y2hfYmFja2luZ192YSgNCj4gKwkJCWRxbS0+ZGV2LT5rZ2QsIHFwZC0+c2hfaGlkZGVuX3By aXZhdGVfYmFzZSwgcXBkLT52bWlkKTsNCj4gKw0KPiArCWlmIChxLT5wcm9wZXJ0aWVzLmlzX2Fj dGl2ZSkgew0KPiArDQo+ICsJCWlmIChXQVJOKHEtPnByb2Nlc3MtPm1tICE9IGN1cnJlbnQtPm1t LA0KPiArCQkJCQkic2hvdWxkIG9ubHkgcnVuIGluIHVzZXIgdGhyZWFkIikpDQo+ICsJCQlyZXR2 YWwgPSAtRUZBVUxUOw0KPiArCQllbHNlDQo+ICsJCQkvKiBUT0RPIGZvciBzZG1hIHF1ZXVlIGxv YWQgbXFkIHdhcyBjYWxsZWQNCj4gKwkJCSAqIHVuY29uZGl0aW9uYWxseSBpbiBvcmlnaW5hbCBj b2RlLCB3aXRoIG1tX3N0cnVjdCBzZXQNCj4gKwkJCSAqIHRvIE5VTEwuIEkgYW0gbm90IHN1cmUg d2hldGhlciB3ZSBuZWVkIHRvIGtlZXANCj4gKwkJCSAqIG9yaWdpbmFsIGxvZ2ljIGhlcmUgKi8N Cj4gKwkJCXJldHZhbCA9IG1xZF9tZ3ItPmxvYWRfbXFkKG1xZF9tZ3IsIHEtPm1xZCwgcS0+cGlw ZSwgcS0+cXVldWUsDQo+ICsJCQkJCSZxLT5wcm9wZXJ0aWVzLCBjdXJyZW50LT5tbSk7DQo+ICsJ CWlmIChyZXR2YWwpDQo+ICsJCQlnb3RvIG91dF91bmluaXRfbXFkOw0KPiAgIAl9DQo+ICAgDQo+ ICAgCWxpc3RfYWRkKCZxLT5saXN0LCAmcXBkLT5xdWV1ZXNfbGlzdCk7DQo+IEBAIC0zMzQsNiAr MzY1LDE5IEBAIHN0YXRpYyBpbnQgY3JlYXRlX3F1ZXVlX25vY3BzY2goc3RydWN0IGRldmljZV9x dWV1ZV9tYW5hZ2VyICpkcW0sDQo+ICAgCXByX2RlYnVnKCJUb3RhbCBvZiAlZCBxdWV1ZXMgYXJl IGFjY291bnRhYmxlIHNvIGZhclxuIiwNCj4gICAJCQlkcW0tPnRvdGFsX3F1ZXVlX2NvdW50KTsN Cj4gICANCj4gK291dF91bmluaXRfbXFkOg0KPiArCW1xZF9tZ3ItPnVuaW5pdF9tcWQobXFkX21n ciwgcS0+bXFkLCBxLT5tcWRfbWVtX29iaik7DQo+ICtvdXRfZGVhbGxvY2F0ZV9kb29yYmVsbDoN Cj4gKwlkZWFsbG9jYXRlX2Rvb3JiZWxsKHFwZCwgcSk7DQo+ICtvdXRfZGVhbGxvY2F0ZV9ocWQ6 DQo+ICsJaWYgKHEtPnByb3BlcnRpZXMudHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9DT01QVVRFKQ0K PiArCQlkZWFsbG9jYXRlX2hxZChkcW0sIHEpOw0KPiArCWVsc2UgaWYgKHEtPnByb3BlcnRpZXMu dHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9TRE1BIHx8DQo+ICsJCXEtPnByb3BlcnRpZXMudHlwZSA9 PSBLRkRfUVVFVUVfVFlQRV9TRE1BX1hHTUkpDQo+ICsJCWRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9s b2NrZWQoZHFtLCBxKTsNCj4gK2RlYWxsb2NhdGVfdm1pZDoNCj4gKwlpZiAobGlzdF9lbXB0eSgm cXBkLT5xdWV1ZXNfbGlzdCkpDQo+ICsJCWRlYWxsb2NhdGVfdm1pZChkcW0sIHFwZCwgcSk7DQo+ ICAgb3V0X3VubG9jazoNCj4gICAJZHFtX3VubG9jayhkcW0pOw0KPiAgIAlyZXR1cm4gcmV0dmFs Ow0KDQpUaGlzIGxvb2tzIGxpa2UgeW91IGFsd2F5cyBkZWFsbG9jYXRlIGRvb3JiZWxscywgU0RN QSBxdWV1ZXMgZXRjLiwgZXZlbiANCndoZW4gcXVldWUgY3JlYXRpb24gd2FzIHN1Y2Nlc3NmdWwu IFNlZW1zIHdyb25nLg0KDQpSZWdhcmRzLA0KIMKgIEZlbGl4DQoNCg0KPiBAQCAtMzc5LDU4ICs0 MjMsNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGVhbGxvY2F0ZV9ocWQoc3RydWN0IGRldmljZV9x dWV1ZV9tYW5hZ2VyICpkcW0sDQo+ICAgCWRxbS0+YWxsb2NhdGVkX3F1ZXVlc1txLT5waXBlXSB8 PSAoMSA8PCBxLT5xdWV1ZSk7DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGludCBjcmVhdGVfY29t cHV0ZV9xdWV1ZV9ub2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLA0KPiAt CQkJCQlzdHJ1Y3QgcXVldWUgKnEsDQo+IC0JCQkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2Ug KnFwZCkNCj4gLXsNCj4gLQlzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tZ3I7DQo+IC0JaW50IHJl dHZhbDsNCj4gLQ0KPiAtCW1xZF9tZ3IgPSBkcW0tPm1xZF9tZ3JzW0tGRF9NUURfVFlQRV9DT01Q VVRFXTsNCj4gLQ0KPiAtCXJldHZhbCA9IGFsbG9jYXRlX2hxZChkcW0sIHEpOw0KPiAtCWlmIChy ZXR2YWwpDQo+IC0JCXJldHVybiByZXR2YWw7DQo+IC0NCj4gLQlyZXR2YWwgPSBhbGxvY2F0ZV9k b29yYmVsbChxcGQsIHEpOw0KPiAtCWlmIChyZXR2YWwpDQo+IC0JCWdvdG8gb3V0X2RlYWxsb2Nh dGVfaHFkOw0KPiAtDQo+IC0JcmV0dmFsID0gbXFkX21nci0+aW5pdF9tcWQobXFkX21nciwgJnEt Pm1xZCwgJnEtPm1xZF9tZW1fb2JqLA0KPiAtCQkJCSZxLT5nYXJ0X21xZF9hZGRyLCAmcS0+cHJv cGVydGllcyk7DQo+IC0JaWYgKHJldHZhbCkNCj4gLQkJZ290byBvdXRfZGVhbGxvY2F0ZV9kb29y YmVsbDsNCj4gLQ0KPiAtCXByX2RlYnVnKCJMb2FkaW5nIG1xZCB0byBocWQgb24gcGlwZSAlZCwg cXVldWUgJWRcbiIsDQo+IC0JCQlxLT5waXBlLCBxLT5xdWV1ZSk7DQo+IC0NCj4gLQlkcW0tPmRl di0+a2ZkMmtnZC0+c2V0X3NjcmF0Y2hfYmFja2luZ192YSgNCj4gLQkJCWRxbS0+ZGV2LT5rZ2Qs IHFwZC0+c2hfaGlkZGVuX3ByaXZhdGVfYmFzZSwgcXBkLT52bWlkKTsNCj4gLQ0KPiAtCWlmICgh cS0+cHJvcGVydGllcy5pc19hY3RpdmUpDQo+IC0JCXJldHVybiAwOw0KPiAtDQo+IC0JaWYgKFdB Uk4ocS0+cHJvY2Vzcy0+bW0gIT0gY3VycmVudC0+bW0sDQo+IC0JCSAic2hvdWxkIG9ubHkgcnVu IGluIHVzZXIgdGhyZWFkIikpDQo+IC0JCXJldHZhbCA9IC1FRkFVTFQ7DQo+IC0JZWxzZQ0KPiAt CQlyZXR2YWwgPSBtcWRfbWdyLT5sb2FkX21xZChtcWRfbWdyLCBxLT5tcWQsIHEtPnBpcGUsIHEt PnF1ZXVlLA0KPiAtCQkJCQkgICAmcS0+cHJvcGVydGllcywgY3VycmVudC0+bW0pOw0KPiAtCWlm IChyZXR2YWwpDQo+IC0JCWdvdG8gb3V0X3VuaW5pdF9tcWQ7DQo+IC0NCj4gLQlyZXR1cm4gMDsN Cj4gLQ0KPiAtb3V0X3VuaW5pdF9tcWQ6DQo+IC0JbXFkX21nci0+dW5pbml0X21xZChtcWRfbWdy LCBxLT5tcWQsIHEtPm1xZF9tZW1fb2JqKTsNCj4gLW91dF9kZWFsbG9jYXRlX2Rvb3JiZWxsOg0K PiAtCWRlYWxsb2NhdGVfZG9vcmJlbGwocXBkLCBxKTsNCj4gLW91dF9kZWFsbG9jYXRlX2hxZDoN Cj4gLQlkZWFsbG9jYXRlX2hxZChkcW0sIHEpOw0KPiAtDQo+IC0JcmV0dXJuIHJldHZhbDsNCj4g LX0NCj4gLQ0KPiAgIC8qIEFjY2VzcyB0byBEUU0gaGFzIHRvIGJlIGxvY2tlZCBiZWZvcmUgY2Fs bGluZyBkZXN0cm95X3F1ZXVlX25vY3BzY2hfbG9ja2VkDQo+ICAgICogdG8gYXZvaWQgYXN5bmNo cm9uaXplZCBhY2Nlc3MNCj4gICAgKi8NCj4gQEAgLTk5MSw0NiArOTgzLDYgQEAgc3RhdGljIHZv aWQgZGVhbGxvY2F0ZV9zZG1hX3F1ZXVlKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFt LA0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiAtc3RhdGljIGludCBjcmVhdGVfc2RtYV9xdWV1ZV9u b2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLA0KPiAtCQkJCQlzdHJ1Y3Qg cXVldWUgKnEsDQo+IC0JCQkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCkNCj4gLXsN Cj4gLQlzdHJ1Y3QgbXFkX21hbmFnZXIgKm1xZF9tZ3I7DQo+IC0JaW50IHJldHZhbDsNCj4gLQ0K PiAtCW1xZF9tZ3IgPSBkcW0tPm1xZF9tZ3JzW0tGRF9NUURfVFlQRV9TRE1BXTsNCj4gLQ0KPiAt CXJldHZhbCA9IGFsbG9jYXRlX3NkbWFfcXVldWUoZHFtLCBxKTsNCj4gLQlpZiAocmV0dmFsKQ0K PiAtCQlyZXR1cm4gcmV0dmFsOw0KPiAtDQo+IC0JcmV0dmFsID0gYWxsb2NhdGVfZG9vcmJlbGwo cXBkLCBxKTsNCj4gLQlpZiAocmV0dmFsKQ0KPiAtCQlnb3RvIG91dF9kZWFsbG9jYXRlX3NkbWFf cXVldWVfbG9ja2VkOw0KPiAtDQo+IC0JZHFtLT5hc2ljX29wcy5pbml0X3NkbWFfdm0oZHFtLCBx LCBxcGQpOw0KPiAtCXJldHZhbCA9IG1xZF9tZ3ItPmluaXRfbXFkKG1xZF9tZ3IsICZxLT5tcWQs ICZxLT5tcWRfbWVtX29iaiwNCj4gLQkJCQkmcS0+Z2FydF9tcWRfYWRkciwgJnEtPnByb3BlcnRp ZXMpOw0KPiAtCWlmIChyZXR2YWwpDQo+IC0JCWdvdG8gb3V0X2RlYWxsb2NhdGVfZG9vcmJlbGw7 DQo+IC0NCj4gLQlyZXR2YWwgPSBtcWRfbWdyLT5sb2FkX21xZChtcWRfbWdyLCBxLT5tcWQsIDAs IDAsICZxLT5wcm9wZXJ0aWVzLA0KPiAtCQkJCU5VTEwpOw0KPiAtCWlmIChyZXR2YWwpDQo+IC0J CWdvdG8gb3V0X3VuaW5pdF9tcWQ7DQo+IC0NCj4gLQlyZXR1cm4gMDsNCj4gLQ0KPiAtb3V0X3Vu aW5pdF9tcWQ6DQo+IC0JbXFkX21nci0+dW5pbml0X21xZChtcWRfbWdyLCBxLT5tcWQsIHEtPm1x ZF9tZW1fb2JqKTsNCj4gLW91dF9kZWFsbG9jYXRlX2Rvb3JiZWxsOg0KPiAtCWRlYWxsb2NhdGVf ZG9vcmJlbGwocXBkLCBxKTsNCj4gLW91dF9kZWFsbG9jYXRlX3NkbWFfcXVldWVfbG9ja2VkOg0K PiAtCWRlYWxsb2NhdGVfc2RtYV9xdWV1ZV9sb2NrZWQoZHFtLCBxKTsNCj4gLQ0KPiAtCXJldHVy biByZXR2YWw7DQo+IC19DQo+IC0NCj4gICAvKg0KPiAgICAqIERldmljZSBRdWV1ZSBNYW5hZ2Vy IGltcGxlbWVudGF0aW9uIGZvciBjcCBzY2hlZHVsZXINCj4gICAgKi8NCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==