From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Zeng, Oak" Subject: RE: [PATCH 1/2] drm/amdgpu: Export function to flush TLB of specific vm hub Date: Tue, 13 Aug 2019 19:17:11 +0000 Message-ID: References: <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: In-Reply-To: <1565324504-4445-1-git-send-email-Oak.Zeng-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: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" , "Koenig, Christian" Cc: "Kuehling, Felix" , "Zhou1, Tao" UGluZyB0aGlzIHNlcmllcy4gQEtvZW5pZywgQ2hyaXN0aWFuIGRvIHlvdSBoYXZlIG1vcmUgY29t bWVudHMgb24gdGhpcz8KClJlZ2FyZHMsCk9hawoKLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0K RnJvbTogWmVuZywgT2FrIDxPYWsuWmVuZ0BhbWQuY29tPiAKU2VudDogRnJpZGF5LCBBdWd1c3Qg OSwgMjAxOSAxMjoyMiBBTQpUbzogYW1kLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKQ2M6IEt1 ZWhsaW5nLCBGZWxpeCA8RmVsaXguS3VlaGxpbmdAYW1kLmNvbT47IEtvZW5pZywgQ2hyaXN0aWFu IDxDaHJpc3RpYW4uS29lbmlnQGFtZC5jb20+OyBaaG91MSwgVGFvIDxUYW8uWmhvdTFAYW1kLmNv bT47IFplbmcsIE9hayA8T2FrLlplbmdAYW1kLmNvbT4KU3ViamVjdDogW1BBVENIIDEvMl0gZHJt L2FtZGdwdTogRXhwb3J0IGZ1bmN0aW9uIHRvIGZsdXNoIFRMQiBvZiBzcGVjaWZpYyB2bSBodWIK ClRoaXMgaXMgZm9yIGtmZCB0byByZXVzZSBhbWRncHUgVExCIGludmFsaWRhdGlvbiBmdW5jdGlv bi4KT24gZ2Z4MTAsIGtmZCBvbmx5IG5lZWRzIHRvIGZsdXNoIFRMQiBvbiBnZnggaHViIGJ1dCBu b3Qgb24gbW0gaHViLiBTbyBleHBvcnQgYSBmdW5jdGlvbiBmb3IgS0ZEIGZsdXNoIFRMQiBvbmx5 IG9uIHNwZWNpZmljIGh1Yi4KCkNoYW5nZS1JZDogSTU4ZmYwMDk2OWY4ODQzOGNmZDNkYzdlOWRl YjdiZmYwYzFiYjQxMzMKU2lnbmVkLW9mZi1ieTogT2FrIFplbmcgPE9hay5aZW5nQGFtZC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyB8 IDEyICsrLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMgICAgICAg ICAgfCAgOSArKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaCAgICAg ICAgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3YxMF8wLmMgICAg ICAgICAgICB8ICA1ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjEwXzAuYyAg ICAgICAgICAgIHwgMTYgKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZf MC5jICAgICAgICAgICAgIHwgIDYgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192 N18wLmMgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3Y4XzAuYyAgICAgICAgICAgICB8ICA2ICstCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9n bWNfdjlfMC5jICAgICAgICAgICAgIHwgNjkgKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDkgZmls ZXMgY2hhbmdlZCwgNzggaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9nZnhfdjkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y5LmMKaW5kZXggMjY5 NTkyNS4uNzQxYTNjNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X2FtZGtmZF9nZnhfdjkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRn cHVfYW1ka2ZkX2dmeF92OS5jCkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIGludCBpbnZhbGlk YXRlX3RsYnNfd2l0aF9raXEoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQxNl90IHBh c2lkLCAgaW50IGtnZF9nZnhfdjlfaW52YWxpZGF0ZV90bGJzKHN0cnVjdCBrZ2RfZGV2ICprZ2Qs IHVpbnQxNl90IHBhc2lkKSAgewogCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVj dCBhbWRncHVfZGV2aWNlICopIGtnZDsKLQlpbnQgdm1pZDsKKwlpbnQgdm1pZCwgaTsKIAlzdHJ1 Y3QgYW1kZ3B1X3JpbmcgKnJpbmcgPSAmYWRldi0+Z2Z4LmtpcS5yaW5nOwogCXVpbnQzMl90IGZs dXNoX3R5cGUgPSAwOwogCkBAIC02ODksOCArNjg5LDkgQEAgaW50IGtnZF9nZnhfdjlfaW52YWxp ZGF0ZV90bGJzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQxNl90IHBhc2lkKQogCQlpZiAoa2dk X2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ192YWxpZChrZ2QsIHZtaWQpKSB7CiAJ CQlpZiAoa2dkX2dmeF92OV9nZXRfYXRjX3ZtaWRfcGFzaWRfbWFwcGluZ19wYXNpZChrZ2QsIHZt aWQpCiAJCQkJPT0gcGFzaWQpIHsKLQkJCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwg dm1pZCwKLQkJCQkJCQkgZmx1c2hfdHlwZSk7CisJCQkJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51 bV92bWh1YnM7IGkrKykKKwkJCQkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIHZtaWQs CisJCQkJCQkJCWksIGZsdXNoX3R5cGUpOwogCQkJCWJyZWFrOwogCQkJfQogCQl9CkBAIC03MDIs NiArNzAzLDcgQEAgaW50IGtnZF9nZnhfdjlfaW52YWxpZGF0ZV90bGJzKHN0cnVjdCBrZ2RfZGV2 ICprZ2QsIHVpbnQxNl90IHBhc2lkKSAgaW50IGtnZF9nZnhfdjlfaW52YWxpZGF0ZV90bGJzX3Zt aWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDE2X3Qgdm1pZCkgIHsKIAlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKSBrZ2Q7CisJaW50IGk7CiAK IAlpZiAoIWFtZGdwdV9hbWRrZmRfaXNfa2ZkX3ZtaWQoYWRldiwgdm1pZCkpIHsKIAkJcHJfZXJy KCJub24ga2ZkIHZtaWQgJWRcbiIsIHZtaWQpOwpAQCAtNzIzLDcgKzcyNSw5IEBAIGludCBrZ2Rf Z2Z4X3Y5X2ludmFsaWRhdGVfdGxic192bWlkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQxNl90 IHZtaWQpCiAJICogVE9ETyAyOiBzdXBwb3J0IHJhbmdlLWJhc2VkIGludmFsaWRhdGlvbiwgcmVx dWlyZXMga2ZnMmtnZAogCSAqIGludGVyZmFjZSBjaGFuZ2UKIAkgKi8KLQlhbWRncHVfZ21jX2Zs dXNoX2dwdV90bGIoYWRldiwgdm1pZCwgMCk7CisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92 bWh1YnM7IGkrKykKKwkJYW1kZ3B1X2dtY19mbHVzaF9ncHVfdGxiKGFkZXYsIHZtaWQsIGksIDAp OworCiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nYXJ0LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ2Fy dC5jCmluZGV4IDZkMTFlMTcuLmE2N2ZmZmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9nYXJ0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv YW1kZ3B1X2dhcnQuYwpAQCAtMjQ4LDcgKzI0OCw5IEBAIGludCBhbWRncHVfZ2FydF91bmJpbmQo c3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IG9mZnNldCwKIAl9CiAJbWIoKTsK IAlhbWRncHVfYXNpY19mbHVzaF9oZHAoYWRldiwgTlVMTCk7Ci0JYW1kZ3B1X2dtY19mbHVzaF9n cHVfdGxiKGFkZXYsIDAsIDApOworCWZvciAoaSA9IDA7IGkgPCBhZGV2LT5udW1fdm1odWJzOyBp KyspCisJCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBpLCAwKTsKKwogCXJldHVy biAwOwogfQogCkBAIC0zMDksNyArMzExLDcgQEAgaW50IGFtZGdwdV9nYXJ0X2JpbmQoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQ2NF90IG9mZnNldCwgICNpZmRlZiBDT05GSUdfRFJN X0FNREdQVV9HQVJUX0RFQlVHRlMKIAl1bnNpZ25lZCBpLHQscDsKICNlbmRpZgotCWludCByOwor CWludCByLCBpOwogCiAJaWYgKCFhZGV2LT5nYXJ0LnJlYWR5KSB7CiAJCVdBUk4oMSwgInRyeWlu ZyB0byBiaW5kIG1lbW9yeSB0byB1bmluaXRpYWxpemVkIEdBUlQgIVxuIik7IEBAIC0zMzMsNyAr MzM1LDggQEAgaW50IGFtZGdwdV9nYXJ0X2JpbmQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHVpbnQ2NF90IG9mZnNldCwKIAogCW1iKCk7CiAJYW1kZ3B1X2FzaWNfZmx1c2hfaGRwKGFkZXYs IE5VTEwpOwotCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwKTsKKwlmb3IgKGkg PSAwOyBpIDwgYWRldi0+bnVtX3ZtaHViczsgaSsrKQorCQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90 bGIoYWRldiwgMCwgaSwgMCk7CiAJcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9nbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2FtZGdwdV9nbWMuaAppbmRleCAwNzExNDVhLi44ZjI2OTllIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfZ21jLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2dtYy5oCkBAIC04OSw4ICs4OSw4IEBAIHN0cnVjdCBhbWRncHVf dm1odWIgewogICovCiBzdHJ1Y3QgYW1kZ3B1X2dtY19mdW5jcyB7CiAJLyogZmx1c2ggdGhlIHZt IHRsYiB2aWEgbW1pbyAqLwotCXZvaWQgKCpmbHVzaF9ncHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKLQkJCSAgICAgIHVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUp OworCXZvaWQgKCpmbHVzaF9ncHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwgdWlu dDMyX3Qgdm1pZCwKKwkJCQl1aW50MzJfdCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSk7CiAJ LyogZmx1c2ggdGhlIHZtIHRsYiB2aWEgcmluZyAqLwogCXVpbnQ2NF90ICgqZW1pdF9mbHVzaF9n cHVfdGxiKShzdHJ1Y3QgYW1kZ3B1X3JpbmcgKnJpbmcsIHVuc2lnbmVkIHZtaWQsCiAJCQkJICAg ICAgIHVpbnQ2NF90IHBkX2FkZHIpOwpAQCAtMTgwLDcgKzE4MCw3IEBAIHN0cnVjdCBhbWRncHVf Z21jIHsKIAlzdHJ1Y3QgcmFzX2NvbW1vbl9pZiAgICAqcmFzX2lmOwogfTsKIAotI2RlZmluZSBh bWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgdm1pZCwgdHlwZSkgKGFkZXYpLT5nbWMuZ21j X2Z1bmNzLT5mbHVzaF9ncHVfdGxiKChhZGV2KSwgKHZtaWQpLCAodHlwZSkpCisjZGVmaW5lIGFt ZGdwdV9nbWNfZmx1c2hfZ3B1X3RsYihhZGV2LCB2bWlkLCB2bWh1YiwgdHlwZSkgCisoKGFkZXYp LT5nbWMuZ21jX2Z1bmNzLT5mbHVzaF9ncHVfdGxiKChhZGV2KSwgKHZtaWQpLCAodm1odWIpLCAo dHlwZSkpKQogI2RlZmluZSBhbWRncHVfZ21jX2VtaXRfZmx1c2hfZ3B1X3RsYihyLCB2bWlkLCBh ZGRyKSAociktPmFkZXYtPmdtYy5nbWNfZnVuY3MtPmVtaXRfZmx1c2hfZ3B1X3RsYigociksICh2 bWlkKSwgKGFkZHIpKSAgI2RlZmluZSBhbWRncHVfZ21jX2VtaXRfcGFzaWRfbWFwcGluZyhyLCB2 bWlkLCBwYXNpZCkgKHIpLT5hZGV2LT5nbWMuZ21jX2Z1bmNzLT5lbWl0X3Bhc2lkX21hcHBpbmco KHIpLCAodm1pZCksIChwYXNpZCkpICAjZGVmaW5lIGFtZGdwdV9nbWNfZ2V0X3ZtX3BkZShhZGV2 LCBsZXZlbCwgZHN0LCBmbGFncykgKGFkZXYpLT5nbWMuZ21jX2Z1bmNzLT5nZXRfdm1fcGRlKChh ZGV2KSwgKGxldmVsKSwgKGRzdCksIChmbGFncykpIGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nZnhfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dm eF92MTBfMC5jCmluZGV4IDlkYjRjNGIuLjFhZGRlODUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L2dmeF92MTBfMC5jCkBAIC0xNzM1LDkgKzE3MzUsMTIgQEAgc3RhdGljIHZvaWQgZ2Z4X3Yx MF8wX2luaXRfY3NiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogCiBzdGF0aWMgdm9pZCBn ZnhfdjEwXzBfaW5pdF9wZyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikgIHsKKwlpbnQgaTsK KwogCWdmeF92MTBfMF9pbml0X2NzYihhZGV2KTsKIAotCWFtZGdwdV9nbWNfZmx1c2hfZ3B1X3Rs YihhZGV2LCAwLCAwKTsKKwlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVtX3ZtaHViczsgaSsrKQor CQlhbWRncHVfZ21jX2ZsdXNoX2dwdV90bGIoYWRldiwgMCwgaSwgMCk7CiAKIAkvKiBUT0RPOiBp bml0IHBvd2VyIGdhdGluZyAqLwogCXJldHVybjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21j X3YxMF8wLmMKaW5kZXggNGUzYWMxMC4uYjhhZmIxMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3YxMF8wLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvZ21jX3YxMF8wLmMKQEAgLTIyOSw4ICsyMjksOCBAQCBzdGF0aWMgdm9pZCBnbWNfdjEwXzBf Zmx1c2hfdm1faHViKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAog ICoKICAqIEZsdXNoIHRoZSBUTEIgZm9yIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWJsZS4KICAqLwot c3RhdGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCi0JCQkJICAgIHVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0 aWMgdm9pZCBnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwgdWludDMyX3Qgdm1pZCwKKwkJCQkJdWludDMyX3Qgdm1odWIsIHVpbnQzMl90IGZsdXNoX3R5 cGUpCiB7CiAJc3RydWN0IGFtZGdwdV9yaW5nICpyaW5nID0gYWRldi0+bW1hbi5idWZmZXJfZnVu Y3NfcmluZzsKIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKQEAgLTI0Myw3ICsyNDMsMTQgQEAg c3RhdGljIHZvaWQgZ21jX3YxMF8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2Ug KmFkZXYsCiAKIAltdXRleF9sb2NrKCZhZGV2LT5tbWFuLmd0dF93aW5kb3dfbG9jayk7CiAKLQln bWNfdjEwXzBfZmx1c2hfdm1faHViKGFkZXYsIHZtaWQsIEFNREdQVV9NTUhVQl8wLCAwKTsKKwlp ZiAodm1odWIgPT0gQU1ER1BVX01NSFVCXzApIHsKKwkJZ21jX3YxMF8wX2ZsdXNoX3ZtX2h1Yihh ZGV2LCB2bWlkLCBBTURHUFVfTU1IVUJfMCwgMCk7CisJCW11dGV4X3VubG9jaygmYWRldi0+bW1h bi5ndHRfd2luZG93X2xvY2spOworCQlyZXR1cm47CisJfQorCisJQlVHX09OKHZtaHViICE9IEFN REdQVV9HRlhIVUJfMCk7CisKIAlpZiAoIWFkZXYtPm1tYW4uYnVmZmVyX2Z1bmNzX2VuYWJsZWQg fHwKIAkgICAgIWFkZXYtPmliX3Bvb2xfcmVhZHkgfHwKIAkgICAgYWRldi0+YXNpY190eXBlID4g Q0hJUF9OQVZJMTQgfHwKQEAgLTc3Myw3ICs3ODAsOCBAQCBzdGF0aWMgaW50IGdtY192MTBfMF9n YXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAogCWdmeGh1Yl92Ml8wX3Nl dF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB2YWx1ZSk7CiAJbW1odWJfdjJfMF9zZXRfZmF1 bHRfZW5hYmxlX2RlZmF1bHQoYWRldiwgdmFsdWUpOwotCWdtY192MTBfMF9mbHVzaF9ncHVfdGxi KGFkZXYsIDAsIDApOworCWdtY192MTBfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIEFNREdQVV9N TUhVQl8wLCAwKTsKKwlnbWNfdjEwXzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBBTURHUFVfR0ZY SFVCXzAsIDApOwogCiAJRFJNX0lORk8oIlBDSUUgR0FSVCBvZiAldU0gZW5hYmxlZCAodGFibGUg YXQgMHglMDE2bGxYKS5cbiIsCiAJCSAodW5zaWduZWQpKGFkZXYtPmdtYy5nYXJ0X3NpemUgPj4g MjApLCBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKaW5kZXggYjA2ZDg3Ni4uNTY0 ZmIxYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y2XzAuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCkBAIC0zNTksOCArMzU5 LDggQEAgc3RhdGljIGludCBnbWNfdjZfMF9tY19pbml0KHN0cnVjdCBhbWRncHVfZGV2aWNlICph ZGV2KQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBnbWNfdjZfMF9mbHVzaF9ncHVfdGxi KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCXVpbnQzMl90IHZtaWQsIHVpbnQzMl90 IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjZfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBh bWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAorCQkJCQl1aW50MzJfdCB2bWh1Yiwg dWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAlXUkVHMzIobW1WTV9JTlZBTElEQVRFX1JFUVVFU1Qs IDEgPDwgdm1pZCk7ICB9IEBAIC01NjgsNyArNTY4LDcgQEAgc3RhdGljIGludCBnbWNfdjZfMF9n YXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAllbHNlCiAJCWdtY192Nl8w X3NldF9mYXVsdF9lbmFibGVfZGVmYXVsdChhZGV2LCB0cnVlKTsKIAotCWdtY192Nl8wX2ZsdXNo X2dwdV90bGIoYWRldiwgMCwgMCk7CisJZ21jX3Y2XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAw LCAwKTsKIAlkZXZfaW5mbyhhZGV2LT5kZXYsICJQQ0lFIEdBUlQgb2YgJXVNIGVuYWJsZWQgKHRh YmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2LT5nbWMuZ2FydF9zaXpl ID4+IDIwKSwKIAkJICh1bnNpZ25lZCBsb25nIGxvbmcpdGFibGVfYWRkcik7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ21jX3Y3XzAuYwppbmRleCA3NWFhMzMzLi45ZTZhMjMzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjdfMC5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKQEAgLTQzMCw4ICs0MzAsOCBAQCBzdGF0aWMgaW50 IGdtY192N18wX21jX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAgKgogICogRmx1 c2ggdGhlIFRMQiBmb3IgdGhlIHJlcXVlc3RlZCBwYWdlIHRhYmxlIChDSUspLgogICovCi1zdGF0 aWMgdm9pZCBnbWNfdjdfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2 LAotCQkJCXVpbnQzMl90IHZtaWQsIHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBn bWNfdjdfMF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJf dCB2bWlkLAorCQkJCQl1aW50MzJfdCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAkv KiBiaXRzIDAtMTUgYXJlIHRoZSBWTSBjb250ZXh0czAtMTUgKi8KIAlXUkVHMzIobW1WTV9JTlZB TElEQVRFX1JFUVVFU1QsIDEgPDwgdm1pZCk7IEBAIC02NzQsNyArNjc0LDcgQEAgc3RhdGljIGlu dCBnbWNfdjdfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAkJV1JF RzMyKG1tQ0hVQl9DT05UUk9MLCB0bXApOwogCX0KIAotCWdtY192N18wX2ZsdXNoX2dwdV90bGIo YWRldiwgMCwgMCk7CisJZ21jX3Y3XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwLCAwKTsKIAlE Uk1fSU5GTygiUENJRSBHQVJUIG9mICV1TSBlbmFibGVkICh0YWJsZSBhdCAweCUwMTZsbFgpLlxu IiwKIAkJICh1bnNpZ25lZCkoYWRldi0+Z21jLmdhcnRfc2l6ZSA+PiAyMCksCiAJCSAodW5zaWdu ZWQgbG9uZyBsb25nKXRhYmxlX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y4XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8w LmMKaW5kZXggOGJmMmJhMy4uZjdkNmEwNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y4XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djhfMC5jCkBAIC02MzIsOCArNjMyLDggQEAgc3RhdGljIGludCBnbWNfdjhfMF9tY19pbml0KHN0 cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQogICoKICAqIEZsdXNoIHRoZSBUTEIgZm9yIHRoZSBy ZXF1ZXN0ZWQgcGFnZSB0YWJsZSAoVkkpLgogICovCi1zdGF0aWMgdm9pZCBnbWNfdjhfMF9mbHVz aF9ncHVfdGxiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAotCQkJCXVpbnQzMl90IHZtaWQs IHVpbnQzMl90IGZsdXNoX3R5cGUpCitzdGF0aWMgdm9pZCBnbWNfdjhfMF9mbHVzaF9ncHVfdGxi KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LCB1aW50MzJfdCB2bWlkLAorCQkJCQl1aW50MzJf dCB2bWh1YiwgdWludDMyX3QgZmx1c2hfdHlwZSkKIHsKIAkvKiBiaXRzIDAtMTUgYXJlIHRoZSBW TSBjb250ZXh0czAtMTUgKi8KIAlXUkVHMzIobW1WTV9JTlZBTElEQVRFX1JFUVVFU1QsIDEgPDwg dm1pZCk7IEBAIC05MTgsNyArOTE4LDcgQEAgc3RhdGljIGludCBnbWNfdjhfMF9nYXJ0X2VuYWJs ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKIAllbHNlCiAJCWdtY192OF8wX3NldF9mYXVs dF9lbmFibGVfZGVmYXVsdChhZGV2LCB0cnVlKTsKIAotCWdtY192OF8wX2ZsdXNoX2dwdV90bGIo YWRldiwgMCwgMCk7CisJZ21jX3Y4XzBfZmx1c2hfZ3B1X3RsYihhZGV2LCAwLCAwLCAwKTsKIAlE Uk1fSU5GTygiUENJRSBHQVJUIG9mICV1TSBlbmFibGVkICh0YWJsZSBhdCAweCUwMTZsbFgpLlxu IiwKIAkJICh1bnNpZ25lZCkoYWRldi0+Z21jLmdhcnRfc2l6ZSA+PiAyMCksCiAJCSAodW5zaWdu ZWQgbG9uZyBsb25nKXRhYmxlX2FkZHIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OV8w LmMKaW5kZXggYTJhYTM1ZS4uZjg2MjM2NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvZ21jX3Y5XzAuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNf djlfMC5jCkBAIC00NDgsNDQgKzQ0OCw0NSBAQCBzdGF0aWMgdWludDMyX3QgZ21jX3Y5XzBfZ2V0 X2ludmFsaWRhdGVfcmVxKHVuc2lnbmVkIGludCB2bWlkLAogICoKICAqIEZsdXNoIHRoZSBUTEIg Zm9yIHRoZSByZXF1ZXN0ZWQgcGFnZSB0YWJsZSB1c2luZyBjZXJ0YWluIHR5cGUuCiAgKi8KLXN0 YXRpYyB2b2lkIGdtY192OV8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFk ZXYsCi0JCQkJdWludDMyX3Qgdm1pZCwgdWludDMyX3QgZmx1c2hfdHlwZSkKK3N0YXRpYyB2b2lk IGdtY192OV8wX2ZsdXNoX2dwdV90bGIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsIHVpbnQz Ml90IHZtaWQsCisJCQkJCXVpbnQzMl90IHZtaHViLCB1aW50MzJfdCBmbHVzaF90eXBlKQogewog CWNvbnN0IHVuc2lnbmVkIGVuZyA9IDE3OwotCXVuc2lnbmVkIGksIGo7CisJdTMyIGosIHRtcDsK KwlzdHJ1Y3QgYW1kZ3B1X3ZtaHViICpodWI7CiAKLQlmb3IgKGkgPSAwOyBpIDwgYWRldi0+bnVt X3ZtaHViczsgKytpKSB7Ci0JCXN0cnVjdCBhbWRncHVfdm1odWIgKmh1YiA9ICZhZGV2LT52bWh1 YltpXTsKLQkJdTMyIHRtcCA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh2bWlkLCBmbHVz aF90eXBlKTsKKwlCVUdfT04odm1odWIgPj0gYWRldi0+bnVtX3ZtaHVicyk7CiAKLQkJLyogVGhp cyBpcyBuZWNlc3NhcnkgZm9yIGEgSFcgd29ya2Fyb3VuZCB1bmRlciBTUklPViBhcyB3ZWxsCi0J CSAqIGFzIEdGWE9GRiB1bmRlciBiYXJlIG1ldGFsCi0JCSAqLwotCQlpZiAoYWRldi0+Z2Z4Lmtp cS5yaW5nLnNjaGVkLnJlYWR5ICYmCi0JCSAgICAoYW1kZ3B1X3NyaW92X3J1bnRpbWUoYWRldikg fHwgIWFtZGdwdV9zcmlvdl92ZihhZGV2KSkgJiYKLQkJICAgICFhZGV2LT5pbl9ncHVfcmVzZXQp IHsKLQkJCXVpbnQzMl90IHJlcSA9IGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nOwotCQkJdWlu dDMyX3QgYWNrID0gaHViLT52bV9pbnZfZW5nMF9hY2sgKyBlbmc7Ci0KLQkJCWFtZGdwdV92aXJ0 X2tpcV9yZWdfd3JpdGVfcmVnX3dhaXQoYWRldiwgcmVxLCBhY2ssIHRtcCwKLQkJCQkJCQkgICAx IDw8IHZtaWQpOwotCQkJY29udGludWU7Ci0JCX0KKwlodWIgPSAmYWRldi0+dm1odWJbdm1odWJd OworCXRtcCA9IGdtY192OV8wX2dldF9pbnZhbGlkYXRlX3JlcSh2bWlkLCBmbHVzaF90eXBlKTsK IAotCQlzcGluX2xvY2soJmFkZXYtPmdtYy5pbnZhbGlkYXRlX2xvY2spOwotCQlXUkVHMzJfTk9f S0lRKGh1Yi0+dm1faW52X2VuZzBfcmVxICsgZW5nLCB0bXApOwotCQlmb3IgKGogPSAwOyBqIDwg YWRldi0+dXNlY190aW1lb3V0OyBqKyspIHsKLQkJCXRtcCA9IFJSRUczMl9OT19LSVEoaHViLT52 bV9pbnZfZW5nMF9hY2sgKyBlbmcpOwotCQkJaWYgKHRtcCAmICgxIDw8IHZtaWQpKQotCQkJCWJy ZWFrOwotCQkJdWRlbGF5KDEpOwotCQl9Ci0JCXNwaW5fdW5sb2NrKCZhZGV2LT5nbWMuaW52YWxp ZGF0ZV9sb2NrKTsKLQkJaWYgKGogPCBhZGV2LT51c2VjX3RpbWVvdXQpCi0JCQljb250aW51ZTsK KwkvKiBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgYSBIVyB3b3JrYXJvdW5kIHVuZGVyIFNSSU9WIGFz IHdlbGwKKwkgKiBhcyBHRlhPRkYgdW5kZXIgYmFyZSBtZXRhbAorCSAqLworCWlmIChhZGV2LT5n Zngua2lxLnJpbmcuc2NoZWQucmVhZHkgJiYKKwkJCShhbWRncHVfc3Jpb3ZfcnVudGltZShhZGV2 KSB8fCAhYW1kZ3B1X3NyaW92X3ZmKGFkZXYpKSAmJgorCQkJIWFkZXYtPmluX2dwdV9yZXNldCkg eworCQl1aW50MzJfdCByZXEgPSBodWItPnZtX2ludl9lbmcwX3JlcSArIGVuZzsKKwkJdWludDMy X3QgYWNrID0gaHViLT52bV9pbnZfZW5nMF9hY2sgKyBlbmc7CisKKwkJYW1kZ3B1X3ZpcnRfa2lx X3JlZ193cml0ZV9yZWdfd2FpdChhZGV2LCByZXEsIGFjaywgdG1wLAorCQkJCTEgPDwgdm1pZCk7 CisJCXJldHVybjsKKwl9CiAKLQkJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIFZNIGZs dXNoIEFDSyFcbiIpOworCXNwaW5fbG9jaygmYWRldi0+Z21jLmludmFsaWRhdGVfbG9jayk7CisJ V1JFRzMyX05PX0tJUShodWItPnZtX2ludl9lbmcwX3JlcSArIGVuZywgdG1wKTsKKwlmb3IgKGog PSAwOyBqIDwgYWRldi0+dXNlY190aW1lb3V0OyBqKyspIHsKKwkJdG1wID0gUlJFRzMyX05PX0tJ UShodWItPnZtX2ludl9lbmcwX2FjayArIGVuZyk7CisJCWlmICh0bXAgJiAoMSA8PCB2bWlkKSkK KwkJCWJyZWFrOworCQl1ZGVsYXkoMSk7CiAJfQorCXNwaW5fdW5sb2NrKCZhZGV2LT5nbWMuaW52 YWxpZGF0ZV9sb2NrKTsKKwlpZiAoaiA8IGFkZXYtPnVzZWNfdGltZW91dCkKKwkJcmV0dXJuOwor CisJRFJNX0VSUk9SKCJUaW1lb3V0IHdhaXRpbmcgZm9yIFZNIGZsdXNoIEFDSyFcbiIpOwogfQog CiBzdGF0aWMgdWludDY0X3QgZ21jX3Y5XzBfZW1pdF9mbHVzaF9ncHVfdGxiKHN0cnVjdCBhbWRn cHVfcmluZyAqcmluZywgQEAgLTEyMzksNyArMTI0MCw3IEBAIHN0YXRpYyB2b2lkIGdtY192OV8w X2luaXRfZ29sZGVuX3JlZ2lzdGVycyhzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKICAqLwog c3RhdGljIGludCBnbWNfdjlfMF9nYXJ0X2VuYWJsZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikgIHsKLQlpbnQgcjsKKwlpbnQgciwgaTsKIAlib29sIHZhbHVlOwogCXUzMiB0bXA7CiAKQEAg LTEyOTUsNyArMTI5Niw5IEBAIHN0YXRpYyBpbnQgZ21jX3Y5XzBfZ2FydF9lbmFibGUoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKmFkZXYpCiAJCW1taHViX3Y5XzRfc2V0X2ZhdWx0X2VuYWJsZV9kZWZh dWx0KGFkZXYsIHZhbHVlKTsKIAllbHNlCiAJCW1taHViX3YxXzBfc2V0X2ZhdWx0X2VuYWJsZV9k ZWZhdWx0KGFkZXYsIHZhbHVlKTsKLQlnbWNfdjlfMF9mbHVzaF9ncHVfdGxiKGFkZXYsIDAsIDAp OworCisJZm9yIChpID0gMDsgaSA8IGFkZXYtPm51bV92bWh1YnM7ICsraSkKKwkJZ21jX3Y5XzBf Zmx1c2hfZ3B1X3RsYihhZGV2LCAwLCBpLCAwKTsKIAogCURSTV9JTkZPKCJQQ0lFIEdBUlQgb2Yg JXVNIGVuYWJsZWQgKHRhYmxlIGF0IDB4JTAxNmxsWCkuXG4iLAogCQkgKHVuc2lnbmVkKShhZGV2 LT5nbWMuZ2FydF9zaXplID4+IDIwKSwKLS0KMi43LjQKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vYW1kLWdmeA==