From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Kuehling, Felix" Subject: Re: [PATCH 6/8] drm/amdgpu: allocate VM PDs/PTs on demand Date: Tue, 12 Feb 2019 15:26:43 +0000 Message-ID: <3c4f818d-b4ca-520a-21e0-01f33e01a619@amd.com> References: <20190204124256.1765-1-christian.koenig@amd.com> <20190204124256.1765-6-christian.koenig@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190204124256.1765-6-christian.koenig-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <7F99607A18721249891CFD6B96E91B54-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@public.gmane.org> 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: =?utf-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" SSBwdXNoZWQgbXkgcGF0Y2ggc2VyaWVzIHRoYXQgc2ltcGxpZmllcyBldmljdGlvbiBmZW5jZSBo YW5kbGluZyBpbiBLRkQuIA0KSWYgeW91IHJlYmFzZSB0aGlzLCBpdCBzaG91bGQgYmUgT0sgbm93 Lg0KDQpSZWdhcmRzLA0KIMKgIEZlbGl4DQoNCk9uIDIwMTktMDItMDQgNzo0MiBhLm0uLCBDaHJp c3RpYW4gS8O2bmlnIHdyb3RlOg0KPiBMZXQncyBzdGFydCB0byBhbGxvY2F0ZSBWTSBQRHMvUFRz IG9uIGRlbWFuZCBpbnN0ZWFkIG9mIHByZS1hbGxvY2F0aW5nDQo+IHRoZW0gZHVyaW5nIG1hcHBp bmcuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2Vu aWdAYW1kLmNvbT4NCj4gLS0tDQo+ICAgLi4uL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1k a2ZkX2dwdXZtLmMgIHwgICA2IC0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfY3NhLmMgICAgICAgfCAgIDkgLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZ2VtLmMgICAgICAgfCAgMTAgLS0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYyAgICAgICAgfCAxMzYgKysrKystLS0tLS0tLS0tLS0tDQo+ICAgZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmggICAgICAgIHwgICAzIC0NCj4gICA1IGZp bGVzIGNoYW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDEyNiBkZWxldGlvbnMoLSkNCj4NCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0u YyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYw0KPiBp bmRleCBkN2IxMGQ3OWYxZGUuLjIxNzZjOTJmOTM3NyAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jDQo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYw0KPiBAQCAtNDkyLDEyICs0 OTIsNiBAQCBzdGF0aWMgaW50IGFkZF9ib190b192bShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgc3RydWN0IGtnZF9tZW0gKm1lbSwNCj4gICAJCQkJCXZtLT5wcm9jZXNzX2luZm8tPmV2aWN0 aW9uX2ZlbmNlLA0KPiAgIAkJCQkJTlVMTCwgTlVMTCk7DQo+ICAgDQo+IC0JcmV0ID0gYW1kZ3B1 X3ZtX2FsbG9jX3B0cyhhZGV2LCB2bSwgdmEsIGFtZGdwdV9ib19zaXplKGJvKSk7DQo+IC0JaWYg KHJldCkgew0KPiAtCQlwcl9lcnIoIkZhaWxlZCB0byBhbGxvY2F0ZSBwdHMsIGVycj0lZFxuIiwg cmV0KTsNCj4gLQkJZ290byBlcnJfYWxsb2NfcHRzOw0KPiAtCX0NCj4gLQ0KPiAgIAlyZXQgPSB2 bV92YWxpZGF0ZV9wdF9wZF9ib3Modm0pOw0KPiAgIAlpZiAocmV0KSB7DQo+ICAgCQlwcl9lcnIo InZhbGlkYXRlX3B0X3BkX2JvcygpIGZhaWxlZFxuIik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3NhLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfY3NhLmMNCj4gaW5kZXggN2UyMmJlN2NhNjhhLi41NGRkMDJhODk4YjkgMTAw NjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jc2EuYw0KPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfY3NhLmMNCj4gQEAgLTkyLDE1 ICs5Miw2IEBAIGludCBhbWRncHVfbWFwX3N0YXRpY19jc2Eoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsIHN0cnVjdCBhbWRncHVfdm0gKnZtLA0KPiAgIAkJcmV0dXJuIC1FTk9NRU07DQo+ICAg CX0NCj4gICANCj4gLQlyID0gYW1kZ3B1X3ZtX2FsbG9jX3B0cyhhZGV2LCAoKmJvX3ZhKS0+YmFz ZS52bSwgY3NhX2FkZHIsDQo+IC0JCQkJc2l6ZSk7DQo+IC0JaWYgKHIpIHsNCj4gLQkJRFJNX0VS Uk9SKCJmYWlsZWQgdG8gYWxsb2NhdGUgcHRzIGZvciBzdGF0aWMgQ1NBLCBlcnI9JWRcbiIsIHIp Ow0KPiAtCQlhbWRncHVfdm1fYm9fcm12KGFkZXYsICpib192YSk7DQo+IC0JCXR0bV9ldV9iYWNr b2ZmX3Jlc2VydmF0aW9uKCZ0aWNrZXQsICZsaXN0KTsNCj4gLQkJcmV0dXJuIHI7DQo+IC0JfQ0K PiAtDQo+ICAgCXIgPSBhbWRncHVfdm1fYm9fbWFwKGFkZXYsICpib192YSwgY3NhX2FkZHIsIDAs IHNpemUsDQo+ICAgCQkJICAgICBBTURHUFVfUFRFX1JFQURBQkxFIHwgQU1ER1BVX1BURV9XUklU RUFCTEUgfA0KPiAgIAkJCSAgICAgQU1ER1BVX1BURV9FWEVDVVRBQkxFKTsNCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYw0KPiBpbmRleCBkMjFkZDJmMzY5ZGEuLmUxNDFl M2IxMzExMiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2dlbS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nZW0uYw0K PiBAQCAtNjI3LDExICs2MjcsNiBAQCBpbnQgYW1kZ3B1X2dlbV92YV9pb2N0bChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiAgIA0KPiAgIAlzd2l0Y2ggKGFyZ3MtPm9wZXJh dGlvbikgew0KPiAgIAljYXNlIEFNREdQVV9WQV9PUF9NQVA6DQo+IC0JCXIgPSBhbWRncHVfdm1f YWxsb2NfcHRzKGFkZXYsIGJvX3ZhLT5iYXNlLnZtLCBhcmdzLT52YV9hZGRyZXNzLA0KPiAtCQkJ CQlhcmdzLT5tYXBfc2l6ZSk7DQo+IC0JCWlmIChyKQ0KPiAtCQkJZ290byBlcnJvcl9iYWNrb2Zm Ow0KPiAtDQo+ICAgCQl2YV9mbGFncyA9IGFtZGdwdV9nbWNfZ2V0X3B0ZV9mbGFncyhhZGV2LCBh cmdzLT5mbGFncyk7DQo+ICAgCQlyID0gYW1kZ3B1X3ZtX2JvX21hcChhZGV2LCBib192YSwgYXJn cy0+dmFfYWRkcmVzcywNCj4gICAJCQkJICAgICBhcmdzLT5vZmZzZXRfaW5fYm8sIGFyZ3MtPm1h cF9zaXplLA0KPiBAQCAtNjQ3LDExICs2NDIsNiBAQCBpbnQgYW1kZ3B1X2dlbV92YV9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPiAgIAkJCQkJCWFyZ3MtPm1hcF9z aXplKTsNCj4gICAJCWJyZWFrOw0KPiAgIAljYXNlIEFNREdQVV9WQV9PUF9SRVBMQUNFOg0KPiAt CQlyID0gYW1kZ3B1X3ZtX2FsbG9jX3B0cyhhZGV2LCBib192YS0+YmFzZS52bSwgYXJncy0+dmFf YWRkcmVzcywNCj4gLQkJCQkJYXJncy0+bWFwX3NpemUpOw0KPiAtCQlpZiAocikNCj4gLQkJCWdv dG8gZXJyb3JfYmFja29mZjsNCj4gLQ0KPiAgIAkJdmFfZmxhZ3MgPSBhbWRncHVfZ21jX2dldF9w dGVfZmxhZ3MoYWRldiwgYXJncy0+ZmxhZ3MpOw0KPiAgIAkJciA9IGFtZGdwdV92bV9ib19yZXBs YWNlX21hcChhZGV2LCBib192YSwgYXJncy0+dmFfYWRkcmVzcywNCj4gICAJCQkJCSAgICAgYXJn cy0+b2Zmc2V0X2luX2JvLCBhcmdzLT5tYXBfc2l6ZSwNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmMNCj4gaW5kZXggZjdkNDEwYTVkODQ4Li4wYjhhMWFhNTZjNGEgMTAwNjQ0 DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jDQo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5jDQo+IEBAIC01MDQsNDcgKzUw NCw2IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV92bV9wdF9uZXh0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LA0KPiAgIAl9DQo+ICAgfQ0KPiAgIA0KPiAtLyoqDQo+IC0gKiBhbWRncHVfdm1fcHRf Zmlyc3RfbGVhZiAtIGdldCBmaXJzdCBsZWFmIFBEL1BUDQo+IC0gKg0KPiAtICogQGFkZXY6IGFt ZGdwdV9kZXZpY2UgcG9pbnRlcg0KPiAtICogQHZtOiBhbWRncHVfdm0gc3RydWN0dXJlDQo+IC0g KiBAc3RhcnQ6IHN0YXJ0IGFkZHIgb2YgdGhlIHdhbGsNCj4gLSAqIEBjdXJzb3I6IHN0YXRlIHRv IGluaXRpYWxpemUNCj4gLSAqDQo+IC0gKiBTdGFydCBhIHdhbGsgYW5kIGdvIGRpcmVjdGx5IHRv IHRoZSBsZWFmIG5vZGUuDQo+IC0gKi8NCj4gLXN0YXRpYyB2b2lkIGFtZGdwdV92bV9wdF9maXJz dF9sZWFmKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiAtCQkJCSAgICBzdHJ1Y3QgYW1k Z3B1X3ZtICp2bSwgdWludDY0X3Qgc3RhcnQsDQo+IC0JCQkJICAgIHN0cnVjdCBhbWRncHVfdm1f cHRfY3Vyc29yICpjdXJzb3IpDQo+IC17DQo+IC0JYW1kZ3B1X3ZtX3B0X3N0YXJ0KGFkZXYsIHZt LCBzdGFydCwgY3Vyc29yKTsNCj4gLQl3aGlsZSAoYW1kZ3B1X3ZtX3B0X2Rlc2NlbmRhbnQoYWRl diwgY3Vyc29yKSk7DQo+IC19DQo+IC0NCj4gLS8qKg0KPiAtICogYW1kZ3B1X3ZtX3B0X25leHRf bGVhZiAtIGdldCBuZXh0IGxlYWYgUEQvUFQNCj4gLSAqDQo+IC0gKiBAYWRldjogYW1kZ3B1X2Rl dmljZSBwb2ludGVyDQo+IC0gKiBAY3Vyc29yOiBjdXJyZW50IHN0YXRlDQo+IC0gKg0KPiAtICog V2FsayB0aGUgUEQvUFQgdHJlZSB0byB0aGUgbmV4dCBsZWFmIG5vZGUuDQo+IC0gKi8NCj4gLXN0 YXRpYyB2b2lkIGFtZGdwdV92bV9wdF9uZXh0X2xlYWYoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsDQo+IC0JCQkJICAgc3RydWN0IGFtZGdwdV92bV9wdF9jdXJzb3IgKmN1cnNvcikNCj4gLXsN Cj4gLQlhbWRncHVfdm1fcHRfbmV4dChhZGV2LCBjdXJzb3IpOw0KPiAtCWlmIChjdXJzb3ItPnBm biAhPSB+MGxsKQ0KPiAtCQl3aGlsZSAoYW1kZ3B1X3ZtX3B0X2Rlc2NlbmRhbnQoYWRldiwgY3Vy c29yKSk7DQo+IC19DQo+IC0NCj4gLS8qKg0KPiAtICogZm9yX2VhY2hfYW1kZ3B1X3ZtX3B0X2xl YWYgLSB3YWxrIG92ZXIgYWxsIGxlYWYgUERzL1BUcyBpbiB0aGUgaGllcmFyY2h5DQo+IC0gKi8N Cj4gLSNkZWZpbmUgZm9yX2VhY2hfYW1kZ3B1X3ZtX3B0X2xlYWYoYWRldiwgdm0sIHN0YXJ0LCBl bmQsIGN1cnNvcikJCVwNCj4gLQlmb3IgKGFtZGdwdV92bV9wdF9maXJzdF9sZWFmKChhZGV2KSwg KHZtKSwgKHN0YXJ0KSwgJihjdXJzb3IpKTsJCVwNCj4gLQkgICAgIChjdXJzb3IpLnBmbiA8PSBl bmQ7IGFtZGdwdV92bV9wdF9uZXh0X2xlYWYoKGFkZXYpLCAmKGN1cnNvcikpKQ0KPiAtDQo+ICAg LyoqDQo+ICAgICogYW1kZ3B1X3ZtX3B0X2ZpcnN0X2RmcyAtIHN0YXJ0IGEgZGVlcCBmaXJzdCBz ZWFyY2gNCj4gICAgKg0KPiBAQCAtOTE5LDc0ICs4NzgsNTEgQEAgc3RhdGljIHZvaWQgYW1kZ3B1 X3ZtX2JvX3BhcmFtKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1Y3QgYW1kZ3B1X3Zt ICp2bSwNCj4gICAgKiBSZXR1cm5zOg0KPiAgICAqIDAgb24gc3VjY2VzcywgZXJybm8gb3RoZXJ3 aXNlLg0KPiAgICAqLw0KPiAtaW50IGFtZGdwdV92bV9hbGxvY19wdHMoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsDQo+IC0JCQlzdHJ1Y3QgYW1kZ3B1X3ZtICp2bSwNCj4gLQkJCXVpbnQ2NF90 IHNhZGRyLCB1aW50NjRfdCBzaXplKQ0KPiArc3RhdGljIGludCBhbWRncHVfdm1fYWxsb2NfcHRz KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiArCQkJICAgICAgIHN0cnVjdCBhbWRncHVf dm0gKnZtLA0KPiArCQkJICAgICAgIHN0cnVjdCBhbWRncHVfdm1fcHRfY3Vyc29yICpjdXJzb3Ip DQo+ICAgew0KPiAtCXN0cnVjdCBhbWRncHVfdm1fcHRfY3Vyc29yIGN1cnNvcjsNCj4gKwlzdHJ1 Y3QgYW1kZ3B1X3ZtX3B0ICplbnRyeSA9IGN1cnNvci0+ZW50cnk7DQo+ICsJc3RydWN0IGFtZGdw dV9ib19wYXJhbSBicDsNCj4gICAJc3RydWN0IGFtZGdwdV9ibyAqcHQ7DQo+IC0JdWludDY0X3Qg ZWFkZHI7DQo+ICAgCWludCByOw0KPiAgIA0KPiAtCS8qIHZhbGlkYXRlIHRoZSBwYXJhbWV0ZXJz ICovDQo+IC0JaWYgKHNhZGRyICYgQU1ER1BVX0dQVV9QQUdFX01BU0sgfHwgc2l6ZSAmIEFNREdQ VV9HUFVfUEFHRV9NQVNLKQ0KPiAtCQlyZXR1cm4gLUVJTlZBTDsNCj4gKwlpZiAoY3Vyc29yLT5s ZXZlbCA8IEFNREdQVV9WTV9QVEIgJiYgIWVudHJ5LT5lbnRyaWVzKSB7DQo+ICsJCXVuc2lnbmVk IG51bV9lbnRyaWVzOw0KPiAgIA0KPiAtCWVhZGRyID0gc2FkZHIgKyBzaXplIC0gMTsNCj4gLQ0K PiAtCXNhZGRyIC89IEFNREdQVV9HUFVfUEFHRV9TSVpFOw0KPiAtCWVhZGRyIC89IEFNREdQVV9H UFVfUEFHRV9TSVpFOw0KPiAtDQo+IC0JaWYgKGVhZGRyID49IGFkZXYtPnZtX21hbmFnZXIubWF4 X3Bmbikgew0KPiAtCQlkZXZfZXJyKGFkZXYtPmRldiwgInZhIGFib3ZlIGxpbWl0ICgweCUwOGxs WCA+PSAweCUwOGxsWClcbiIsDQo+IC0JCQllYWRkciwgYWRldi0+dm1fbWFuYWdlci5tYXhfcGZu KTsNCj4gLQkJcmV0dXJuIC1FSU5WQUw7DQo+ICsJCW51bV9lbnRyaWVzID0gYW1kZ3B1X3ZtX251 bV9lbnRyaWVzKGFkZXYsIGN1cnNvci0+bGV2ZWwpOw0KPiArCQllbnRyeS0+ZW50cmllcyA9IGt2 bWFsbG9jX2FycmF5KG51bV9lbnRyaWVzLA0KPiArCQkJCQkJc2l6ZW9mKCplbnRyeS0+ZW50cmll cyksDQo+ICsJCQkJCQlHRlBfS0VSTkVMIHwgX19HRlBfWkVSTyk7DQo+ICsJCWlmICghZW50cnkt PmVudHJpZXMpDQo+ICsJCQlyZXR1cm4gLUVOT01FTTsNCj4gICAJfQ0KPiAgIA0KPiAtCWZvcl9l YWNoX2FtZGdwdV92bV9wdF9sZWFmKGFkZXYsIHZtLCBzYWRkciwgZWFkZHIsIGN1cnNvcikgew0K PiAtCQlzdHJ1Y3QgYW1kZ3B1X3ZtX3B0ICplbnRyeSA9IGN1cnNvci5lbnRyeTsNCj4gLQkJc3Ry dWN0IGFtZGdwdV9ib19wYXJhbSBicDsNCj4gLQ0KPiAtCQlpZiAoY3Vyc29yLmxldmVsIDwgQU1E R1BVX1ZNX1BUQikgew0KPiAtCQkJdW5zaWduZWQgbnVtX2VudHJpZXM7DQo+IC0NCj4gLQkJCW51 bV9lbnRyaWVzID0gYW1kZ3B1X3ZtX251bV9lbnRyaWVzKGFkZXYsIGN1cnNvci5sZXZlbCk7DQo+ IC0JCQllbnRyeS0+ZW50cmllcyA9IGt2bWFsbG9jX2FycmF5KG51bV9lbnRyaWVzLA0KPiAtCQkJ CQkJCXNpemVvZigqZW50cnktPmVudHJpZXMpLA0KPiAtCQkJCQkJCUdGUF9LRVJORUwgfA0KPiAt CQkJCQkJCV9fR0ZQX1pFUk8pOw0KPiAtCQkJaWYgKCFlbnRyeS0+ZW50cmllcykNCj4gLQkJCQly ZXR1cm4gLUVOT01FTTsNCj4gLQkJfQ0KPiAtDQo+IC0NCj4gLQkJaWYgKGVudHJ5LT5iYXNlLmJv KQ0KPiAtCQkJY29udGludWU7DQo+IC0NCj4gLQkJYW1kZ3B1X3ZtX2JvX3BhcmFtKGFkZXYsIHZt LCBjdXJzb3IubGV2ZWwsICZicCk7DQo+IC0NCj4gLQkJciA9IGFtZGdwdV9ib19jcmVhdGUoYWRl diwgJmJwLCAmcHQpOw0KPiAtCQlpZiAocikNCj4gLQkJCXJldHVybiByOw0KPiAtDQo+IC0JCWlm ICh2bS0+dXNlX2NwdV9mb3JfdXBkYXRlKSB7DQo+IC0JCQlyID0gYW1kZ3B1X2JvX2ttYXAocHQs IE5VTEwpOw0KPiAtCQkJaWYgKHIpDQo+IC0JCQkJZ290byBlcnJvcl9mcmVlX3B0Ow0KPiAtCQl9 DQo+ICsJaWYgKGVudHJ5LT5iYXNlLmJvKQ0KPiArCQlyZXR1cm4gMDsNCj4gICANCj4gLQkJLyog S2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBkaXJlY3RvcnkgdG8gYXZvaWQNCj4gLQkJKiBm cmVlaW5nIHRoZW0gdXAgaW4gdGhlIHdyb25nIG9yZGVyLg0KPiAtCQkqLw0KPiAtCQlwdC0+cGFy ZW50ID0gYW1kZ3B1X2JvX3JlZihjdXJzb3IucGFyZW50LT5iYXNlLmJvKTsNCj4gKwlhbWRncHVf dm1fYm9fcGFyYW0oYWRldiwgdm0sIGN1cnNvci0+bGV2ZWwsICZicCk7DQo+ICAgDQo+IC0JCWFt ZGdwdV92bV9ib19iYXNlX2luaXQoJmVudHJ5LT5iYXNlLCB2bSwgcHQpOw0KPiArCXIgPSBhbWRn cHVfYm9fY3JlYXRlKGFkZXYsICZicCwgJnB0KTsNCj4gKwlpZiAocikNCj4gKwkJcmV0dXJuIHI7 DQo+ICAgDQo+IC0JCXIgPSBhbWRncHVfdm1fY2xlYXJfYm8oYWRldiwgdm0sIHB0KTsNCj4gKwlp ZiAodm0tPnVzZV9jcHVfZm9yX3VwZGF0ZSkgew0KPiArCQlyID0gYW1kZ3B1X2JvX2ttYXAocHQs IE5VTEwpOw0KPiAgIAkJaWYgKHIpDQo+ICAgCQkJZ290byBlcnJvcl9mcmVlX3B0Ow0KPiAgIAl9 DQo+ICAgDQo+ICsJLyogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgcm9vdCBkaXJlY3RvcnkgdG8g YXZvaWQNCj4gKwkgKiBmcmVlaW5nIHRoZW0gdXAgaW4gdGhlIHdyb25nIG9yZGVyLg0KPiArCSAq Lw0KPiArCXB0LT5wYXJlbnQgPSBhbWRncHVfYm9fcmVmKGN1cnNvci0+cGFyZW50LT5iYXNlLmJv KTsNCj4gKwlhbWRncHVfdm1fYm9fYmFzZV9pbml0KCZlbnRyeS0+YmFzZSwgdm0sIHB0KTsNCj4g Kw0KPiArCXIgPSBhbWRncHVfdm1fY2xlYXJfYm8oYWRldiwgdm0sIHB0KTsNCj4gKwlpZiAocikN Cj4gKwkJZ290byBlcnJvcl9mcmVlX3B0Ow0KPiArDQo+ICAgCXJldHVybiAwOw0KPiAgIA0KPiAg IGVycm9yX2ZyZWVfcHQ6DQo+IEBAIC0xNjU1LDYgKzE1OTEsNyBAQCBzdGF0aWMgaW50IGFtZGdw dV92bV91cGRhdGVfcHRlcyhzdHJ1Y3QgYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zICpwYXJhbXMs DQo+ICAgCXN0cnVjdCBhbWRncHVfdm1fcHRfY3Vyc29yIGN1cnNvcjsNCj4gICAJdWludDY0X3Qg ZnJhZ19zdGFydCA9IHN0YXJ0LCBmcmFnX2VuZDsNCj4gICAJdW5zaWduZWQgaW50IGZyYWc7DQo+ ICsJaW50IHI7DQo+ICAgDQo+ICAgCS8qIGZpZ3VyZSBvdXQgdGhlIGluaXRpYWwgZnJhZ21lbnQg Ki8NCj4gICAJYW1kZ3B1X3ZtX2ZyYWdtZW50KHBhcmFtcywgZnJhZ19zdGFydCwgZW5kLCBmbGFn cywgJmZyYWcsICZmcmFnX2VuZCk7DQo+IEBAIC0xNjYyLDEyICsxNTk5LDE1IEBAIHN0YXRpYyBp bnQgYW1kZ3B1X3ZtX3VwZGF0ZV9wdGVzKHN0cnVjdCBhbWRncHVfcHRlX3VwZGF0ZV9wYXJhbXMg KnBhcmFtcywNCj4gICAJLyogd2FsayBvdmVyIHRoZSBhZGRyZXNzIHNwYWNlIGFuZCB1cGRhdGUg dGhlIFBUcyAqLw0KPiAgIAlhbWRncHVfdm1fcHRfc3RhcnQoYWRldiwgcGFyYW1zLT52bSwgc3Rh cnQsICZjdXJzb3IpOw0KPiAgIAl3aGlsZSAoY3Vyc29yLnBmbiA8IGVuZCkgew0KPiAtCQlzdHJ1 Y3QgYW1kZ3B1X2JvICpwdCA9IGN1cnNvci5lbnRyeS0+YmFzZS5ibzsNCj4gICAJCXVuc2lnbmVk IHNoaWZ0LCBwYXJlbnRfc2hpZnQsIG1hc2s7DQo+ICAgCQl1aW50NjRfdCBpbmNyLCBlbnRyeV9l bmQsIHBlX3N0YXJ0Ow0KPiArCQlzdHJ1Y3QgYW1kZ3B1X2JvICpwdDsNCj4gICANCj4gLQkJaWYg KCFwdCkNCj4gLQkJCXJldHVybiAtRU5PRU5UOw0KPiArCQlyID0gYW1kZ3B1X3ZtX2FsbG9jX3B0 cyhwYXJhbXMtPmFkZXYsIHBhcmFtcy0+dm0sICZjdXJzb3IpOw0KPiArCQlpZiAocikNCj4gKwkJ CXJldHVybiByOw0KPiArDQo+ICsJCXB0ID0gY3Vyc29yLmVudHJ5LT5iYXNlLmJvOw0KPiAgIA0K PiAgIAkJLyogVGhlIHJvb3QgbGV2ZWwgY2FuJ3QgYmUgYSBodWdlIHBhZ2UgKi8NCj4gICAJCWlm IChjdXJzb3IubGV2ZWwgPT0gYWRldi0+dm1fbWFuYWdlci5yb290X2xldmVsKSB7DQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaCBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oDQo+IGluZGV4IDgxZmY4MTc3ZjA5Mi4uMTE2 NjA1YzAzOGQyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfdm0uaA0KPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaA0K PiBAQCAtMzAzLDkgKzMwMyw2IEBAIGJvb2wgYW1kZ3B1X3ZtX3JlYWR5KHN0cnVjdCBhbWRncHVf dm0gKnZtKTsNCj4gICBpbnQgYW1kZ3B1X3ZtX3ZhbGlkYXRlX3B0X2JvcyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgc3RydWN0IGFtZGdwdV92bSAqdm0sDQo+ICAgCQkJICAgICAgaW50ICgq Y2FsbGJhY2spKHZvaWQgKnAsIHN0cnVjdCBhbWRncHVfYm8gKmJvKSwNCj4gICAJCQkgICAgICB2 b2lkICpwYXJhbSk7DQo+IC1pbnQgYW1kZ3B1X3ZtX2FsbG9jX3B0cyhzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwNCj4gLQkJCXN0cnVjdCBhbWRncHVfdm0gKnZtLA0KPiAtCQkJdWludDY0X3Qg c2FkZHIsIHVpbnQ2NF90IHNpemUpOw0KPiAgIGludCBhbWRncHVfdm1fZmx1c2goc3RydWN0IGFt ZGdwdV9yaW5nICpyaW5nLCBzdHJ1Y3QgYW1kZ3B1X2pvYiAqam9iLCBib29sIG5lZWRfcGlwZV9z eW5jKTsNCj4gICBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9kaXJlY3RvcmllcyhzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwNCj4gICAJCQkJIHN0cnVjdCBhbWRncHVfdm0gKnZtKTsNCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBs aXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeA==