From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH 3/5] drm/amdkfd: Postpone memory mapping flags calculation to mapping time Date: Fri, 9 Aug 2019 16:43:08 +0200 Message-ID: References: <1565316926-19516-1-git-send-email-Oak.Zeng@amd.com> <1565316926-19516-3-git-send-email-Oak.Zeng@amd.com> <95459b48-c8e5-b54c-00f1-8a1fdccd7e66@amd.com> Reply-To: christian.koenig-5C7GfCeVMHo@public.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US 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" , "Koenig, Christian" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kuehling, Felix" , "Keely, Sean" QW0gMDkuMDguMTkgdW0gMTY6MjEgc2NocmllYiBaZW5nLCBPYWs6Cj4KPiBSZWdhcmRzLAo+IE9h awo+Cj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KPiBGcm9tOiBLb2VuaWcsIENocmlzdGlh biA8Q2hyaXN0aWFuLktvZW5pZ0BhbWQuY29tPgo+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDksIDIw MTkgODozMSBBTQo+IFRvOiBaZW5nLCBPYWsgPE9hay5aZW5nQGFtZC5jb20+OyBhbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IENjOiBLdWVobGluZywgRmVsaXggPEZlbGl4Lkt1ZWhsaW5n QGFtZC5jb20+OyBLZWVseSwgU2VhbiA8U2Vhbi5LZWVseUBhbWQuY29tPgo+IFN1YmplY3Q6IFJl OiBbUEFUQ0ggMy81XSBkcm0vYW1ka2ZkOiBQb3N0cG9uZSBtZW1vcnkgbWFwcGluZyBmbGFncyBj YWxjdWxhdGlvbiB0byBtYXBwaW5nIHRpbWUKPgo+IEFtIDA5LjA4LjE5IHVtIDA0OjE1IHNjaHJp ZWIgWmVuZywgT2FrOgo+PiBTb21lIG1hcHBpbmcgZmxhZ3MgYXJlIGRlY2lkZWQgYnkgbWVtb3J5 IG1hcHBpbmcgZGVzdGluYXRpb24gd2hpY2ggaXMKPj4gbm90IGtub3cgYXQgbWVtb3J5IG9iamVj dCBhbGxvY2F0aW9uIHRpbWUuIFNvIGl0IGlzIHJlYXNvbmFibGUgdG8KPj4gZGVjaWRlIG1lbW9y eSBtYXBwaW5nIGZsYWdzIGF0IG1hcHBpbmcgdGltZSwgaW5zdGVhZCBvZiBhbGxvYyB0aW1lLgo+ PiBSZWNvcmQgbWVtb3J5IGFsbG9jYXRpb24gZmxhZ3MgZHVyaW5nIGFsbG9jYXRpb24gdGltZSBh bmQgY2FsY3VsYXRlCj4+IG1hcHBpbmcgZmxhZ3MgZHVyaW5nIG1lbW9yeSBtYXBwaW5nIHRpbWUu Cj4+Cj4+IEFsc28gbWFkZSB0aGUgbWVtb3J5IG1hcHBpbmcgZmxhZ2UgY2FsY3VsYXRpb24gdG8g YmUgYXNpYy1zcGVjaWZpYywKPj4gYmVjYXVzZSBkaWZmZXJlbnQgYXNpYyBjYW4gaGF2ZSBkaWZm ZXJlbnQgbWFwcGluZyBzY2hlbWUuCj4+Cj4+IFRoZSBuZXcgbWVtb3J5IG1hcHBpbmcgZmxhZyBp cyBkZWNpZGVkIGJ5IGJvdGggbWVtb3J5IGFsbG9jYXRpb24gZmxhZ3MKPj4gYW5kIHdoZXRoZXIg dGhlIG1lbW9yeSBtYXBwaW5nIGlzIHRvIGEgcmVtb3RlIGRldmljZS4KPj4KPj4gVGhpcyBpcyBw cmVwYXJhdGlvbiB3b3JrIHRvIGludHJvZHVjZSBtb3JlIHNvcGhpc3RpY2F0ZWQgbWFwcGluZyBz Y2hlbWUuCj4+Cj4+IENoYW5nZS1JZDogSTk4ZTdjNDdkODUwNTg1YWQ3ZjBhOWUxMTYxN2M5MmI3 YTlhY2VkM2IKPj4gU2lnbmVkLW9mZi1ieTogT2FrIFplbmcgPE9hay5aZW5nQGFtZC5jb20+Cj4+ IC0tLQo+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmggICAg ICAgfCAgMSArCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRf Z3B1dm0uYyB8IDE2ICsrKysrLS0tLS0tLS0tLS0KPj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X2dtYy5oICAgICAgICAgIHwgIDQgKysrKwo+PiAgICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYyAgICAgICAgICAgfCAyMCArKysrKysrKysrKysrKysr KysrLQo+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jICAgICAgICAg ICAgfCAxOSArKysrKysrKysrKysrKysrKystCj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192N18wLmMgICAgICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKystCj4+ICAg IGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMgICAgICAgICAgICB8IDIxICsr KysrKysrKysrKysrKysrKysrLQo+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djlfMC5jICAgICAgICAgICAgfCAyMSArKysrKysrKysrKysrKysrKysrKy0KPj4gICAgOCBmaWxl cyBjaGFuZ2VkLCAxMDYgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgKPj4gYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkLmgKPj4gaW5kZXggZTUxOWRm My4uMDI2NDc1YSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2FtZGtmZC5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9h bWRrZmQuaAo+PiBAQCAtNTgsNiArNTgsNyBAQCBzdHJ1Y3Qga2dkX21lbSB7Cj4+ICAgIAl1aW50 NjRfdCB2YTsKPj4gICAgCj4+ICAgIAl1aW50MzJfdCBtYXBwaW5nX2ZsYWdzOwo+PiArCXVpbnQz Ml90IGFsbG9jX2ZsYWdzOwo+PiAgICAKPj4gICAgCWF0b21pY190IGludmFsaWQ7Cj4+ICAgIAlz dHJ1Y3QgYW1ka2ZkX3Byb2Nlc3NfaW5mbyAqcHJvY2Vzc19pbmZvOyBkaWZmIC0tZ2l0Cj4+IGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4+IGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCj4+IGluZGV4IDQ0 YTUyYjAuLmY5MWVmNDggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKPj4gQEAgLTEwODEsNyArMTA4MSw2IEBAIGludCBhbWRn cHVfYW1ka2ZkX2dwdXZtX2FsbG9jX21lbW9yeV9vZl9ncHUoCj4+ICAgIAlpbnQgYnl0ZV9hbGln bjsKPj4gICAgCXUzMiBkb21haW4sIGFsbG9jX2RvbWFpbjsKPj4gICAgCXU2NCBhbGxvY19mbGFn czsKPj4gLQl1aW50MzJfdCBtYXBwaW5nX2ZsYWdzOwo+PiAgICAJaW50IHJldDsKPj4gICAgCj4+ ICAgIAkvKgo+PiBAQCAtMTE0MywxNiArMTE0Miw3IEBAIGludCBhbWRncHVfYW1ka2ZkX2dwdXZt X2FsbG9jX21lbW9yeV9vZl9ncHUoCj4+ICAgIAkJCWFkZXYtPmFzaWNfdHlwZSAhPSBDSElQX1ZF R0FNKSA/Cj4+ICAgIAkJCVZJX0JPX1NJWkVfQUxJR04gOiAxOwo+PiAgICAKPj4gLQltYXBwaW5n X2ZsYWdzID0gQU1ER1BVX1ZNX1BBR0VfUkVBREFCTEU7Cj4+IC0JaWYgKGZsYWdzICYgQUxMT0Nf TUVNX0ZMQUdTX1dSSVRBQkxFKQo+PiAtCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9QQUdF X1dSSVRFQUJMRTsKPj4gLQlpZiAoZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfRVhFQ1VUQUJMRSkK Pj4gLQkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fUEFHRV9FWEVDVVRBQkxFOwo+PiAtCWlm IChmbGFncyAmIEFMTE9DX01FTV9GTEFHU19DT0hFUkVOVCkKPj4gLQkJbWFwcGluZ19mbGFncyB8 PSBBTURHUFVfVk1fTVRZUEVfVUM7Cj4+IC0JZWxzZQo+PiAtCQltYXBwaW5nX2ZsYWdzIHw9IEFN REdQVV9WTV9NVFlQRV9OQzsKPj4gLQkoKm1lbSktPm1hcHBpbmdfZmxhZ3MgPSBtYXBwaW5nX2Zs YWdzOwo+PiArCSgqbWVtKS0+YWxsb2NfZmxhZ3MgPSBmbGFnczsKPj4gICAgCj4+ICAgIAlhbWRn cHVfc3luY19jcmVhdGUoJigqbWVtKS0+c3luYyk7Cj4+ICAgIAo+PiBAQCAtMTI5OCw2ICsxMjg4 LDcgQEAgaW50IGFtZGdwdV9hbWRrZmRfZ3B1dm1fbWFwX21lbW9yeV90b19ncHUoCj4+ICAgIAkJ c3RydWN0IGtnZF9kZXYgKmtnZCwgc3RydWN0IGtnZF9tZW0gKm1lbSwgdm9pZCAqdm0pCj4+ICAg IHsKPj4gICAgCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uo a2dkKTsKPj4gKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYm9fYWRldjsKPj4gICAgCXN0cnVjdCBh bWRncHVfdm0gKmF2bSA9IChzdHJ1Y3QgYW1kZ3B1X3ZtICopdm07Cj4+ICAgIAlpbnQgcmV0Owo+ PiAgICAJc3RydWN0IGFtZGdwdV9ibyAqYm87Cj4+IEBAIC0xMzE1LDYgKzEzMDYsOSBAQCBpbnQg YW1kZ3B1X2FtZGtmZF9ncHV2bV9tYXBfbWVtb3J5X3RvX2dwdSgKPj4gICAgCQlyZXR1cm4gLUVJ TlZBTDsKPj4gICAgCX0KPj4gICAgCj4+ICsJYm9fYWRldiA9IGFtZGdwdV90dG1fYWRldihiby0+ dGJvLmJkZXYpOwo+PiArCW1lbS0+bWFwcGluZ19mbGFncyA9IGFtZGdwdV9nbWNfZ2V0X3ZtX21h cHBpbmdfZmxhZ3MoYWRldiwKPj4gK21lbS0+YWxsb2NfZmxhZ3MsIGJvX2FkZXYgIT0gYWRldik7 Cj4+ICsKPj4gICAgCS8qIE1ha2Ugc3VyZSByZXN0b3JlIGlzIG5vdCBydW5uaW5nIGNvbmN1cnJl bnRseS4gU2luY2Ugd2UKPj4gICAgCSAqIGRvbid0IG1hcCBpbnZhbGlkIHVzZXJwdHIgQk9zLCB3 ZSByZWx5IG9uIHRoZSBuZXh0IHJlc3RvcmUKPj4gICAgCSAqIHdvcmtlciB0byBkbyB0aGUgbWFw cGluZwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dt Yy5oCj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oCj4+IGluZGV4 IDA3MTE0NWEuLjZiZDBjMjggMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nbWMuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfZ21jLmgKPj4gQEAgLTEwNSw2ICsxMDUsOSBAQCBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5jcyB7 Cj4+ICAgIAkvKiBnZXQgdGhlIHBkZSBmb3IgYSBnaXZlbiBtYyBhZGRyICovCj4+ICAgIAl2b2lk ICgqZ2V0X3ZtX3BkZSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBsZXZlbCwKPj4g ICAgCQkJICAgdTY0ICpkc3QsIHU2NCAqZmxhZ3MpOwo+PiArCS8qIGdldCBwZXIgYXNpYyB2bSBt YXBwaW5nIGZsYWdzICovCj4+ICsJdWludDMyX3QgKCpnZXRfdm1fbWFwcGluZ19mbGFncykoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICsJCQl1aW50MzJfdCBhbGxvY19mbGFncywgYm9v bCByZW1vdGVfbWFwcGluZyk7Cj4+ICAgIH07Cj4+ICAgIAo+PiAgICBzdHJ1Y3QgYW1kZ3B1X3hn bWkgewo+PiBAQCAtMTg1LDYgKzE4OCw3IEBAIHN0cnVjdCBhbWRncHVfZ21jIHsKPj4gICAgI2Rl ZmluZSBhbWRncHVfZ21jX2VtaXRfcGFzaWRfbWFwcGluZyhyLCB2bWlkLCBwYXNpZCkgKHIpLT5h ZGV2LT5nbWMuZ21jX2Z1bmNzLT5lbWl0X3Bhc2lkX21hcHBpbmcoKHIpLCAodm1pZCksIChwYXNp ZCkpCj4+ICAgICNkZWZpbmUgYW1kZ3B1X2dtY19nZXRfdm1fcGRlKGFkZXYsIGxldmVsLCBkc3Qs IGZsYWdzKSAoYWRldiktPmdtYy5nbWNfZnVuY3MtPmdldF92bV9wZGUoKGFkZXYpLCAobGV2ZWwp LCAoZHN0KSwgKGZsYWdzKSkKPj4gICAgI2RlZmluZSBhbWRncHVfZ21jX2dldF9wdGVfZmxhZ3Mo YWRldiwgZmxhZ3MpCj4+IChhZGV2KS0+Z21jLmdtY19mdW5jcy0+Z2V0X3ZtX3B0ZV9mbGFncygo YWRldiksKGZsYWdzKSkKPj4gKyNkZWZpbmUgYW1kZ3B1X2dtY19nZXRfdm1fbWFwcGluZ19mbGFn cyhhZGV2LCBhbGxvY19mbGFncywKPj4gK3JlbW90ZV9tYXBwaW5nKSAoKGFkZXYpLT5nbWMuZ21j X2Z1bmNzLT5nZXRfdm1fbWFwcGluZ19mbGFncygoYWRldiksCj4+ICsoYWxsb2NfZmxhZ3MpLCAo cmVtb3RlX21hcHBpbmcpKSkKPj4gICAgCj4+ICAgIC8qKgo+PiAgICAgKiBhbWRncHVfZ21jX3Zy YW1fZnVsbF92aXNpYmxlIC0gQ2hlY2sgaWYgZnVsbCBWUkFNIGlzIHZpc2libGUKPj4gdGhyb3Vn aCB0aGUgQkFSIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEw XzAuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCj4+IGluZGV4 IDRlM2FjMTAuLjdlNDIwZTAgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dtY192MTBfMC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192 MTBfMC5jCj4+IEBAIC00MTUsMTIgKzQxNSwzMCBAQCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZ2V0 X3ZtX3BkZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgaW50IGxldmVsLAo+PiAgICAJfQo+ PiAgICB9Cj4+ICAgIAo+PiArc3RhdGljIHVpbnQzMl90IGdtY192MTBfMF9nZXRfdm1fbWFwcGlu Z19mbGFncyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gKwkJCQl1aW50MzJfdCBhbGxv Y19mbGFncywgYm9vbCByZW1vdGVfbWFwcGluZykgewo+PiArCXVpbnQzMl90IG1hcHBpbmdfZmxh Z3MgPSBBTURHUFVfVk1fUEFHRV9SRUFEQUJMRTsKPj4gKwo+PiArCWlmIChhbGxvY19mbGFncyAm IEFMTE9DX01FTV9GTEFHU19XUklUQUJMRSkKPj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVf Vk1fUEFHRV9XUklURUFCTEU7Cj4+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdT X0VYRUNVVEFCTEUpCj4+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0VfRVhFQ1VU QUJMRTsKPj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfQ09IRVJFTlQpCj4+ ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX1VDOwo+PiArCWVsc2UKPj4gKwkJ bWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fTVRZUEVfTkM7Cj4+ICsKPj4gKwlyZXR1cm4gbWFw cGluZ19mbGFnczsKPj4gK30KPj4gKwo+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9n bWNfZnVuY3MgZ21jX3YxMF8wX2dtY19mdW5jcyA9IHsKPj4gICAgCS5mbHVzaF9ncHVfdGxiID0g Z21jX3YxMF8wX2ZsdXNoX2dwdV90bGIsCj4+ICAgIAkuZW1pdF9mbHVzaF9ncHVfdGxiID0gZ21j X3YxMF8wX2VtaXRfZmx1c2hfZ3B1X3RsYiwKPj4gICAgCS5lbWl0X3Bhc2lkX21hcHBpbmcgPSBn bWNfdjEwXzBfZW1pdF9wYXNpZF9tYXBwaW5nLAo+PiAgICAJLmdldF92bV9wdGVfZmxhZ3MgPSBn bWNfdjEwXzBfZ2V0X3ZtX3B0ZV9mbGFncywKPj4gLQkuZ2V0X3ZtX3BkZSA9IGdtY192MTBfMF9n ZXRfdm1fcGRlCj4+ICsJLmdldF92bV9wZGUgPSBnbWNfdjEwXzBfZ2V0X3ZtX3BkZSwKPj4gKwku Z2V0X3ZtX21hcHBpbmdfZmxhZ3MgPSBnbWNfdjEwXzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3MKPj4g ICAgfTsKPj4gICAgCj4+ICAgIHN0YXRpYyB2b2lkIGdtY192MTBfMF9zZXRfZ21jX2Z1bmNzKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KSBkaWZmCj4+IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3Y2XzAuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192Nl8wLmMKPj4gaW5kZXggYjA2ZDg3Ni4uMmIyYWY2YSAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4+IEBAIC00MDQsNiArNDA0LDIyIEBAIHN0YXRpYyB2b2lk IGdtY192Nl8wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBsZXZl bCwKPj4gICAgCUJVR19PTigqYWRkciAmIDB4RkZGRkZGMDAwMDAwMEZGRlVMTCk7Cj4+ICAgIH0K Pj4gICAgCj4+ICtzdGF0aWMgdWludDMyX3QgZ21jX3Y2XzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3Mo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICsJCQkJdWludDMyX3QgYWxsb2NfZmxhZ3Ms IGJvb2wgcmVtb3RlX21hcHBpbmcpIHsKPj4gKwl1aW50MzJfdCBtYXBwaW5nX2ZsYWdzID0gQU1E R1BVX1ZNX1BBR0VfUkVBREFCTEU7Cj4+ICsKPj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19N RU1fRkxBR1NfV1JJVEFCTEUpCj4+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0Vf V1JJVEVBQkxFOwo+PiArCWlmIChhbGxvY19mbGFncyAmIEFMTE9DX01FTV9GTEFHU19FWEVDVVRB QkxFKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9QQUdFX0VYRUNVVEFCTEU7Cj4+ ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdTX0NPSEVSRU5UKQo+PiArCQltYXBw aW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9NVFlQRV9VQzsKPj4gKwllbHNlCj4+ICsJCW1hcHBpbmdf ZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX05DOwo+PiArCj4+ICsJcmV0dXJuIG1hcHBpbmdfZmxh Z3M7Cj4+ICt9Cj4+ICAgIHN0YXRpYyB2b2lkIGdtY192Nl8wX3NldF9mYXVsdF9lbmFibGVfZGVm YXVsdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKPj4gICAgCQkJCQkgICAgICBib29sIHZh bHVlKQo+PiAgICB7Cj4+IEBAIC0xMTU3LDcgKzExNzMsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGFtZGdwdV9nbWNfZnVuY3MgZ21jX3Y2XzBfZ21jX2Z1bmNzID0gewo+PiAgICAJLmVtaXRfZmx1 c2hfZ3B1X3RsYiA9IGdtY192Nl8wX2VtaXRfZmx1c2hfZ3B1X3RsYiwKPj4gICAgCS5zZXRfcHJ0 ID0gZ21jX3Y2XzBfc2V0X3BydCwKPj4gICAgCS5nZXRfdm1fcGRlID0gZ21jX3Y2XzBfZ2V0X3Zt X3BkZSwKPj4gLQkuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192Nl8wX2dldF92bV9wdGVfZmxhZ3MK Pj4gKwkuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192Nl8wX2dldF92bV9wdGVfZmxhZ3MsCj4+ICsJ LmdldF92bV9tYXBwaW5nX2ZsYWdzID0gZ21jX3Y2XzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3MKPiBU aGF0IGxvb2tzIGxpa2UgYSBkdXBsaWNhdGlvbiBvZiB3aGF0IGdldF92bV9wdGVfZmxhZ3MgaXMg c3VwcG9zZWQgdG8gYmUgZG9pbmcuCj4KPiBbT2FrXSBUaGVyZSBhcmUgdHdvIGxheWVycyBvZiBk ZWZpbml0aW9uIGhlcmU6IGdlbmVyYWwgdXNlci1hY2Nlc3NpYmxlIEFNREdQVV9WTV94eHggZGVm aW5pdGlvbnMgKGluIGFtZGdwdV9kcm0uaCkgYW5kIGFzaWMtc3BlY2lmaWMgQU1ER1BVX1BURV94 eHggZGVmaW5pdGlvbnMgKGRlZmluZWQgaW4gYW1kZ3B1X3ZtLmgpLiBGb3IgYW1kZ3B1IGRybSB1 c2VyLCB1c2VyIHBhc3MgaW4gQU1ER1BVX1ZNX1hYIGZsYWdzIGFuZCBnZXRfdm1fcHRlX2ZsYWdz IHRyYW5zbGF0ZSB0aG9zZSBmbGFncyB0byBBTURHUFVfUFRFX3h4eCBmbGFncyB0byBwcm9ncmFt IHBhZ2UgdGFibGUuCj4KPiBGb3IgY29tcHV0ZSBzdGFjaywgdGhlcmUgYXJlIHR3byBsYXllcnMg b2YgdHJhbnNsYXRpb246IHdlIHdpbGwgZmlyc3QgZ2VuZXJhdGUgdGhlIEFNREdQVV9WTV94eHgg ZmxhZ3MgZnJvbSBtZW1vcnkgb2JqZWN0IGFsbG9jYXRpb24gZmxhZ3MvbWVtb3J5IHBoeXNpY2Fs IGxvY2F0aW9uL21lbW9yeSBtYXBwaW5nIGRlc3RpbmF0aW9uL21lbW9yeSBhY2Nlc3MgcGF0aCAo cGNpZSBvciB4Z21pKS4gVGhlbiBnZXRfdm1fcHRlX2ZsYWdzIGlzIGNhbGxlZCB0byB0cmFuc2xh dGUgQU1ER1BVX1ZNX3h4IGZsYWdzIHRvIEFNREdQVV9QVEVfeHggZmxhZ3MuIFRoZSBzZWNvbmQg bGF5ZXIgdHJhbnNsYXRpb24gaXMgdGhlIHNhbWUgd2l0aCB0aGUgZHJtIHVzYWdlLgo+Cj4gRm9y IGNvbXB1dGUgc3RhY2sgdXNlciwgZHVlIHRoZSBBUEkgZGVmaW5pdGlvbiwgdXNlciBjYW4ndCBk aXJlY3RseSBwYXNzIGluIHRoZSBBTURHUFVfVk1feHh4IGZsYWdzLCBpbnN0ZWFkIGl0IHBhc3Mg aW4gYW4gYWxsb2NhdGlvbiBmbGFncy4gQWxzbyBpdCBpcyBub3QgcG9zc2libGUgZm9yIHVzZXIg dG8gcGFzcyBpbiB0aGUgQU1ER1BVX1ZNIGZsYWdzIGFzIHNvbWUgb2YgdGhlIGZsYWdzIGlzIGRl Y2lkZWQgYnkgZmFjdG9ycyB0aGF0IHVzZXIgaXMgdW5hd2FyZSwgZm9yIGV4YW1wbGUgd2hldGhl ciB0aGUgYWNjZXNzIGlzIHRocm91Z2ggcGNpZSBvciB4Z21pLgo+Cj4gRHVlIHRvIGFib3ZlIHJl YXNvbnMsIFdlIGhhZCB0byBkbyB0d28gbGF5ZXJzIG9mIHRyYW5zbGF0aW9ucy4gVGhlIHR3byBs YXllcnMgb2YgdHJhbnNsYXRpb24gZXhpc3RzIGJlZm9yZSB0aGlzIHBhdGNoIHNlcmllcnMgKHRo ZSBmaXJzdCBsYXllciB3YXMgaW4gYW1kZ3B1X2FtZGtmZF9ncHV2bS5jKS4gV2hlbiBJIGRvIHRo aXMgcGF0Y2ggc2VyaWVzLCBJIGhhZCBhIG5lZWQgdG8gbWFrZSB0aGUgZmlyc3QgbGF5ZXJzIG9m IHRyYW5zbGF0aW9uIGFsc28gdG8gYmUgYXNpYy1zcGVjaWZpYyBhcyBBcmN0dXJ1cyBpbnRyb2R1 Y2UgZGlmZmVyZW50IG1hcHBpbmcgc2NoZW1lLiBUaGVuIEkgbW92ZWQgdGhlIGZpcnN0IGxheWVy IHRyYW5zbGF0aW9uIHRvIGFzaWMtc3BlY2lmYyBnbWMgZnVuY3Rpb25zLgoKWWVhaCwgYnV0IHRo aXMgaXMgYSByZWFsbHkgYmFkIGRlc2lnbi4gV2UgYXJlIGVzc2VudGlhbGx5IGxlYWtpbmcgdGhl IApwcm9ibGVtIHRoYXQgd2UgaGF2ZSB0d28gdXBwZXIgbGF5ZXJzIGludG8gdGhlIGhhcmR3YXJl IHNwZWNpZmljIGxvd2VyIApsYXllciBhbmQgdGhhdCBpcyBhIHJhdGhlciBiaWcgbm8tZ28uCgpX ZSBuZWVkIHRvIGZpbmQgYSBkaWZmZXJlbnQgYXBwcm9hY2ggZm9yIHRoaXMgd2hpY2ggbWFrZXMg aXQgcG9zc2libGUgdG8gCmhhbmRsZSB0aGlzIHdpdGggYSBzaW5nbGUgY2FsbGJhY2sgb3IgdGhl IGRlc2lnbiBpcyBhIHJhdGhlciBjbGVhciBOQUsuCgpDaHJpc3RpYW4uCgo+Cj4gQ2hyaXN0aWFu Lgo+Cj4+ICAgIH07Cj4+ICAgIAo+PiAgICBzdGF0aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9pcnFf c3JjX2Z1bmNzIGdtY192Nl8wX2lycV9mdW5jcyA9IHsgZGlmZgo+PiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjdfMC5jCj4+IGluZGV4IDc1YWEzMzMuLjYxOTg2MmUgMTAwNjQ0Cj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+PiBAQCAtNDgxLDYgKzQ4MSwyMyBAQCBzdGF0 aWMgdm9pZCBnbWNfdjdfMF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBp bnQgbGV2ZWwsCj4+ICAgIAlCVUdfT04oKmFkZHIgJiAweEZGRkZGRjAwMDAwMDBGRkZVTEwpOwo+ PiAgICB9Cj4+ICAgIAo+PiArc3RhdGljIHVpbnQzMl90IGdtY192N18wX2dldF92bV9tYXBwaW5n X2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+PiArCQkJCXVpbnQzMl90IGFsbG9j X2ZsYWdzLCBib29sIHJlbW90ZV9tYXBwaW5nKSB7Cj4+ICsJdWludDMyX3QgbWFwcGluZ19mbGFn cyA9IEFNREdQVV9WTV9QQUdFX1JFQURBQkxFOwo+PiArCj4+ICsJaWYgKGFsbG9jX2ZsYWdzICYg QUxMT0NfTUVNX0ZMQUdTX1dSSVRBQkxFKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9W TV9QQUdFX1dSSVRFQUJMRTsKPj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1Nf RVhFQ1VUQUJMRSkKPj4gKwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fUEFHRV9FWEVDVVRB QkxFOwo+PiArCWlmIChhbGxvY19mbGFncyAmIEFMTE9DX01FTV9GTEFHU19DT0hFUkVOVCkKPj4g KwkJbWFwcGluZ19mbGFncyB8PSBBTURHUFVfVk1fTVRZUEVfVUM7Cj4+ICsJZWxzZQo+PiArCQlt YXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9NVFlQRV9OQzsKPj4gKwo+PiArCXJldHVybiBtYXBw aW5nX2ZsYWdzOwo+PiArfQo+PiArCj4+ICAgIC8qKgo+PiAgICAgKiBnbWNfdjhfMF9zZXRfZmF1 bHRfZW5hYmxlX2RlZmF1bHQgLSB1cGRhdGUgVk0gZmF1bHQgaGFuZGxpbmcKPj4gICAgICoKPj4g QEAgLTEzNTMsNyArMTM3MCw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5j cyBnbWNfdjdfMF9nbWNfZnVuY3MgPSB7Cj4+ICAgIAkuZW1pdF9wYXNpZF9tYXBwaW5nID0gZ21j X3Y3XzBfZW1pdF9wYXNpZF9tYXBwaW5nLAo+PiAgICAJLnNldF9wcnQgPSBnbWNfdjdfMF9zZXRf cHJ0LAo+PiAgICAJLmdldF92bV9wdGVfZmxhZ3MgPSBnbWNfdjdfMF9nZXRfdm1fcHRlX2ZsYWdz LAo+PiAtCS5nZXRfdm1fcGRlID0gZ21jX3Y3XzBfZ2V0X3ZtX3BkZQo+PiArCS5nZXRfdm1fcGRl ID0gZ21jX3Y3XzBfZ2V0X3ZtX3BkZSwKPj4gKwkuZ2V0X3ZtX21hcHBpbmdfZmxhZ3MgPSBnbWNf djdfMF9nZXRfdm1fbWFwcGluZ19mbGFncwo+PiAgICB9Owo+PiAgICAKPj4gICAgc3RhdGljIGNv bnN0IHN0cnVjdCBhbWRncHVfaXJxX3NyY19mdW5jcyBnbWNfdjdfMF9pcnFfZnVuY3MgPSB7IGRp ZmYKPj4gLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+IGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+PiBpbmRleCA4YmYyYmEzLi5k MmNlY2IzMCAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4 XzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+IEBA IC03MDYsNiArNzA2LDI0IEBAIHN0YXRpYyB2b2lkIGdtY192OF8wX2dldF92bV9wZGUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIGludCBsZXZlbCwKPj4gICAgCUJVR19PTigqYWRkciAmIDB4 RkZGRkZGMDAwMDAwMEZGRlVMTCk7Cj4+ICAgIH0KPj4gICAgCj4+ICtzdGF0aWMgdWludDMyX3Qg Z21jX3Y4XzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4+ICsJCQkJdWludDMyX3QgYWxsb2NfZmxhZ3MsIGJvb2wgcmVtb3RlX21hcHBpbmcpIHsKPj4g Kwl1aW50MzJfdCBtYXBwaW5nX2ZsYWdzID0gQU1ER1BVX1ZNX1BBR0VfUkVBREFCTEU7Cj4+ICsK Pj4gKwlpZiAoYWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfV1JJVEFCTEUpCj4+ICsJCW1h cHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX1BBR0VfV1JJVEVBQkxFOwo+PiArCWlmIChhbGxvY19m bGFncyAmIEFMTE9DX01FTV9GTEFHU19FWEVDVVRBQkxFKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9 IEFNREdQVV9WTV9QQUdFX0VYRUNVVEFCTEU7Cj4+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0Nf TUVNX0ZMQUdTX0NPSEVSRU5UKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9NVFlQ RV9VQzsKPj4gKwllbHNlCj4+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX05D Owo+PiArCj4+ICsJcmV0dXJuIG1hcHBpbmdfZmxhZ3M7Cj4+ICt9Cj4+ICsKPj4gKwo+PiAgICAv KioKPj4gICAgICogZ21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0gdXBkYXRlIFZN IGZhdWx0IGhhbmRsaW5nCj4+ICAgICAqCj4+IEBAIC0xNzIxLDcgKzE3MzksOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGFtZGdwdV9nbWNfZnVuY3MgZ21jX3Y4XzBfZ21jX2Z1bmNzID0gewo+PiAg ICAJLmVtaXRfcGFzaWRfbWFwcGluZyA9IGdtY192OF8wX2VtaXRfcGFzaWRfbWFwcGluZywKPj4g ICAgCS5zZXRfcHJ0ID0gZ21jX3Y4XzBfc2V0X3BydCwKPj4gICAgCS5nZXRfdm1fcHRlX2ZsYWdz ID0gZ21jX3Y4XzBfZ2V0X3ZtX3B0ZV9mbGFncywKPj4gLQkuZ2V0X3ZtX3BkZSA9IGdtY192OF8w X2dldF92bV9wZGUKPj4gKwkuZ2V0X3ZtX3BkZSA9IGdtY192OF8wX2dldF92bV9wZGUsCj4+ICsJ LmdldF92bV9tYXBwaW5nX2ZsYWdzID0gZ21jX3Y4XzBfZ2V0X3ZtX21hcHBpbmdfZmxhZ3MKPj4g ICAgfTsKPj4gICAgCj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9zcmNfZnVu Y3MgZ21jX3Y4XzBfaXJxX2Z1bmNzID0geyBkaWZmCj4+IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OV8wLmMKPj4gaW5kZXggZTZhZGM4Ni4uZDcwOTkwMiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+IEBAIC02MjYsMTIgKzYyNiwzMSBAQCBzdGF0aWMgdm9p ZCBnbWNfdjlfMF9nZXRfdm1fcGRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBpbnQgbGV2 ZWwsCj4+ICAgIAl9Cj4+ICAgIH0KPj4gICAgCj4+ICtzdGF0aWMgdWludDMyX3QgZ21jX3Y5XzBf Z2V0X3ZtX21hcHBpbmdfZmxhZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+ICsJCQkJ dWludDMyX3QgYWxsb2NfZmxhZ3MsIGJvb2wgcmVtb3RlX21hcHBpbmcpIHsKPj4gKwl1aW50MzJf dCBtYXBwaW5nX2ZsYWdzID0gQU1ER1BVX1ZNX1BBR0VfUkVBREFCTEU7Cj4+ICsKPj4gKwlpZiAo YWxsb2NfZmxhZ3MgJiBBTExPQ19NRU1fRkxBR1NfV1JJVEFCTEUpCj4+ICsJCW1hcHBpbmdfZmxh Z3MgfD0gQU1ER1BVX1ZNX1BBR0VfV1JJVEVBQkxFOwo+PiArCWlmIChhbGxvY19mbGFncyAmIEFM TE9DX01FTV9GTEFHU19FWEVDVVRBQkxFKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9W TV9QQUdFX0VYRUNVVEFCTEU7Cj4+ICsJaWYgKGFsbG9jX2ZsYWdzICYgQUxMT0NfTUVNX0ZMQUdT X0NPSEVSRU5UKQo+PiArCQltYXBwaW5nX2ZsYWdzIHw9IEFNREdQVV9WTV9NVFlQRV9VQzsKPj4g KwllbHNlCj4+ICsJCW1hcHBpbmdfZmxhZ3MgfD0gQU1ER1BVX1ZNX01UWVBFX05DOwo+PiArCj4+ ICsJcmV0dXJuIG1hcHBpbmdfZmxhZ3M7Cj4+ICt9Cj4+ICsKPj4gKwo+PiAgICBzdGF0aWMgY29u c3Qgc3RydWN0IGFtZGdwdV9nbWNfZnVuY3MgZ21jX3Y5XzBfZ21jX2Z1bmNzID0gewo+PiAgICAJ LmZsdXNoX2dwdV90bGIgPSBnbWNfdjlfMF9mbHVzaF9ncHVfdGxiLAo+PiAgICAJLmVtaXRfZmx1 c2hfZ3B1X3RsYiA9IGdtY192OV8wX2VtaXRfZmx1c2hfZ3B1X3RsYiwKPj4gICAgCS5lbWl0X3Bh c2lkX21hcHBpbmcgPSBnbWNfdjlfMF9lbWl0X3Bhc2lkX21hcHBpbmcsCj4+ICAgIAkuZ2V0X3Zt X3B0ZV9mbGFncyA9IGdtY192OV8wX2dldF92bV9wdGVfZmxhZ3MsCj4+IC0JLmdldF92bV9wZGUg PSBnbWNfdjlfMF9nZXRfdm1fcGRlCj4+ICsJLmdldF92bV9wZGUgPSBnbWNfdjlfMF9nZXRfdm1f cGRlLAo+PiArCS5nZXRfdm1fbWFwcGluZ19mbGFncyA9IGdtY192OV8wX2dldF92bV9tYXBwaW5n X2ZsYWdzCj4+ICAgIH07Cj4+ICAgIAo+PiAgICBzdGF0aWMgdm9pZCBnbWNfdjlfMF9zZXRfZ21j X2Z1bmNzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gYW1kLWdmeCBtYWlsaW5nIGxpc3QKPiBhbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9hbWQtZ2Z4