From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zhang, Jerry (Junwei)" Subject: Re: [PATCH 1/7] drm/amdgpu: cleanup adjust_mc_addr handling v2 Date: Thu, 18 May 2017 13:33:46 +0800 Message-ID: <591D323A.5000304@amd.com> References: <1495012972-20698-1-git-send-email-deathsimple@vodafone.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1495012972-20698-1-git-send-email-deathsimple-ANTagKRnAhcb1SvskN2V4Q@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 T24gMDUvMTcvMjAxNyAwNToyMiBQTSwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToKPiBGcm9tOiBD aHJpc3RpYW4gS8O2bmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+Cj4KPiBSZW5hbWUgYWRq dXN0X21jX2FkZHIgdG8gZ2V0X3ZtX3BkZSBhbmQgY2hlY2sgdGhlIGFkZHJlc3MgYml0cyBpbiBv bmUgcGxhY2UuCj4KPiB2MjogaGFuZGxlIHZjbiBhcyB3ZWxsLCBrZWVwIHNldHRpbmcgdGhlIHZh bGlkIGJpdCBtYW51YWxseSwKPiAgICAgIGFkZCBhIEJVR19PTigpIGZvciBHTUMgdjYsIHY3IGFu ZCB2OCBhcyB3ZWxsLgo+Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0 aWFuLmtvZW5pZ0BhbWQuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1LmggICAgfCAgNSArKystLQo+ICAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmMgfCAyNiArKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYyAgfCAgNiArKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMgIHwgIDcgKysrKysrKwo+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3Y3XzAuYyAgfCAgOSArKysrKysrKy0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192OF8wLmMgIHwgIDkgKysrKysrKystCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICB8IDEwICsrKysrKy0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jIHwgIDYgKystLS0tCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jICB8IDEyICsrKystLS0tLS0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvdmNlX3Y0XzAuYyAgfCAgNiArKy0tLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMgIHwgIDUgKystLS0KPiAgIDExIGZpbGVzIGNoYW5n ZWQsIDUzIGluc2VydGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1LmgKPiBpbmRleCBhZTdlNzc1Li40YWNiY2E3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1LmgKPiBAQCAtMzA5LDggKzMwOSw4IEBAIHN0cnVjdCBhbWRncHVf Z2FydF9mdW5jcyB7Cj4gICAJLyogc2V0IHB0ZSBmbGFncyBiYXNlZCBwZXIgYXNpYyAqLwo+ICAg CXVpbnQ2NF90ICgqZ2V0X3ZtX3B0ZV9mbGFncykoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4gICAJCQkJICAgICB1aW50MzJfdCBmbGFncyk7Cj4gLQkvKiBhZGp1c3QgbWMgYWRkciBpbiBm YiBmb3IgQVBVIGNhc2UgKi8KPiAtCXU2NCAoKmFkanVzdF9tY19hZGRyKShzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiwgdTY0IGFkZHIpOwo+ICsJLyogZ2V0IHRoZSBwZGUgZm9yIGEgZ2l2ZW4g bWMgYWRkciAqLwo+ICsJdTY0ICgqZ2V0X3ZtX3BkZSkoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsIHU2NCBhZGRyKTsKPiAgIAl1aW50MzJfdCAoKmdldF9pbnZhbGlkYXRlX3JlcSkodW5zaWdu ZWQgaW50IHZtX2lkKTsKPiAgIH07Cj4KPiBAQCAtMTgyMCw2ICsxODIwLDcgQEAgYW1kZ3B1X2dl dF9zZG1hX2luc3RhbmNlKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZykKPiAgICNkZWZpbmUgYW1k Z3B1X2FzaWNfZ2V0X2NvbmZpZ19tZW1zaXplKGFkZXYpIChhZGV2KS0+YXNpY19mdW5jcy0+Z2V0 X2NvbmZpZ19tZW1zaXplKChhZGV2KSkKPiAgICNkZWZpbmUgYW1kZ3B1X2dhcnRfZmx1c2hfZ3B1 X3RsYihhZGV2LCB2bWlkKSAoYWRldiktPmdhcnQuZ2FydF9mdW5jcy0+Zmx1c2hfZ3B1X3RsYigo YWRldiksICh2bWlkKSkKPiAgICNkZWZpbmUgYW1kZ3B1X2dhcnRfc2V0X3B0ZV9wZGUoYWRldiwg cHQsIGlkeCwgYWRkciwgZmxhZ3MpIChhZGV2KS0+Z2FydC5nYXJ0X2Z1bmNzLT5zZXRfcHRlX3Bk ZSgoYWRldiksIChwdCksIChpZHgpLCAoYWRkciksIChmbGFncykpCj4gKyNkZWZpbmUgYW1kZ3B1 X2dhcnRfZ2V0X3ZtX3BkZShhZGV2LCBhZGRyKSAoYWRldiktPmdhcnQuZ2FydF9mdW5jcy0+Z2V0 X3ZtX3BkZSgoYWRldiksIChhZGRyKSkKPiAgICNkZWZpbmUgYW1kZ3B1X3ZtX2NvcHlfcHRlKGFk ZXYsIGliLCBwZSwgc3JjLCBjb3VudCkgKChhZGV2KS0+dm1fbWFuYWdlci52bV9wdGVfZnVuY3Mt PmNvcHlfcHRlKChpYiksIChwZSksIChzcmMpLCAoY291bnQpKSkKPiAgICNkZWZpbmUgYW1kZ3B1 X3ZtX3dyaXRlX3B0ZShhZGV2LCBpYiwgcGUsIHZhbHVlLCBjb3VudCwgaW5jcikgKChhZGV2KS0+ dm1fbWFuYWdlci52bV9wdGVfZnVuY3MtPndyaXRlX3B0ZSgoaWIpLCAocGUpLCAodmFsdWUpLCAo Y291bnQpLCAoaW5jcikpKQo+ICAgI2RlZmluZSBhbWRncHVfdm1fc2V0X3B0ZV9wZGUoYWRldiwg aWIsIHBlLCBhZGRyLCBjb3VudCwgaW5jciwgZmxhZ3MpICgoYWRldiktPnZtX21hbmFnZXIudm1f cHRlX2Z1bmNzLT5zZXRfcHRlX3BkZSgoaWIpLCAocGUpLCAoYWRkciksIChjb3VudCksIChpbmNy KSwgKGZsYWdzKSkpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2Ft ZGdwdV92bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3ZtLmMKPiBpbmRl eCA4ODQyMGRjLi4zNDRmOTQzIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV92bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1 X3ZtLmMKPiBAQCAtNjgyLDE2ICs2ODIsNiBAQCBzdGF0aWMgYm9vbCBhbWRncHVfdm1fcmluZ19o YXNfY29tcHV0ZV92bV9idWcoc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nKQo+ICAgCXJldHVybiBm YWxzZTsKPiAgIH0KPgo+IC1zdGF0aWMgdTY0IGFtZGdwdV92bV9hZGp1c3RfbWNfYWRkcihzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdTY0IG1jX2FkZHIpCj4gLXsKPiAtCXU2NCBhZGRyID0g bWNfYWRkcjsKPiAtCj4gLQlpZiAoYWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1c3RfbWNfYWRk cikKPiAtCQlhZGRyID0gYWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1c3RfbWNfYWRkcihhZGV2 LCBhZGRyKTsKPiAtCj4gLQlyZXR1cm4gYWRkcjsKPiAtfQo+IC0KPiAgIGJvb2wgYW1kZ3B1X3Zt X25lZWRfcGlwZWxpbmVfc3luYyhzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gICAJCQkJICBz dHJ1Y3QgYW1kZ3B1X2pvYiAqam9iKQo+ICAgewo+IEBAIC0xMDM0LDE4ICsxMDI0LDE4IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X3ZtX3VwZGF0ZV9sZXZlbChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwKPiAgIAkJICAgIChjb3VudCA9PSBBTURHUFVfVk1fTUFYX1VQREFURV9TSVpFKSkgewo+Cj4g ICAJCQlpZiAoY291bnQpIHsKPiAtCQkJCXVpbnQ2NF90IHB0X2FkZHIgPQo+IC0JCQkJCWFtZGdw dV92bV9hZGp1c3RfbWNfYWRkcihhZGV2LCBsYXN0X3B0KTsKPiArCQkJCXVpbnQ2NF90IGVudHJ5 Owo+Cj4gKwkJCQllbnRyeSA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUoYWRldiwgbGFzdF9wdCk7 Cj4gICAJCQkJaWYgKHNoYWRvdykKPiAgIAkJCQkJYW1kZ3B1X3ZtX2RvX3NldF9wdGVzKCZwYXJh bXMsCj4gICAJCQkJCQkJICAgICAgbGFzdF9zaGFkb3csCj4gLQkJCQkJCQkgICAgICBwdF9hZGRy LCBjb3VudCwKPiArCQkJCQkJCSAgICAgIGVudHJ5LCBjb3VudCwKPiAgIAkJCQkJCQkgICAgICBp bmNyLAo+ICAgCQkJCQkJCSAgICAgIEFNREdQVV9QVEVfVkFMSUQpOwo+Cj4gICAJCQkJYW1kZ3B1 X3ZtX2RvX3NldF9wdGVzKCZwYXJhbXMsIGxhc3RfcGRlLAo+IC0JCQkJCQkgICAgICBwdF9hZGRy LCBjb3VudCwgaW5jciwKPiArCQkJCQkJICAgICAgZW50cnksIGNvdW50LCBpbmNyLAo+ICAgCQkJ CQkJICAgICAgQU1ER1BVX1BURV9WQUxJRCk7Cj4gICAJCQl9Cj4KPiBAQCAtMTA1OSwxMyArMTA0 OSwxNSBAQCBzdGF0aWMgaW50IGFtZGdwdV92bV91cGRhdGVfbGV2ZWwoc3RydWN0IGFtZGdwdV9k ZXZpY2UgKmFkZXYsCj4gICAJfQo+Cj4gICAJaWYgKGNvdW50KSB7Cj4gLQkJdWludDY0X3QgcHRf YWRkciA9IGFtZGdwdV92bV9hZGp1c3RfbWNfYWRkcihhZGV2LCBsYXN0X3B0KTsKPiArCQl1aW50 NjRfdCBlbnRyeTsKPiArCj4gKwkJZW50cnkgPSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKGFkZXYs IGxhc3RfcHQpOwo+Cj4gICAJCWlmICh2bS0+cm9vdC5iby0+c2hhZG93KQo+IC0JCQlhbWRncHVf dm1fZG9fc2V0X3B0ZXMoJnBhcmFtcywgbGFzdF9zaGFkb3csIHB0X2FkZHIsCj4gKwkJCWFtZGdw dV92bV9kb19zZXRfcHRlcygmcGFyYW1zLCBsYXN0X3NoYWRvdywgZW50cnksCj4gICAJCQkJCSAg ICAgIGNvdW50LCBpbmNyLCBBTURHUFVfUFRFX1ZBTElEKTsKPgo+IC0JCWFtZGdwdV92bV9kb19z ZXRfcHRlcygmcGFyYW1zLCBsYXN0X3BkZSwgcHRfYWRkciwKPiArCQlhbWRncHVfdm1fZG9fc2V0 X3B0ZXMoJnBhcmFtcywgbGFzdF9wZGUsIGVudHJ5LAo+ICAgCQkJCSAgICAgIGNvdW50LCBpbmNy LCBBTURHUFVfUFRFX1ZBTElEKTsKPiAgIAl9Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dm eF92OV8wLmMKPiBpbmRleCA2ZGM3NWQyLi5lMDhhMjMyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjlfMC5jCj4gQEAgLTM3NTksMTAgKzM3NTksOCBAQCBzdGF0aWMgdm9pZCBn ZnhfdjlfMF9yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nLAo+ICAg CXVpbnQzMl90IHJlcSA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+Z2V0X2ludmFsaWRh dGVfcmVxKHZtX2lkKTsKPiAgIAl1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9pbnZfZW5nOwo+Cj4g LQlwZF9hZGRyID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1c3RfbWNfYWRkcihy aW5nLT5hZGV2LCBwZF9hZGRyKTsKPiAtCXBkX2FkZHIgPSBwZF9hZGRyIHwgMHgxOyAvKiB2YWxp ZCBiaXQgKi8KPiAtCS8qIG5vdyBvbmx5IHVzZSBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mgb2YgUERF IGFuZCB2YWxpZCAqLwo+IC0JQlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAwMDAwMDAwM0VVTEwp Owo+ICsJcGRfYWRkciA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUocmluZy0+YWRldiwgcGRfYWRk cik7Cj4gKwlwZF9hZGRyIHw9IEFNREdQVV9QVEVfVkFMSUQ7Cj4KPiAgIAlnZnhfdjlfMF93cml0 ZV9kYXRhX3RvX3JlZyhyaW5nLCB1c2VwZnAsIHRydWUsCj4gICAJCQkJICAgaHViLT5jdHgwX3B0 Yl9hZGRyX2xvMzIgKyAoMiAqIHZtX2lkKSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3Y2XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192 Nl8wLmMKPiBpbmRleCAxZTYyNjNhLi5kNWYzZDg3MyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y2XzAuYwo+IEBAIC0zOTUsNiArMzk1LDEyIEBAIHN0YXRpYyB1aW50NjRfdCBn bWNfdjZfMF9nZXRfdm1fcHRlX2ZsYWdzKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAg CXJldHVybiBwdGVfZmxhZzsKPiAgIH0KPgo+ICtzdGF0aWMgdWludDY0X3QgZ21jX3Y2XzBfZ2V0 X3ZtX3BkZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3QgYWRkcikKPiArewo+ ICsJQlVHX09OKGFkZHIgJiAweEZGRkZGMDAwMDAwMEZGRlVMTCk7Cj4gKwlyZXR1cm4gYWRkcjsK PiArfQoKSnVzdCB3b25kZXIgd2h5IHdlIGRpZG4ndCByZXR1cm4gdGhlIGFkZHJlc3MgYXMgYmVs b3c/CmFkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29mZnNldCArIGFkZHIKCkRvZXMgdGhhdCBj YXVzZSBnbWM2fmdtYzggaGFzIG5vIEFQVSBzdXBwb3J0IG9mZmljaWFsbHk/Ck9yIEkgbWlzcyBh bnkgaW5mbyBhYm91dCB0aGVtPwoKSmVycnkKCj4gKwo+ICAgc3RhdGljIHZvaWQgZ21jX3Y2XzBf c2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAg CQkJCQkgICAgICBib29sIHZhbHVlKQo+ICAgewo+IEBAIC0xMTI3LDYgKzExMzMsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGFtZGdwdV9nYXJ0X2Z1bmNzIGdtY192Nl8wX2dhcnRfZnVuY3MgPSB7 Cj4gICAJLmZsdXNoX2dwdV90bGIgPSBnbWNfdjZfMF9nYXJ0X2ZsdXNoX2dwdV90bGIsCj4gICAJ LnNldF9wdGVfcGRlID0gZ21jX3Y2XzBfZ2FydF9zZXRfcHRlX3BkZSwKPiAgIAkuc2V0X3BydCA9 IGdtY192Nl8wX3NldF9wcnQsCj4gKwkuZ2V0X3ZtX3BkZSA9IGdtY192Nl8wX2dldF92bV9wZGUs Cj4gICAJLmdldF92bV9wdGVfZmxhZ3MgPSBnbWNfdjZfMF9nZXRfdm1fcHRlX2ZsYWdzCj4gICB9 Owo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCj4gaW5kZXggOTY3NTA1Yi4u NGYxNDBlOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdf MC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+IEBAIC00 NzIsNiArNDcyLDEyIEBAIHN0YXRpYyB1aW50NjRfdCBnbWNfdjdfMF9nZXRfdm1fcHRlX2ZsYWdz KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAo+ICAgCXJldHVybiBwdGVfZmxhZzsKPiAgIH0K Pgo+ICtzdGF0aWMgdWludDY0X3QgZ21jX3Y3XzBfZ2V0X3ZtX3BkZShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwgdWludDY0X3QgYWRkcikKPiArewo+ICsJQlVHX09OKGFkZHIgJiAweEZGRkZG MDAwMDAwMEZGRlVMTCk7Cj4gKwlyZXR1cm4gYWRkcjsKPiArfQo+ICsKPiAgIC8qKgo+ICAgICog Z21jX3Y4XzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0IC0gdXBkYXRlIFZNIGZhdWx0IGhhbmRs aW5nCj4gICAgKgo+IEBAIC0xMjkzLDcgKzEyOTksOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFt ZGdwdV9nYXJ0X2Z1bmNzIGdtY192N18wX2dhcnRfZnVuY3MgPSB7Cj4gICAJLmZsdXNoX2dwdV90 bGIgPSBnbWNfdjdfMF9nYXJ0X2ZsdXNoX2dwdV90bGIsCj4gICAJLnNldF9wdGVfcGRlID0gZ21j X3Y3XzBfZ2FydF9zZXRfcHRlX3BkZSwKPiAgIAkuc2V0X3BydCA9IGdtY192N18wX3NldF9wcnQs Cj4gLQkuZ2V0X3ZtX3B0ZV9mbGFncyA9IGdtY192N18wX2dldF92bV9wdGVfZmxhZ3MKPiArCS5n ZXRfdm1fcHRlX2ZsYWdzID0gZ21jX3Y3XzBfZ2V0X3ZtX3B0ZV9mbGFncywKPiArCS5nZXRfdm1f cGRlID0gZ21jX3Y3XzBfZ2V0X3ZtX3BkZQo+ICAgfTsKPgo+ICAgc3RhdGljIGNvbnN0IHN0cnVj dCBhbWRncHVfaXJxX3NyY19mdW5jcyBnbWNfdjdfMF9pcnFfZnVuY3MgPSB7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4gaW5kZXggM2I1ZWEwZi4uZjA1YzAzNCAxMDA2NDQK PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y4XzAuYwo+IEBAIC02NTYsNiArNjU2LDEyIEBA IHN0YXRpYyB1aW50NjRfdCBnbWNfdjhfMF9nZXRfdm1fcHRlX2ZsYWdzKHN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2LAo+ICAgCXJldHVybiBwdGVfZmxhZzsKPiAgIH0KPgo+ICtzdGF0aWMgdWlu dDY0X3QgZ21jX3Y4XzBfZ2V0X3ZtX3BkZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWlu dDY0X3QgYWRkcikKPiArewo+ICsJQlVHX09OKGFkZHIgJiAweEZGRjAwMDAwMDAwMDBGRkZVTEwp Owo+ICsJcmV0dXJuIGFkZHI7Cj4gK30KPiArCj4gICAvKioKPiAgICAqIGdtY192OF8wX3NldF9m YXVsdF9lbmFibGVfZGVmYXVsdCAtIHVwZGF0ZSBWTSBmYXVsdCBoYW5kbGluZwo+ICAgICoKPiBA QCAtMTYxMiw3ICsxNjE4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhbWRncHVfZ2FydF9mdW5j cyBnbWNfdjhfMF9nYXJ0X2Z1bmNzID0gewo+ICAgCS5mbHVzaF9ncHVfdGxiID0gZ21jX3Y4XzBf Z2FydF9mbHVzaF9ncHVfdGxiLAo+ICAgCS5zZXRfcHRlX3BkZSA9IGdtY192OF8wX2dhcnRfc2V0 X3B0ZV9wZGUsCj4gICAJLnNldF9wcnQgPSBnbWNfdjhfMF9zZXRfcHJ0LAo+IC0JLmdldF92bV9w dGVfZmxhZ3MgPSBnbWNfdjhfMF9nZXRfdm1fcHRlX2ZsYWdzCj4gKwkuZ2V0X3ZtX3B0ZV9mbGFn cyA9IGdtY192OF8wX2dldF92bV9wdGVfZmxhZ3MsCj4gKwkuZ2V0X3ZtX3BkZSA9IGdtY192OF8w X2dldF92bV9wZGUKPiAgIH07Cj4KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2lycV9z cmNfZnVuY3MgZ21jX3Y4XzBfaXJxX2Z1bmNzID0gewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3Y5XzAuYwo+IGluZGV4IDE5ZTEwMjcuLjA0N2IxYTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192OV8wLmMKPiBAQCAtMzU4LDE3ICszNTgsMTkgQEAgc3RhdGljIHVpbnQ2 NF90IGdtY192OV8wX2dldF92bV9wdGVfZmxhZ3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Cj4gICAJcmV0dXJuIHB0ZV9mbGFnOwo+ICAgfQo+Cj4gLXN0YXRpYyB1NjQgZ21jX3Y5XzBfYWRq dXN0X21jX2FkZHIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHU2NCBtY19hZGRyKQo+ICtz dGF0aWMgdTY0IGdtY192OV8wX2dldF92bV9wZGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHU2NCBhZGRyKQo+ICAgewo+IC0JcmV0dXJuIGFkZXYtPnZtX21hbmFnZXIudnJhbV9iYXNlX29m ZnNldCArIG1jX2FkZHIgLSBhZGV2LT5tYy52cmFtX3N0YXJ0Owo+ICsJYWRkciA9IGFkZXYtPnZt X21hbmFnZXIudnJhbV9iYXNlX29mZnNldCArIGFkZHIgLSBhZGV2LT5tYy52cmFtX3N0YXJ0Owo+ ICsJQlVHX09OKGFkZHIgJiAweEZGRkYwMDAwMDAwMDAwM0ZVTEwpOwo+ICsJcmV0dXJuIGFkZHI7 Cj4gICB9Cj4KPiAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYW1kZ3B1X2dhcnRfZnVuY3MgZ21jX3Y5 XzBfZ2FydF9mdW5jcyA9IHsKPiAgIAkuZmx1c2hfZ3B1X3RsYiA9IGdtY192OV8wX2dhcnRfZmx1 c2hfZ3B1X3RsYiwKPiAgIAkuc2V0X3B0ZV9wZGUgPSBnbWNfdjlfMF9nYXJ0X3NldF9wdGVfcGRl LAo+IC0JLmdldF92bV9wdGVfZmxhZ3MgPSBnbWNfdjlfMF9nZXRfdm1fcHRlX2ZsYWdzLAo+IC0J LmFkanVzdF9tY19hZGRyID0gZ21jX3Y5XzBfYWRqdXN0X21jX2FkZHIsCj4gICAJLmdldF9pbnZh bGlkYXRlX3JlcSA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSwKPiArCS5nZXRfdm1fcHRl X2ZsYWdzID0gZ21jX3Y5XzBfZ2V0X3ZtX3B0ZV9mbGFncywKPiArCS5nZXRfdm1fcGRlID0gZ21j X3Y5XzBfZ2V0X3ZtX3BkZQo+ICAgfTsKPgo+ICAgc3RhdGljIHZvaWQgZ21jX3Y5XzBfc2V0X2dh cnRfZnVuY3Moc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvc2RtYV92NF8wLmMKPiBpbmRleCA5MWNmN2U2Li5mYjZmNGIzIDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NkbWFfdjRfMC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvc2RtYV92NF8wLmMKPiBAQCAtMTE0MywxMCArMTE0Myw4IEBAIHN0 YXRpYyB2b2lkIHNkbWFfdjRfMF9yaW5nX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5n ICpyaW5nLAo+ICAgCXVpbnQzMl90IHJlcSA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+ Z2V0X2ludmFsaWRhdGVfcmVxKHZtX2lkKTsKPiAgIAl1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9p bnZfZW5nOwo+Cj4gLQlwZF9hZGRyID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1 c3RfbWNfYWRkcihyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiAtCXBkX2FkZHIgPSBwZF9hZGRyIHwg MHgxOyAvKiB2YWxpZCBiaXQgKi8KPiAtCS8qIG5vdyBvbmx5IHVzZSBwaHlzaWNhbCBiYXNlIGFk ZHJlc3Mgb2YgUERFIGFuZCB2YWxpZCAqLwo+IC0JQlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAw MDAwMDAwM0VVTEwpOwo+ICsJcGRfYWRkciA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUocmluZy0+ YWRldiwgcGRfYWRkcik7Cj4gKwlwZF9hZGRyIHw9IEFNREdQVV9QVEVfVkFMSUQ7Cj4KPiAgIAlh bWRncHVfcmluZ193cml0ZShyaW5nLCBTRE1BX1BLVF9IRUFERVJfT1AoU0RNQV9PUF9TUkJNX1dS SVRFKSB8Cj4gICAJCQkgIFNETUFfUEtUX1NSQk1fV1JJVEVfSEVBREVSX0JZVEVfRU4oMHhmKSk7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3V2ZF92N18wLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5jCj4gaW5kZXggMjJmNDJmMy4uMTk5 N2VjOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS91dmRfdjdfMC5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdXZkX3Y3XzAuYwo+IEBAIC0xMzE2 LDEwICsxMzE2LDggQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0 cnVjdCBhbWRncHVfcmluZyAqcmluZywKPiAgIAl1aW50MzJfdCBkYXRhMCwgZGF0YTEsIG1hc2s7 Cj4gICAJdW5zaWduZWQgZW5nID0gcmluZy0+dm1faW52X2VuZzsKPgo+IC0JcGRfYWRkciA9IHJp bmctPmFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+YWRqdXN0X21jX2FkZHIocmluZy0+YWRldiwgcGRf YWRkcik7Cj4gLQlwZF9hZGRyID0gcGRfYWRkciB8IDB4MTsgLyogdmFsaWQgYml0ICovCj4gLQkv KiBub3cgb25seSB1c2UgcGh5c2ljYWwgYmFzZSBhZGRyZXNzIG9mIFBERSBhbmQgdmFsaWQgKi8K PiAtCUJVR19PTihwZF9hZGRyICYgMHhGRkZGMDAwMDAwMDAwMDNFVUxMKTsKPiArCXBkX2FkZHIg PSBhbWRncHVfZ2FydF9nZXRfdm1fcGRlKHJpbmctPmFkZXYsIHBkX2FkZHIpOwo+ICsJcGRfYWRk ciB8PSBBTURHUFVfUFRFX1ZBTElEOwo+Cj4gICAJZGF0YTAgPSAoaHViLT5jdHgwX3B0Yl9hZGRy X2hpMzIgKyB2bV9pZCAqIDIpIDw8IDI7Cj4gICAJZGF0YTEgPSB1cHBlcl8zMl9iaXRzKHBkX2Fk ZHIpOwo+IEBAIC0xMzU4LDEwICsxMzU2LDggQEAgc3RhdGljIHZvaWQgdXZkX3Y3XzBfZW5jX3Jp bmdfZW1pdF92bV9mbHVzaChzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsCj4gICAJdWludDMyX3Qg cmVxID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5nZXRfaW52YWxpZGF0ZV9yZXEodm1f aWQpOwo+ICAgCXVuc2lnbmVkIGVuZyA9IHJpbmctPnZtX2ludl9lbmc7Cj4KPiAtCXBkX2FkZHIg PSByaW5nLT5hZGV2LT5nYXJ0LmdhcnRfZnVuY3MtPmFkanVzdF9tY19hZGRyKHJpbmctPmFkZXYs IHBkX2FkZHIpOwo+IC0JcGRfYWRkciA9IHBkX2FkZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+ IC0JLyogbm93IG9ubHkgdXNlIHBoeXNpY2FsIGJhc2UgYWRkcmVzcyBvZiBQREUgYW5kIHZhbGlk ICovCj4gLQlCVUdfT04ocGRfYWRkciAmIDB4RkZGRjAwMDAwMDAwMDAzRVVMTCk7Cj4gKwlwZF9h ZGRyID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiArCXBk X2FkZHIgfD0gQU1ER1BVX1BURV9WQUxJRDsKPgo+ICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcs IEhFVkNfRU5DX0NNRF9SRUdfV1JJVEUpOwo+ICAgCWFtZGdwdV9yaW5nX3dyaXRlKHJpbmcsCSho dWItPmN0eDBfcHRiX2FkZHJfaGkzMiArIHZtX2lkICogMikgPDwgMik7Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZjZV92NF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS92Y2VfdjRfMC5jCj4gaW5kZXggMDdiMmFjNy4uOGRiZDBiNyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y2VfdjRfMC5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdmNlX3Y0XzAuYwo+IEBAIC05MjYsMTAgKzkyNiw4IEBAIHN0 YXRpYyB2b2lkIHZjZV92NF8wX2VtaXRfdm1fZmx1c2goc3RydWN0IGFtZGdwdV9yaW5nICpyaW5n LAo+ICAgCXVpbnQzMl90IHJlcSA9IHJpbmctPmFkZXYtPmdhcnQuZ2FydF9mdW5jcy0+Z2V0X2lu dmFsaWRhdGVfcmVxKHZtX2lkKTsKPiAgIAl1bnNpZ25lZCBlbmcgPSByaW5nLT52bV9pbnZfZW5n Owo+Cj4gLQlwZF9hZGRyID0gcmluZy0+YWRldi0+Z2FydC5nYXJ0X2Z1bmNzLT5hZGp1c3RfbWNf YWRkcihyaW5nLT5hZGV2LCBwZF9hZGRyKTsKPiAtCXBkX2FkZHIgPSBwZF9hZGRyIHwgMHgxOyAv KiB2YWxpZCBiaXQgKi8KPiAtCS8qIG5vdyBvbmx5IHVzZSBwaHlzaWNhbCBiYXNlIGFkZHJlc3Mg b2YgUERFIGFuZCB2YWxpZCAqLwo+IC0JQlVHX09OKHBkX2FkZHIgJiAweEZGRkYwMDAwMDAwMDAw M0VVTEwpOwo+ICsJcGRfYWRkciA9IGFtZGdwdV9nYXJ0X2dldF92bV9wZGUocmluZy0+YWRldiwg cGRfYWRkcik7Cj4gKwlwZF9hZGRyIHw9IEFNREdQVV9QVEVfVkFMSUQ7Cj4KPiAgIAlhbWRncHVf cmluZ193cml0ZShyaW5nLCBWQ0VfQ01EX1JFR19XUklURSk7Cj4gICAJYW1kZ3B1X3Jpbmdfd3Jp dGUocmluZywJKGh1Yi0+Y3R4MF9wdGJfYWRkcl9oaTMyICsgdm1faWQgKiAyKSA8PCAyKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmNuX3YxXzAuYyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPiBpbmRleCBhZDE4NjJmLi5iMmQ5OTVi IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3Zjbl92MV8wLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92Y25fdjFfMC5jCj4gQEAgLTg4Miw5ICs4 ODIsOCBAQCBzdGF0aWMgdm9pZCB2Y25fdjFfMF9kZWNfcmluZ19lbWl0X3ZtX2ZsdXNoKHN0cnVj dCBhbWRncHVfcmluZyAqcmluZywKPiAgIAl1aW50MzJfdCBkYXRhMCwgZGF0YTEsIG1hc2s7Cj4g ICAJdW5zaWduZWQgZW5nID0gcmluZy0+dm1faW52X2VuZzsKPgo+IC0JcGRfYWRkciA9IHBkX2Fk ZHIgfCAweDE7IC8qIHZhbGlkIGJpdCAqLwo+IC0JLyogbm93IG9ubHkgdXNlIHBoeXNpY2FsIGJh c2UgYWRkcmVzcyBvZiBQREUgYW5kIHZhbGlkICovCj4gLQlCVUdfT04ocGRfYWRkciAmIDB4RkZG RjAwMDAwMDAwMDAzRVVMTCk7Cj4gKwlwZF9hZGRyID0gYW1kZ3B1X2dhcnRfZ2V0X3ZtX3BkZShy aW5nLT5hZGV2LCBwZF9hZGRyKTsKPiArCXBkX2FkZHIgfD0gQU1ER1BVX1BURV9WQUxJRDsKPgo+ ICAgCWRhdGEwID0gKGh1Yi0+Y3R4MF9wdGJfYWRkcl9oaTMyICsgdm1faWQgKiAyKSA8PCAyOwo+ ICAgCWRhdGExID0gdXBwZXJfMzJfYml0cyhwZF9hZGRyKTsKPgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2FtZC1nZngK