From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 3/5] drm/amdkfd: Postpone memory mapping flags calculation to mapping time Date: Fri, 9 Aug 2019 12:30:43 +0000 Message-ID: <95459b48-c8e5-b54c-00f1-8a1fdccd7e66@amd.com> References: <1565316926-19516-1-git-send-email-Oak.Zeng@amd.com> <1565316926-19516-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: <1565316926-19516-3-git-send-email-Oak.Zeng-5C7GfCeVMHo@public.gmane.org> Content-Language: en-US Content-ID: <2BF412F6BE3281428AD0907E09515120-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: "Zeng, Oak" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kuehling, Felix" , "Keely, Sean" QW0gMDkuMDguMTkgdW0gMDQ6MTUgc2NocmllYiBaZW5nLCBPYWs6DQo+IFNvbWUgbWFwcGluZyBm bGFncyBhcmUgZGVjaWRlZCBieSBtZW1vcnkgbWFwcGluZyBkZXN0aW5hdGlvbiB3aGljaCBpcyBu b3QNCj4ga25vdyBhdCBtZW1vcnkgb2JqZWN0IGFsbG9jYXRpb24gdGltZS4gU28gaXQgaXMgcmVh c29uYWJsZSB0byBkZWNpZGUgbWVtb3J5DQo+IG1hcHBpbmcgZmxhZ3MgYXQgbWFwcGluZyB0aW1l LCBpbnN0ZWFkIG9mIGFsbG9jIHRpbWUuIFJlY29yZCBtZW1vcnkgYWxsb2NhdGlvbg0KPiBmbGFn cyBkdXJpbmcgYWxsb2NhdGlvbiB0aW1lIGFuZCBjYWxjdWxhdGUgbWFwcGluZyBmbGFncyBkdXJp bmcgbWVtb3J5IG1hcHBpbmcNCj4gdGltZS4NCj4NCj4gQWxzbyBtYWRlIHRoZSBtZW1vcnkgbWFw cGluZyBmbGFnZSBjYWxjdWxhdGlvbiB0byBiZSBhc2ljLXNwZWNpZmljLCBiZWNhdXNlDQo+IGRp ZmZlcmVudCBhc2ljIGNhbiBoYXZlIGRpZmZlcmVudCBtYXBwaW5nIHNjaGVtZS4NCj4NCj4gVGhl IG5ldyBtZW1vcnkgbWFwcGluZyBmbGFnIGlzIGRlY2lkZWQgYnkgYm90aCBtZW1vcnkgYWxsb2Nh dGlvbiBmbGFncyBhbmQNCj4gd2hldGhlciB0aGUgbWVtb3J5IG1hcHBpbmcgaXMgdG8gYSByZW1v dGUgZGV2aWNlLg0KPg0KPiBUaGlzIGlzIHByZXBhcmF0aW9uIHdvcmsgdG8gaW50cm9kdWNlIG1v cmUgc29waGlzdGljYXRlZCBtYXBwaW5nIHNjaGVtZS4NCj4NCj4gQ2hhbmdlLUlkOiBJOThlN2M0 N2Q4NTA1ODVhZDdmMGE5ZTExNjE3YzkyYjdhOWFjZWQzYg0KPiBTaWduZWQtb2ZmLWJ5OiBPYWsg WmVuZyA8T2FrLlplbmdAYW1kLmNvbT4NCj4gLS0tDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZC5oICAgICAgIHwgIDEgKw0KPiAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyB8IDE2ICsrKysrLS0tLS0tLS0tLS0NCj4g ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmggICAgICAgICAgfCAgNCAr KysrDQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3YxMF8wLmMgICAgICAgICAg IHwgMjAgKysrKysrKysrKysrKysrKysrKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjZfMC5jICAgICAgICAgICAgfCAxOSArKysrKysrKysrKysrKysrKystDQo+ICAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYyAgICAgICAgICAgIHwgMjAgKysrKysr KysrKysrKysrKysrKy0NCj4gICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5j ICAgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKy0NCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysr KysrKy0NCj4gICA4IGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlv bnMoLSkNCj4NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmQuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaA0K PiBpbmRleCBlNTE5ZGYzLi4wMjY0NzVhIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZC5oDQo+IEBAIC01OCw2ICs1OCw3IEBAIHN0cnVjdCBrZ2RfbWVt IHsNCj4gICAJdWludDY0X3QgdmE7DQo+ICAgDQo+ICAgCXVpbnQzMl90IG1hcHBpbmdfZmxhZ3M7 DQo+ICsJdWludDMyX3QgYWxsb2NfZmxhZ3M7DQo+ICAgDQo+ICAgCWF0b21pY190IGludmFsaWQ7 DQo+ICAgCXN0cnVjdCBhbWRrZmRfcHJvY2Vzc19pbmZvICpwcm9jZXNzX2luZm87DQo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMNCj4gaW5k ZXggNDRhNTJiMC4uZjkxZWY0OCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYw0KPiBAQCAtMTA4MSw3ICsxMDgxLDYgQEAgaW50 IGFtZGdwdV9hbWRrZmRfZ3B1dm1fYWxsb2NfbWVtb3J5X29mX2dwdSgNCj4gICAJaW50IGJ5dGVf YWxpZ247DQo+ICAgCXUzMiBkb21haW4sIGFsbG9jX2RvbWFpbjsNCj4gICAJdTY0IGFsbG9jX2Zs YWdzOw0KPiAtCXVpbnQzMl90IG1hcHBpbmdfZmxhZ3M7DQo+ICAgCWludCByZXQ7DQo+ICAgDQo+ ICAgCS8qDQo+IEBAIC0xMTQzLDE2ICsxMTQyLDcgQEAgaW50IGFtZGdwdV9hbWRrZmRfZ3B1dm1f YWxsb2NfbWVtb3J5X29mX2dwdSgNCj4gICAJCQlhZGV2LT5hc2ljX3R5cGUgIT0gQ0hJUF9WRUdB TSkgPw0KPiAgIAkJCVZJX0JPX1NJWkVfQUxJR04gOiAxOw0KPiAgIA0KPiAtCW1hcHBpbmdfZmxh Z3MgPSBBTURHUFVfVk1fUEFHRV9SRUFEQUJMRTsNCj4gLQlpZiAoZmxhZ3MgJiBBTExPQ19NRU1f RkxBR1NfV1JJVEFCTEUpDQo+IC0JCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0VfV1JJ VEVBQkxFOw0KPiAtCWlmIChmbGFncyAmIEFMTE9DX01FTV9GTEFHU19FWEVDVVRBQkxFKQ0KPiAt CQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9QQUdFX0VYRUNVVEFCTEU7DQo+IC0JaWYgKGZs YWdzICYgQUxMT0NfTUVNX0ZMQUdTX0NPSEVSRU5UKQ0KPiAtCQltYXBwaW5nX2ZsYWdzIHw9IEFN REdQVV9WTV9NVFlQRV9VQzsNCj4gLQllbHNlDQo+IC0JCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BV X1ZNX01UWVBFX05DOw0KPiAtCSgqbWVtKS0+bWFwcGluZ19mbGFncyA9IG1hcHBpbmdfZmxhZ3M7 DQo+ICsJKCptZW0pLT5hbGxvY19mbGFncyA9IGZsYWdzOw0KPiAgIA0KPiAgIAlhbWRncHVfc3lu Y19jcmVhdGUoJigqbWVtKS0+c3luYyk7DQo+ICAgDQo+IEBAIC0xMjk4LDYgKzEyODgsNyBAQCBp bnQgYW1kZ3B1X2FtZGtmZF9ncHV2bV9tYXBfbWVtb3J5X3RvX2dwdSgNCj4gICAJCXN0cnVjdCBr Z2RfZGV2ICprZ2QsIHN0cnVjdCBrZ2RfbWVtICptZW0sIHZvaWQgKnZtKQ0KPiAgIHsNCj4gICAJ c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOw0KPiAr CXN0cnVjdCBhbWRncHVfZGV2aWNlICpib19hZGV2Ow0KPiAgIAlzdHJ1Y3QgYW1kZ3B1X3ZtICph dm0gPSAoc3RydWN0IGFtZGdwdV92bSAqKXZtOw0KPiAgIAlpbnQgcmV0Ow0KPiAgIAlzdHJ1Y3Qg YW1kZ3B1X2JvICpibzsNCj4gQEAgLTEzMTUsNiArMTMwNiw5IEBAIGludCBhbWRncHVfYW1ka2Zk X2dwdXZtX21hcF9tZW1vcnlfdG9fZ3B1KA0KPiAgIAkJcmV0dXJuIC1FSU5WQUw7DQo+ICAgCX0N Cj4gICANCj4gKwlib19hZGV2ID0gYW1kZ3B1X3R0bV9hZGV2KGJvLT50Ym8uYmRldik7DQo+ICsJ bWVtLT5tYXBwaW5nX2ZsYWdzID0gYW1kZ3B1X2dtY19nZXRfdm1fbWFwcGluZ19mbGFncyhhZGV2 LCBtZW0tPmFsbG9jX2ZsYWdzLCBib19hZGV2ICE9IGFkZXYpOw0KPiArDQo+ICAgCS8qIE1ha2Ug c3VyZSByZXN0b3JlIGlzIG5vdCBydW5uaW5nIGNvbmN1cnJlbnRseS4gU2luY2Ugd2UNCj4gICAJ ICogZG9uJ3QgbWFwIGludmFsaWQgdXNlcnB0ciBCT3MsIHdlIHJlbHkgb24gdGhlIG5leHQgcmVz dG9yZQ0KPiAgIAkgKiB3b3JrZXIgdG8gZG8gdGhlIG1hcHBpbmcNCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nbWMuaA0KPiBpbmRleCAwNzExNDVhLi42YmQwYzI4IDEwMDY0NA0K PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmgNCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oDQo+IEBAIC0xMDUsNiArMTA1 LDkgQEAgc3RydWN0IGFtZGdwdV9nbWNfZnVuY3Mgew0KPiAgIAkvKiBnZXQgdGhlIHBkZSBmb3Ig YSBnaXZlbiBtYyBhZGRyICovDQo+ICAgCXZvaWQgKCpnZXRfdm1fcGRlKShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgaW50IGxldmVsLA0KPiAgIAkJCSAgIHU2NCAqZHN0LCB1NjQgKmZsYWdz KTsNCj4gKwkvKiBnZXQgcGVyIGFzaWMgdm0gbWFwcGluZyBmbGFncyAqLw0KPiArCXVpbnQzMl90 ICgqZ2V0X3ZtX21hcHBpbmdfZmxhZ3MpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiAr CQkJdWludDMyX3QgYWxsb2NfZmxhZ3MsIGJvb2wgcmVtb3RlX21hcHBpbmcpOw0KPiAgIH07DQo+ ICAgDQo+ICAgc3RydWN0IGFtZGdwdV94Z21pIHsNCj4gQEAgLTE4NSw2ICsxODgsNyBAQCBzdHJ1 Y3QgYW1kZ3B1X2dtYyB7DQo+ICAgI2RlZmluZSBhbWRncHVfZ21jX2VtaXRfcGFzaWRfbWFwcGlu ZyhyLCB2bWlkLCBwYXNpZCkgKHIpLT5hZGV2LT5nbWMuZ21jX2Z1bmNzLT5lbWl0X3Bhc2lkX21h cHBpbmcoKHIpLCAodm1pZCksIChwYXNpZCkpDQo+ICAgI2RlZmluZSBhbWRncHVfZ21jX2dldF92 bV9wZGUoYWRldiwgbGV2ZWwsIGRzdCwgZmxhZ3MpIChhZGV2KS0+Z21jLmdtY19mdW5jcy0+Z2V0 X3ZtX3BkZSgoYWRldiksIChsZXZlbCksIChkc3QpLCAoZmxhZ3MpKQ0KPiAgICNkZWZpbmUgYW1k Z3B1X2dtY19nZXRfcHRlX2ZsYWdzKGFkZXYsIGZsYWdzKSAoYWRldiktPmdtYy5nbWNfZnVuY3Mt PmdldF92bV9wdGVfZmxhZ3MoKGFkZXYpLChmbGFncykpDQo+ICsjZGVmaW5lIGFtZGdwdV9nbWNf Z2V0X3ZtX21hcHBpbmdfZmxhZ3MoYWRldiwgYWxsb2NfZmxhZ3MsIHJlbW90ZV9tYXBwaW5nKSAo KGFkZXYpLT5nbWMuZ21jX2Z1bmNzLT5nZXRfdm1fbWFwcGluZ19mbGFncygoYWRldiksIChhbGxv Y19mbGFncyksIChyZW1vdGVfbWFwcGluZykpKQ0KPiAgIA0KPiAgIC8qKg0KPiAgICAqIGFtZGdw dV9nbWNfdnJhbV9mdWxsX3Zpc2libGUgLSBDaGVjayBpZiBmdWxsIFZSQU0gaXMgdmlzaWJsZSB0 aHJvdWdoIHRoZSBCQVINCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dtY192MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3YxMF8wLmMNCj4g aW5kZXggNGUzYWMxMC4uN2U0MjBlMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3YxMF8wLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3YxMF8wLmMNCj4gQEAgLTQxNSwxMiArNDE1LDMwIEBAIHN0YXRpYyB2b2lkIGdtY192MTBf MF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgbGV2ZWwsDQo+ICAg CX0NCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgdWludDMyX3QgZ21jX3YxMF8wX2dldF92bV9tYXBw aW5nX2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiArCQkJCXVpbnQzMl90IGFs bG9jX2ZsYWdzLCBib29sIHJlbW90ZV9tYXBwaW5nKQ0KPiArew0KPiArCXVpbnQzMl90IG1hcHBp bmdfZmxhZ3MgPSBBTURHUFVfVk1fUEFHRV9SRUFEQUJMRTsNCj4gKw0KPiArCWlmIChhbGxvY19m bGFncyAmIEFMTE9DX01FTV9GTEFHU19XUklUQUJMRSkNCj4gKwkJbWFwcGluZ19mbGFncyB8PSBB TURHUFVfVk1fUEFHRV9XUklURUFCTEU7DQo+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVN X0ZMQUdTX0VYRUNVVEFCTEUpDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0Vf RVhFQ1VUQUJMRTsNCj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfQ09IRVJF TlQpDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX1VDOw0KPiArCWVsc2UN Cj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fTVRZUEVfTkM7DQo+ICsNCj4gKwlyZXR1 cm4gbWFwcGluZ19mbGFnczsNCj4gK30NCj4gKw0KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1k Z3B1X2dtY19mdW5jcyBnbWNfdjEwXzBfZ21jX2Z1bmNzID0gew0KPiAgIAkuZmx1c2hfZ3B1X3Rs YiA9IGdtY192MTBfMF9mbHVzaF9ncHVfdGxiLA0KPiAgIAkuZW1pdF9mbHVzaF9ncHVfdGxiID0g Z21jX3YxMF8wX2VtaXRfZmx1c2hfZ3B1X3RsYiwNCj4gICAJLmVtaXRfcGFzaWRfbWFwcGluZyA9 IGdtY192MTBfMF9lbWl0X3Bhc2lkX21hcHBpbmcsDQo+ICAgCS5nZXRfdm1fcHRlX2ZsYWdzID0g Z21jX3YxMF8wX2dldF92bV9wdGVfZmxhZ3MsDQo+IC0JLmdldF92bV9wZGUgPSBnbWNfdjEwXzBf Z2V0X3ZtX3BkZQ0KPiArCS5nZXRfdm1fcGRlID0gZ21jX3YxMF8wX2dldF92bV9wZGUsDQo+ICsJ LmdldF92bV9tYXBwaW5nX2ZsYWdzID0gZ21jX3YxMF8wX2dldF92bV9tYXBwaW5nX2ZsYWdzDQo+ ICAgfTsNCj4gICANCj4gICBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfc2V0X2dtY19mdW5jcyhzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192Nl8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZf MC5jDQo+IGluZGV4IGIwNmQ4NzYuLjJiMmFmNmEgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y2XzAuYw0KPiBAQCAtNDA0LDYgKzQwNCwyMiBAQCBzdGF0aWMgdm9pZCBnbWNf djZfMF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgbGV2ZWwsDQo+ ICAgCUJVR19PTigqYWRkciAmIDB4RkZGRkZGMDAwMDAwMEZGRlVMTCk7DQo+ICAgfQ0KPiAgIA0K PiArc3RhdGljIHVpbnQzMl90IGdtY192Nl8wX2dldF92bV9tYXBwaW5nX2ZsYWdzKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LA0KPiArCQkJCXVpbnQzMl90IGFsbG9jX2ZsYWdzLCBib29sIHJl bW90ZV9tYXBwaW5nKQ0KPiArew0KPiArCXVpbnQzMl90IG1hcHBpbmdfZmxhZ3MgPSBBTURHUFVf Vk1fUEFHRV9SRUFEQUJMRTsNCj4gKw0KPiArCWlmIChhbGxvY19mbGFncyAmIEFMTE9DX01FTV9G TEFHU19XUklUQUJMRSkNCj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fUEFHRV9XUklU RUFCTEU7DQo+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdTX0VYRUNVVEFCTEUp DQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0VfRVhFQ1VUQUJMRTsNCj4gKwlp ZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfQ09IRVJFTlQpDQo+ICsJCW1hcHBpbmdf ZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX1VDOw0KPiArCWVsc2UNCj4gKwkJbWFwcGluZ19mbGFn cyB8PSBBTURHUFVfVk1fTVRZUEVfTkM7DQo+ICsNCj4gKwlyZXR1cm4gbWFwcGluZ19mbGFnczsN Cj4gK30NCj4gICBzdGF0aWMgdm9pZCBnbWNfdjZfMF9zZXRfZmF1bHRfZW5hYmxlX2RlZmF1bHQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsDQo+ICAgCQkJCQkgICAgICBib29sIHZhbHVlKQ0K PiAgIHsNCj4gQEAgLTExNTcsNyArMTE3Myw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1 X2dtY19mdW5jcyBnbWNfdjZfMF9nbWNfZnVuY3MgPSB7DQo+ICAgCS5lbWl0X2ZsdXNoX2dwdV90 bGIgPSBnbWNfdjZfMF9lbWl0X2ZsdXNoX2dwdV90bGIsDQo+ICAgCS5zZXRfcHJ0ID0gZ21jX3Y2 XzBfc2V0X3BydCwNCj4gICAJLmdldF92bV9wZGUgPSBnbWNfdjZfMF9nZXRfdm1fcGRlLA0KPiAt CS5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y2XzBfZ2V0X3ZtX3B0ZV9mbGFncw0KPiArCS5nZXRf dm1fcHRlX2ZsYWdzID0gZ21jX3Y2XzBfZ2V0X3ZtX3B0ZV9mbGFncywNCj4gKwkuZ2V0X3ZtX21h cHBpbmdfZmxhZ3MgPSBnbWNfdjZfMF9nZXRfdm1fbWFwcGluZ19mbGFncw0KDQpUaGF0IGxvb2tz IGxpa2UgYSBkdXBsaWNhdGlvbiBvZiB3aGF0IGdldF92bV9wdGVfZmxhZ3MgaXMgc3VwcG9zZWQg dG8gYmUgDQpkb2luZy4NCg0KQ2hyaXN0aWFuLg0KDQo+ICAgfTsNCj4gICANCj4gICBzdGF0aWMg Y29uc3Qgc3RydWN0IGFtZGdwdV9pcnFfc3JjX2Z1bmNzIGdtY192Nl8wX2lycV9mdW5jcyA9IHsN Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jDQo+IGluZGV4IDc1YWEzMzMuLjYx OTg2MmUgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18w LmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYw0KPiBAQCAt NDgxLDYgKzQ4MSwyMyBAQCBzdGF0aWMgdm9pZCBnbWNfdjdfMF9nZXRfdm1fcGRlKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCBpbnQgbGV2ZWwsDQo+ICAgCUJVR19PTigqYWRkciAmIDB4RkZG RkZGMDAwMDAwMEZGRlVMTCk7DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIHVpbnQzMl90IGdtY192 N18wX2dldF92bV9tYXBwaW5nX2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0KPiAr CQkJCXVpbnQzMl90IGFsbG9jX2ZsYWdzLCBib29sIHJlbW90ZV9tYXBwaW5nKQ0KPiArew0KPiAr CXVpbnQzMl90IG1hcHBpbmdfZmxhZ3MgPSBBTURHUFVfVk1fUEFHRV9SRUFEQUJMRTsNCj4gKw0K PiArCWlmIChhbGxvY19mbGFncyAmIEFMTE9DX01FTV9GTEFHU19XUklUQUJMRSkNCj4gKwkJbWFw cGluZ19mbGFncyB8PSBBTURHUFVfVk1fUEFHRV9XUklURUFCTEU7DQo+ICsJaWYgKGFsbG9jX2Zs YWdzICYgQUxMT0NfTUVNX0ZMQUdTX0VYRUNVVEFCTEUpDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0g QU1ER1BVX1ZNX1BBR0VfRVhFQ1VUQUJMRTsNCj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19N RU1fRkxBR1NfQ09IRVJFTlQpDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBF X1VDOw0KPiArCWVsc2UNCj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fTVRZUEVfTkM7 DQo+ICsNCj4gKwlyZXR1cm4gbWFwcGluZ19mbGFnczsNCj4gK30NCj4gKw0KPiAgIC8qKg0KPiAg ICAqIGdtY192OF8wX3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdCAtIHVwZGF0ZSBWTSBmYXVsdCBo YW5kbGluZw0KPiAgICAqDQo+IEBAIC0xMzUzLDcgKzEzNzAsOCBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGFtZGdwdV9nbWNfZnVuY3MgZ21jX3Y3XzBfZ21jX2Z1bmNzID0gew0KPiAgIAkuZW1pdF9w YXNpZF9tYXBwaW5nID0gZ21jX3Y3XzBfZW1pdF9wYXNpZF9tYXBwaW5nLA0KPiAgIAkuc2V0X3By dCA9IGdtY192N18wX3NldF9wcnQsDQo+ICAgCS5nZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y3XzBf Z2V0X3ZtX3B0ZV9mbGFncywNCj4gLQkuZ2V0X3ZtX3BkZSA9IGdtY192N18wX2dldF92bV9wZGUN Cj4gKwkuZ2V0X3ZtX3BkZSA9IGdtY192N18wX2dldF92bV9wZGUsDQo+ICsJLmdldF92bV9tYXBw aW5nX2ZsYWdzID0gZ21jX3Y3XzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3MNCj4gICB9Ow0KPiAgIA0K PiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVuY3MgZ21jX3Y3XzBfaXJx X2Z1bmNzID0gew0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMNCj4gaW5kZXgg OGJmMmJhMy4uZDJjZWNiMzAgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192OF8wLmMNCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4 XzAuYw0KPiBAQCAtNzA2LDYgKzcwNiwyNCBAQCBzdGF0aWMgdm9pZCBnbWNfdjhfMF9nZXRfdm1f cGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgbGV2ZWwsDQo+ICAgCUJVR19PTigq YWRkciAmIDB4RkZGRkZGMDAwMDAwMEZGRlVMTCk7DQo+ICAgfQ0KPiAgIA0KPiArc3RhdGljIHVp bnQzMl90IGdtY192OF8wX2dldF92bV9tYXBwaW5nX2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LA0KPiArCQkJCXVpbnQzMl90IGFsbG9jX2ZsYWdzLCBib29sIHJlbW90ZV9tYXBwaW5n KQ0KPiArew0KPiArCXVpbnQzMl90IG1hcHBpbmdfZmxhZ3MgPSBBTURHUFVfVk1fUEFHRV9SRUFE QUJMRTsNCj4gKw0KPiArCWlmIChhbGxvY19mbGFncyAmIEFMTE9DX01FTV9GTEFHU19XUklUQUJM RSkNCj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fUEFHRV9XUklURUFCTEU7DQo+ICsJ aWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdTX0VYRUNVVEFCTEUpDQo+ICsJCW1hcHBp bmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0VfRVhFQ1VUQUJMRTsNCj4gKwlpZiAoYWxsb2NfZmxh Z3MgJiBBTExPQ19NRU1fRkxBR1NfQ09IRVJFTlQpDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1E R1BVX1ZNX01UWVBFX1VDOw0KPiArCWVsc2UNCj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVf Vk1fTVRZUEVfTkM7DQo+ICsNCj4gKwlyZXR1cm4gbWFwcGluZ19mbGFnczsNCj4gK30NCj4gKw0K PiArDQo+ICAgLyoqDQo+ICAgICogZ21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0g dXBkYXRlIFZNIGZhdWx0IGhhbmRsaW5nDQo+ICAgICoNCj4gQEAgLTE3MjEsNyArMTczOSw4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5jcyBnbWNfdjhfMF9nbWNfZnVuY3Mg PSB7DQo+ICAgCS5lbWl0X3Bhc2lkX21hcHBpbmcgPSBnbWNfdjhfMF9lbWl0X3Bhc2lkX21hcHBp bmcsDQo+ICAgCS5zZXRfcHJ0ID0gZ21jX3Y4XzBfc2V0X3BydCwNCj4gICAJLmdldF92bV9wdGVf ZmxhZ3MgPSBnbWNfdjhfMF9nZXRfdm1fcHRlX2ZsYWdzLA0KPiAtCS5nZXRfdm1fcGRlID0gZ21j X3Y4XzBfZ2V0X3ZtX3BkZQ0KPiArCS5nZXRfdm1fcGRlID0gZ21jX3Y4XzBfZ2V0X3ZtX3BkZSwN Cj4gKwkuZ2V0X3ZtX21hcHBpbmdfZmxhZ3MgPSBnbWNfdjhfMF9nZXRfdm1fbWFwcGluZ19mbGFn cw0KPiAgIH07DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19m dW5jcyBnbWNfdjhfMF9pcnFfZnVuY3MgPSB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y5XzAuYw0KPiBpbmRleCBlNmFkYzg2Li5kNzA5OTAyIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jDQo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192OV8wLmMNCj4gQEAgLTYyNiwxMiArNjI2LDMxIEBAIHN0YXRpYyB2b2lk IGdtY192OV8wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBsZXZl bCwNCj4gICAJfQ0KPiAgIH0NCj4gICANCj4gK3N0YXRpYyB1aW50MzJfdCBnbWNfdjlfMF9nZXRf dm1fbWFwcGluZ19mbGFncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwNCj4gKwkJCQl1aW50 MzJfdCBhbGxvY19mbGFncywgYm9vbCByZW1vdGVfbWFwcGluZykNCj4gK3sNCj4gKwl1aW50MzJf dCBtYXBwaW5nX2ZsYWdzID0gQU1ER1BVX1ZNX1BBR0VfUkVBREFCTEU7DQo+ICsNCj4gKwlpZiAo YWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfV1JJVEFCTEUpDQo+ICsJCW1hcHBpbmdfZmxh Z3MgfD0gQU1ER1BVX1ZNX1BBR0VfV1JJVEVBQkxFOw0KPiArCWlmIChhbGxvY19mbGFncyAmIEFM TE9DX01FTV9GTEFHU19FWEVDVVRBQkxFKQ0KPiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9W TV9QQUdFX0VYRUNVVEFCTEU7DQo+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdT X0NPSEVSRU5UKQ0KPiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9NVFlQRV9VQzsNCj4g KwllbHNlDQo+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX05DOw0KPiArDQo+ ICsJcmV0dXJuIG1hcHBpbmdfZmxhZ3M7DQo+ICt9DQo+ICsNCj4gKw0KPiAgIHN0YXRpYyBjb25z dCBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5jcyBnbWNfdjlfMF9nbWNfZnVuY3MgPSB7DQo+ICAgCS5m bHVzaF9ncHVfdGxiID0gZ21jX3Y5XzBfZmx1c2hfZ3B1X3RsYiwNCj4gICAJLmVtaXRfZmx1c2hf Z3B1X3RsYiA9IGdtY192OV8wX2VtaXRfZmx1c2hfZ3B1X3RsYiwNCj4gICAJLmVtaXRfcGFzaWRf bWFwcGluZyA9IGdtY192OV8wX2VtaXRfcGFzaWRfbWFwcGluZywNCj4gICAJLmdldF92bV9wdGVf ZmxhZ3MgPSBnbWNfdjlfMF9nZXRfdm1fcHRlX2ZsYWdzLA0KPiAtCS5nZXRfdm1fcGRlID0gZ21j X3Y5XzBfZ2V0X3ZtX3BkZQ0KPiArCS5nZXRfdm1fcGRlID0gZ21jX3Y5XzBfZ2V0X3ZtX3BkZSwN Cj4gKwkuZ2V0X3ZtX21hcHBpbmdfZmxhZ3MgPSBnbWNfdjlfMF9nZXRfdm1fbWFwcGluZ19mbGFn cw0KPiAgIH07DQo+ICAgDQo+ICAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfc2V0X2dtY19mdW5jcyhz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9hbWQtZ2Z4