From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yang, Philip" Subject: [PATCH 1/3] drm/amdgpu: use HMM mirror callback to replace mmu notifier v6 Date: Thu, 6 Dec 2018 21:02:48 +0000 Message-ID: <20181206210235.12036-1-Philip.Yang@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Language: en-US Content-ID: <908A183ACEDD45409AC80B17FD58A6D6-asWib9pRmPqcE4WynfumptQqCkab/8FMAL8bYrjMMd8@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: "amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org" Cc: "Yang, Philip" UmVwbGFjZSBvdXIgTU1VIG5vdGlmaWVyIHdpdGggaG1tX21pcnJvcl9vcHMuc3luY19jcHVfZGV2 aWNlX3BhZ2V0YWJsZXMNCmNhbGxiYWNrLiBFbmFibGUgQ09ORklHX0hNTSBhbmQgQ09ORklHX0hN TV9NSVJST1IgYXMgYSBkZXBlbmRlbmN5IGluDQpEUk1fQU1ER1BVX1VTRVJQVFIgS2NvbmZpZy4N Cg0KSXQgc3VwcG9ydHMgYm90aCBLRkQgdXNlcnB0ciBhbmQgZ2Z4IHVzZXJwdHIgcGF0aHMuDQoN ClRoZSBkZXBkZW50IEhNTSBwYXRjaHNldCBmcm9tIErDqXLDtG1lIEdsaXNzZSBhcmUgYWxsIG1l cmdlZCBpbnRvIDQuMjAuMA0Ka2VybmVsIG5vdy4NCg0KQ2hhbmdlLUlkOiBJZTYyYzNjNWUzYzVi ODUyMWFiM2I0MzhkMWVmZjJhYTJhMDAzODM1ZQ0KU2lnbmVkLW9mZi1ieTogUGhpbGlwIFlhbmcg PFBoaWxpcC5ZYW5nQGFtZC5jb20+DQotLS0NCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9L Y29uZmlnICAgICB8ICAgNiArLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxl ICAgIHwgICAyICstDQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmMgfCAx MjIgKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1 L2FtZGdwdV9tbi5oIHwgICAyICstDQogNCBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCsp LCA3NyBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9LY29uZmlnDQppbmRleCA5 MjIxZTU0ODkwNjkuLjk2MGE2MzM1NTcwNSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L0tjb25maWcNCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L0tjb25m aWcNCkBAIC0yNiwxMCArMjYsMTAgQEAgY29uZmlnIERSTV9BTURHUFVfQ0lLDQogY29uZmlnIERS TV9BTURHUFVfVVNFUlBUUg0KIAlib29sICJBbHdheXMgZW5hYmxlIHVzZXJwdHIgd3JpdGUgc3Vw cG9ydCINCiAJZGVwZW5kcyBvbiBEUk1fQU1ER1BVDQotCXNlbGVjdCBNTVVfTk9USUZJRVINCisJ c2VsZWN0IEhNTV9NSVJST1INCiAJaGVscA0KLQkgIFRoaXMgb3B0aW9uIHNlbGVjdHMgQ09ORklH X01NVV9OT1RJRklFUiBpZiBpdCBpc24ndCBhbHJlYWR5DQotCSAgc2VsZWN0ZWQgdG8gZW5hYmxl ZCBmdWxsIHVzZXJwdHIgc3VwcG9ydC4NCisJICBUaGlzIG9wdGlvbiBzZWxlY3RzIENPTkZJR19I TU0gYW5kIENPTkZJR19ITU1fTUlSUk9SIGlmIGl0DQorCSAgaXNuJ3QgYWxyZWFkeSBzZWxlY3Rl ZCB0byBlbmFibGVkIGZ1bGwgdXNlcnB0ciBzdXBwb3J0Lg0KIA0KIGNvbmZpZyBEUk1fQU1ER1BV X0dBUlRfREVCVUdGUw0KIAlib29sICJBbGxvdyBHQVJUIGFjY2VzcyB0aHJvdWdoIGRlYnVnZnMi DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmlsZQ0KaW5kZXggZjc2YmNiOWM0NWU0Li42NzVl ZmM4NTBmZjQgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9NYWtlZmls ZQ0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUNCkBAIC0xNzIsNyAr MTcyLDcgQEAgZW5kaWYNCiBhbWRncHUtJChDT05GSUdfQ09NUEFUKSArPSBhbWRncHVfaW9jMzIu bw0KIGFtZGdwdS0kKENPTkZJR19WR0FfU1dJVENIRVJPTykgKz0gYW1kZ3B1X2F0cHhfaGFuZGxl ci5vDQogYW1kZ3B1LSQoQ09ORklHX0FDUEkpICs9IGFtZGdwdV9hY3BpLm8NCi1hbWRncHUtJChD T05GSUdfTU1VX05PVElGSUVSKSArPSBhbWRncHVfbW4ubw0KK2FtZGdwdS0kKENPTkZJR19ITU1f TUlSUk9SKSArPSBhbWRncHVfbW4ubw0KIA0KIGluY2x1ZGUgJChGVUxMX0FNRF9QQVRIKS9wb3dl cnBsYXkvTWFrZWZpbGUNCiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9hbWRncHVfbW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jDQpp bmRleCBlNTU1MDhiMzk0OTYuLjVkNTE4ZDJiYjliZSAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9tbi5jDQorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2Ft ZGdwdS9hbWRncHVfbW4uYw0KQEAgLTQ1LDcgKzQ1LDcgQEANCiANCiAjaW5jbHVkZSA8bGludXgv ZmlybXdhcmUuaD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQotI2luY2x1ZGUgPGxpbnV4 L21tdV9ub3RpZmllci5oPg0KKyNpbmNsdWRlIDxsaW51eC9obW0uaD4NCiAjaW5jbHVkZSA8bGlu dXgvaW50ZXJ2YWxfdHJlZS5oPg0KICNpbmNsdWRlIDxkcm0vZHJtUC5oPg0KICNpbmNsdWRlIDxk cm0vZHJtLmg+DQpAQCAtNTgsNyArNTgsNiBAQA0KICAqDQogICogQGFkZXY6IGFtZGdwdSBkZXZp Y2UgcG9pbnRlcg0KICAqIEBtbTogcHJvY2VzcyBhZGRyZXNzIHNwYWNlDQotICogQG1uOiBNTVUg bm90aWZpZXIgc3RydWN0dXJlDQogICogQHR5cGU6IHR5cGUgb2YgTU1VIG5vdGlmaWVyDQogICog QHdvcms6IGRlc3RydWN0aW9uIHdvcmsgaXRlbQ0KICAqIEBub2RlOiBoYXNoIHRhYmxlIG5vZGUg dG8gZmluZCBzdHJ1Y3R1cmUgYnkgYWRldiBhbmQgbW4NCkBAIC02Niw2ICs2NSw3IEBADQogICog QG9iamVjdHM6IGludGVydmFsIHRyZWUgY29udGFpbmluZyBhbWRncHVfbW5fbm9kZXMNCiAgKiBA cmVhZF9sb2NrOiBtdXRleCBmb3IgcmVjdXJzaXZlIGxvY2tpbmcgb2YgQGxvY2sNCiAgKiBAcmVj dXJzaW9uOiBkZXB0aCBvZiByZWN1cnNpb24NCisgKiBAbWlycm9yOiBITU0gbWlycm9yIGZ1bmN0 aW9uIHN1cHBvcnQNCiAgKg0KICAqIERhdGEgZm9yIGVhY2ggYW1kZ3B1IGRldmljZSBhbmQgcHJv Y2VzcyBhZGRyZXNzIHNwYWNlLg0KICAqLw0KQEAgLTczLDcgKzczLDYgQEAgc3RydWN0IGFtZGdw dV9tbiB7DQogCS8qIGNvbnN0YW50IGFmdGVyIGluaXRpYWxpc2F0aW9uICovDQogCXN0cnVjdCBh bWRncHVfZGV2aWNlCSphZGV2Ow0KIAlzdHJ1Y3QgbW1fc3RydWN0CSptbTsNCi0Jc3RydWN0IG1t dV9ub3RpZmllcgltbjsNCiAJZW51bSBhbWRncHVfbW5fdHlwZQl0eXBlOw0KIA0KIAkvKiBvbmx5 IHVzZWQgb24gZGVzdHJ1Y3Rpb24gKi8NCkBAIC04Nyw2ICs4Niw5IEBAIHN0cnVjdCBhbWRncHVf bW4gew0KIAlzdHJ1Y3QgcmJfcm9vdF9jYWNoZWQJb2JqZWN0czsNCiAJc3RydWN0IG11dGV4CQly ZWFkX2xvY2s7DQogCWF0b21pY190CQlyZWN1cnNpb247DQorDQorCS8qIEhNTSBtaXJyb3IgKi8N CisJc3RydWN0IGhtbV9taXJyb3IJbWlycm9yOw0KIH07DQogDQogLyoqDQpAQCAtMTAzLDcgKzEw NSw3IEBAIHN0cnVjdCBhbWRncHVfbW5fbm9kZSB7DQogfTsNCiANCiAvKioNCi0gKiBhbWRncHVf bW5fZGVzdHJveSAtIGRlc3Ryb3kgdGhlIE1NVSBub3RpZmllcg0KKyAqIGFtZGdwdV9tbl9kZXN0 cm95IC0gZGVzdHJveSB0aGUgSE1NIG1pcnJvcg0KICAqDQogICogQHdvcms6IHByZXZpb3VzbHkg c2hlZHVsZWQgd29yayBpdGVtDQogICoNCkBAIC0xMjksMjggKzEzMSwyNiBAQCBzdGF0aWMgdm9p ZCBhbWRncHVfbW5fZGVzdHJveShzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQogCX0NCiAJdXBf d3JpdGUoJmFtbi0+bG9jayk7DQogCW11dGV4X3VubG9jaygmYWRldi0+bW5fbG9jayk7DQotCW1t dV9ub3RpZmllcl91bnJlZ2lzdGVyX25vX3JlbGVhc2UoJmFtbi0+bW4sIGFtbi0+bW0pOw0KKw0K KwlobW1fbWlycm9yX3VucmVnaXN0ZXIoJmFtbi0+bWlycm9yKTsNCiAJa2ZyZWUoYW1uKTsNCiB9 DQogDQogLyoqDQotICogYW1kZ3B1X21uX3JlbGVhc2UgLSBjYWxsYmFjayB0byBub3RpZnkgYWJv dXQgbW0gZGVzdHJ1Y3Rpb24NCisgKiBhbWRncHVfaG1tX21pcnJvcl9yZWxlYXNlIC0gY2FsbGJh Y2sgdG8gbm90aWZ5IGFib3V0IG1tIGRlc3RydWN0aW9uDQogICoNCi0gKiBAbW46IG91ciBub3Rp Zmllcg0KLSAqIEBtbTogdGhlIG1tIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQNCisgKiBAbWlycm9y OiB0aGUgSE1NIG1pcnJvciAobW0pIHRoaXMgY2FsbGJhY2sgaXMgYWJvdXQNCiAgKg0KLSAqIFNo ZWR1bGUgYSB3b3JrIGl0ZW0gdG8gbGF6eSBkZXN0cm95IG91ciBub3RpZmllci4NCisgKiBTaGVk dWxlIGEgd29yayBpdGVtIHRvIGxhenkgZGVzdHJveSBITU0gbWlycm9yLg0KICAqLw0KLXN0YXRp YyB2b2lkIGFtZGdwdV9tbl9yZWxlYXNlKHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLA0KLQkJCSAg ICAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KK3N0YXRpYyB2b2lkIGFtZGdwdV9obW1fbWlycm9y X3JlbGVhc2Uoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvcikNCiB7DQotCXN0cnVjdCBhbWRncHVf bW4gKmFtbiA9IGNvbnRhaW5lcl9vZihtbiwgc3RydWN0IGFtZGdwdV9tbiwgbW4pOw0KKwlzdHJ1 Y3QgYW1kZ3B1X21uICphbW4gPSBjb250YWluZXJfb2YobWlycm9yLCBzdHJ1Y3QgYW1kZ3B1X21u LCBtaXJyb3IpOw0KIA0KIAlJTklUX1dPUksoJmFtbi0+d29yaywgYW1kZ3B1X21uX2Rlc3Ryb3kp Ow0KIAlzY2hlZHVsZV93b3JrKCZhbW4tPndvcmspOw0KIH0NCiANCi0NCiAvKioNCiAgKiBhbWRn cHVfbW5fbG9jayAtIHRha2UgdGhlIHdyaXRlIHNpZGUgbG9jayBmb3IgdGhpcyBub3RpZmllcg0K ICAqDQpAQCAtMjM3LDIxICsyMzcsMTkgQEAgc3RhdGljIHZvaWQgYW1kZ3B1X21uX2ludmFsaWRh dGVfbm9kZShzdHJ1Y3QgYW1kZ3B1X21uX25vZGUgKm5vZGUsDQogLyoqDQogICogYW1kZ3B1X21u X2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfZ2Z4IC0gY2FsbGJhY2sgdG8gbm90aWZ5IGFib3V0IG1t IGNoYW5nZQ0KICAqDQotICogQG1uOiBvdXIgbm90aWZpZXINCi0gKiBAbW06IHRoZSBtbSB0aGlz IGNhbGxiYWNrIGlzIGFib3V0DQotICogQHN0YXJ0OiBzdGFydCBvZiB1cGRhdGVkIHJhbmdlDQot ICogQGVuZDogZW5kIG9mIHVwZGF0ZWQgcmFuZ2UNCisgKiBAbWlycm9yOiB0aGUgaG1tX21pcnJv ciAobW0pIGlzIGFib3V0IHRvIHVwZGF0ZQ0KKyAqIEB1cGRhdGU6IHRoZSB1cGRhdGUgc3RhcnQs IGVuZCBhZGRyZXNzDQogICoNCiAgKiBCbG9jayBmb3Igb3BlcmF0aW9ucyBvbiBCT3MgdG8gZmlu aXNoIGFuZCBtYXJrIHBhZ2VzIGFzIGFjY2Vzc2VkIGFuZA0KICAqIHBvdGVudGlhbGx5IGRpcnR5 Lg0KICAqLw0KLXN0YXRpYyBpbnQgYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfZ2Z4 KHN0cnVjdCBtbXVfbm90aWZpZXIgKm1uLA0KLQkJCQkJCSBzdHJ1Y3QgbW1fc3RydWN0ICptbSwN Ci0JCQkJCQkgdW5zaWduZWQgbG9uZyBzdGFydCwNCi0JCQkJCQkgdW5zaWduZWQgbG9uZyBlbmQs DQotCQkJCQkJIGJvb2wgYmxvY2thYmxlKQ0KK3N0YXRpYyBpbnQgYW1kZ3B1X21uX3N5bmNfcGFn ZXRhYmxlc19nZngoc3RydWN0IGhtbV9taXJyb3IgKm1pcnJvciwNCisJCQljb25zdCBzdHJ1Y3Qg aG1tX3VwZGF0ZSAqdXBkYXRlKQ0KIHsNCi0Jc3RydWN0IGFtZGdwdV9tbiAqYW1uID0gY29udGFp bmVyX29mKG1uLCBzdHJ1Y3QgYW1kZ3B1X21uLCBtbik7DQorCXN0cnVjdCBhbWRncHVfbW4gKmFt biA9IGNvbnRhaW5lcl9vZihtaXJyb3IsIHN0cnVjdCBhbWRncHVfbW4sIG1pcnJvcik7DQorCXVu c2lnbmVkIGxvbmcgc3RhcnQgPSB1cGRhdGUtPnN0YXJ0Ow0KKwl1bnNpZ25lZCBsb25nIGVuZCA9 IHVwZGF0ZS0+ZW5kOw0KKwlib29sIGJsb2NrYWJsZSA9IHVwZGF0ZS0+YmxvY2thYmxlOw0KIAlz dHJ1Y3QgaW50ZXJ2YWxfdHJlZV9ub2RlICppdDsNCiANCiAJLyogbm90aWZpY2F0aW9uIGlzIGV4 Y2x1c2l2ZSwgYnV0IGludGVydmFsIGlzIGluY2x1c2l2ZSAqLw0KQEAgLTI3OCwyOCArMjc2LDI4 IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X21uX2ludmFsaWRhdGVfcmFuZ2Vfc3RhcnRfZ2Z4KHN0cnVj dCBtbXVfbm90aWZpZXIgKm1uLA0KIAkJYW1kZ3B1X21uX2ludmFsaWRhdGVfbm9kZShub2RlLCBz dGFydCwgZW5kKTsNCiAJfQ0KIA0KKwlhbWRncHVfbW5fcmVhZF91bmxvY2soYW1uKTsNCisNCiAJ cmV0dXJuIDA7DQogfQ0KIA0KIC8qKg0KICAqIGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX3N0 YXJ0X2hzYSAtIGNhbGxiYWNrIHRvIG5vdGlmeSBhYm91dCBtbSBjaGFuZ2UNCiAgKg0KLSAqIEBt bjogb3VyIG5vdGlmaWVyDQotICogQG1tOiB0aGUgbW0gdGhpcyBjYWxsYmFjayBpcyBhYm91dA0K LSAqIEBzdGFydDogc3RhcnQgb2YgdXBkYXRlZCByYW5nZQ0KLSAqIEBlbmQ6IGVuZCBvZiB1cGRh dGVkIHJhbmdlDQorICogQG1pcnJvcjogdGhlIGhtbV9taXJyb3IgKG1tKSBpcyBhYm91dCB0byB1 cGRhdGUNCisgKiBAdXBkYXRlOiB0aGUgdXBkYXRlIHN0YXJ0LCBlbmQgYWRkcmVzcw0KICAqDQog ICogV2UgdGVtcG9yYXJpbHkgZXZpY3QgYWxsIEJPcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQuIFRo aXMNCiAgKiBuZWNlc3NpdGF0ZXMgZXZpY3RpbmcgYWxsIHVzZXItbW9kZSBxdWV1ZXMgb2YgdGhl IHByb2Nlc3MuIFRoZSBCT3MNCiAgKiBhcmUgcmVzdG9ydGVkIGluIGFtZGdwdV9tbl9pbnZhbGlk YXRlX3JhbmdlX2VuZF9oc2EuDQogICovDQotc3RhdGljIGludCBhbWRncHVfbW5faW52YWxpZGF0 ZV9yYW5nZV9zdGFydF9oc2Eoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sDQotCQkJCQkJIHN0cnVj dCBtbV9zdHJ1Y3QgKm1tLA0KLQkJCQkJCSB1bnNpZ25lZCBsb25nIHN0YXJ0LA0KLQkJCQkJCSB1 bnNpZ25lZCBsb25nIGVuZCwNCi0JCQkJCQkgYm9vbCBibG9ja2FibGUpDQorc3RhdGljIGludCBh bWRncHVfbW5fc3luY19wYWdldGFibGVzX2hzYShzdHJ1Y3QgaG1tX21pcnJvciAqbWlycm9yLA0K KwkJCWNvbnN0IHN0cnVjdCBobW1fdXBkYXRlICp1cGRhdGUpDQogew0KLQlzdHJ1Y3QgYW1kZ3B1 X21uICphbW4gPSBjb250YWluZXJfb2YobW4sIHN0cnVjdCBhbWRncHVfbW4sIG1uKTsNCisJc3Ry dWN0IGFtZGdwdV9tbiAqYW1uID0gY29udGFpbmVyX29mKG1pcnJvciwgc3RydWN0IGFtZGdwdV9t biwgbWlycm9yKTsNCisJdW5zaWduZWQgbG9uZyBzdGFydCA9IHVwZGF0ZS0+c3RhcnQ7DQorCXVu c2lnbmVkIGxvbmcgZW5kID0gdXBkYXRlLT5lbmQ7DQorCWJvb2wgYmxvY2thYmxlID0gdXBkYXRl LT5ibG9ja2FibGU7DQogCXN0cnVjdCBpbnRlcnZhbF90cmVlX25vZGUgKml0Ow0KIA0KIAkvKiBu b3RpZmljYXRpb24gaXMgZXhjbHVzaXZlLCBidXQgaW50ZXJ2YWwgaXMgaW5jbHVzaXZlICovDQpA QCAtMzI2LDU5ICszMjQsMzkgQEAgc3RhdGljIGludCBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5n ZV9zdGFydF9oc2Eoc3RydWN0IG1tdV9ub3RpZmllciAqbW4sDQogDQogCQkJaWYgKGFtZGdwdV90 dG1fdHRfYWZmZWN0X3VzZXJwdHIoYm8tPnRiby50dG0sDQogCQkJCQkJCSBzdGFydCwgZW5kKSkN Ci0JCQkJYW1kZ3B1X2FtZGtmZF9ldmljdF91c2VycHRyKG1lbSwgbW0pOw0KKwkJCQlhbWRncHVf YW1ka2ZkX2V2aWN0X3VzZXJwdHIobWVtLCBhbW4tPm1tKTsNCiAJCX0NCiAJfQ0KIA0KKwlhbWRn cHVfbW5fcmVhZF91bmxvY2soYW1uKTsNCisNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLS8qKg0KLSAq IGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZCAtIGNhbGxiYWNrIHRvIG5vdGlmeSBhYm91 dCBtbSBjaGFuZ2UNCi0gKg0KLSAqIEBtbjogb3VyIG5vdGlmaWVyDQotICogQG1tOiB0aGUgbW0g dGhpcyBjYWxsYmFjayBpcyBhYm91dA0KLSAqIEBzdGFydDogc3RhcnQgb2YgdXBkYXRlZCByYW5n ZQ0KLSAqIEBlbmQ6IGVuZCBvZiB1cGRhdGVkIHJhbmdlDQotICoNCi0gKiBSZWxlYXNlIHRoZSBs b2NrIGFnYWluIHRvIGFsbG93IG5ldyBjb21tYW5kIHN1Ym1pc3Npb25zLg0KKy8qIExvdyBiaXRz IG9mIGFueSByZWFzb25hYmxlIG1tIHBvaW50ZXIgd2lsbCBiZSB1bnVzZWQgZHVlIHRvIHN0cnVj dA0KKyAqIGFsaWdubWVudC4gVXNlIHRoZXNlIGJpdHMgdG8gbWFrZSBhIHVuaXF1ZSBrZXkgZnJv bSB0aGUgbW0gcG9pbnRlcg0KKyAqIGFuZCBub3RpZmllciB0eXBlLg0KICAqLw0KLXN0YXRpYyB2 b2lkIGFtZGdwdV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZChzdHJ1Y3QgbW11X25vdGlmaWVyICpt biwNCi0JCQkJCSAgIHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLA0KLQkJCQkJICAgdW5zaWduZWQgbG9u ZyBzdGFydCwNCi0JCQkJCSAgIHVuc2lnbmVkIGxvbmcgZW5kKQ0KLXsNCi0Jc3RydWN0IGFtZGdw dV9tbiAqYW1uID0gY29udGFpbmVyX29mKG1uLCBzdHJ1Y3QgYW1kZ3B1X21uLCBtbik7DQotDQot CWFtZGdwdV9tbl9yZWFkX3VubG9jayhhbW4pOw0KLX0NCisjZGVmaW5lIEFNREdQVV9NTl9LRVko bW0sIHR5cGUpICgodW5zaWduZWQgbG9uZykobW0pICsgKHR5cGUpKQ0KIA0KLXN0YXRpYyBjb25z dCBzdHJ1Y3QgbW11X25vdGlmaWVyX29wcyBhbWRncHVfbW5fb3BzW10gPSB7DQorc3RhdGljIHN0 cnVjdCBobW1fbWlycm9yX29wcyBhbWRncHVfaG1tX21pcnJvcl9vcHNbXSA9IHsNCiAJW0FNREdQ VV9NTl9UWVBFX0dGWF0gPSB7DQotCQkucmVsZWFzZSA9IGFtZGdwdV9tbl9yZWxlYXNlLA0KLQkJ LmludmFsaWRhdGVfcmFuZ2Vfc3RhcnQgPSBhbWRncHVfbW5faW52YWxpZGF0ZV9yYW5nZV9zdGFy dF9nZngsDQotCQkuaW52YWxpZGF0ZV9yYW5nZV9lbmQgPSBhbWRncHVfbW5faW52YWxpZGF0ZV9y YW5nZV9lbmQsDQorCQkuc3luY19jcHVfZGV2aWNlX3BhZ2V0YWJsZXMgPSBhbWRncHVfbW5fc3lu Y19wYWdldGFibGVzX2dmeCwNCisJCS5yZWxlYXNlID0gYW1kZ3B1X2htbV9taXJyb3JfcmVsZWFz ZQ0KIAl9LA0KIAlbQU1ER1BVX01OX1RZUEVfSFNBXSA9IHsNCi0JCS5yZWxlYXNlID0gYW1kZ3B1 X21uX3JlbGVhc2UsDQotCQkuaW52YWxpZGF0ZV9yYW5nZV9zdGFydCA9IGFtZGdwdV9tbl9pbnZh bGlkYXRlX3JhbmdlX3N0YXJ0X2hzYSwNCi0JCS5pbnZhbGlkYXRlX3JhbmdlX2VuZCA9IGFtZGdw dV9tbl9pbnZhbGlkYXRlX3JhbmdlX2VuZCwNCisJCS5zeW5jX2NwdV9kZXZpY2VfcGFnZXRhYmxl cyA9IGFtZGdwdV9tbl9zeW5jX3BhZ2V0YWJsZXNfaHNhLA0KKwkJLnJlbGVhc2UgPSBhbWRncHVf aG1tX21pcnJvcl9yZWxlYXNlDQogCX0sDQogfTsNCiANCi0vKiBMb3cgYml0cyBvZiBhbnkgcmVh c29uYWJsZSBtbSBwb2ludGVyIHdpbGwgYmUgdW51c2VkIGR1ZSB0byBzdHJ1Y3QNCi0gKiBhbGln bm1lbnQuIFVzZSB0aGVzZSBiaXRzIHRvIG1ha2UgYSB1bmlxdWUga2V5IGZyb20gdGhlIG1tIHBv aW50ZXINCi0gKiBhbmQgbm90aWZpZXIgdHlwZS4NCi0gKi8NCi0jZGVmaW5lIEFNREdQVV9NTl9L RVkobW0sIHR5cGUpICgodW5zaWduZWQgbG9uZykobW0pICsgKHR5cGUpKQ0KLQ0KIC8qKg0KLSAq IGFtZGdwdV9tbl9nZXQgLSBjcmVhdGUgbm90aWZpZXIgY29udGV4dA0KKyAqIGFtZGdwdV9tbl9n ZXQgLSBjcmVhdGUgSE1NIG1pcnJvciBjb250ZXh0DQogICoNCiAgKiBAYWRldjogYW1kZ3B1IGRl dmljZSBwb2ludGVyDQogICogQHR5cGU6IHR5cGUgb2YgTU1VIG5vdGlmaWVyIGNvbnRleHQNCiAg Kg0KLSAqIENyZWF0ZXMgYSBub3RpZmllciBjb250ZXh0IGZvciBjdXJyZW50LT5tbS4NCisgKiBD cmVhdGVzIGEgSE1NIG1pcnJvciBjb250ZXh0IGZvciBjdXJyZW50LT5tbS4NCiAgKi8NCiBzdHJ1 Y3QgYW1kZ3B1X21uICphbWRncHVfbW5fZ2V0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LA0K IAkJCQllbnVtIGFtZGdwdV9tbl90eXBlIHR5cGUpDQpAQCAtNDA4LDEyICszODYsMTIgQEAgc3Ry dWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwN CiAJYW1uLT5tbSA9IG1tOw0KIAlpbml0X3J3c2VtKCZhbW4tPmxvY2spOw0KIAlhbW4tPnR5cGUg PSB0eXBlOw0KLQlhbW4tPm1uLm9wcyA9ICZhbWRncHVfbW5fb3BzW3R5cGVdOw0KIAlhbW4tPm9i amVjdHMgPSBSQl9ST09UX0NBQ0hFRDsNCiAJbXV0ZXhfaW5pdCgmYW1uLT5yZWFkX2xvY2spOw0K IAlhdG9taWNfc2V0KCZhbW4tPnJlY3Vyc2lvbiwgMCk7DQogDQotCXIgPSBfX21tdV9ub3RpZmll cl9yZWdpc3RlcigmYW1uLT5tbiwgbW0pOw0KKwlhbW4tPm1pcnJvci5vcHMgPSAmYW1kZ3B1X2ht bV9taXJyb3Jfb3BzW3R5cGVdOw0KKwlyID0gaG1tX21pcnJvcl9yZWdpc3RlcigmYW1uLT5taXJy b3IsIG1tKTsNCiAJaWYgKHIpDQogCQlnb3RvIGZyZWVfYW1uOw0KIA0KQEAgLTQzOSw3ICs0MTcs NyBAQCBzdHJ1Y3QgYW1kZ3B1X21uICphbWRncHVfbW5fZ2V0KHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2LA0KICAqIEBibzogYW1kZ3B1IGJ1ZmZlciBvYmplY3QNCiAgKiBAYWRkcjogdXNlcnB0 ciBhZGRyIHdlIHNob3VsZCBtb25pdG9yDQogICoNCi0gKiBSZWdpc3RlcnMgYW4gTU1VIG5vdGlm aWVyIGZvciB0aGUgZ2l2ZW4gQk8gYXQgdGhlIHNwZWNpZmllZCBhZGRyZXNzLg0KKyAqIFJlZ2lz dGVycyBhbiBITU0gbWlycm9yIGZvciB0aGUgZ2l2ZW4gQk8gYXQgdGhlIHNwZWNpZmllZCBhZGRy ZXNzLg0KICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtRVJSTk8gaWYgYW55dGhpbmcgZ29lcyB3 cm9uZy4NCiAgKi8NCiBpbnQgYW1kZ3B1X21uX3JlZ2lzdGVyKHN0cnVjdCBhbWRncHVfYm8gKmJv LCB1bnNpZ25lZCBsb25nIGFkZHIpDQpAQCAtNDk1LDExICs0NzMsMTEgQEAgaW50IGFtZGdwdV9t bl9yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibywgdW5zaWduZWQgbG9uZyBhZGRyKQ0KIH0N CiANCiAvKioNCi0gKiBhbWRncHVfbW5fdW5yZWdpc3RlciAtIHVucmVnaXN0ZXIgYSBCTyBmb3Ig bm90aWZpZXIgdXBkYXRlcw0KKyAqIGFtZGdwdV9tbl91bnJlZ2lzdGVyIC0gdW5yZWdpc3RlciBh IEJPIGZvciBITU0gbWlycm9yIHVwZGF0ZXMNCiAgKg0KICAqIEBibzogYW1kZ3B1IGJ1ZmZlciBv YmplY3QNCiAgKg0KLSAqIFJlbW92ZSBhbnkgcmVnaXN0cmF0aW9uIG9mIE1NVSBub3RpZmllciB1 cGRhdGVzIGZyb20gdGhlIGJ1ZmZlciBvYmplY3QuDQorICogUmVtb3ZlIGFueSByZWdpc3RyYXRp b24gb2YgSE1NIG1pcnJvciB1cGRhdGVzIGZyb20gdGhlIGJ1ZmZlciBvYmplY3QuDQogICovDQog dm9pZCBhbWRncHVfbW5fdW5yZWdpc3RlcihzdHJ1Y3QgYW1kZ3B1X2JvICpibykNCiB7DQpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmggYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfbW4uaA0KaW5kZXggZWIwZjQzMmY3OGZlLi4wYTUx ZmQwMDAyMWMgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVf bW4uaA0KKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X21uLmgNCkBAIC0z NCw3ICszNCw3IEBAIGVudW0gYW1kZ3B1X21uX3R5cGUgew0KIAlBTURHUFVfTU5fVFlQRV9IU0Es DQogfTsNCiANCi0jaWYgZGVmaW5lZChDT05GSUdfTU1VX05PVElGSUVSKQ0KKyNpZiBkZWZpbmVk KENPTkZJR19ITU1fTUlSUk9SKQ0KIHZvaWQgYW1kZ3B1X21uX2xvY2soc3RydWN0IGFtZGdwdV9t biAqbW4pOw0KIHZvaWQgYW1kZ3B1X21uX3VubG9jayhzdHJ1Y3QgYW1kZ3B1X21uICptbik7DQog c3RydWN0IGFtZGdwdV9tbiAqYW1kZ3B1X21uX2dldChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl diwNCi0tIA0KMi4xNy4xDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmFtZC1nZnggbWFpbGluZyBsaXN0CmFtZC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vYW1kLWdm eAo=