From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philip Yang Subject: [PATCH] drm/amdgpu: use HMM mirror callback to replace mmu notifier v4 Date: Thu, 13 Sep 2018 16:52:34 -0400 Message-ID: <1536871954-8451-1-git-send-email-Philip.Yang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: Philip Yang UmVwbGFjZSBvdXIgTU1VIG5vdGlmaWVyIHdpdGggaG1tX21pcnJvcl9vcHMuc3luY19jcHVfZGV2 aWNlX3BhZ2V0YWJsZXMKY2FsbGJhY2suIEVuYWJsZSBDT05GSUdfSE1NIGFuZCBDT05GSUdfSE1N X01JUlJPUiBhcyBhIGRlcGVuZGVuY3kgaW4KRFJNX0FNREdQVV9VU0VSUFRSIEtjb25maWcuCgpJ dCBzdXBwb3J0cyBib3RoIEtGRCB1c2VycHRyIGFuZCBnZnggdXNlcnB0ciBwYXRocy4KClRoaXMg ZGVwZW5kcyBvbiBzZXZlcmFsIEhNTSBwYXRjaHNldCBmcm9tIErDqXLDtG1lIEdsaXNzZSBxdWV1 ZWQgZm9yCnVwc3RyZWFtLgoKQ2hhbmdlLUlkOiBJZTYyYzNjNWUzYzViODUyMWFiM2I0MzhkMWVm ZjJhYTJhMDAzODM1ZQpTaWduZWQtb2ZmLWJ5OiBQaGlsaXAgWWFuZyA8UGhpbGlwLllhbmdAYW1k LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnICAgICB8ICAgNiAr LQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgICAgfCAgIDIgKy0KIGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jIHwgMTIxICsrKysrKysrKysrKysrLS0t LS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmgg fCAgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgNzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZyBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25maWcKaW5kZXggOTIyMWU1NC4uOTYwYTYzMyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvS2NvbmZpZworKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnCkBAIC0yNiwxMCArMjYsMTAgQEAgY29uZmln IERSTV9BTURHUFVfQ0lLCiBjb25maWcgRFJNX0FNREdQVV9VU0VSUFRSCiAJYm9vbCAiQWx3YXlz IGVuYWJsZSB1c2VycHRyIHdyaXRlIHN1cHBvcnQiCiAJZGVwZW5kcyBvbiBEUk1fQU1ER1BVCi0J c2VsZWN0IE1NVV9OT1RJRklFUgorCXNlbGVjdCBITU1fTUlSUk9SCiAJaGVscAotCSAgVGhpcyBv cHRpb24gc2VsZWN0cyBDT05GSUdfTU1VX05PVElGSUVSIGlmIGl0IGlzbid0IGFscmVhZHkKLQkg IHNlbGVjdGVkIHRvIGVuYWJsZWQgZnVsbCB1c2VycHRyIHN1cHBvcnQuCisJICBUaGlzIG9wdGlv biBzZWxlY3RzIENPTkZJR19ITU0gYW5kIENPTkZJR19ITU1fTUlSUk9SIGlmIGl0CisJICBpc24n dCBhbHJlYWR5IHNlbGVjdGVkIHRvIGVuYWJsZWQgZnVsbCB1c2VycHRyIHN1cHBvcnQuCiAKIGNv bmZpZyBEUk1fQU1ER1BVX0dBUlRfREVCVUdGUwogCWJvb2wgIkFsbG93IEdBUlQgYWNjZXNzIHRo cm91Z2ggZGVidWdmcyIKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01h a2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKaW5kZXggMTM4Y2I3 OC4uYzFlNWQ0MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZp bGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKQEAgLTE3MSw3ICsx NzEsNyBAQCBlbmRpZgogYW1kZ3B1LSQoQ09ORklHX0NPTVBBVCkgKz0gYW1kZ3B1X2lvYzMyLm8K IGFtZGdwdS0kKENPTkZJR19WR0FfU1dJVENIRVJPTykgKz0gYW1kZ3B1X2F0cHhfaGFuZGxlci5v CiBhbWRncHUtJChDT05GSUdfQUNQSSkgKz0gYW1kZ3B1X2FjcGkubwotYW1kZ3B1LSQoQ09ORklH X01NVV9OT1RJRklFUikgKz0gYW1kZ3B1X21uLm8KK2FtZGdwdS0kKENPTkZJR19ITU0pICs9IGFt ZGdwdV9tbi5vCiAKIGluY2x1ZGUgJChGVUxMX0FNRF9QQVRIKS9wb3dlcnBsYXkvTWFrZWZpbGUK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmMgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYwppbmRleCBlNTU1MDhiLi5hZDUy ZjM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uYwpAQCAtNDUsNyArNDUs NyBAQAogCiAjaW5jbHVkZSA8bGludXgvZmlybXdhcmUuaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9tbXVfbm90aWZpZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9o bW0uaD4KICNpbmNsdWRlIDxsaW51eC9pbnRlcnZhbF90cmVlLmg+CiAjaW5jbHVkZSA8ZHJtL2Ry bVAuaD4KICNpbmNsdWRlIDxkcm0vZHJtLmg+CkBAIC02Niw2ICs2Niw3IEBACiAgKiBAb2JqZWN0 czogaW50ZXJ2YWwgdHJlZSBjb250YWluaW5nIGFtZGdwdV9tbl9ub2RlcwogICogQHJlYWRfbG9j azogbXV0ZXggZm9yIHJlY3Vyc2l2ZSBsb2NraW5nIG9mIEBsb2NrCiAgKiBAcmVjdXJzaW9uOiBk ZXB0aCBvZiByZWN1cnNpb24KKyAqIEBtaXJyb3I6IEhNTSBtaXJyb3IgZnVuY3Rpb24gc3VwcG9y dAogICoKICAqIERhdGEgZm9yIGVhY2ggYW1kZ3B1IGRldmljZSBhbmQgcHJvY2VzcyBhZGRyZXNz IHNwYWNlLgogICovCkBAIC03Myw3ICs3NCw2IEBAIHN0cnVjdCBhbWRncHVfbW4gewogCS8qIGNv bnN0YW50IGFmdGVyIGluaXRpYWxpc2F0aW9uICovCiAJc3RydWN0IGFtZGdwdV9kZXZpY2UJKmFk ZXY7CiAJc3RydWN0IG1tX3N0cnVjdAkqbW07Ci0Jc3RydWN0IG1tdV9ub3RpZmllcgltbjsKIAll bnVtIGFtZGdwdV9tbl90eXBlCXR5cGU7CiAKIAkvKiBvbmx5IHVzZWQgb24gZGVzdHJ1Y3Rpb24g Ki8KQEAgLTg3LDYgKzg3LDkgQEAgc3RydWN0IGFtZGdwdV9tbiB7CiAJc3RydWN0IHJiX3Jvb3Rf Y2FjaGVkCW9iamVjdHM7CiAJc3RydWN0IG11dGV4CQlyZWFkX2xvY2s7CiAJYXRvbWljX3QJCXJl Y3Vyc2lvbjsKKworCS8qIEhNTSBtaXJyb3IgKi8KKwlzdHJ1Y3QgaG1tX21pcnJvcgltaXJyb3I7 CiB9OwogCiAvKioKQEAgLTEwMyw3ICsxMDYsNyBAQCBzdHJ1Y3QgYW1kZ3B1X21uX25vZGUgewog fTsKIAogLyoqCi0gKiBhbWRncHVfbW5fZGVzdHJveSAtIGRlc3Ryb3kgdGhlIE1NVSBub3RpZmll cgorICogYW1kZ3B1X21uX2Rlc3Ryb3kgLSBkZXN0cm95IHRoZSBITU0gbWlycm9yCiAgKgogICog QHdvcms6IHByZXZpb3VzbHkgc2hlZHVsZWQgd29yayBpdGVtCiAgKgpAQCAtMTI5LDI4ICsxMzIs MjYgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21uX2Rlc3Ryb3koc3RydWN0IHdvcmtfc3RydWN0ICp3 b3JrKQogCX0KIAl1cF93cml0ZSgmYW1uLT5sb2NrKTsKIAltdXRleF91bmxvY2soJmFkZXYtPm1u X2xvY2spOwotCW1tdV9ub3RpZmllcl91bnJlZ2lzdGVyX25vX3JlbGVhc2UoJmFtbi0+bW4sIGFt bi0+bW0pOworCWhtbV9taXJyb3JfdW5yZWdpc3RlcigmYW1uLT5taXJyb3IpOworCiAJa2ZyZWUo YW1uKTsKIH0KIAogLyoqCiAgKiBhbWRncHVfbW5fcmVsZWFzZSAtIGNhbGxiYWNrIHRvIG5vdGlm eSBhYm91dCBtbSBkZXN0cnVjdGlvbgogICoKLSAqIEBtbjogb3VyIG5vdGlmaWVyCi0gKiBAbW06 IHRoZSBtbSB0aGlzIGNhbGxiYWNrIGlzIGFib3V0CisgKiBAbWlycm9yOiB0aGUgSE1NIG1pcnJv ciAobW0pIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQKICAqCi0gKiBTaGVkdWxlIGEgd29yayBpdGVt IHRvIGxhenkgZGVzdHJveSBvdXIgbm90aWZpZXIuCisgKiBTaGVkdWxlIGEgd29yayBpdGVtIHRv IGxhenkgZGVzdHJveSBITU0gbWlycm9yLgogICovCi1zdGF0aWMgdm9pZCBhbWRncHVfbW5fcmVs ZWFzZShzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwKLQkJCSAgICAgIHN0cnVjdCBtbV9zdHJ1Y3Qg Km1tKQorc3RhdGljIHZvaWQgYW1kZ3B1X2htbV9taXJyb3JfcmVsZWFzZShzdHJ1Y3QgaG1tX21p cnJvciAqbWlycm9yKQogewotCXN0cnVjdCBhbWRncHVfbW4gKmFtbiA9IGNvbnRhaW5lcl9vZiht biwgc3RydWN0IGFtZGdwdV9tbiwgbW4pOworCXN0cnVjdCBhbWRncHVfbW4gKmFtbiA9IGNvbnRh aW5lcl9vZihtaXJyb3IsIHN0cnVjdCBhbWRncHVfbW4sIG1pcnJvcik7CiAKIAlJTklUX1dPUkso JmFtbi0+d29yaywgYW1kZ3B1X21uX2Rlc3Ryb3kpOwogCXNjaGVkdWxlX3dvcmsoJmFtbi0+d29y ayk7CiB9CiAKLQogLyoqCiAgKiBhbWRncHVfbW5fbG9jayAtIHRha2UgdGhlIHdyaXRlIHNpZGUg bG9jayBmb3IgdGhpcyBub3RpZmllcgogICoKQEAgLTIzNywyMSArMjM4LDE5IEBAIHN0YXRpYyB2 b2lkIGFtZGdwdV9tbl9pbnZhbGlkYXRlX25vZGUoc3RydWN0IGFtZGdwdV9tbl9ub2RlICpub2Rl LAogLyoqCiAgKiBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9nZnggLSBjYWxsYmFj ayB0byBub3RpZnkgYWJvdXQgbW0gY2hhbmdlCiAgKgotICogQG1uOiBvdXIgbm90aWZpZXIKLSAq IEBtbTogdGhlIG1tIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQKLSAqIEBzdGFydDogc3RhcnQgb2Yg dXBkYXRlZCByYW5nZQotICogQGVuZDogZW5kIG9mIHVwZGF0ZWQgcmFuZ2UKKyAqIEBtaXJyb3I6 IHRoZSBobW1fbWlycm9yIChtbSkgaXMgYWJvdXQgdG8gdXBkYXRlCisgKiBAdXBkYXRlOiB0aGUg dXBkYXRlIHN0YXJ0LCBlbmQgYWRkcmVzcwogICoKICAqIEJsb2NrIGZvciBvcGVyYXRpb25zIG9u IEJPcyB0byBmaW5pc2ggYW5kIG1hcmsgcGFnZXMgYXMgYWNjZXNzZWQgYW5kCiAgKiBwb3RlbnRp YWxseSBkaXJ0eS4KICAqLwotc3RhdGljIGludCBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9z dGFydF9nZngoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sCi0JCQkJCQkgc3RydWN0IG1tX3N0cnVj dCAqbW0sCi0JCQkJCQkgdW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkJCSB1bnNpZ25lZCBsb25n IGVuZCwKLQkJCQkJCSBib29sIGJsb2NrYWJsZSkKK3N0YXRpYyBpbnQgYW1kZ3B1X21uX2ludmFs aWRhdGVfcmFuZ2Vfc3RhcnRfZ2Z4KHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCisJCQljb25z dCBzdHJ1Y3QgaG1tX3VwZGF0ZSAqdXBkYXRlKQogewotCXN0cnVjdCBhbWRncHVfbW4gKmFtbiA9 IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGFtZGdwdV9tbiwgbW4pOworCXN0cnVjdCBhbWRncHVf bW4gKmFtbiA9IGNvbnRhaW5lcl9vZihtaXJyb3IsIHN0cnVjdCBhbWRncHVfbW4sIG1pcnJvcik7 CisJdW5zaWduZWQgbG9uZyBzdGFydCA9IHVwZGF0ZS0+c3RhcnQ7CisJdW5zaWduZWQgbG9uZyBl bmQgPSB1cGRhdGUtPmVuZDsKKwlib29sIGJsb2NrYWJsZSA9IHVwZGF0ZS0+YmxvY2thYmxlOwog CXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0OwogCiAJLyogbm90aWZpY2F0aW9uIGlzIGV4 Y2x1c2l2ZSwgYnV0IGludGVydmFsIGlzIGluY2x1c2l2ZSAqLwpAQCAtMjc4LDI4ICsyNzcsMjgg QEAgc3RhdGljIGludCBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9nZngoc3RydWN0 IG1tdV9ub3RpZmllciAqbW4sCiAJCWFtZGdwdV9tbl9pbnZhbGlkYXRlX25vZGUobm9kZSwgc3Rh cnQsIGVuZCk7CiAJfQogCisJYW1kZ3B1X21uX3JlYWRfdW5sb2NrKGFtbik7CisKIAlyZXR1cm4g MDsKIH0KIAogLyoqCiAgKiBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9oc2EgLSBj YWxsYmFjayB0byBub3RpZnkgYWJvdXQgbW0gY2hhbmdlCiAgKgotICogQG1uOiBvdXIgbm90aWZp ZXIKLSAqIEBtbTogdGhlIG1tIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQKLSAqIEBzdGFydDogc3Rh cnQgb2YgdXBkYXRlZCByYW5nZQotICogQGVuZDogZW5kIG9mIHVwZGF0ZWQgcmFuZ2UKKyAqIEBt aXJyb3I6IHRoZSBobW1fbWlycm9yIChtbSkgaXMgYWJvdXQgdG8gdXBkYXRlCisgKiBAdXBkYXRl OiB0aGUgdXBkYXRlIHN0YXJ0LCBlbmQgYWRkcmVzcwogICoKICAqIFdlIHRlbXBvcmFyaWx5IGV2 aWN0IGFsbCBCT3MgYmV0d2VlbiBzdGFydCBhbmQgZW5kLiBUaGlzCiAgKiBuZWNlc3NpdGF0ZXMg ZXZpY3RpbmcgYWxsIHVzZXItbW9kZSBxdWV1ZXMgb2YgdGhlIHByb2Nlc3MuIFRoZSBCT3MKICAq IGFyZSByZXN0b3J0ZWQgaW4gYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2VfZW5kX2hzYS4KICAq Lwotc3RhdGljIGludCBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9oc2Eoc3RydWN0 IG1tdV9ub3RpZmllciAqbW4sCi0JCQkJCQkgc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCQkJCQkg dW5zaWduZWQgbG9uZyBzdGFydCwKLQkJCQkJCSB1bnNpZ25lZCBsb25nIGVuZCwKLQkJCQkJCSBi b29sIGJsb2NrYWJsZSkKK3N0YXRpYyBpbnQgYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2Vfc3Rh cnRfaHNhKHN0cnVjdCBobW1fbWlycm9yICptaXJyb3IsCisJCQljb25zdCBzdHJ1Y3QgaG1tX3Vw ZGF0ZSAqdXBkYXRlKQogewotCXN0cnVjdCBhbWRncHVfbW4gKmFtbiA9IGNvbnRhaW5lcl9vZiht biwgc3RydWN0IGFtZGdwdV9tbiwgbW4pOworCXN0cnVjdCBhbWRncHVfbW4gKmFtbiA9IGNvbnRh aW5lcl9vZihtaXJyb3IsIHN0cnVjdCBhbWRncHVfbW4sIG1pcnJvcik7CisJdW5zaWduZWQgbG9u ZyBzdGFydCA9IHVwZGF0ZS0+c3RhcnQ7CisJdW5zaWduZWQgbG9uZyBlbmQgPSB1cGRhdGUtPmVu ZDsKKwlib29sIGJsb2NrYWJsZSA9IHVwZGF0ZS0+YmxvY2thYmxlOwogCXN0cnVjdCBpbnRlcnZh bF90cmVlX25vZGUgKml0OwogCiAJLyogbm90aWZpY2F0aW9uIGlzIGV4Y2x1c2l2ZSwgYnV0IGlu dGVydmFsIGlzIGluY2x1c2l2ZSAqLwpAQCAtMzI2LDU5ICszMjUsNDEgQEAgc3RhdGljIGludCBh bWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9oc2Eoc3RydWN0IG1tdV9ub3RpZmllciAq bW4sCiAKIAkJCWlmIChhbWRncHVfdHRtX3R0X2FmZmVjdF91c2VycHRyKGJvLT50Ym8udHRtLAog CQkJCQkJCSBzdGFydCwgZW5kKSkKLQkJCQlhbWRncHVfYW1ka2ZkX2V2aWN0X3VzZXJwdHIobWVt LCBtbSk7CisJCQkJYW1kZ3B1X2FtZGtmZF9ldmljdF91c2VycHRyKG1lbSwgYW1uLT5tbSk7CiAJ CX0KIAl9CiAKKwlhbWRncHVfbW5fcmVhZF91bmxvY2soYW1uKTsKKwogCXJldHVybiAwOwogfQog Ci0vKioKLSAqIGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZCAtIGNhbGxiYWNrIHRvIG5v dGlmeSBhYm91dCBtbSBjaGFuZ2UKLSAqCi0gKiBAbW46IG91ciBub3RpZmllcgotICogQG1tOiB0 aGUgbW0gdGhpcyBjYWxsYmFjayBpcyBhYm91dAotICogQHN0YXJ0OiBzdGFydCBvZiB1cGRhdGVk IHJhbmdlCi0gKiBAZW5kOiBlbmQgb2YgdXBkYXRlZCByYW5nZQotICoKLSAqIFJlbGVhc2UgdGhl IGxvY2sgYWdhaW4gdG8gYWxsb3cgbmV3IGNvbW1hbmQgc3VibWlzc2lvbnMuCisvKiBMb3cgYml0 cyBvZiBhbnkgcmVhc29uYWJsZSBtbSBwb2ludGVyIHdpbGwgYmUgdW51c2VkIGR1ZSB0byBzdHJ1 Y3QKKyAqIGFsaWdubWVudC4gVXNlIHRoZXNlIGJpdHMgdG8gbWFrZSBhIHVuaXF1ZSBrZXkgZnJv bSB0aGUgbW0gcG9pbnRlcgorICogYW5kIG5vdGlmaWVyIHR5cGUuCiAgKi8KLXN0YXRpYyB2b2lk IGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZChzdHJ1Y3QgbW11X25vdGlmaWVyICptbiwK LQkJCQkJICAgc3RydWN0IG1tX3N0cnVjdCAqbW0sCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgc3Rh cnQsCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgZW5kKQotewotCXN0cnVjdCBhbWRncHVfbW4gKmFt biA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGFtZGdwdV9tbiwgbW4pOwotCi0JYW1kZ3B1X21u X3JlYWRfdW5sb2NrKGFtbik7Ci19CisjZGVmaW5lIEFNREdQVV9NTl9LRVkobW0sIHR5cGUpICgo dW5zaWduZWQgbG9uZykobW0pICsgKHR5cGUpKQogCi1zdGF0aWMgY29uc3Qgc3RydWN0IG1tdV9u b3RpZmllcl9vcHMgYW1kZ3B1X21uX29wc1tdID0geworc3RhdGljIHN0cnVjdCBobW1fbWlycm9y X29wcyBhbWRncHVfaG1tX21pcnJvcl9vcHNbXSA9IHsKIAlbQU1ER1BVX01OX1RZUEVfR0ZYXSA9 IHsKLQkJLnJlbGVhc2UgPSBhbWRncHVfbW5fcmVsZWFzZSwKLQkJLmludmFsaWRhdGVfcmFuZ2Vf c3RhcnQgPSBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFydF9nZngsCi0JCS5pbnZhbGlk YXRlX3JhbmdlX2VuZCA9IGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZCwKKwkJLnN5bmNf Y3B1X2RldmljZV9wYWdldGFibGVzID0KKwkJCQlhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9z dGFydF9nZngsCisJCS5yZWxlYXNlID0gYW1kZ3B1X2htbV9taXJyb3JfcmVsZWFzZQogCX0sCiAJ W0FNREdQVV9NTl9UWVBFX0hTQV0gPSB7Ci0JCS5yZWxlYXNlID0gYW1kZ3B1X21uX3JlbGVhc2Us Ci0JCS5pbnZhbGlkYXRlX3JhbmdlX3N0YXJ0ID0gYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2Vf c3RhcnRfaHNhLAotCQkuaW52YWxpZGF0ZV9yYW5nZV9lbmQgPSBhbWRncHVfbW5faW52YWxpZGF0 ZV9yYW5nZV9lbmQsCisJCS5zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxlcyA9CisJCQkJYW1kZ3B1 X21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfaHNhLAorCQkucmVsZWFzZSA9IGFtZGdwdV9obW1f bWlycm9yX3JlbGVhc2UKIAl9LAogfTsKIAotLyogTG93IGJpdHMgb2YgYW55IHJlYXNvbmFibGUg bW0gcG9pbnRlciB3aWxsIGJlIHVudXNlZCBkdWUgdG8gc3RydWN0Ci0gKiBhbGlnbm1lbnQuIFVz ZSB0aGVzZSBiaXRzIHRvIG1ha2UgYSB1bmlxdWUga2V5IGZyb20gdGhlIG1tIHBvaW50ZXIKLSAq IGFuZCBub3RpZmllciB0eXBlLgotICovCi0jZGVmaW5lIEFNREdQVV9NTl9LRVkobW0sIHR5cGUp ICgodW5zaWduZWQgbG9uZykobW0pICsgKHR5cGUpKQotCiAvKioKLSAqIGFtZGdwdV9tbl9nZXQg LSBjcmVhdGUgbm90aWZpZXIgY29udGV4dAorICogYW1kZ3B1X21uX2dldCAtIGNyZWF0ZSBITU0g bWlycm9yIGNvbnRleHQKICAqCiAgKiBAYWRldjogYW1kZ3B1IGRldmljZSBwb2ludGVyCiAgKiBA dHlwZTogdHlwZSBvZiBNTVUgbm90aWZpZXIgY29udGV4dAogICoKLSAqIENyZWF0ZXMgYSBub3Rp ZmllciBjb250ZXh0IGZvciBjdXJyZW50LT5tbS4KKyAqIENyZWF0ZXMgYSBITU0gbWlycm9yIGNv bnRleHQgZm9yIGN1cnJlbnQtPm1tLgogICovCiBzdHJ1Y3QgYW1kZ3B1X21uICphbWRncHVfbW5f Z2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQkJCWVudW0gYW1kZ3B1X21uX3R5cGUg dHlwZSkKQEAgLTQwOCwxMiArMzg5LDEyIEBAIHN0cnVjdCBhbWRncHVfbW4gKmFtZGdwdV9tbl9n ZXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJYW1uLT5tbSA9IG1tOwogCWluaXRfcndz ZW0oJmFtbi0+bG9jayk7CiAJYW1uLT50eXBlID0gdHlwZTsKLQlhbW4tPm1uLm9wcyA9ICZhbWRn cHVfbW5fb3BzW3R5cGVdOwogCWFtbi0+b2JqZWN0cyA9IFJCX1JPT1RfQ0FDSEVEOwogCW11dGV4 X2luaXQoJmFtbi0+cmVhZF9sb2NrKTsKIAlhdG9taWNfc2V0KCZhbW4tPnJlY3Vyc2lvbiwgMCk7 CiAKLQlyID0gX19tbXVfbm90aWZpZXJfcmVnaXN0ZXIoJmFtbi0+bW4sIG1tKTsKKwlhbW4tPm1p cnJvci5vcHMgPSAmYW1kZ3B1X2htbV9taXJyb3Jfb3BzW3R5cGVdOworCXIgPSBobW1fbWlycm9y X3JlZ2lzdGVyKCZhbW4tPm1pcnJvciwgbW0pOwogCWlmIChyKQogCQlnb3RvIGZyZWVfYW1uOwog CkBAIC00MzksNyArNDIwLDcgQEAgc3RydWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKICAqIEBibzogYW1kZ3B1IGJ1ZmZlciBvYmplY3QKICAq IEBhZGRyOiB1c2VycHRyIGFkZHIgd2Ugc2hvdWxkIG1vbml0b3IKICAqCi0gKiBSZWdpc3RlcnMg YW4gTU1VIG5vdGlmaWVyIGZvciB0aGUgZ2l2ZW4gQk8gYXQgdGhlIHNwZWNpZmllZCBhZGRyZXNz LgorICogUmVnaXN0ZXJzIGFuIEhNTSBtaXJyb3IgZm9yIHRoZSBnaXZlbiBCTyBhdCB0aGUgc3Bl Y2lmaWVkIGFkZHJlc3MuCiAgKiBSZXR1cm5zIDAgb24gc3VjY2VzcywgLUVSUk5PIGlmIGFueXRo aW5nIGdvZXMgd3JvbmcuCiAgKi8KIGludCBhbWRncHVfbW5fcmVnaXN0ZXIoc3RydWN0IGFtZGdw dV9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRkcikKQEAgLTQ5NSwxMSArNDc2LDExIEBAIGludCBh bWRncHVfbW5fcmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8sIHVuc2lnbmVkIGxvbmcgYWRk cikKIH0KIAogLyoqCi0gKiBhbWRncHVfbW5fdW5yZWdpc3RlciAtIHVucmVnaXN0ZXIgYSBCTyBm b3Igbm90aWZpZXIgdXBkYXRlcworICogYW1kZ3B1X21uX3VucmVnaXN0ZXIgLSB1bnJlZ2lzdGVy IGEgQk8gZm9yIEhNTSBtaXJyb3IgdXBkYXRlcwogICoKICAqIEBibzogYW1kZ3B1IGJ1ZmZlciBv YmplY3QKICAqCi0gKiBSZW1vdmUgYW55IHJlZ2lzdHJhdGlvbiBvZiBNTVUgbm90aWZpZXIgdXBk YXRlcyBmcm9tIHRoZSBidWZmZXIgb2JqZWN0LgorICogUmVtb3ZlIGFueSByZWdpc3RyYXRpb24g b2YgSE1NIG1pcnJvciB1cGRhdGVzIGZyb20gdGhlIGJ1ZmZlciBvYmplY3QuCiAgKi8KIHZvaWQg YW1kZ3B1X21uX3VucmVnaXN0ZXIoc3RydWN0IGFtZGdwdV9ibyAqYm8pCiB7CmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5oCmluZGV4IGViMGY0MzIuLjBlMjc1MjYgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5oCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5oCkBAIC0zNCw3ICszNCw3IEBAIGVudW0gYW1k Z3B1X21uX3R5cGUgewogCUFNREdQVV9NTl9UWVBFX0hTQSwKIH07CiAKLSNpZiBkZWZpbmVkKENP TkZJR19NTVVfTk9USUZJRVIpCisjaWYgZGVmaW5lZChDT05GSUdfSE1NKQogdm9pZCBhbWRncHVf bW5fbG9jayhzdHJ1Y3QgYW1kZ3B1X21uICptbik7CiB2b2lkIGFtZGdwdV9tbl91bmxvY2soc3Ry dWN0IGFtZGdwdV9tbiAqbW4pOwogc3RydWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1 Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2FtZC1nZngK