From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH] drm/amdgpu: set vm size and block size by individual gmc by default Date: Thu, 6 Apr 2017 18:01:51 +0800 Message-ID: <58E6120F.3060603@amd.com> References: <1491374607-10475-1-git-send-email-Jerry.Zhang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: 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==?= , Alex Deucher Cc: "Deucher, Alexander" , amd-gfx list VGhhbmtzIHlvdSBhbGwgZm9yIHRoZSBjb21tZW50cwpVcGRhdGVkIHRoZSB2MiwgcGxlYXNlIGhl bHAgcmV2aWV3CgpPbiAwNC8wNS8yMDE3IDA5OjM5IFBNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3Rl Ogo+IEFtIDA1LjA0LjIwMTcgdW0gMTU6MzIgc2NocmllYiBBbGV4IERldWNoZXI6Cj4+IE9uIFdl ZCwgQXByIDUsIDIwMTcgYXQgNTowMSBBTSwgQ2hyaXN0aWFuIEvDtm5pZyA8ZGVhdGhzaW1wbGVA dm9kYWZvbmUuZGU+IHdyb3RlOgo+Pj4gQW0gMDUuMDQuMjAxNyB1bSAwODo0MyBzY2hyaWViIEp1 bndlaSBaaGFuZzoKPj4+PiBCeSBkZWZhdWx0LCB0aGUgdmFsdWUgaXMgc2V0IGJ5IGluZGl2aWR1 YWwgZ21jLgo+Pj4+IGlmIGEgc3BlY2lmaWMgdmFsdWUgaXMgaW5wdXQsIGl0IG92ZXJyaWRlcyB0 aGUgZ2xvYmFsIHZhbHVlIGZvciBhbGwKPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IEp1bndlaSBa aGFuZyA8SmVycnkuWmhhbmdAYW1kLmNvbT4KPj4+PiAtLS0KPj4+PiAgICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHUuaCAgICAgICAgfCAgMiArKwo+Pj4+ICAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYyB8IDQ0Cj4+Pj4gKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X2Rydi5jICAgIHwgIDIgKy0KPj4+PiAgICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djZfMC5jICAgICAgfCAxMCArKysrKy0tCj4+Pj4gICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3Y3XzAuYyAgICAgIHwgMTAgKysrKystLQo+Pj4+ICAgIGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192OF8wLmMgICAgICB8IDEwICsrKysrLS0KPj4+PiAgICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICAgfCAzMCArKysrKysrKysrKysrKy0tLS0t LQo+Pj4+ICAgIDcgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9ucygrKSwgMzQgZGVsZXRpb25z KC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1LmgKPj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4+Pj4gaW5k ZXggNjUwMjFkZi4uZDdmNzVjZSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9hbWRncHUuaAo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdS5oCj4+Pj4gQEAgLTE2NDcsNiArMTY0Nyw4IEBAIHZvaWQgYW1kZ3B1X21tX3dyZWcoc3Ry dWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCj4+Pj4gdWludDMyX3QgcmVnLCB1aW50MzJfdCB2LAo+ Pj4+ICAgIGJvb2wgYW1kZ3B1X2RldmljZV9hc2ljX2hhc19kY19zdXBwb3J0KGVudW0gYW1kX2Fz aWNfdHlwZSBhc2ljX3R5cGUpOwo+Pj4+ICAgIGJvb2wgYW1kZ3B1X2RldmljZV9oYXNfZGNfc3Vw cG9ydChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldik7Cj4+Pj4gICAgK3VpbnQzMl90IGFtZGdw dV9nZXRfYmxvY2tfc2l6ZShpbnQgdm1fc2l6ZSk7Cj4+Pj4gKwo+Pj4+ICAgIC8qCj4+Pj4gICAg ICogUmVnaXN0ZXJzIHJlYWQgJiB3cml0ZSBmdW5jdGlvbnMuCj4+Pj4gICAgICovCj4+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9kZXZpY2UuYwo+Pj4+ IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2RldmljZS5jCj4+Pj4gaW5kZXgg MWQwYzc0Mi4uMmY5MWMyZiAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfZGV2aWNlLmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfZGV2aWNlLmMKPj4+PiBAQCAtMTAzOSwzNSArMTAzOSw0NCBAQCBzdGF0aWMgYm9v bCBhbWRncHVfY2hlY2tfcG90X2FyZ3VtZW50KGludCBhcmcpCj4+Pj4gICAgICAgICAgcmV0dXJu IChhcmcgJiAoYXJnIC0gMSkpID09IDA7Cj4+Pj4gICAgfQo+Pj4+ICAgIC1zdGF0aWMgdm9pZCBh bWRncHVfZ2V0X2Jsb2NrX3NpemUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4+Pj4gK3Vp bnQzMl90IGFtZGdwdV9nZXRfYmxvY2tfc2l6ZShpbnQgdm1fc2l6ZSkKPj4+PiArewo+Pj4+ICsg ICAgICAgLyogVG90YWwgYml0cyBjb3ZlcmVkIGJ5IFBEICsgUFRzICovCj4+Pj4gKyAgICAgICB1 bnNpZ25lZCBiaXRzID0gaWxvZzIodm1fc2l6ZSkgKyAxODsKPj4+PiArCj4+Pj4gKyAgICAgICAv KiBNYWtlIHN1cmUgdGhlIFBEIGlzIDRLIGluIHNpemUgdXAgdG8gOEdCIGFkZHJlc3Mgc3BhY2Uu Cj4+Pj4gKyAgICAgICAgICBBYm92ZSB0aGF0IHNwbGl0IGVxdWFsIGJldHdlZW4gUEQgYW5kIFBU cyAqLwo+Pj4+ICsgICAgICAgaWYgKHZtX3NpemUgPD0gOCkKPj4+PiArICAgICAgICAgICAgICAg cmV0dXJuIChiaXRzIC0gOSk7Cj4+Pj4gKyAgICAgICBlbHNlCj4+Pj4gKyAgICAgICAgICAgICAg IHJldHVybiAoKGJpdHMgKyAzKSAvIDIpOwo+Pj4+ICt9Cj4+Pgo+Pj4gUGxlYXNlIG1vdmUgdGhh dCBoZWxwZXIgaW50byBhbWRncHVfdm1jLmMuCj4+Pgo+Pj4KPj4+PiArCj4+Pj4gK3N0YXRpYyB2 b2lkIGFtZGdwdV9jaGVja19ibG9ja19zaXplKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ Pj4+ICAgIHsKPj4+PiAgICAgICAgICAvKiBkZWZpbmVzIG51bWJlciBvZiBiaXRzIGluIHBhZ2Ug dGFibGUgdmVyc3VzIHBhZ2UgZGlyZWN0b3J5LAo+Pj4+ICAgICAgICAgICAqIGEgcGFnZSBpcyA0 S0Igc28gd2UgaGF2ZSAxMiBiaXRzIG9mZnNldCwgbWluaW11bSA5IGJpdHMgaW4gdGhlCj4+Pj4g ICAgICAgICAgICogcGFnZSB0YWJsZSBhbmQgdGhlIHJlbWFpbmluZyBiaXRzIGFyZSBpbiB0aGUg cGFnZSBkaXJlY3RvcnkgKi8KPj4+PiAtICAgICAgIGlmIChhbWRncHVfdm1fYmxvY2tfc2l6ZSA9 PSAtMSkgewo+Pj4+IC0KPj4+PiAtICAgICAgICAgICAgICAgLyogVG90YWwgYml0cyBjb3ZlcmVk IGJ5IFBEICsgUFRzICovCj4+Pj4gLSAgICAgICAgICAgICAgIHVuc2lnbmVkIGJpdHMgPSBpbG9n MihhbWRncHVfdm1fc2l6ZSkgKyAxODsKPj4+PiAtCj4+Pj4gLSAgICAgICAgICAgICAgIC8qIE1h a2Ugc3VyZSB0aGUgUEQgaXMgNEsgaW4gc2l6ZSB1cCB0byA4R0IgYWRkcmVzcyBzcGFjZS4KPj4+ PiAtICAgICAgICAgICAgICAgICAgQWJvdmUgdGhhdCBzcGxpdCBlcXVhbCBiZXR3ZWVuIFBEIGFu ZCBQVHMgKi8KPj4+PiAtICAgICAgICAgICAgICAgaWYgKGFtZGdwdV92bV9zaXplIDw9IDgpCj4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X3ZtX2Jsb2NrX3NpemUgPSBiaXRzIC0g OTsKPj4+PiAtICAgICAgICAgICAgICAgZWxzZQo+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAg IGFtZGdwdV92bV9ibG9ja19zaXplID0gKGJpdHMgKyAzKSAvIDI7Cj4+Pj4gKyAgICAgICBpZiAo YW1kZ3B1X3ZtX2Jsb2NrX3NpemUgPT0gLTEpCj4+Pj4gKyAgICAgICAgICAgICAgIHJldHVybjsK Pj4+PiAgICAtICAgICB9IGVsc2UgaWYgKGFtZGdwdV92bV9ibG9ja19zaXplIDwgOSkgewo+Pj4+ ICsgICAgICAgaWYgKGFtZGdwdV92bV9ibG9ja19zaXplIDwgOSkgewo+Pj4+ICAgICAgICAgICAg ICAgICAgZGV2X3dhcm4oYWRldi0+ZGV2LCAiVk0gcGFnZSB0YWJsZSBzaXplICglZCkgdG9vIHNt YWxsXG4iLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW1kZ3B1X3ZtX2Jsb2NrX3Np emUpOwo+Pj4+IC0gICAgICAgICAgICAgICBhbWRncHVfdm1fYmxvY2tfc2l6ZSA9IDk7Cj4+Pj4g KyAgICAgICAgICAgICAgIGdvdG8gZGVmX3ZhbHVlOwo+Pj4+ICAgICAgICAgIH0KPj4+PiAgICAg ICAgICBpZiAoYW1kZ3B1X3ZtX2Jsb2NrX3NpemUgPiAyNCB8fAo+Pj4+ICAgICAgICAgICAgICAo YW1kZ3B1X3ZtX3NpemUgKiAxMDI0KSA8ICgxdWxsIDw8IGFtZGdwdV92bV9ibG9ja19zaXplKSkg ewo+Pj4+ICAgICAgICAgICAgICAgICAgZGV2X3dhcm4oYWRldi0+ZGV2LCAiVk0gcGFnZSB0YWJs ZSBzaXplICglZCkgdG9vIGxhcmdlXG4iLAo+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAg YW1kZ3B1X3ZtX2Jsb2NrX3NpemUpOwo+Pj4+IC0gICAgICAgICAgICAgICBhbWRncHVfdm1fYmxv Y2tfc2l6ZSA9IDk7Cj4+Pj4gKyAgICAgICAgICAgICAgIGdvdG8gZGVmX3ZhbHVlOwo+Pj4+ICAg ICAgICAgIH0KPj4+PiArCj4+Pj4gKyAgICAgICByZXR1cm47Cj4+Pj4gKwo+Pj4+ICtkZWZfdmFs dWU6Cj4+Pj4gKyAgICAgICBhbWRncHVfdm1fYmxvY2tfc2l6ZSA9IC0xOwo+Pj4+ICAgIH0KPj4+ PiAgICAgIHN0YXRpYyB2b2lkIGFtZGdwdV9jaGVja192bV9zaXplKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQo+Pj4+IEBAIC0xMDk2LDggKzExMDUsNyBAQCBzdGF0aWMgdm9pZCBhbWRncHVf Y2hlY2tfdm1fc2l6ZShzdHJ1Y3QKPj4+PiBhbWRncHVfZGV2aWNlICphZGV2KQo+Pj4+ICAgICAg ICAgIHJldHVybjsKPj4+PiAgICAgIGRlZl92YWx1ZToKPj4+PiAtICAgICAgIGFtZGdwdV92bV9z aXplID0gODsKPj4+PiAtICAgICAgIGRldl9pbmZvKGFkZXYtPmRldiwgInNldCBkZWZhdWx0IFZN IHNpemUgJWRHQlxuIiwgYW1kZ3B1X3ZtX3NpemUpOwo+Pj4+ICsgICAgICAgYW1kZ3B1X3ZtX3Np emUgPSAtMTs7Cj4+Pj4gICAgfQo+Pj4+ICAgICAgLyoqCj4+Pj4gQEAgLTExMzEsNyArMTEzOSw3 IEBAIHN0YXRpYyB2b2lkIGFtZGdwdV9jaGVja19hcmd1bWVudHMoc3RydWN0Cj4+Pj4gYW1kZ3B1 X2RldmljZSAqYWRldikKPj4+PiAgICAgICAgICBhbWRncHVfY2hlY2tfdm1fc2l6ZShhZGV2KTsK Pj4+PiAgICAtICAgICBhbWRncHVfZ2V0X2Jsb2NrX3NpemUoYWRldik7Cj4+Pj4gKyAgICAgICBh bWRncHVfY2hlY2tfYmxvY2tfc2l6ZShhZGV2KTsKPj4+PiAgICAgICAgICBpZiAoYW1kZ3B1X3Zy YW1fcGFnZV9zcGxpdCAhPSAtMSAmJiAoYW1kZ3B1X3ZyYW1fcGFnZV9zcGxpdCA8IDE2Cj4+Pj4g fHwKPj4+PiAgICAgICAgICAgICAgIWFtZGdwdV9jaGVja19wb3RfYXJndW1lbnQoYW1kZ3B1X3Zy YW1fcGFnZV9zcGxpdCkpKSB7Cj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9kcnYuYwo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2Rydi5jCj4+Pj4gaW5kZXggYmZkOTQ1Yi4uNjIzOGUyZSAxMDA2NDQKPj4+PiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPj4+PiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZHJ2LmMKPj4+PiBAQCAtODYsNyArODYsNyBAQAo+ Pj4+ICAgIHVuc2lnbmVkIGFtZGdwdV9pcF9ibG9ja19tYXNrID0gMHhmZmZmZmZmZjsKPj4+PiAg ICBpbnQgYW1kZ3B1X2JhcG0gPSAtMTsKPj4+PiAgICBpbnQgYW1kZ3B1X2RlZXBfY29sb3IgPSAw Owo+Pj4+IC1pbnQgYW1kZ3B1X3ZtX3NpemUgPSA2NDsKPj4+PiAraW50IGFtZGdwdV92bV9zaXpl ID0gLTE7Cj4+Pj4gICAgaW50IGFtZGdwdV92bV9ibG9ja19zaXplID0gLTE7Cj4+Pj4gICAgaW50 IGFtZGdwdV92bV9mYXVsdF9zdG9wID0gMDsKPj4+PiAgICBpbnQgYW1kZ3B1X3ZtX2RlYnVnID0g MDsKPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAu Ywo+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwo+Pj4+IGluZGV4 IDMwZDVjNDIuLmY0NmM1MmMgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y2XzAuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192Nl8wLmMKPj4+PiBAQCAtODQ5LDggKzg0OSwxNCBAQCBzdGF0aWMgaW50IGdtY192Nl8wX3N3 X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+ICAgICAgICAgIGlmIChyKQo+Pj4+ICAgICAgICAgICAg ICAgICAgcmV0dXJuIHI7Cj4+Pj4gICAgLSAgICAgYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0g YW1kZ3B1X3ZtX3NpemU7Cj4+Pj4gLSAgICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUg PSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKPj4+PiArICAgICAgIGlmIChhbWRncHVfdm1fc2l6ZSA9 PSAtMSkgewo+Pj4+ICsgICAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSA2 NDsKPj4+PiArICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0KPj4+ PiArICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfZ2V0X2Jsb2NrX3NpemUoYWRldi0+dm1f bWFuYWdlci52bV9zaXplKTsKPj4+PiArICAgICAgIH0gZWxzZSB7Cj4+Pj4gKyAgICAgICAgICAg ICAgIGFkZXYtPnZtX21hbmFnZXIudm1fc2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4+ICsgICAg ICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tf c2l6ZTsKPj4+PiArICAgICAgIH0KPj4+PiAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLm1heF9w Zm4gPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7Cj4+Pj4gICAgICAgICAgRFJNX0lO Rk8oInZtIHNpemUgaXMgJWQgR0IsIGJsb2NrIHNpemUgaXMgJWQtYml0XG4iLAo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+Pj4gYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4+Pj4gaW5kZXggNzExMzc2NS4uODBi MzFmNCAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdf MC5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+Pj4+ IEBAIC0xMDAzLDggKzEwMDMsMTQgQEAgc3RhdGljIGludCBnbWNfdjdfMF9zd19pbml0KHZvaWQg KmhhbmRsZSkKPj4+PiAgICAgICAgICAgKiBDdXJyZW50bHkgc2V0IHRvIDRHQiAoKDEgPDwgMjAp IDRrIHBhZ2VzKS4KPj4+PiAgICAgICAgICAgKiBNYXggR1BVVk0gc2l6ZSBmb3IgY2F5bWFuIGFu ZCBTSSBpcyA0MCBiaXRzLgo+Pj4+ICAgICAgICAgICAqLwo+Pj4+IC0gICAgICAgYWRldi0+dm1f bWFuYWdlci52bV9zaXplID0gYW1kZ3B1X3ZtX3NpemU7Cj4+Pj4gLSAgICAgICBhZGV2LT52bV9t YW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKPj4+PiArICAgICAgIGlm IChhbWRncHVfdm1fc2l6ZSA9PSAtMSkgewo+Pj4+ICsgICAgICAgICAgICAgICBhZGV2LT52bV9t YW5hZ2VyLnZtX3NpemUgPSA2NDsKPj4+PiArICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdl ci5ibG9ja19zaXplID0KPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBhbWRncHVfZ2V0X2Js b2NrX3NpemUoYWRldi0+dm1fbWFuYWdlci52bV9zaXplKTsKPj4+PiArICAgICAgIH0gZWxzZSB7 Cj4+Pj4gKyAgICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIudm1fc2l6ZSA9IGFtZGdwdV92 bV9zaXplOwo+Pj4+ICsgICAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUg PSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKPj4+PiArICAgICAgIH0KPj4+Cj4+PiBUaGF0J3MgYSBi aXQgdG8gc2ltcGxlLiBUaGUgbG9naWMgc2hvdWxkIHByb2JhYmx5IHJhdGhlciBiZToKPj4+Cj4+ PiBpZiAoYW1kZ3B1X3ZtX3NpemUgPT0gLTEpCj4+PiAgICAgIGFkZXYtPnZtX21hbmFnZXIudm1f c2l6ZSA9IDY0Owo+Pj4gZWxzZQo+Pj4gICAgICBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSBh bWRncHVfdm1fc2l6ZTsKPj4+Cj4+PiBpZiAoYW1kZ3B1X3ZtX2Jsb2NrX3NpemUgPT0gLTEpCj4+ PiAgICAgIGFkZXYtPnZtX21hbmFnZXIuYmxvY2tfc2l6ZSA9Cj4+PiBhbWRncHVfZ2V0X2Jsb2Nr X3NpemUoYWRldi0+dm1fbWFuYWdlci52bV9zaXplKTsKPj4+IGVsc2UKPj4+ICAgICAgYWRldi0+ dm1fbWFuYWdlci5ibG9ja19zaXplID0gYW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4+Pgo+Pj4KPj4+ IFNpbmNlIHRoZSBsb2dpYyBpcyB0aGUgc2FtZSBmb3IgR0ZYNiw3IGFuZCA4IHdlIG1pZ2h0IHB1 dCB0aGF0IGludG8gYSBoZWxwZXIKPj4+IGFzIHdlbGwuCj4+Pgo+Pj4KPj4+PiAgICAgICAgICBh ZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPDwgMTg7 Cj4+Pj4gICAgICAgICAgRFJNX0lORk8oInZtIHNpemUgaXMgJWQgR0IsIGJsb2NrIHNpemUgaXMg JWQtYml0XG4iLAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjhfMC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+ Pj4gaW5kZXggYjNkMWYxYi4uZjFmMTM1YSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y4XzAuYwo+Pj4+IEBAIC0xMDg3LDggKzEwODcsMTQgQEAgc3RhdGljIGludCBn bWNfdjhfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPj4+PiAgICAgICAgICAgKiBDdXJyZW50bHkg c2V0IHRvIDRHQiAoKDEgPDwgMjApIDRrIHBhZ2VzKS4KPj4+PiAgICAgICAgICAgKiBNYXggR1BV Vk0gc2l6ZSBmb3IgY2F5bWFuIGFuZCBTSSBpcyA0MCBiaXRzLgo+Pj4+ICAgICAgICAgICAqLwo+ Pj4+IC0gICAgICAgYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gYW1kZ3B1X3ZtX3NpemU7Cj4+ Pj4gLSAgICAgICBhZGV2LT52bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tf c2l6ZTsKPj4+PiArICAgICAgIGlmIChhbWRncHVfdm1fc2l6ZSA9PSAtMSkgewo+Pj4+ICsgICAg ICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSA2NDsKPj4+PiArICAgICAgICAg ICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0KPj4+PiArICAgICAgICAgICAgICAg ICAgICAgICBhbWRncHVfZ2V0X2Jsb2NrX3NpemUoYWRldi0+dm1fbWFuYWdlci52bV9zaXplKTsK Pj4+PiArICAgICAgIH0gZWxzZSB7Cj4+Pj4gKyAgICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFn ZXIudm1fc2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4+ICsgICAgICAgICAgICAgICBhZGV2LT52 bV9tYW5hZ2VyLmJsb2NrX3NpemUgPSBhbWRncHVfdm1fYmxvY2tfc2l6ZTsKPj4+PiArICAgICAg IH0KPj4+PiAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLm1heF9wZm4gPSBhZGV2LT52bV9tYW5h Z2VyLnZtX3NpemUgPDwgMTg7Cj4+Pj4gICAgICAgICAgRFJNX0lORk8oInZtIHNpemUgaXMgJWQg R0IsIGJsb2NrIHNpemUgaXMgJWQtYml0XG4iLAo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9nbWNfdjlfMC5jCj4+Pj4gaW5kZXggMGNhZTdmMC4uOGUxMmZmMyAxMDA2NDQKPj4+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4+Pj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+Pj4+IEBAIC01MzIsMTggKzUzMiw5 IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4+Pj4gICAgICAg ICAgaWYgKGFkZXYtPmZsYWdzICYgQU1EX0lTX0FQVSkgewo+Pj4+ICAgICAgICAgICAgICAgICAg YWRldi0+bWMudnJhbV90eXBlID0gQU1ER1BVX1ZSQU1fVFlQRV9VTktOT1dOOwo+Pj4+IC0gICAg ICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZtX3NpemUgPSBhbWRncHVfdm1fc2l6ZTsKPj4+ PiAtICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0gYW1kZ3B1X3Zt X2Jsb2NrX3NpemU7Cj4+Pj4gICAgICAgICAgfSBlbHNlIHsKPj4+PiAgICAgICAgICAgICAgICAg IC8qIFhYWCBEb24ndCBrbm93IGhvdyB0byBnZXQgVlJBTSB0eXBlIHlldC4gKi8KPj4+PiAgICAg ICAgICAgICAgICAgIGFkZXYtPm1jLnZyYW1fdHlwZSA9IEFNREdQVV9WUkFNX1RZUEVfSEJNOwo+ Pj4+IC0gICAgICAgICAgICAgICAvKgo+Pj4+IC0gICAgICAgICAgICAgICAgKiBUbyBmdWxmaWxs IDQtbGV2ZWwgcGFnZSBzdXBwb3J0LAo+Pj4+IC0gICAgICAgICAgICAgICAgKiB2bSBzaXplIGlz IDI1NlRCICg0OGJpdCksIG1heGltdW0gc2l6ZSBvZiBWZWdhMTAsCj4+Pj4gLSAgICAgICAgICAg ICAgICAqIGJsb2NrIHNpemUgNTEyICg5Yml0KQo+Pj4+IC0gICAgICAgICAgICAgICAgKi8KPj4+ PiAtICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gMVUgPDwgMTg7Cj4+ Pj4gLSAgICAgICAgICAgICAgIGFkZXYtPnZtX21hbmFnZXIuYmxvY2tfc2l6ZSA9IDk7Cj4+Pj4g ICAgICAgICAgfQo+Pj4+ICAgICAgICAgIERSTV9JTkZPKCJ2bSBzaXplIGlzICVkIEdCLCBibG9j ayBzaXplIGlzICVkLWJpdFxuIiwKPj4+PiBAQCAtNTU4LDYgKzU0OSwyNyBAQCBzdGF0aWMgaW50 IGdtY192OV8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+Pj4+ICAgICAgICAgIGlmIChyKQo+Pj4+ ICAgICAgICAgICAgICAgICAgcmV0dXJuIHI7Cj4+Pj4gICAgKyAgICAgaWYgKGFtZGdwdV92bV9z aXplID09IC0xKSB7Cj4+Pj4gKyAgICAgICAgICAgICAgIGlmIChhZGV2LT5mbGFncyAmIEFNRF9J U19BUFUpIHsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2VyLnZt X3NpemUgPSA2NDsKPj4+PiArICAgICAgICAgICAgICAgICAgICAgICBhZGV2LT52bV9tYW5hZ2Vy LmJsb2NrX3NpemUgPQo+Pj4+ICsKPj4+PiBhbWRncHVfZ2V0X2Jsb2NrX3NpemUoYWRldi0+dm1f bWFuYWdlci52bV9zaXplKTsKPj4+PiArICAgICAgICAgICAgICAgfSBlbHNlIHsKPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAvKgo+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAqIFRv IGZ1bGZpbGwgNC1sZXZlbCBwYWdlIHN1cHBvcnQsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICogdm0gc2l6ZSBpcyAyNTZUQiAoNDhiaXQpLCBtYXhpbXVtIHNpemUgb2YKPj4+PiBWZWdh MTAsCj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICogYmxvY2sgc2l6ZSA1MTIgKDliaXQp Cj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICovCj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgYWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gMVUgPDwgMTg7Cj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9ja19zaXplID0gOTsKPj4+PiArICAg ICAgICAgICAgICAgfQo+Pj4+ICsgICAgICAgfSBlbHNlIHsKPj4+PiArICAgICAgICAgICAgICAg YWRldi0+dm1fbWFuYWdlci52bV9zaXplID0gYW1kZ3B1X3ZtX3NpemU7Cj4+Pj4gKyAgICAgICAg ICAgICAgIGFkZXYtPnZtX21hbmFnZXIuYmxvY2tfc2l6ZSA9IGFtZGdwdV92bV9ibG9ja19zaXpl Owo+Pj4+ICsgICAgICAgfQo+Pj4+ICsKPj4+PiArICAgICAgIGFkZXYtPnZtX21hbmFnZXIudm1f c2l6ZSA9IGFtZGdwdV92bV9zaXplOwo+Pj4+ICsgICAgICAgYWRldi0+dm1fbWFuYWdlci5ibG9j a19zaXplID0gYW1kZ3B1X3ZtX2Jsb2NrX3NpemU7Cj4+Pgo+Pj4gTkFLLiBPbiBHRlg5IHZtX3Np emUgYW5kIGJsb2NrX3NpemUgc2hvdWxkIGJlIGhhcmQgY29kZWQgdG8gMjU2VEIgYW5kIDkuCj4+ IEkgdGhpbmsgdGhlcmUgaXMgc3RpbGwgdmFsdWUgaW4gYmVpbmcgYWJsZSB0byBvdmVycmlkZSBm b3IgdGVzdGluZy9kZWJ1Z2dpbmcuCj4KPiBUaGUgcHJvYmxlbSBpcyB0aGF0IHRoaXMgd29uJ3Qg d29yay4gV2hlbiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGUgc2l6ZSB5b3UKPiBuZWVkIHRvIHdv cmsgd2l0aCAxIGxldmVsIHBhZ2UgdGFibGVzIGFnYWluLgo+Cj4gV2UgY291bGQgb2YgY291cnNl IHRyeSB0byBkZXRlcm1pbmUgaG93IG1hbnkgbGV2ZWxzIHdlIHdhbnQgZnJvbSB0aGUgVk0KPiBz aXplL2Jsb2NrIHNpemUsIGJ1dCBJIGRvbid0IHJlYWxseSB3YW50IHRvIHRlc3QgYWxsIHRob3Nl IG9wdGlvbnMgYWxsIHRoZSB0aW1lLgo+Cj4gQ2hyaXN0aWFuLgo+Cj4+Cj4+IEFsZXgKPj4KPj4+ IENocmlzdGlhbi4KPj4+Cj4+Pj4gICAgICAgICAgYWRldi0+dm1fbWFuYWdlci5tYXhfcGZuID0g YWRldi0+dm1fbWFuYWdlci52bV9zaXplIDw8IDE4Owo+Pj4+ICAgICAgICAgIC8qIFNldCB0aGUg aW50ZXJuYWwgTUMgYWRkcmVzcyBtYXNrCj4+Pgo+Pj4KPj4+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4+PiBhbWQtZ2Z4IG1haWxpbmcgbGlzdAo+Pj4g YW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdmeAo+Cj4KX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KYW1kLWdmeCBtYWlsaW5nIGxpc3QKYW1kLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9hbWQtZ2Z4Cg==