From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Deucher, Alexander" Subject: RE: [PATCH] drm/amdgpu: fix vm size and block size for VMPT (v3) Date: Mon, 3 Apr 2017 19:34:19 +0000 Message-ID: References: <1491014612-12448-1-git-send-email-Jerry.Zhang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1491014612-12448-1-git-send-email-Jerry.Zhang-5C7GfCeVMHo@public.gmane.org> 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: "Koenig, Christian" Cc: "Zhang, Jerry" , "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IEp1bndlaSBaaGFuZyBbbWFpbHRv OkplcnJ5LlpoYW5nQGFtZC5jb21dCj4gU2VudDogRnJpZGF5LCBNYXJjaCAzMSwgMjAxNyAxMDo0 NCBQTQo+IFRvOiBEZXVjaGVyLCBBbGV4YW5kZXI7IEtvZW5pZywgQ2hyaXN0aWFuCj4gQ2M6IGFt ZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnOyBaaGFuZywgSmVycnkKPiBTdWJqZWN0OiBbUEFU Q0hdIGRybS9hbWRncHU6IGZpeCB2bSBzaXplIGFuZCBibG9jayBzaXplIGZvciBWTVBUICh2MykK PiAKPiBGcm9tOiAiWmhhbmcsIEplcnJ5IiA8SmVycnkuWmhhbmdAYW1kLmNvbT4KPiAKPiB2Mjog c2V0IGJvdGggb2YgdGhlbSBpbiBnbWMKPiB2MzogbW92ZSB2bSBzaXplIGFuZCBibG9jayBzaXpl IGluIHZtIG1hbmFnZXIKPiAKPiBTaWduZWQtb2ZmLWJ5OiBKdW53ZWkgWmhhbmcgPEplcnJ5Llpo YW5nQGFtZC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k ZXZpY2UuYyB8ICA4IC0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV92bS5jICAgICB8IDIyICsrKysrKysrKysrKy0tLS0tLS0tLQo+IC0KPiAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmggICAgIHwgIDQgKysrLQo+ICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhodWJfdjFfMC5jICAgfCAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nbWNfdjZfMC5jICAgICAgfCAxMCArKysrKysrKy0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMgICAgICB8ICA5ICsrKysrKystLQo+ICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jICAgICAgfCAgOSArKysrKysrLS0KPiAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyAgICAgIHwgMjEgKysrKysrKysrKysr Ky0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHViX3YxXzAuYyAgICB8 ICAyICstCj4gIDkgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9k ZXZpY2UuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4g aW5kZXggZmJiNGFmYi4uMWQwYzc0MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHVfZGV2aWNlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZGV2aWNlLmMKPiBAQCAtMTA0MSwxNCArMTA0MSw2IEBAIHN0YXRpYyBib29sIGFt ZGdwdV9jaGVja19wb3RfYXJndW1lbnQoaW50IGFyZykKPiAKPiAgc3RhdGljIHZvaWQgYW1kZ3B1 X2dldF9ibG9ja19zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICB7Cj4gLQkvKiBm cm9tIEFJLCBhc2ljIHN0YXJ0cyB0byBzdXBwb3J0IG11bHRpcGxlIGxldmVsIFZNUFQgKi8KPiAt CWlmIChhZGV2LT5hc2ljX3R5cGUgPj0gQ0hJUF9WRUdBMTApIHsKPiAtCQlpZiAoYW1kZ3B1X3Zt X2Jsb2NrX3NpemUgIT0gOSkKPiAtCQkJZGV2X3dhcm4oYWRldi0+ZGV2LAo+IC0JCQkJICJNdWx0 aS1WTVBUIGxpbWl0cyBibG9jayBzaXplIHRvIG9uZQo+IHBhZ2UhXG4iKTsKPiAtCQlhbWRncHVf dm1fYmxvY2tfc2l6ZSA9IDk7Cj4gLQkJcmV0dXJuOwo+IC0JfQo+ICAJLyogZGVmaW5lcyBudW1i ZXIgb2YgYml0cyBpbiBwYWdlIHRhYmxlIHZlcnN1cyBwYWdlIGRpcmVjdG9yeSwKPiAgCSAqIGEg cGFnZSBpcyA0S0Igc28gd2UgaGF2ZSAxMiBiaXRzIG9mZnNldCwgbWluaW11bSA5IGJpdHMgaW4g dGhlCj4gIAkgKiBwYWdlIHRhYmxlIGFuZCB0aGUgcmVtYWluaW5nIGJpdHMgYXJlIGluIHRoZSBw YWdlIGRpcmVjdG9yeSAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfdm0uYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMK PiBpbmRleCA0M2FkYzRiLi40NmQzZjFhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmMKPiBAQCAtMTAwLDEzICsxMDAsMTQgQEAgc3RhdGljIHVuc2lnbmVkIGFtZGdw dV92bV9udW1fZW50cmllcyhzdHJ1Y3QKPiBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJaWYgKGxl dmVsID09IDApCj4gIAkJLyogRm9yIHRoZSByb290IGRpcmVjdG9yeSAqLwo+ICAJCXJldHVybiBh ZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPj4KPiAtCQkJKGFtZGdwdV92bV9ibG9ja19zaXplICog YWRldi0KPiA+dm1fbWFuYWdlci5udW1fbGV2ZWwpOwo+ICsJCQkoYWRldi0+dm1fbWFuYWdlci5i bG9ja19zaXplICoKPiArCQkJIGFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsKTsKPiAgCWVsc2Ug aWYgKGxldmVsID09IGFkZXYtPnZtX21hbmFnZXIubnVtX2xldmVsKQo+ICAJCS8qIEZvciB0aGUg cGFnZSB0YWJsZXMgb24gdGhlIGxlYXZlcyAqLwo+IC0JCXJldHVybiBBTURHUFVfVk1fUFRFX0NP VU5UOwo+ICsJCXJldHVybiBBTURHUFVfVk1fUFRFX0NPVU5UKGFkZXYpOwo+ICAJZWxzZQo+ICAJ CS8qIEV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiAqLwo+IC0JCXJldHVybiAxIDw8IGFtZGdwdV92bV9i bG9ja19zaXplOwo+ICsJCXJldHVybiAxIDw8IGFkZXYtPnZtX21hbmFnZXIuYmxvY2tfc2l6ZTsK PiAgfQo+IAo+ICAvKioKPiBAQCAtMjcxLDcgKzI3Miw3IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X3Zt X2FsbG9jX2xldmVscyhzdHJ1Y3QKPiBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJCQkJICB1bnNp Z25lZCBsZXZlbCkKPiAgewo+ICAJdW5zaWduZWQgc2hpZnQgPSAoYWRldi0+dm1fbWFuYWdlci5u dW1fbGV2ZWwgLSBsZXZlbCkgKgo+IC0JCWFtZGdwdV92bV9ibG9ja19zaXplOwo+ICsJCWFkZXYt PnZtX21hbmFnZXIuYmxvY2tfc2l6ZTsKPiAgCXVuc2lnbmVkIHB0X2lkeCwgZnJvbSwgdG87Cj4g IAlpbnQgcjsKPiAKPiBAQCAtOTcwLDcgKzk3MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYW1kZ3B1X2Jv ICphbWRncHVfdm1fZ2V0X3B0KHN0cnVjdAo+IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyAqcCwK PiAgCXVuc2lnbmVkIGlkeCwgbGV2ZWwgPSBwLT5hZGV2LT52bV9tYW5hZ2VyLm51bV9sZXZlbDsK PiAKPiAgCXdoaWxlIChlbnRyeS0+ZW50cmllcykgewo+IC0JCWlkeCA9IGFkZHIgPj4gKGFtZGdw dV92bV9ibG9ja19zaXplICogbGV2ZWwtLSk7Cj4gKwkJaWR4ID0gYWRkciA+PiAocC0+YWRldi0+ dm1fbWFuYWdlci5ibG9ja19zaXplICogbGV2ZWwtLSk7Cj4gIAkJaWR4ICU9IGFtZGdwdV9ib19z aXplKGVudHJ5LT5ibykgLyA4Owo+ICAJCWVudHJ5ID0gJmVudHJ5LT5lbnRyaWVzW2lkeF07Cj4g IAl9Cj4gQEAgLTk5Nyw3ICs5OTgsOCBAQCBzdGF0aWMgdm9pZCBhbWRncHVfdm1fdXBkYXRlX3B0 ZXMoc3RydWN0Cj4gYW1kZ3B1X3B0ZV91cGRhdGVfcGFyYW1zICpwYXJhbXMsCj4gIAkJCQkgIHVp bnQ2NF90IHN0YXJ0LCB1aW50NjRfdCBlbmQsCj4gIAkJCQkgIHVpbnQ2NF90IGRzdCwgdWludDY0 X3QgZmxhZ3MpCj4gIHsKPiAtCWNvbnN0IHVpbnQ2NF90IG1hc2sgPSBBTURHUFVfVk1fUFRFX0NP VU5UIC0gMTsKPiArCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gcGFyYW1zLT5hZGV2Owo+ ICsJY29uc3QgdWludDY0X3QgbWFzayA9IEFNREdQVV9WTV9QVEVfQ09VTlQoYWRldikgLSAxOwo+ IAo+ICAJdWludDY0X3QgY3VyX3BlX3N0YXJ0LCBjdXJfbnB0ZXMsIGN1cl9kc3Q7Cj4gIAl1aW50 NjRfdCBhZGRyOyAvKiBuZXh0IEdQVSBhZGRyZXNzIHRvIGJlIHVwZGF0ZWQgKi8KPiBAQCAtMTAy MSw3ICsxMDIzLDcgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X3ZtX3VwZGF0ZV9wdGVzKHN0cnVjdAo+ IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyAqcGFyYW1zLAo+ICAJaWYgKChhZGRyICYgfm1hc2sp ID09IChlbmQgJiB+bWFzaykpCj4gIAkJbnB0ZXMgPSBlbmQgLSBhZGRyOwo+ICAJZWxzZQo+IC0J CW5wdGVzID0gQU1ER1BVX1ZNX1BURV9DT1VOVCAtIChhZGRyICYgbWFzayk7Cj4gKwkJbnB0ZXMg PSBBTURHUFVfVk1fUFRFX0NPVU5UKGFkZXYpIC0gKGFkZHIgJiBtYXNrKTsKPiAKPiAgCWN1cl9w ZV9zdGFydCA9IGFtZGdwdV9ib19ncHVfb2Zmc2V0KHB0KTsKPiAgCWN1cl9wZV9zdGFydCArPSAo YWRkciAmIG1hc2spICogODsKPiBAQCAtMTA0OSw3ICsxMDUxLDcgQEAgc3RhdGljIHZvaWQgYW1k Z3B1X3ZtX3VwZGF0ZV9wdGVzKHN0cnVjdAo+IGFtZGdwdV9wdGVfdXBkYXRlX3BhcmFtcyAqcGFy YW1zLAo+ICAJCWlmICgoYWRkciAmIH5tYXNrKSA9PSAoZW5kICYgfm1hc2spKQo+ICAJCQlucHRl cyA9IGVuZCAtIGFkZHI7Cj4gIAkJZWxzZQo+IC0JCQlucHRlcyA9IEFNREdQVV9WTV9QVEVfQ09V TlQgLSAoYWRkciAmIG1hc2spOwo+ICsJCQlucHRlcyA9IEFNREdQVV9WTV9QVEVfQ09VTlQoYWRl dikgLSAoYWRkciAmCj4gbWFzayk7Cj4gCj4gIAkJbmV4dF9wZV9zdGFydCA9IGFtZGdwdV9ib19n cHVfb2Zmc2V0KHB0KTsKPiAgCQluZXh0X3BlX3N0YXJ0ICs9IChhZGRyICYgbWFzaykgKiA4Owo+ IEBAIC0xMTk2LDcgKzExOTgsNyBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV9ib191cGRhdGVfbWFw cGluZyhzdHJ1Y3QKPiBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAJICogcmVzZXJ2ZSBzcGFjZSBm b3Igb25lIGNvbW1hbmQgZXZlcnkgKDEgPDwgQkxPQ0tfU0laRSkKPiAgCSAqICBlbnRyaWVzIG9y IDJrIGR3b3JkcyAod2hhdGV2ZXIgaXMgc21hbGxlcikKPiAgCSAqLwo+IC0JbmNtZHMgPSAobnB0 ZXMgPj4gbWluKGFtZGdwdV92bV9ibG9ja19zaXplLCAxMSkpICsgMTsKPiArCW5jbWRzID0gKG5w dGVzID4+IG1pbihhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUsIDExKSkgKyAxOwo+IAo+ICAJ LyogcGFkZGluZywgZXRjLiAqLwo+ICAJbmR3ID0gNjQ7Cj4gQEAgLTIwNjcsNyArMjA2OSw3IEBA IHZvaWQgYW1kZ3B1X3ZtX2JvX2ludmFsaWRhdGUoc3RydWN0Cj4gYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgaW50IGFtZGdwdV92bV9pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCBzdHJ1 Y3QgYW1kZ3B1X3ZtICp2bSkKPiAgewo+ICAJY29uc3QgdW5zaWduZWQgYWxpZ24gPSBtaW4oQU1E R1BVX1ZNX1BUQl9BTElHTl9TSVpFLAo+IC0JCUFNREdQVV9WTV9QVEVfQ09VTlQgKiA4KTsKPiAr CQlBTURHUFVfVk1fUFRFX0NPVU5UKGFkZXYpICogOCk7Cj4gIAl1bnNpZ25lZCByaW5nX2luc3Rh bmNlOwo+ICAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nOwo+ICAJc3RydWN0IGFtZF9zY2hlZF9y cSAqcnE7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92 bS5oCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+IGluZGV4IDEw MmIxZjcuLjEyNDIyNjQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X3ZtLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0u aAo+IEBAIC00NSw3ICs0NSw3IEBACj4gICNkZWZpbmUgQU1ER1BVX1ZNX01BWF9VUERBVEVfU0la RQkweDNGRkZGCj4gCj4gIC8qIG51bWJlciBvZiBlbnRyaWVzIGluIHBhZ2UgdGFibGUgKi8KPiAt I2RlZmluZSBBTURHUFVfVk1fUFRFX0NPVU5UICgxIDw8IGFtZGdwdV92bV9ibG9ja19zaXplKQo+ ICsjZGVmaW5lIEFNREdQVV9WTV9QVEVfQ09VTlQoYWRldikgKDEgPDwgYWRldi0KPiA+dm1fbWFu YWdlci5ibG9ja19zaXplKQoKRm9yIHNhZmV0eSwgcHV0IHBhcmVucyBhcm91bmQgYWRldi4gIEUu Zy4sCiNkZWZpbmUgQU1ER1BVX1ZNX1BURV9DT1VOVChhZGV2KSAoMSA8PCAoYWRldiktPnZtX21h bmFnZXIuYmxvY2tfc2l6ZSkKCldpdGggdGhhdCBmaXhlZDoKUmV2aWV3ZWQtYnk6IEFsZXggRGV1 Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1kLmNvbT4KCkFzIGEgZm9sbG93IG9uIHBhdGNoLCBp dCB3b3VsZCBiZSBuaWNlIHRvIGFkZCBzb21lIHJlYXNvbmFibGUgY2xhbXBpbmcgaW4gdGhlIGdt YyBmaWxlcyBzbyB3ZSBjYW4gc3RpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2V0dGluZ3MgYW5k IG5vdCBjYXVzZSB0b28gbXVjaCBwcm9ibGVtIHdpdGggbXVsdGlwbGUgYXNpY3MgaW4gdGhlIHNh bWUgc3lzdGVtLgoKQWxleAoKPiAKPiAgLyogUFRCcyAoUGFnZSBUYWJsZSBCbG9ja3MpIG5lZWQg dG8gYmUgYWxpZ25lZCB0byAzMksgKi8KPiAgI2RlZmluZSBBTURHUFVfVk1fUFRCX0FMSUdOX1NJ WkUgICAzMjc2OAo+IEBAIC0xNTUsNiArMTU1LDggQEAgc3RydWN0IGFtZGdwdV92bV9tYW5hZ2Vy IHsKPiAKPiAgCXVpbnQ2NF90CQkJCW1heF9wZm47Cj4gIAl1aW50MzJfdAkJCQludW1fbGV2ZWw7 Cj4gKwl1aW50NjRfdAkJCQl2bV9zaXplOwo+ICsJdWludDMyX3QJCQkJYmxvY2tfc2l6ZTsKPiAg CS8qIHZyYW0gYmFzZSBhZGRyZXNzIGZvciBwYWdlIHRhYmxlIGVudHJ5ICAqLwo+ICAJdTY0CQkJ CQl2cmFtX2Jhc2Vfb2Zmc2V0Owo+ICAJLyogaXMgdm0gZW5hYmxlZD8gKi8KPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YxXzAuYwo+IGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YxXzAuYwo+IGluZGV4IDMwZWYzMTIuLjkyMjNjMmIg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4aHViX3YxXzAuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeGh1Yl92MV8wLmMKPiBAQCAtMjIy LDcgKzIyMiw3IEBAIGludCBnZnhodWJfdjFfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZQo+ICphZGV2KQo+IAo+IAlFWEVDVVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFV TFQsIDEpOwo+ICAJCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9DT05URVhUMV9DTlRMLAo+ ICAJCQkJUEFHRV9UQUJMRV9CTE9DS19TSVpFLAo+IC0JCQkJICAgIGFtZGdwdV92bV9ibG9ja19z aXplIC0gOSk7Cj4gKwkJCQlhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgLSA5KTsKPiAgCQlX UkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKPiBtbVZNX0NPTlRFWFQxX0NOVEwpICsgaSwg dG1wKTsKPiAgCQlXUkVHMzIoU09DMTVfUkVHX09GRlNFVChHQywgMCwKPiBtbVZNX0NPTlRFWFQx X1BBR0VfVEFCTEVfU1RBUlRfQUREUl9MTzMyKSArIGkqMiwgMCk7Cj4gIAkJV1JFRzMyKFNPQzE1 X1JFR19PRkZTRVQoR0MsIDAsCj4gbW1WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJf SEkzMikgKyBpKjIsIDApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjZfMC5jCj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4g aW5kZXggZDk1ODY2MC4uMzBkNWM0MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjZfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y2XzAuYwo+IEBAIC01NDMsNyArNTQzLDggQEAgc3RhdGljIGludCBnbWNfdjZfMF9nYXJ0X2Vu YWJsZShzdHJ1Y3QKPiBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAJV1JFRzMyKG1tVk1fQ09OVEVY VDFfQ05UTCwKPiAgCSAgICAgICBWTV9DT05URVhUMV9DTlRMX19FTkFCTEVfQ09OVEVYVF9NQVNL IHwKPiAgCSAgICAgICAoMVVMIDw8IFZNX0NPTlRFWFQxX0NOVExfX1BBR0VfVEFCTEVfREVQVEhf X1NISUZUKSB8Cj4gLQkgICAgICAgKChhbWRncHVfdm1fYmxvY2tfc2l6ZSAtIDkpIDw8Cj4gVk1f Q09OVEVYVDFfQ05UTF9fUEFHRV9UQUJMRV9CTE9DS19TSVpFX19TSElGVCkpOwo+ICsJICAgICAg ICgoYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplIC0gOSkKPiArCSAgICAgICA8PCBWTV9DT05U RVhUMV9DTlRMX19QQUdFX1RBQkxFX0JMT0NLX1NJWkVfX1NISUZUKSk7Cj4gIAlpZiAoYW1kZ3B1 X3ZtX2ZhdWx0X3N0b3AgPT0KPiBBTURHUFVfVk1fRkFVTFRfU1RPUF9BTFdBWVMpCj4gIAkJZ21j X3Y2XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KGFkZXYsIGZhbHNlKTsKPiAgCWVsc2UKPiBA QCAtODQ4LDcgKzg0OSwxMiBAQCBzdGF0aWMgaW50IGdtY192Nl8wX3N3X2luaXQodm9pZCAqaGFu ZGxlKQo+ICAJaWYgKHIpCj4gIAkJcmV0dXJuIHI7Cj4gCj4gLQlhZGV2LT52bV9tYW5hZ2VyLm1h eF9wZm4gPSBhbWRncHVfdm1fc2l6ZSA8PCAxODsKPiArCWFkZXYtPnZtX21hbmFnZXIudm1fc2l6 ZSA9IGFtZGdwdV92bV9zaXplOwo+ICsJYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0gYW1k Z3B1X3ZtX2Jsb2NrX3NpemU7Cj4gKwlhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52 bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4gKwo+ICsJRFJNX0lORk8oInZtIHNpemUgaXMgJWQg R0IsIGJsb2NrIHNpemUgaXMgJWQtYml0XG4iLAo+ICsJCWFkZXYtPnZtX21hbmFnZXIudm1fc2l6 ZSwgYWRldi0KPiA+dm1fbWFuYWdlci5ibG9ja19zaXplKTsKPiAKPiAgCWFkZXYtPm1jLm1jX21h c2sgPSAweGZmZmZmZmZmZmZVTEw7Cj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192N18wLmMKPiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192 N18wLmMKPiBpbmRleCAwYzBhNjAxLi45NDI3YzdkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjdfMC5jCj4gQEAgLTYzOSw3ICs2MzksNyBAQCBzdGF0aWMgaW50IGdtY192N18w X2dhcnRfZW5hYmxlKHN0cnVjdAo+IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gIAl0bXAgPSBSRUdf U0VUX0ZJRUxEKHRtcCwgVk1fQ09OVEVYVDFfQ05UTCwKPiBFTkFCTEVfQ09OVEVYVCwgMSk7Cj4g IAl0bXAgPSBSRUdfU0VUX0ZJRUxEKHRtcCwgVk1fQ09OVEVYVDFfQ05UTCwKPiBQQUdFX1RBQkxF X0RFUFRILCAxKTsKPiAgCXRtcCA9IFJFR19TRVRfRklFTEQodG1wLCBWTV9DT05URVhUMV9DTlRM LAo+IFBBR0VfVEFCTEVfQkxPQ0tfU0laRSwKPiAtCQkJICAgIGFtZGdwdV92bV9ibG9ja19zaXpl IC0gOSk7Cj4gKwkJCSAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgLSA5KTsKPiAgCVdS RUczMihtbVZNX0NPTlRFWFQxX0NOVEwsIHRtcCk7Cj4gIAlpZiAoYW1kZ3B1X3ZtX2ZhdWx0X3N0 b3AgPT0KPiBBTURHUFVfVk1fRkFVTFRfU1RPUF9BTFdBWVMpCj4gIAkJZ21jX3Y3XzBfc2V0X2Zh dWx0X2VuYWJsZV9kZWZhdWx0KGFkZXYsIGZhbHNlKTsKPiBAQCAtOTk4LDcgKzk5OCwxMiBAQCBz dGF0aWMgaW50IGdtY192N18wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+ICAJICogQ3VycmVudGx5 IHNldCB0byA0R0IgKCgxIDw8IDIwKSA0ayBwYWdlcykuCj4gIAkgKiBNYXggR1BVVk0gc2l6ZSBm b3IgY2F5bWFuIGFuZCBTSSBpcyA0MCBiaXRzLgo+ICAJICovCj4gLQlhZGV2LT52bV9tYW5hZ2Vy Lm1heF9wZm4gPSBhbWRncHVfdm1fc2l6ZSA8PCAxODsKPiArCWFkZXYtPnZtX21hbmFnZXIudm1f c2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+ICsJYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0g YW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4gKwlhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2 LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4gKwo+ICsJRFJNX0lORk8oInZtIHNpemUgaXMg JWQgR0IsIGJsb2NrIHNpemUgaXMgJWQtYml0XG4iLAo+ICsJCWFkZXYtPnZtX21hbmFnZXIudm1f c2l6ZSwgYWRldi0KPiA+dm1fbWFuYWdlci5ibG9ja19zaXplKTsKPiAKPiAgCS8qIFNldCB0aGUg aW50ZXJuYWwgTUMgYWRkcmVzcyBtYXNrCj4gIAkgKiBUaGlzIGlzIHRoZSBtYXggYWRkcmVzcyBv ZiB0aGUgR1BVJ3MKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y4XzAuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+IGluZGV4 IGQxOWQxYzUuLjE2NzQyYmUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3Y4XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8w LmMKPiBAQCAtODQ4LDcgKzg0OCw3IEBAIHN0YXRpYyBpbnQgZ21jX3Y4XzBfZ2FydF9lbmFibGUo c3RydWN0Cj4gYW1kZ3B1X2RldmljZSAqYWRldikKPiAgCXRtcCA9IFJFR19TRVRfRklFTEQodG1w LCBWTV9DT05URVhUMV9DTlRMLAo+IFdSSVRFX1BST1RFQ1RJT05fRkFVTFRfRU5BQkxFX0RFRkFV TFQsIDEpOwo+ICAJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZNX0NPTlRFWFQxX0NOVEwsCj4g RVhFQ1VURV9QUk9URUNUSU9OX0ZBVUxUX0VOQUJMRV9ERUZBVUxULCAxKTsKPiAgCXRtcCA9IFJF R19TRVRfRklFTEQodG1wLCBWTV9DT05URVhUMV9DTlRMLAo+IFBBR0VfVEFCTEVfQkxPQ0tfU0la RSwKPiAtCQkJICAgIGFtZGdwdV92bV9ibG9ja19zaXplIC0gOSk7Cj4gKwkJCSAgICBhZGV2LT52 bV9tYW5hZ2VyLmJsb2NrX3NpemUgLSA5KTsKPiAgCVdSRUczMihtbVZNX0NPTlRFWFQxX0NOVEws IHRtcCk7Cj4gIAlpZiAoYW1kZ3B1X3ZtX2ZhdWx0X3N0b3AgPT0KPiBBTURHUFVfVk1fRkFVTFRf U1RPUF9BTFdBWVMpCj4gIAkJZ21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KGFkZXYs IGZhbHNlKTsKPiBAQCAtMTA4Miw3ICsxMDgyLDEyIEBAIHN0YXRpYyBpbnQgZ21jX3Y4XzBfc3df aW5pdCh2b2lkICpoYW5kbGUpCj4gIAkgKiBDdXJyZW50bHkgc2V0IHRvIDRHQiAoKDEgPDwgMjAp IDRrIHBhZ2VzKS4KPiAgCSAqIE1heCBHUFVWTSBzaXplIGZvciBjYXltYW4gYW5kIFNJIGlzIDQw IGJpdHMuCj4gIAkgKi8KPiAtCWFkZXYtPnZtX21hbmFnZXIubWF4X3BmbiA9IGFtZGdwdV92bV9z aXplIDw8IDE4Owo+ICsJYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gYW1kZ3B1X3ZtX3NpemU7 Cj4gKwlhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsK PiArCWFkZXYtPnZtX21hbmFnZXIubWF4X3BmbiA9IGFkZXYtPnZtX21hbmFnZXIudm1fc2l6ZSA8 PCAxODsKPiArCj4gKwlEUk1fSU5GTygidm0gc2l6ZSBpcyAlZCBHQiwgYmxvY2sgc2l6ZSBpcyAl ZC1iaXRcbiIsCj4gKwkJYWRldi0+dm1fbWFuYWdlci52bV9zaXplLCBhZGV2LQo+ID52bV9tYW5h Z2VyLmJsb2NrX3NpemUpOwo+IAo+ICAJLyogU2V0IHRoZSBpbnRlcm5hbCBNQyBhZGRyZXNzIG1h c2sKPiAgCSAqIFRoaXMgaXMgdGhlIG1heCBhZGRyZXNzIG9mIHRoZSBHUFUncwo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gaW5kZXggZGY2OWFhZS4uMjE4MGVkYiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+IEBAIC01NDMsMTEgKzU0Mywy MyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+IAo+ICAJaWYg KGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkgewo+ICAJCWFkZXYtPm1jLnZyYW1fdHlwZSA9IEFN REdQVV9WUkFNX1RZUEVfVU5LTk9XTjsKPiArCQlhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSBh bWRncHVfdm1fc2l6ZTsKPiArCQlhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVf dm1fYmxvY2tfc2l6ZTsKPiAgCX0gZWxzZSB7Cj4gIAkJLyogWFhYIERvbid0IGtub3cgaG93IHRv IGdldCBWUkFNIHR5cGUgeWV0LiAqLwo+ICAJCWFkZXYtPm1jLnZyYW1fdHlwZSA9IEFNREdQVV9W UkFNX1RZUEVfSEJNOwo+ICsJCS8qCj4gKwkJICogVG8gZnVsZmlsbCA0LWxldmVsIHBhZ2Ugc3Vw cG9ydCwKPiArCQkgKiB2bSBzaXplIGlzIDI1NlRCICg0OGJpdCksIG1heGltdW0gc2l6ZSBvZiBW ZWdhMTAsCj4gKwkJICogYmxvY2sgc2l6ZSA1MTIgKDliaXQpCj4gKwkJICovCj4gKwkJYWRldi0+ dm1fbWFuYWdlci52bV9zaXplID0gMVUgPDwgMTg7Cj4gKwkJYWRldi0+dm1fbWFuYWdlci5ibG9j a19zaXplID0gOTsKPiAgCX0KPiAKPiArCURSTV9JTkZPKCJ2bSBzaXplIGlzICVkIEdCLCBibG9j ayBzaXplIGlzICVkLWJpdFxuIiwKPiArCQlhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUsIGFkZXYt Cj4gPnZtX21hbmFnZXIuYmxvY2tfc2l6ZSk7Cj4gKwo+ICAJLyogVGhpcyBpbnRlcnJ1cHQgaXMg Vk1DIHBhZ2UgZmF1bHQuKi8KPiAgCXIgPSBhbWRncHVfaXJxX2FkZF9pZChhZGV2LCBBTURHUFVf SUhfQ0xJRU5USURfVk1DLCAwLAo+ICAJCQkJJmFkZXYtPm1jLnZtX2ZhdWx0KTsKPiBAQCAtNTU3 LDE0ICs1NjksNyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+ ICAJaWYgKHIpCj4gIAkJcmV0dXJuIHI7Cj4gCj4gLQkvKiBCZWNhdXNlIG9mIGZvdXIgbGV2ZWwg Vk1QVHMsIHZtIHNpemUgaXMgYXQgbGVhc3QgNTEyR0IuCj4gLQkgKiBUaGUgbWF4aW11bSBzaXpl IGlzIDI1NlRCICg0OGJpdCkuCj4gLQkgKi8KPiAtCWlmIChhbWRncHVfdm1fc2l6ZSA8IDUxMikg ewo+IC0JCURSTV9XQVJOKCJWTSBzaXplIGlzIGF0IGxlYXN0IDUxMkdCIVxuIik7Cj4gLQkJYW1k Z3B1X3ZtX3NpemUgPSA1MTI7Cj4gLQl9Cj4gLQlhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSAo dWludDY0X3QpYW1kZ3B1X3ZtX3NpemUgPDwgMTg7Cj4gKwlhZGV2LT52bV9tYW5hZ2VyLm1heF9w Zm4gPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4gCj4gIAkvKiBTZXQgdGhlIGlu dGVybmFsIE1DIGFkZHJlc3MgbWFzawo+ICAJICogVGhpcyBpcyB0aGUgbWF4IGFkZHJlc3Mgb2Yg dGhlIEdQVSdzCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L21taHVi X3YxXzAuYwo+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvbW1odWJfdjFfMC5jCj4gaW5k ZXggMjY2YTBmNC4uMmNjMWQ1OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9tbWh1Yl92MV8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9tbWh1 Yl92MV8wLmMKPiBAQCAtMjQyLDcgKzI0Miw3IEBAIGludCBtbWh1Yl92MV8wX2dhcnRfZW5hYmxl KHN0cnVjdCBhbWRncHVfZGV2aWNlCj4gKmFkZXYpCj4gCj4gCUVYRUNVVEVfUFJPVEVDVElPTl9G QVVMVF9FTkFCTEVfREVGQVVMVCwgMSk7Cj4gIAkJdG1wID0gUkVHX1NFVF9GSUVMRCh0bXAsIFZN X0NPTlRFWFQxX0NOVEwsCj4gIAkJCQlQQUdFX1RBQkxFX0JMT0NLX1NJWkUsCj4gLQkJCQlhbWRn cHVfdm1fYmxvY2tfc2l6ZSAtIDkpOwo+ICsJCQkJYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXpl IC0gOSk7Cj4gIAkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoTU1IVUIsIDAsCj4gbW1WTV9DT05U RVhUMV9DTlRMKSArIGksIHRtcCk7Cj4gIAkJV1JFRzMyKFNPQzE1X1JFR19PRkZTRVQoTU1IVUIs IDAsCj4gbW1WTV9DT05URVhUMV9QQUdFX1RBQkxFX1NUQVJUX0FERFJfTE8zMikgKyBpKjIsIDAp Owo+ICAJCVdSRUczMihTT0MxNV9SRUdfT0ZGU0VUKE1NSFVCLCAwLAo+IG1tVk1fQ09OVEVYVDFf UEFHRV9UQUJMRV9TVEFSVF9BRERSX0hJMzIpICsgaSoyLCAwKTsKPiAtLQo+IDEuOS4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxp bmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK