From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v5 08/17] xen/arm: Rework the interface of p2m_lookup and use typesafe gfn and mfn Date: Tue, 28 Jun 2016 17:17:14 +0100 Message-ID: <1467130643-23868-9-git-send-email-julien.grall@arm.com> References: <1467130643-23868-1-git-send-email-julien.grall@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1467130643-23868-1-git-send-email-julien.grall@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Julien Grall , sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org VGhlIHByb3RvdHlwZSBhbmQgdGhlIGRlY2xhcmF0aW9uIG9mIHAybV9sb29rdXAgZGlzYWdyZWUg b24gaG93IHRoZQpmdW5jdGlvbiBzaG91bGQgYmUgdXNlZC4gT25lIGV4cGVjdCBhIGZyYW1lIG51 bWJlciB3aGlsc3QgdGhlIG90aGVyCmFuIGFkZHJlc3MuCgpUaGFua2Z1bGx5LCBldmVyeW9uZSBp cyB1c2luZyB3aXRoIGFuIGFkZHJlc3MgdG9kYXkuIEhvd2V2ZXIsIG1vc3Qgb2YKdGhlIGNhbGxl cnMgaGF2ZSB0byBjb252ZXJ0IGEgZ3Vlc3QgZnJhbWUgdG8gYW4gYWRkcmVzcy4gTW9kaWZ5CnRo ZSBpbnRlcmZhY2UgdG8gdGFrZSBhIGd1ZXN0IHBoeXNpY2FsIGZyYW1lIGluIHBhcmFtZXRlciBh bmQgcmV0dXJuCmEgbWFjaGluZSBmcmFtZS4KCldoaWxzdCBtb2RpZnlpbmcgdGhlIGludGVyZmFj ZSwgdXNlIHR5cGVzYWZlIGdmbiBhbmQgbWZuIGZvciBjbGFyaXR5CmFuZCBjYXRjaGluZyBwb3Nz aWJsZSBtaXN1c2FnZS4KClNpZ25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CgotLS0KICAgIENoYW5nZXMgaW4gdjQ6CiAgICAgICAgLSBVc2UgSU5WQUxJRF9N Rk5fVCB3aGVuIHBvc3NpYmxlCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICB8IDQzICsr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS90 cmFwcy5jICAgICAgfCAyMSArKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1h cm0vcDJtLmggfCAgNyArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyks IDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9h cmNoL2FybS9wMm0uYwppbmRleCBjOTM4ZGRlLi41NGEzNjNhIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC0xNDAsMTQgKzE0MCwxNSBA QCB2b2lkIGZsdXNoX3RsYl9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKIH0KIAogLyoKLSAqIExv b2t1cCB0aGUgTUZOIGNvcnJlc3BvbmRpbmcgdG8gYSBkb21haW4ncyBQRk4uCisgKiBMb29rdXAg dGhlIE1GTiBjb3JyZXNwb25kaW5nIHRvIGEgZG9tYWluJ3MgR0ZOLgogICoKICAqIFRoZXJlIGFy ZSBubyBwcm9jZXNzb3IgZnVuY3Rpb25zIHRvIGRvIGEgc3RhZ2UgMiBvbmx5IGxvb2t1cCB0aGVy ZWZvcmUgd2UKICAqIGRvIGEgYSBzb2Z0d2FyZSB3YWxrLgogICovCi1zdGF0aWMgcGFkZHJfdCBf X3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBwYWRkciwgcDJtX3R5cGVfdCAq dCkKK3N0YXRpYyBtZm5fdCBfX3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu LCBwMm1fdHlwZV90ICp0KQogewogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSAmZC0+YXJj aC5wMm07CisgICAgY29uc3QgcGFkZHJfdCBwYWRkciA9IHBmbl90b19wYWRkcihnZm5feChnZm4p KTsKICAgICBjb25zdCB1bnNpZ25lZCBpbnQgb2Zmc2V0c1s0XSA9IHsKICAgICAgICAgemVyb2V0 aF90YWJsZV9vZmZzZXQocGFkZHIpLAogICAgICAgICBmaXJzdF90YWJsZV9vZmZzZXQocGFkZHIp LApAQCAtMTU4LDcgKzE1OSw3IEBAIHN0YXRpYyBwYWRkcl90IF9fcDJtX2xvb2t1cChzdHJ1Y3Qg ZG9tYWluICpkLCBwYWRkcl90IHBhZGRyLCBwMm1fdHlwZV90ICp0KQogICAgICAgICBaRVJPRVRI X01BU0ssIEZJUlNUX01BU0ssIFNFQ09ORF9NQVNLLCBUSElSRF9NQVNLCiAgICAgfTsKICAgICBs cGFlX3QgcHRlLCAqbWFwOwotICAgIHBhZGRyX3QgbWFkZHIgPSBJTlZBTElEX1BBRERSOworICAg IG1mbl90IG1mbiA9IElOVkFMSURfTUZOOwogICAgIHBhZGRyX3QgbWFzayA9IDA7CiAgICAgcDJt X3R5cGVfdCBfdDsKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwsIHJvb3RfdGFibGU7CkBAIC0yMTYs MjEgKzIxNywyMiBAQCBzdGF0aWMgcGFkZHJfdCBfX3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAq ZCwgcGFkZHJfdCBwYWRkciwgcDJtX3R5cGVfdCAqdCkKICAgICB7CiAgICAgICAgIEFTU0VSVCht YXNrKTsKICAgICAgICAgQVNTRVJUKHB0ZS5wMm0udHlwZSAhPSBwMm1faW52YWxpZCk7Ci0gICAg ICAgIG1hZGRyID0gKHB0ZS5iaXRzICYgUEFERFJfTUFTSyAmIG1hc2spIHwgKHBhZGRyICYgfm1h c2spOworICAgICAgICBtZm4gPSBfbWZuKHBhZGRyX3RvX3BmbigocHRlLmJpdHMgJiBQQUREUl9N QVNLICYgbWFzaykgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHIgJiB+ bWFzaykpKTsKICAgICAgICAgKnQgPSBwdGUucDJtLnR5cGU7CiAgICAgfQogCiBlcnI6Ci0gICAg cmV0dXJuIG1hZGRyOworICAgIHJldHVybiBtZm47CiB9CiAKLXBhZGRyX3QgcDJtX2xvb2t1cChz dHJ1Y3QgZG9tYWluICpkLCBwYWRkcl90IHBhZGRyLCBwMm1fdHlwZV90ICp0KQorbWZuX3QgcDJt X2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHAybV90eXBlX3QgKnQpCiB7Ci0g ICAgcGFkZHJfdCByZXQ7CisgICAgbWZuX3QgcmV0OwogICAgIHN0cnVjdCBwMm1fZG9tYWluICpw Mm0gPSAmZC0+YXJjaC5wMm07CiAKICAgICBzcGluX2xvY2soJnAybS0+bG9jayk7Ci0gICAgcmV0 ID0gX19wMm1fbG9va3VwKGQsIHBhZGRyLCB0KTsKKyAgICByZXQgPSBfX3AybV9sb29rdXAoZCwg Z2ZuLCB0KTsKICAgICBzcGluX3VubG9jaygmcDJtLT5sb2NrKTsKIAogICAgIHJldHVybiByZXQ7 CkBAIC00OTMsOCArNDk1LDkgQEAgc3RhdGljIGludCBfX3AybV9nZXRfbWVtX2FjY2VzcyhzdHJ1 Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCiAgICAgICAgICAqIE5vIHNldHRpbmcgd2FzIGZvdW5k IGluIHRoZSBSYWRpeCB0cmVlLiBDaGVjayBpZiB0aGUKICAgICAgICAgICogZW50cnkgZXhpc3Rz IGluIHRoZSBwYWdlLXRhYmxlcy4KICAgICAgICAgICovCi0gICAgICAgIHBhZGRyX3QgbWFkZHIg PSBfX3AybV9sb29rdXAoZCwgZ2ZuX3goZ2ZuKSA8PCBQQUdFX1NISUZULCBOVUxMKTsKLSAgICAg ICAgaWYgKCBJTlZBTElEX1BBRERSID09IG1hZGRyICkKKyAgICAgICAgbWZuX3QgbWZuID0gX19w Mm1fbG9va3VwKGQsIGdmbiwgTlVMTCk7CisKKyAgICAgICAgaWYgKCBtZm5fZXEobWZuLCBJTlZB TElEX01GTikgKQogICAgICAgICAgICAgcmV0dXJuIC1FU1JDSDsKIAogICAgICAgICAvKiBJZiBl bnRyeSBleGlzdHMgdGhlbiBpdHMgcnd4LiAqLwpAQCAtMTQ4Myw4ICsxNDg2LDcgQEAgaW50IHAy bV9jYWNoZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3Qgc3RhcnRfbWZuLCB4ZW5f cGZuX3QgZW5kX21mbikKIAogbWZuX3QgZ2ZuX3RvX21mbihzdHJ1Y3QgZG9tYWluICpkLCBnZm5f dCBnZm4pCiB7Ci0gICAgcGFkZHJfdCBwID0gcDJtX2xvb2t1cChkLCBwZm5fdG9fcGFkZHIoZ2Zu X3goZ2ZuKSksIE5VTEwpOwotICAgIHJldHVybiBfbWZuKHAgPj4gUEFHRV9TSElGVCk7CisgICAg cmV0dXJuIHAybV9sb29rdXAoZCwgZ2ZuLCBOVUxMKTsKIH0KIAogLyoKQEAgLTE0OTgsOCArMTUw MCw4IEBAIHAybV9tZW1fYWNjZXNzX2NoZWNrX2FuZF9nZXRfcGFnZSh2YWRkcl90IGd2YSwgdW5z aWduZWQgbG9uZyBmbGFnKQogewogICAgIGxvbmcgcmM7CiAgICAgcGFkZHJfdCBpcGE7Ci0gICAg dW5zaWduZWQgbG9uZyBtYWRkcjsKLSAgICB1bnNpZ25lZCBsb25nIG1mbjsKKyAgICBnZm5fdCBn Zm47CisgICAgbWZuX3QgbWZuOwogICAgIHhlbm1lbV9hY2Nlc3NfdCB4bWE7CiAgICAgcDJtX3R5 cGVfdCB0OwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UgPSBOVUxMOwpAQCAtMTUwOCwxMSAr MTUxMCwxMyBAQCBwMm1fbWVtX2FjY2Vzc19jaGVja19hbmRfZ2V0X3BhZ2UodmFkZHJfdCBndmEs IHVuc2lnbmVkIGxvbmcgZmxhZykKICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgIGdvdG8gZXJy OwogCisgICAgZ2ZuID0gX2dmbihwYWRkcl90b19wZm4oaXBhKSk7CisKICAgICAvKgogICAgICAq IFdlIGRvIHRoaXMgZmlyc3QgYXMgdGhpcyBpcyBmYXN0ZXIgaW4gdGhlIGRlZmF1bHQgY2FzZSB3 aGVuIG5vCiAgICAgICogcGVybWlzc2lvbiBpcyBzZXQgb24gdGhlIHBhZ2UuCiAgICAgICovCi0g ICAgcmMgPSBfX3AybV9nZXRfbWVtX2FjY2VzcyhjdXJyZW50LT5kb21haW4sIF9nZm4ocGFkZHJf dG9fcGZuKGlwYSkpLCAmeG1hKTsKKyAgICByYyA9IF9fcDJtX2dldF9tZW1fYWNjZXNzKGN1cnJl bnQtPmRvbWFpbiwgZ2ZuLCAmeG1hKTsKICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgIGdvdG8g ZXJyOwogCkBAIC0xNTYxLDEyICsxNTY1LDExIEBAIHAybV9tZW1fYWNjZXNzX2NoZWNrX2FuZF9n ZXRfcGFnZSh2YWRkcl90IGd2YSwgdW5zaWduZWQgbG9uZyBmbGFnKQogICAgICAqIFdlIGhhZCBh IG1lbV9hY2Nlc3MgcGVybWlzc2lvbiBsaW1pdGluZyB0aGUgYWNjZXNzLCBidXQgdGhlIHBhZ2Ug dHlwZQogICAgICAqIGNvdWxkIGFsc28gYmUgbGltaXRpbmcsIHNvIHdlIG5lZWQgdG8gY2hlY2sg dGhhdCBhcyB3ZWxsLgogICAgICAqLwotICAgIG1hZGRyID0gX19wMm1fbG9va3VwKGN1cnJlbnQt PmRvbWFpbiwgaXBhLCAmdCk7Ci0gICAgaWYgKCBtYWRkciA9PSBJTlZBTElEX1BBRERSICkKKyAg ICBtZm4gPSBfX3AybV9sb29rdXAoY3VycmVudC0+ZG9tYWluLCBnZm4sICZ0KTsKKyAgICBpZiAo IG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSApCiAgICAgICAgIGdvdG8gZXJyOwogCi0gICAgbWZu ID0gbWFkZHIgPj4gUEFHRV9TSElGVDsKLSAgICBpZiAoICFtZm5fdmFsaWQobWZuKSApCisgICAg aWYgKCAhbWZuX3ZhbGlkKG1mbl94KG1mbikpICkKICAgICAgICAgZ290byBlcnI7CiAKICAgICAv KgpAQCAtMTU3NSw3ICsxNTc4LDcgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dldF9wYWdl KHZhZGRyX3QgZ3ZhLCB1bnNpZ25lZCBsb25nIGZsYWcpCiAgICAgaWYgKCB0ICE9IHAybV9yYW1f cncgKQogICAgICAgICBnb3RvIGVycjsKIAotICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm4pOwor ICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKIAogICAgIGlmICggdW5saWtlbHko IWdldF9wYWdlKHBhZ2UsIGN1cnJlbnQtPmRvbWFpbikpICkKICAgICAgICAgcGFnZSA9IE5VTEw7 CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90cmFwcy5j CmluZGV4IDQ0OTI2Y2EuLmI2NTNmNjEgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90cmFwcy5j CisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0yMzE5LDE0ICsyMzE5LDE2IEBAIHZvaWQg ZHVtcF9ndWVzdF9zMV93YWxrKHN0cnVjdCBkb21haW4gKmQsIHZhZGRyX3QgYWRkcikKIHsKICAg ICByZWdpc3Rlcl90IHR0YmNyID0gUkVBRF9TWVNSRUcoVENSX0VMMSk7CiAgICAgdWludDY0X3Qg dHRicjAgPSBSRUFEX1NZU1JFRzY0KFRUQlIwX0VMMSk7Ci0gICAgcGFkZHJfdCBwYWRkcjsKICAg ICB1aW50MzJfdCBvZmZzZXQ7CiAgICAgdWludDMyX3QgKmZpcnN0ID0gTlVMTCwgKnNlY29uZCA9 IE5VTEw7CisgICAgbWZuX3QgbWZuOworCisgICAgbWZuID0gcDJtX2xvb2t1cChkLCBfZ2ZuKHBh ZGRyX3RvX3Bmbih0dGJyMCkpLCBOVUxMKTsKIAogICAgIHByaW50aygiZG9tJWQgVkEgMHglMDgi UFJJdmFkZHIiXG4iLCBkLT5kb21haW5faWQsIGFkZHIpOwogICAgIHByaW50aygiICAgIFRUQkNS OiAweCUwOCJQUklyZWdpc3RlciJcbiIsIHR0YmNyKTsKICAgICBwcmludGsoIiAgICBUVEJSMDog MHglMDE2IlBSSXg2NCIgPSAweCUiUFJJcGFkZHIiXG4iLAotICAgICAgICAgICB0dGJyMCwgcDJt X2xvb2t1cChkLCB0dGJyMCAmIFBBR0VfTUFTSywgTlVMTCkpOworICAgICAgICAgICB0dGJyMCwg cGZuX3RvX3BhZGRyKG1mbl94KG1mbikpKTsKIAogICAgIGlmICggdHRiY3IgJiBUVEJDUl9FQUUg KQogICAgIHsKQEAgLTIzMzksMzIgKzIzNDEsMzEgQEAgdm9pZCBkdW1wX2d1ZXN0X3MxX3dhbGso c3RydWN0IGRvbWFpbiAqZCwgdmFkZHJfdCBhZGRyKQogICAgICAgICByZXR1cm47CiAgICAgfQog Ci0gICAgcGFkZHIgPSBwMm1fbG9va3VwKGQsIHR0YnIwICYgUEFHRV9NQVNLLCBOVUxMKTsKLSAg ICBpZiAoIHBhZGRyID09IElOVkFMSURfUEFERFIgKQorICAgIGlmICggbWZuX2VxKG1mbiwgSU5W QUxJRF9NRk4pICkKICAgICB7CiAgICAgICAgIHByaW50aygiRmFpbGVkIFRUQlIwIG1hZGRyIGxv b2t1cFxuIik7CiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9Ci0gICAgZmlyc3QgPSBtYXBfZG9t YWluX3BhZ2UoX21mbihwYWRkcl90b19wZm4ocGFkZHIpKSk7CisgICAgZmlyc3QgPSBtYXBfZG9t YWluX3BhZ2UobWZuKTsKIAogICAgIG9mZnNldCA9IGFkZHIgPj4gKDEyKzEwKTsKICAgICBwcmlu dGsoIjFTVFsweCUiUFJJeDMyIl0gKDB4JSJQUklwYWRkciIpID0gMHglMDgiUFJJeDMyIlxuIiwK LSAgICAgICAgICAgb2Zmc2V0LCBwYWRkciwgZmlyc3Rbb2Zmc2V0XSk7CisgICAgICAgICAgIG9m ZnNldCwgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikpLCBmaXJzdFtvZmZzZXRdKTsKICAgICBpZiAo ICEoZmlyc3Rbb2Zmc2V0XSAmIDB4MSkgfHwKICAgICAgICAgICEoZmlyc3Rbb2Zmc2V0XSAmIDB4 MikgKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBwYWRkciA9IHAybV9sb29rdXAoZCwgZmly c3Rbb2Zmc2V0XSAmIFBBR0VfTUFTSywgTlVMTCk7CisgICAgbWZuID0gcDJtX2xvb2t1cChkLCBf Z2ZuKHBhZGRyX3RvX3BmbihmaXJzdFtvZmZzZXRdKSksIE5VTEwpOwogCi0gICAgaWYgKCBwYWRk ciA9PSBJTlZBTElEX1BBRERSICkKKyAgICBpZiAoIG1mbl9lcShtZm4sIElOVkFMSURfTUZOKSAp CiAgICAgewogICAgICAgICBwcmludGsoIkZhaWxlZCBMMSBlbnRyeSBtYWRkciBsb29rdXBcbiIp OwogICAgICAgICBnb3RvIGRvbmU7CiAgICAgfQotICAgIHNlY29uZCA9IG1hcF9kb21haW5fcGFn ZShfbWZuKHBhZGRyX3RvX3BmbihwYWRkcikpKTsKKyAgICBzZWNvbmQgPSBtYXBfZG9tYWluX3Bh Z2UobWZuKTsKICAgICBvZmZzZXQgPSAoYWRkciA+PiAxMikgJiAweDNGRjsKICAgICBwcmludGso IjJORFsweCUiUFJJeDMyIl0gKDB4JSJQUklwYWRkciIpID0gMHglMDgiUFJJeDMyIlxuIiwKLSAg ICAgICAgICAgb2Zmc2V0LCBwYWRkciwgc2Vjb25kW29mZnNldF0pOworICAgICAgICAgICBvZmZz ZXQsIHBmbl90b19wYWRkcihtZm5feChtZm4pKSwgc2Vjb25kW29mZnNldF0pOwogCiBkb25lOgog ICAgIGlmIChzZWNvbmQpIHVubWFwX2RvbWFpbl9wYWdlKHNlY29uZCk7CmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaAppbmRl eCAwZDFlNjFlLi5mMjA0NDgyIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5o CisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJtLmgKQEAgLTEzNSw4ICsxMzUsOCBAQCB2b2lk IHAybV9yZXN0b3JlX3N0YXRlKHN0cnVjdCB2Y3B1ICpuKTsKIC8qIFByaW50IGRlYnVnZ2luZy9z dGF0aXN0aWFsIGluZm8gYWJvdXQgYSBkb21haW4ncyBwMm0gKi8KIHZvaWQgcDJtX2R1bXBfaW5m byhzdHJ1Y3QgZG9tYWluICpkKTsKIAotLyogTG9vayB1cCB0aGUgTUZOIGNvcnJlc3BvbmRpbmcg dG8gYSBkb21haW4ncyBQRk4uICovCi1wYWRkcl90IHAybV9sb29rdXAoc3RydWN0IGRvbWFpbiAq ZCwgcGFkZHJfdCBncGZuLCBwMm1fdHlwZV90ICp0KTsKKy8qIExvb2sgdXAgdGhlIE1GTiBjb3Jy ZXNwb25kaW5nIHRvIGEgZG9tYWluJ3MgR0ZOLiAqLworbWZuX3QgcDJtX2xvb2t1cChzdHJ1Y3Qg ZG9tYWluICpkLCBnZm5fdCBnZm4sIHAybV90eXBlX3QgKnQpOwogCiAvKiBDbGVhbiAmIGludmFs aWRhdGUgY2FjaGVzIGNvcnJlc3BvbmRpbmcgdG8gYSByZWdpb24gb2YgZ3Vlc3QgYWRkcmVzcyBz cGFjZSAqLwogaW50IHAybV9jYWNoZV9mbHVzaChzdHJ1Y3QgZG9tYWluICpkLCB4ZW5fcGZuX3Qg c3RhcnRfbWZuLCB4ZW5fcGZuX3QgZW5kX21mbik7CkBAIC0yMDEsOCArMjAxLDcgQEAgc3RhdGlj IGlubGluZSBzdHJ1Y3QgcGFnZV9pbmZvICpnZXRfcGFnZV9mcm9tX2dmbigKIHsKICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpwYWdlOwogICAgIHAybV90eXBlX3QgcDJtdDsKLSAgICBwYWRkcl90IG1h ZGRyID0gcDJtX2xvb2t1cChkLCBwZm5fdG9fcGFkZHIoZ2ZuKSwgJnAybXQpOwotICAgIHVuc2ln bmVkIGxvbmcgbWZuID0gbWFkZHIgPj4gUEFHRV9TSElGVDsKKyAgICB1bnNpZ25lZCBsb25nIG1m biA9IG1mbl94KHAybV9sb29rdXAoZCwgX2dmbihnZm4pLCAmcDJtdCkpOwogCiAgICAgaWYgKHQp CiAgICAgICAgICp0ID0gcDJtdDsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxA bGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK