From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zeng, Oak" Subject: [PATCH 1/2] drm/amdgpu: Export function to flush TLB of specific vm hub Date: Fri, 9 Aug 2019 04:21:50 +0000 Message-ID: <1565324504-4445-1-git-send-email-Oak.Zeng@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Kuehling, Felix" , "Zhou1, Tao" , "Koenig, Christian" , "Zeng, Oak" VGhpcyBpcyBmb3Iga2ZkIHRvIHJldXNlIGFtZGdwdSBUTEIgaW52YWxpZGF0aW9uIGZ1bmN0aW9u LgpPbiBnZngxMCwga2ZkIG9ubHkgbmVlZHMgdG8gZmx1c2ggVExCIG9uIGdmeCBodWIgYnV0IG5v dApvbiBtbSBodWIuIFNvIGV4cG9ydCBhIGZ1bmN0aW9uIGZvciBLRkQgZmx1c2ggVExCIG9ubHkg b24Kc3BlY2lmaWMgaHViLgoKQ2hhbmdlLUlkOiBJNThmZjAwOTY5Zjg4NDM4Y2ZkM2RjN2U5ZGVi N2JmZjBjMWJiNDEzMwpTaWduZWQtb2ZmLWJ5OiBPYWsgWmVuZyA8T2FrLlplbmdAYW1kLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jIHwg MTIgKystLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dhcnQuYyAgICAgICAg ICB8ICA5ICsrLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oICAgICAg ICAgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjEwXzAuYyAgICAg ICAgICAgIHwgIDUgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jICAg ICAgICAgICAgfCAxNiArKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8w LmMgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3 XzAuYyAgICAgICAgICAgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djhfMC5jICAgICAgICAgICAgIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OV8wLmMgICAgICAgICAgICAgfCA2OSArKysrKysrKysrKystLS0tLS0tLS0tLQogOSBmaWxl cyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OS5jIGIvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYwppbmRleCAyNjk1 OTI1Li43NDFhM2M1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92OS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9hbWRrZmRfZ2Z4X3Y5LmMKQEAgLTY3MCw3ICs2NzAsNyBAQCBzdGF0aWMgaW50IGludmFsaWRh dGVfdGxic193aXRoX2tpcShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDE2X3QgcGFz aWQsCiBpbnQga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnMoc3RydWN0IGtnZF9kZXYgKmtnZCwg dWludDE2X3QgcGFzaWQpCiB7CiAJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSAoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKikga2dkOwotCWludCB2bWlkOworCWludCB2bWlkLCBpOwogCXN0cnVj dCBhbWRncHVfcmluZyAqcmluZyA9ICZhZGV2LT5nZngua2lxLnJpbmc7CiAJdWludDMyX3QgZmx1 c2hfdHlwZSA9IDA7CiAKQEAgLTY4OSw4ICs2ODksOSBAQCBpbnQga2dkX2dmeF92OV9pbnZhbGlk YXRlX3RsYnMoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3QgcGFzaWQpCiAJCWlmIChrZ2Rf Z2Z4X3Y5X2dldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3ZhbGlkKGtnZCwgdm1pZCkpIHsKIAkJ CWlmIChrZ2RfZ2Z4X3Y5X2dldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3Bhc2lkKGtnZCwgdm1p ZCkKIAkJCQk9PSBwYXNpZCkgewotCQkJCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCB2 bWlkLAotCQkJCQkJCSBmbHVzaF90eXBlKTsKKwkJCQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVt X3ZtaHViczsgaSsrKQorCQkJCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwK KwkJCQkJCQkJaSwgZmx1c2hfdHlwZSk7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTcwMiw2 ICs3MDMsNyBAQCBpbnQga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnMoc3RydWN0IGtnZF9kZXYg KmtnZCwgdWludDE2X3QgcGFzaWQpCiBpbnQga2dkX2dmeF92OV9pbnZhbGlkYXRlX3RsYnNfdm1p ZChzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MTZfdCB2bWlkKQogewogCXN0cnVjdCBhbWRncHVf ZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopIGtnZDsKKwlpbnQgaTsKIAog CWlmICghYW1kZ3B1X2FtZGtmZF9pc19rZmRfdm1pZChhZGV2LCB2bWlkKSkgewogCQlwcl9lcnIo Im5vbiBrZmQgdm1pZCAlZFxuIiwgdm1pZCk7CkBAIC03MjMsNyArNzI1LDkgQEAgaW50IGtnZF9n ZnhfdjlfaW52YWxpZGF0ZV90bGJzX3ZtaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3Qg dm1pZCkKIAkgKiBUT0RPIDI6IHN1cHBvcnQgcmFuZ2UtYmFzZWQgaW52YWxpZGF0aW9uLCByZXF1 aXJlcyBrZmcya2dkCiAJICogaW50ZXJmYWNlIGNoYW5nZQogCSAqLwotCWFtZGdwdV9nbWNfZmx1 c2hfZ3B1X3RsYihhZGV2LCB2bWlkLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3Zt aHViczsgaSsrKQorCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwgaSwgMCk7 CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dhcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0 LmMKaW5kZXggNmQxMWUxNy4uYTY3ZmZmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2dhcnQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfZ2FydC5jCkBAIC0yNDgsNyArMjQ4LDkgQEAgaW50IGFtZGdwdV9nYXJ0X3VuYmluZChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3Qgb2Zmc2V0LAogCX0KIAltYigpOwog CWFtZGdwdV9hc2ljX2ZsdXNoX2hkcChhZGV2LCBOVUxMKTsKLQlhbWRncHVfZ21jX2ZsdXNoX2dw dV90bGIoYWRldiwgMCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7IGkr KykKKwkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIGksIDApOworCiAJcmV0dXJu IDA7CiB9CiAKQEAgLTMwOSw3ICszMTEsNyBAQCBpbnQgYW1kZ3B1X2dhcnRfYmluZChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwgdWludDY0X3Qgb2Zmc2V0LAogI2lmZGVmIENPTkZJR19EUk1f QU1ER1BVX0dBUlRfREVCVUdGUwogCXVuc2lnbmVkIGksdCxwOwogI2VuZGlmCi0JaW50IHI7CisJ aW50IHIsIGk7CiAKIAlpZiAoIWFkZXYtPmdhcnQucmVhZHkpIHsKIAkJV0FSTigxLCAidHJ5aW5n IHRvIGJpbmQgbWVtb3J5IHRvIHVuaW5pdGlhbGl6ZWQgR0FSVCAhXG4iKTsKQEAgLTMzMyw3ICsz MzUsOCBAQCBpbnQgYW1kZ3B1X2dhcnRfYmluZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg dWludDY0X3Qgb2Zmc2V0LAogCiAJbWIoKTsKIAlhbWRncHVfYXNpY19mbHVzaF9oZHAoYWRldiwg TlVMTCk7Ci0JYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDApOworCWZvciAoaSA9 IDA7IGkgPCBhZGV2LT5udW1fdm1odWJzOyBpKyspCisJCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3Rs YihhZGV2LCAwLCBpLCAwKTsKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X2dtYy5oCmluZGV4IDA3MTE0NWEuLjhmMjY5OWUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfZ21jLmgKQEAgLTg5LDggKzg5LDggQEAgc3RydWN0IGFtZGdwdV92 bWh1YiB7CiAgKi8KIHN0cnVjdCBhbWRncHVfZ21jX2Z1bmNzIHsKIAkvKiBmbHVzaCB0aGUgdm0g dGxiIHZpYSBtbWlvICovCi0Jdm9pZCAoKmZsdXNoX2dwdV90bGIpKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2LAotCQkJICAgICAgdWludDMyX3Qgdm1pZCwgdWludDMyX3QgZmx1c2hfdHlwZSk7 CisJdm9pZCAoKmZsdXNoX2dwdV90bGIpKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50 MzJfdCB2bWlkLAorCQkJCXVpbnQzMl90IHZtaHViLCB1aW50MzJfdCBmbHVzaF90eXBlKTsKIAkv KiBmbHVzaCB0aGUgdm0gdGxiIHZpYSByaW5nICovCiAJdWludDY0X3QgKCplbWl0X2ZsdXNoX2dw dV90bGIpKHN0cnVjdCBhbWRncHVfcmluZyAqcmluZywgdW5zaWduZWQgdm1pZCwKIAkJCQkgICAg ICAgdWludDY0X3QgcGRfYWRkcik7CkBAIC0xODAsNyArMTgwLDcgQEAgc3RydWN0IGFtZGdwdV9n bWMgewogCXN0cnVjdCByYXNfY29tbW9uX2lmICAgICpyYXNfaWY7CiB9OwogCi0jZGVmaW5lIGFt ZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCB2bWlkLCB0eXBlKSAoYWRldiktPmdtYy5nbWNf ZnVuY3MtPmZsdXNoX2dwdV90bGIoKGFkZXYpLCAodm1pZCksICh0eXBlKSkKKyNkZWZpbmUgYW1k Z3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIHZtaWQsIHZtaHViLCB0eXBlKSAoKGFkZXYpLT5n bWMuZ21jX2Z1bmNzLT5mbHVzaF9ncHVfdGxiKChhZGV2KSwgKHZtaWQpLCAodm1odWIpLCAodHlw ZSkpKQogI2RlZmluZSBhbWRncHVfZ21jX2VtaXRfZmx1c2hfZ3B1X3RsYihyLCB2bWlkLCBhZGRy KSAociktPmFkZXYtPmdtYy5nbWNfZnVuY3MtPmVtaXRfZmx1c2hfZ3B1X3RsYigociksICh2bWlk KSwgKGFkZHIpKQogI2RlZmluZSBhbWRncHVfZ21jX2VtaXRfcGFzaWRfbWFwcGluZyhyLCB2bWlk LCBwYXNpZCkgKHIpLT5hZGV2LT5nbWMuZ21jX2Z1bmNzLT5lbWl0X3Bhc2lkX21hcHBpbmcoKHIp LCAodm1pZCksIChwYXNpZCkpCiAjZGVmaW5lIGFtZGdwdV9nbWNfZ2V0X3ZtX3BkZShhZGV2LCBs ZXZlbCwgZHN0LCBmbGFncykgKGFkZXYpLT5nbWMuZ21jX2Z1bmNzLT5nZXRfdm1fcGRlKChhZGV2 KSwgKGxldmVsKSwgKGRzdCksIChmbGFncykpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92 MTBfMC5jCmluZGV4IDlkYjRjNGIuLjFhZGRlODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2dmeF92MTBfMC5jCkBAIC0xNzM1LDkgKzE3MzUsMTIgQEAgc3RhdGljIHZvaWQgZ2Z4X3YxMF8w X2luaXRfY3NiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBzdGF0aWMgdm9pZCBnZnhf djEwXzBfaW5pdF9wZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIHsKKwlpbnQgaTsKKwog CWdmeF92MTBfMF9pbml0X2NzYihhZGV2KTsKIAotCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihh ZGV2LCAwLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3ZtaHViczsgaSsrKQorCQlh bWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgaSwgMCk7CiAKIAkvKiBUT0RPOiBpbml0 IHBvd2VyIGdhdGluZyAqLwogCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2dtY192MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Yx MF8wLmMKaW5kZXggNGUzYWMxMC4uYjhhZmIxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3YxMF8wLmMKQEAgLTIyOSw4ICsyMjksOCBAQCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBfZmx1 c2hfdm1faHViKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAogICoK ICAqIEZsdXNoIHRoZSBUTEIgZm9yIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWJsZS4KICAqLwotc3Rh dGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCi0JCQkJICAgIHVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMg dm9pZCBnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwg dWludDMyX3Qgdm1pZCwKKwkJCQkJdWludDMyX3Qgdm1odWIsIHVpbnQzMl90IGZsdXNoX3R5cGUp CiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVuY3Nf cmluZzsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKQEAgLTI0Myw3ICsyNDMsMTQgQEAgc3Rh dGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCiAKIAltdXRleF9sb2NrKCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CiAKLQlnbWNf djEwXzBfZmx1c2hfdm1faHViKGFkZXYsIHZtaWQsIEFNREdQVV9NTUhVQl8wLCAwKTsKKwlpZiAo dm1odWIgPT0gQU1ER1BVX01NSFVCXzApIHsKKwkJZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1YihhZGV2 LCB2bWlkLCBBTURHUFVfTU1IVUJfMCwgMCk7CisJCW11dGV4X3VubG9jaygmYWRldi0+bW1hbi5n dHRfd2luZG93X2xvY2spOworCQlyZXR1cm47CisJfQorCisJQlVHX09OKHZtaHViICE9IEFNREdQ VV9HRlhIVUJfMCk7CisKIAlpZiAoIWFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX2VuYWJsZWQgfHwK IAkgICAgIWFkZXYtPmliX3Bvb2xfcmVhZHkgfHwKIAkgICAgYWRldi0+YXNpY190eXBlID4gQ0hJ UF9OQVZJMTQgfHwKQEAgLTc3Myw3ICs3ODAsOCBAQCBzdGF0aWMgaW50IGdtY192MTBfMF9nYXJ0 X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWdmeGh1Yl92Ml8wX3NldF9m YXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB2YWx1ZSk7CiAJbW1odWJfdjJfMF9zZXRfZmF1bHRf ZW5hYmxlX2RlZmF1bHQoYWRldiwgdmFsdWUpOwotCWdtY192MTBfMF9mbHVzaF9ncHVfdGxiKGFk ZXYsIDAsIDApOworCWdtY192MTBfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIEFNREdQVV9NTUhV Ql8wLCAwKTsKKwlnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBBTURHUFVfR0ZYSFVC XzAsIDApOwogCiAJRFJNX0lORk8oIlBDSUUgR0FSVCBvZiAldU0gZW5hYmxlZCAodGFibGUgYXQg MHglMDE2bGxYKS5cbiIsCiAJCSAodW5zaWduZWQpKGFkZXYtPmdtYy5nYXJ0X3NpemUgPj4gMjAp LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKaW5kZXggYjA2ZDg3Ni4uNTY0ZmIx YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCkBAIC0zNTksOCArMzU5LDgg QEAgc3RhdGljIGludCBnbWNfdjZfMF9tY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBnbWNfdjZfMF9mbHVzaF9ncHVfdGxiKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCXVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZs dXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjZfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAorCQkJCQl1aW50MzJfdCB2bWh1YiwgdWlu dDMyX3QgZmx1c2hfdHlwZSkKIHsKIAlXUkVHMzIobW1WTV9JTlZBTElEQVRFX1JFUVVFU1QsIDEg PDwgdm1pZCk7CiB9CkBAIC01NjgsNyArNTY4LDcgQEAgc3RhdGljIGludCBnbWNfdjZfMF9nYXJ0 X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAllbHNlCiAJCWdtY192Nl8wX3Nl dF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB0cnVlKTsKIAotCWdtY192Nl8wX2ZsdXNoX2dw dV90bGIoYWRldiwgMCwgMCk7CisJZ21jX3Y2XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwLCAw KTsKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICJQQ0lFIEdBUlQgb2YgJXVNIGVuYWJsZWQgKHRhYmxl IGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5nbWMuZ2FydF9zaXplID4+ IDIwKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpdGFibGVfYWRkcik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y3XzAuYwppbmRleCA3NWFhMzMzLi45ZTZhMjMzIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192N18wLmMKQEAgLTQzMCw4ICs0MzAsOCBAQCBzdGF0aWMgaW50IGdt Y192N18wX21jX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKgogICogRmx1c2gg dGhlIFRMQiBmb3IgdGhlIHJlcXVlc3RlZCBwYWdlIHRhYmxlIChDSUspLgogICovCi1zdGF0aWMg dm9pZCBnbWNfdjdfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAot CQkJCXVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNf djdfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2 bWlkLAorCQkJCQl1aW50MzJfdCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAkvKiBi aXRzIDAtMTUgYXJlIHRoZSBWTSBjb250ZXh0czAtMTUgKi8KIAlXUkVHMzIobW1WTV9JTlZBTElE QVRFX1JFUVVFU1QsIDEgPDwgdm1pZCk7CkBAIC02NzQsNyArNjc0LDcgQEAgc3RhdGljIGludCBn bWNfdjdfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJV1JFRzMy KG1tQ0hVQl9DT05UUk9MLCB0bXApOwogCX0KIAotCWdtY192N18wX2ZsdXNoX2dwdV90bGIoYWRl diwgMCwgMCk7CisJZ21jX3Y3XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwLCAwKTsKIAlEUk1f SU5GTygiUENJRSBHQVJUIG9mICV1TSBlbmFibGVkICh0YWJsZSBhdCAweCUwMTZsbFgpLlxuIiwK IAkJICh1bnNpZ25lZCkoYWRldi0+Z21jLmdhcnRfc2l6ZSA+PiAyMCksCiAJCSAodW5zaWduZWQg bG9uZyBsb25nKXRhYmxlX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMK aW5kZXggOGJmMmJhMy4uZjdkNmEwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhf MC5jCkBAIC02MzIsOCArNjMyLDggQEAgc3RhdGljIGludCBnbWNfdjhfMF9tY19pbml0KHN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2KQogICoKICAqIEZsdXNoIHRoZSBUTEIgZm9yIHRoZSByZXF1 ZXN0ZWQgcGFnZSB0YWJsZSAoVkkpLgogICovCi1zdGF0aWMgdm9pZCBnbWNfdjhfMF9mbHVzaF9n cHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCXVpbnQzMl90IHZtaWQsIHVp bnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjhfMF9mbHVzaF9ncHVfdGxiKHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAorCQkJCQl1aW50MzJfdCB2 bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAkvKiBiaXRzIDAtMTUgYXJlIHRoZSBWTSBj b250ZXh0czAtMTUgKi8KIAlXUkVHMzIobW1WTV9JTlZBTElEQVRFX1JFUVVFU1QsIDEgPDwgdm1p ZCk7CkBAIC05MTgsNyArOTE4LDcgQEAgc3RhdGljIGludCBnbWNfdjhfMF9nYXJ0X2VuYWJsZShz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAllbHNlCiAJCWdtY192OF8wX3NldF9mYXVsdF9l bmFibGVfZGVmYXVsdChhZGV2LCB0cnVlKTsKIAotCWdtY192OF8wX2ZsdXNoX2dwdV90bGIoYWRl diwgMCwgMCk7CisJZ21jX3Y4XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwLCAwKTsKIAlEUk1f SU5GTygiUENJRSBHQVJUIG9mICV1TSBlbmFibGVkICh0YWJsZSBhdCAweCUwMTZsbFgpLlxuIiwK IAkJICh1bnNpZ25lZCkoYWRldi0+Z21jLmdhcnRfc2l6ZSA+PiAyMCksCiAJCSAodW5zaWduZWQg bG9uZyBsb25nKXRhYmxlX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8wLmMK aW5kZXggYTJhYTM1ZS4uZjg2MjM2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y5XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlf MC5jCkBAIC00NDgsNDQgKzQ0OCw0NSBAQCBzdGF0aWMgdWludDMyX3QgZ21jX3Y5XzBfZ2V0X2lu dmFsaWRhdGVfcmVxKHVuc2lnbmVkIGludCB2bWlkLAogICoKICAqIEZsdXNoIHRoZSBUTEIgZm9y IHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWJsZSB1c2luZyBjZXJ0YWluIHR5cGUuCiAgKi8KLXN0YXRp YyB2b2lkIGdtY192OV8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs Ci0JCQkJdWludDMyX3Qgdm1pZCwgdWludDMyX3QgZmx1c2hfdHlwZSkKK3N0YXRpYyB2b2lkIGdt Y192OV8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQzMl90 IHZtaWQsCisJCQkJCXVpbnQzMl90IHZtaHViLCB1aW50MzJfdCBmbHVzaF90eXBlKQogewogCWNv bnN0IHVuc2lnbmVkIGVuZyA9IDE3OwotCXVuc2lnbmVkIGksIGo7CisJdTMyIGosIHRtcDsKKwlz dHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWI7CiAKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3Zt aHViczsgKytpKSB7Ci0JCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YiA9ICZhZGV2LT52bWh1Yltp XTsKLQkJdTMyIHRtcCA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh2bWlkLCBmbHVzaF90 eXBlKTsKKwlCVUdfT04odm1odWIgPj0gYWRldi0+bnVtX3ZtaHVicyk7CiAKLQkJLyogVGhpcyBp cyBuZWNlc3NhcnkgZm9yIGEgSFcgd29ya2Fyb3VuZCB1bmRlciBTUklPViBhcyB3ZWxsCi0JCSAq IGFzIEdGWE9GRiB1bmRlciBiYXJlIG1ldGFsCi0JCSAqLwotCQlpZiAoYWRldi0+Z2Z4LmtpcS5y aW5nLnNjaGVkLnJlYWR5ICYmCi0JCSAgICAoYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikgfHwg IWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgJiYKLQkJICAgICFhZGV2LT5pbl9ncHVfcmVzZXQpIHsK LQkJCXVpbnQzMl90IHJlcSA9IGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nOwotCQkJdWludDMy X3QgYWNrID0gaHViLT52bV9pbnZfZW5nMF9hY2sgKyBlbmc7Ci0KLQkJCWFtZGdwdV92aXJ0X2tp cV9yZWdfd3JpdGVfcmVnX3dhaXQoYWRldiwgcmVxLCBhY2ssIHRtcCwKLQkJCQkJCQkgICAxIDw8 IHZtaWQpOwotCQkJY29udGludWU7Ci0JCX0KKwlodWIgPSAmYWRldi0+dm1odWJbdm1odWJdOwor CXRtcCA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh2bWlkLCBmbHVzaF90eXBlKTsKIAot CQlzcGluX2xvY2soJmFkZXYtPmdtYy5pbnZhbGlkYXRlX2xvY2spOwotCQlXUkVHMzJfTk9fS0lR KGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nLCB0bXApOwotCQlmb3IgKGogPSAwOyBqIDwgYWRl di0+dXNlY190aW1lb3V0OyBqKyspIHsKLQkJCXRtcCA9IFJSRUczMl9OT19LSVEoaHViLT52bV9p bnZfZW5nMF9hY2sgKyBlbmcpOwotCQkJaWYgKHRtcCAmICgxIDw8IHZtaWQpKQotCQkJCWJyZWFr OwotCQkJdWRlbGF5KDEpOwotCQl9Ci0JCXNwaW5fdW5sb2NrKCZhZGV2LT5nbWMuaW52YWxpZGF0 ZV9sb2NrKTsKLQkJaWYgKGogPCBhZGV2LT51c2VjX3RpbWVvdXQpCi0JCQljb250aW51ZTsKKwkv KiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgYSBIVyB3b3JrYXJvdW5kIHVuZGVyIFNSSU9WIGFzIHdl bGwKKwkgKiBhcyBHRlhPRkYgdW5kZXIgYmFyZSBtZXRhbAorCSAqLworCWlmIChhZGV2LT5nZngu a2lxLnJpbmcuc2NoZWQucmVhZHkgJiYKKwkJCShhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2KSB8 fCAhYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSAmJgorCQkJIWFkZXYtPmluX2dwdV9yZXNldCkgewor CQl1aW50MzJfdCByZXEgPSBodWItPnZtX2ludl9lbmcwX3JlcSArIGVuZzsKKwkJdWludDMyX3Qg YWNrID0gaHViLT52bV9pbnZfZW5nMF9hY2sgKyBlbmc7CisKKwkJYW1kZ3B1X3ZpcnRfa2lxX3Jl Z193cml0ZV9yZWdfd2FpdChhZGV2LCByZXEsIGFjaywgdG1wLAorCQkJCTEgPDwgdm1pZCk7CisJ CXJldHVybjsKKwl9CiAKLQkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIFZNIGZsdXNo IEFDSyFcbiIpOworCXNwaW5fbG9jaygmYWRldi0+Z21jLmludmFsaWRhdGVfbG9jayk7CisJV1JF RzMyX05PX0tJUShodWItPnZtX2ludl9lbmcwX3JlcSArIGVuZywgdG1wKTsKKwlmb3IgKGogPSAw OyBqIDwgYWRldi0+dXNlY190aW1lb3V0OyBqKyspIHsKKwkJdG1wID0gUlJFRzMyX05PX0tJUSho dWItPnZtX2ludl9lbmcwX2FjayArIGVuZyk7CisJCWlmICh0bXAgJiAoMSA8PCB2bWlkKSkKKwkJ CWJyZWFrOworCQl1ZGVsYXkoMSk7CiAJfQorCXNwaW5fdW5sb2NrKCZhZGV2LT5nbWMuaW52YWxp ZGF0ZV9sb2NrKTsKKwlpZiAoaiA8IGFkZXYtPnVzZWNfdGltZW91dCkKKwkJcmV0dXJuOworCisJ RFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIFZNIGZsdXNoIEFDSyFcbiIpOwogfQogCiBz dGF0aWMgdWludDY0X3QgZ21jX3Y5XzBfZW1pdF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVf cmluZyAqcmluZywKQEAgLTEyMzksNyArMTI0MCw3IEBAIHN0YXRpYyB2b2lkIGdtY192OV8wX2lu aXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqLwogc3Rh dGljIGludCBnbWNfdjlfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK IHsKLQlpbnQgcjsKKwlpbnQgciwgaTsKIAlib29sIHZhbHVlOwogCXUzMiB0bXA7CiAKQEAgLTEy OTUsNyArMTI5Niw5IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9lbmFibGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYpCiAJCW1taHViX3Y5XzRfc2V0X2ZhdWx0X2VuYWJsZV9kZWZhdWx0 KGFkZXYsIHZhbHVlKTsKIAllbHNlCiAJCW1taHViX3YxXzBfc2V0X2ZhdWx0X2VuYWJsZV9kZWZh dWx0KGFkZXYsIHZhbHVlKTsKLQlnbWNfdjlfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDApOwor CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7ICsraSkKKwkJZ21jX3Y5XzBfZmx1 c2hfZ3B1X3RsYihhZGV2LCAwLCBpLCAwKTsKIAogCURSTV9JTkZPKCJQQ0lFIEdBUlQgb2YgJXVN IGVuYWJsZWQgKHRhYmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5n bWMuZ2FydF9zaXplID4+IDIwKSwKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2FtZC1nZng=