From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [PATCH v4 06/16] xen/arm: Rework the interface of p2m_lookup and use typesafe gfn and mfn Date: Mon, 27 Jun 2016 17:54:02 +0100 Message-ID: <1467046452-1261-7-git-send-email-julien.grall@arm.com> References: <1467046452-1261-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: <1467046452-1261-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, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org VGhlIHByb3RvdHlwZSBhbmQgdGhlIGRlY2xhcmF0aW9uIG9mIHAybV9sb29rdXAgZGlzYWdyZWUg b24gaG93IHRoZQpmdW5jdGlvbiBzaG91bGQgYmUgdXNlZC4gT25lIGV4cGVjdCBhIGZyYW1lIG51 bWJlciB3aGlsc3QgdGhlIG90aGVyCmFuIGFkZHJlc3MuCgpUaGFua2Z1bGx5LCBldmVyeW9uZSBp cyB1c2luZyB3aXRoIGFuIGFkZHJlc3MgdG9kYXkuIEhvd2V2ZXIsIG1vc3Qgb2YKdGhlIGNhbGxl cnMgaGF2ZSB0byBjb252ZXJ0IGEgZ3Vlc3QgZnJhbWUgdG8gYW4gYWRkcmVzcy4gTW9kaWZ5CnRo ZSBpbnRlcmZhY2UgdG8gdGFrZSBhIGd1ZXN0IHBoeXNpY2FsIGZyYW1lIGluIHBhcmFtZXRlciBh bmQgcmV0dXJuCmEgbWFjaGluZSBmcmFtZS4KCldoaWxzdCBtb2RpZnlpbmcgdGhlIGludGVyZmFj ZSwgdXNlIHR5cGVzYWZlIGdmbiBhbmQgbWZuIGZvciBjbGFyaXR5CmFuZCBjYXRjaGluZyBwb3Nz aWJsZSBtaXN1c2FnZS4KClNpZ25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8anVsaWVuLmdyYWxs QGFybS5jb20+CgotLS0KICAgIENoYW5nZXMgaW4gdjQ6CiAgICAgICAgLSBVc2UgSU5WQUxJRF9N Rk5fVCB3aGVuIHBvc3NpYmxlCi0tLQogeGVuL2FyY2gvYXJtL3AybS5jICAgICAgICB8IDQzICsr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS90 cmFwcy5jICAgICAgfCAyMSArKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS1h cm0vcDJtLmggfCAgNyArKystLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlvbnMoKyks IDM0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9wMm0uYyBiL3hlbi9h cmNoL2FybS9wMm0uYwppbmRleCAzNDU2M2JiLi42NTgxOGRkIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vcDJtLmMKKysrIGIveGVuL2FyY2gvYXJtL3AybS5jCkBAIC0xNDAsMTQgKzE0MCwxNSBA QCB2b2lkIGZsdXNoX3RsYl9kb21haW4oc3RydWN0IGRvbWFpbiAqZCkKIH0KIAogLyoKLSAqIExv b2t1cCB0aGUgTUZOIGNvcnJlc3BvbmRpbmcgdG8gYSBkb21haW4ncyBQRk4uCisgKiBMb29rdXAg dGhlIE1GTiBjb3JyZXNwb25kaW5nIHRvIGEgZG9tYWluJ3MgR0ZOLgogICoKICAqIFRoZXJlIGFy ZSBubyBwcm9jZXNzb3IgZnVuY3Rpb25zIHRvIGRvIGEgc3RhZ2UgMiBvbmx5IGxvb2t1cCB0aGVy ZWZvcmUgd2UKICAqIGRvIGEgYSBzb2Z0d2FyZSB3YWxrLgogICovCi1zdGF0aWMgcGFkZHJfdCBf X3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgcGFkZHJfdCBwYWRkciwgcDJtX3R5cGVfdCAq dCkKK3N0YXRpYyBtZm5fdCBfX3AybV9sb29rdXAoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2Zu LCBwMm1fdHlwZV90ICp0KQogewogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSAmZC0+YXJj aC5wMm07CisgICAgY29uc3QgcGFkZHJfdCBwYWRkciA9IHBmbl90b19wYWRkcihnZm5feChnZm4p KTsKICAgICBjb25zdCB1bnNpZ25lZCBpbnQgb2Zmc2V0c1s0XSA9IHsKICAgICAgICAgemVyb2V0 aF90YWJsZV9vZmZzZXQocGFkZHIpLAogICAgICAgICBmaXJzdF90YWJsZV9vZmZzZXQocGFkZHIp LApAQCAtMTU4LDcgKzE1OSw3IEBAIHN0YXRpYyBwYWRkcl90IF9fcDJtX2xvb2t1cChzdHJ1Y3Qg ZG9tYWluICpkLCBwYWRkcl90IHBhZGRyLCBwMm1fdHlwZV90ICp0KQogICAgICAgICBaRVJPRVRI X01BU0ssIEZJUlNUX01BU0ssIFNFQ09ORF9NQVNLLCBUSElSRF9NQVNLCiAgICAgfTsKICAgICBs cGFlX3QgcHRlLCAqbWFwOwotICAgIHBhZGRyX3QgbWFkZHIgPSBJTlZBTElEX1BBRERSOworICAg IG1mbl90IG1mbiA9IElOVkFMSURfTUZOX1Q7CiAgICAgcGFkZHJfdCBtYXNrID0gMDsKICAgICBw Mm1fdHlwZV90IF90OwogICAgIHVuc2lnbmVkIGludCBsZXZlbCwgcm9vdF90YWJsZTsKQEAgLTIx NiwyMSArMjE3LDIyIEBAIHN0YXRpYyBwYWRkcl90IF9fcDJtX2xvb2t1cChzdHJ1Y3QgZG9tYWlu ICpkLCBwYWRkcl90IHBhZGRyLCBwMm1fdHlwZV90ICp0KQogICAgIHsKICAgICAgICAgQVNTRVJU KG1hc2spOwogICAgICAgICBBU1NFUlQocHRlLnAybS50eXBlICE9IHAybV9pbnZhbGlkKTsKLSAg ICAgICAgbWFkZHIgPSAocHRlLmJpdHMgJiBQQUREUl9NQVNLICYgbWFzaykgfCAocGFkZHIgJiB+ bWFzayk7CisgICAgICAgIG1mbiA9IF9tZm4ocGFkZHJfdG9fcGZuKChwdGUuYml0cyAmIFBBRERS X01BU0sgJiBtYXNrKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWRkciAm IH5tYXNrKSkpOwogICAgICAgICAqdCA9IHB0ZS5wMm0udHlwZTsKICAgICB9CiAKIGVycjoKLSAg ICByZXR1cm4gbWFkZHI7CisgICAgcmV0dXJuIG1mbjsKIH0KIAotcGFkZHJfdCBwMm1fbG9va3Vw KHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgcGFkZHIsIHAybV90eXBlX3QgKnQpCittZm5fdCBw Mm1fbG9va3VwKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCkKIHsK LSAgICBwYWRkcl90IHJldDsKKyAgICBtZm5fdCByZXQ7CiAgICAgc3RydWN0IHAybV9kb21haW4g KnAybSA9ICZkLT5hcmNoLnAybTsKIAogICAgIHNwaW5fbG9jaygmcDJtLT5sb2NrKTsKLSAgICBy ZXQgPSBfX3AybV9sb29rdXAoZCwgcGFkZHIsIHQpOworICAgIHJldCA9IF9fcDJtX2xvb2t1cChk LCBnZm4sIHQpOwogICAgIHNwaW5fdW5sb2NrKCZwMm0tPmxvY2spOwogCiAgICAgcmV0dXJuIHJl dDsKQEAgLTQ5Myw4ICs0OTUsOSBAQCBzdGF0aWMgaW50IF9fcDJtX2dldF9tZW1fYWNjZXNzKHN0 cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwKICAgICAgICAgICogTm8gc2V0dGluZyB3YXMgZm91 bmQgaW4gdGhlIFJhZGl4IHRyZWUuIENoZWNrIGlmIHRoZQogICAgICAgICAgKiBlbnRyeSBleGlz dHMgaW4gdGhlIHBhZ2UtdGFibGVzLgogICAgICAgICAgKi8KLSAgICAgICAgcGFkZHJfdCBtYWRk ciA9IF9fcDJtX2xvb2t1cChkLCBnZm5feChnZm4pIDw8IFBBR0VfU0hJRlQsIE5VTEwpOwotICAg ICAgICBpZiAoIElOVkFMSURfUEFERFIgPT0gbWFkZHIgKQorICAgICAgICBtZm5fdCBtZm4gPSBf X3AybV9sb29rdXAoZCwgZ2ZuLCBOVUxMKTsKKworICAgICAgICBpZiAoIG1mbl9lcShtZm4sIElO VkFMSURfTUZOX1QpICkKICAgICAgICAgICAgIHJldHVybiAtRVNSQ0g7CiAKICAgICAgICAgLyog SWYgZW50cnkgZXhpc3RzIHRoZW4gaXRzIHJ3eC4gKi8KQEAgLTE0ODMsOCArMTQ4Niw3IEBAIGlu dCBwMm1fY2FjaGVfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgeGVuX3Bmbl90IHN0YXJ0X21mbiwg eGVuX3Bmbl90IGVuZF9tZm4pCiAKIG1mbl90IGdmbl90b19tZm4oc3RydWN0IGRvbWFpbiAqZCwg Z2ZuX3QgZ2ZuKQogewotICAgIHBhZGRyX3QgcCA9IHAybV9sb29rdXAoZCwgcGZuX3RvX3BhZGRy KGdmbl94KGdmbikpLCBOVUxMKTsKLSAgICByZXR1cm4gX21mbihwID4+IFBBR0VfU0hJRlQpOwor ICAgIHJldHVybiBwMm1fbG9va3VwKGQsIGdmbiwgTlVMTCk7CiB9CiAKIC8qCkBAIC0xNDk4LDgg KzE1MDAsOCBAQCBwMm1fbWVtX2FjY2Vzc19jaGVja19hbmRfZ2V0X3BhZ2UodmFkZHJfdCBndmEs IHVuc2lnbmVkIGxvbmcgZmxhZykKIHsKICAgICBsb25nIHJjOwogICAgIHBhZGRyX3QgaXBhOwot ICAgIHVuc2lnbmVkIGxvbmcgbWFkZHI7Ci0gICAgdW5zaWduZWQgbG9uZyBtZm47CisgICAgZ2Zu X3QgZ2ZuOworICAgIG1mbl90IG1mbjsKICAgICB4ZW5tZW1fYWNjZXNzX3QgeG1hOwogICAgIHAy bV90eXBlX3QgdDsKICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlID0gTlVMTDsKQEAgLTE1MDgs MTEgKzE1MTAsMTMgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dldF9wYWdlKHZhZGRyX3Qg Z3ZhLCB1bnNpZ25lZCBsb25nIGZsYWcpCiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICBnb3Rv IGVycjsKIAorICAgIGdmbiA9IF9nZm4ocGFkZHJfdG9fcGZuKGlwYSkpOworCiAgICAgLyoKICAg ICAgKiBXZSBkbyB0aGlzIGZpcnN0IGFzIHRoaXMgaXMgZmFzdGVyIGluIHRoZSBkZWZhdWx0IGNh c2Ugd2hlbiBubwogICAgICAqIHBlcm1pc3Npb24gaXMgc2V0IG9uIHRoZSBwYWdlLgogICAgICAq LwotICAgIHJjID0gX19wMm1fZ2V0X21lbV9hY2Nlc3MoY3VycmVudC0+ZG9tYWluLCBfZ2ZuKHBh ZGRyX3RvX3BmbihpcGEpKSwgJnhtYSk7CisgICAgcmMgPSBfX3AybV9nZXRfbWVtX2FjY2Vzcyhj dXJyZW50LT5kb21haW4sIGdmbiwgJnhtYSk7CiAgICAgaWYgKCByYyA8IDAgKQogICAgICAgICBn b3RvIGVycjsKIApAQCAtMTU2MSwxMiArMTU2NSwxMSBAQCBwMm1fbWVtX2FjY2Vzc19jaGVja19h bmRfZ2V0X3BhZ2UodmFkZHJfdCBndmEsIHVuc2lnbmVkIGxvbmcgZmxhZykKICAgICAgKiBXZSBo YWQgYSBtZW1fYWNjZXNzIHBlcm1pc3Npb24gbGltaXRpbmcgdGhlIGFjY2VzcywgYnV0IHRoZSBw YWdlIHR5cGUKICAgICAgKiBjb3VsZCBhbHNvIGJlIGxpbWl0aW5nLCBzbyB3ZSBuZWVkIHRvIGNo ZWNrIHRoYXQgYXMgd2VsbC4KICAgICAgKi8KLSAgICBtYWRkciA9IF9fcDJtX2xvb2t1cChjdXJy ZW50LT5kb21haW4sIGlwYSwgJnQpOwotICAgIGlmICggbWFkZHIgPT0gSU5WQUxJRF9QQUREUiAp CisgICAgbWZuID0gX19wMm1fbG9va3VwKGN1cnJlbnQtPmRvbWFpbiwgZ2ZuLCAmdCk7CisgICAg aWYgKCBtZm5fZXEobWZuLCBJTlZBTElEX01GTl9UKSApCiAgICAgICAgIGdvdG8gZXJyOwogCi0g ICAgbWZuID0gbWFkZHIgPj4gUEFHRV9TSElGVDsKLSAgICBpZiAoICFtZm5fdmFsaWQobWZuKSAp CisgICAgaWYgKCAhbWZuX3ZhbGlkKG1mbl94KG1mbikpICkKICAgICAgICAgZ290byBlcnI7CiAK ICAgICAvKgpAQCAtMTU3NSw3ICsxNTc4LDcgQEAgcDJtX21lbV9hY2Nlc3NfY2hlY2tfYW5kX2dl dF9wYWdlKHZhZGRyX3QgZ3ZhLCB1bnNpZ25lZCBsb25nIGZsYWcpCiAgICAgaWYgKCB0ICE9IHAy bV9yYW1fcncgKQogICAgICAgICBnb3RvIGVycjsKIAotICAgIHBhZ2UgPSBtZm5fdG9fcGFnZSht Zm4pOworICAgIHBhZ2UgPSBtZm5fdG9fcGFnZShtZm5feChtZm4pKTsKIAogICAgIGlmICggdW5s aWtlbHkoIWdldF9wYWdlKHBhZ2UsIGN1cnJlbnQtPmRvbWFpbikpICkKICAgICAgICAgcGFnZSA9 IE5VTEw7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdHJhcHMuYyBiL3hlbi9hcmNoL2FybS90 cmFwcy5jCmluZGV4IDQ0OTI2Y2EuLjg4ZWY0M2IgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS90 cmFwcy5jCisrKyBiL3hlbi9hcmNoL2FybS90cmFwcy5jCkBAIC0yMzE5LDE0ICsyMzE5LDE2IEBA IHZvaWQgZHVtcF9ndWVzdF9zMV93YWxrKHN0cnVjdCBkb21haW4gKmQsIHZhZGRyX3QgYWRkcikK IHsKICAgICByZWdpc3Rlcl90IHR0YmNyID0gUkVBRF9TWVNSRUcoVENSX0VMMSk7CiAgICAgdWlu dDY0X3QgdHRicjAgPSBSRUFEX1NZU1JFRzY0KFRUQlIwX0VMMSk7Ci0gICAgcGFkZHJfdCBwYWRk cjsKICAgICB1aW50MzJfdCBvZmZzZXQ7CiAgICAgdWludDMyX3QgKmZpcnN0ID0gTlVMTCwgKnNl Y29uZCA9IE5VTEw7CisgICAgbWZuX3QgbWZuOworCisgICAgbWZuID0gcDJtX2xvb2t1cChkLCBf Z2ZuKHBhZGRyX3RvX3Bmbih0dGJyMCkpLCBOVUxMKTsKIAogICAgIHByaW50aygiZG9tJWQgVkEg MHglMDgiUFJJdmFkZHIiXG4iLCBkLT5kb21haW5faWQsIGFkZHIpOwogICAgIHByaW50aygiICAg IFRUQkNSOiAweCUwOCJQUklyZWdpc3RlciJcbiIsIHR0YmNyKTsKICAgICBwcmludGsoIiAgICBU VEJSMDogMHglMDE2IlBSSXg2NCIgPSAweCUiUFJJcGFkZHIiXG4iLAotICAgICAgICAgICB0dGJy MCwgcDJtX2xvb2t1cChkLCB0dGJyMCAmIFBBR0VfTUFTSywgTlVMTCkpOworICAgICAgICAgICB0 dGJyMCwgcGZuX3RvX3BhZGRyKG1mbl94KG1mbikpKTsKIAogICAgIGlmICggdHRiY3IgJiBUVEJD Ul9FQUUgKQogICAgIHsKQEAgLTIzMzksMzIgKzIzNDEsMzEgQEAgdm9pZCBkdW1wX2d1ZXN0X3Mx X3dhbGsoc3RydWN0IGRvbWFpbiAqZCwgdmFkZHJfdCBhZGRyKQogICAgICAgICByZXR1cm47CiAg ICAgfQogCi0gICAgcGFkZHIgPSBwMm1fbG9va3VwKGQsIHR0YnIwICYgUEFHRV9NQVNLLCBOVUxM KTsKLSAgICBpZiAoIHBhZGRyID09IElOVkFMSURfUEFERFIgKQorICAgIGlmICggbWZuX2VxKG1m biwgSU5WQUxJRF9NRk5fVCkgKQogICAgIHsKICAgICAgICAgcHJpbnRrKCJGYWlsZWQgVFRCUjAg bWFkZHIgbG9va3VwXG4iKTsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KLSAgICBmaXJzdCA9 IG1hcF9kb21haW5fcGFnZShfbWZuKHBhZGRyX3RvX3BmbihwYWRkcikpKTsKKyAgICBmaXJzdCA9 IG1hcF9kb21haW5fcGFnZShtZm4pOwogCiAgICAgb2Zmc2V0ID0gYWRkciA+PiAoMTIrMTApOwog ICAgIHByaW50aygiMVNUWzB4JSJQUkl4MzIiXSAoMHglIlBSSXBhZGRyIikgPSAweCUwOCJQUkl4 MzIiXG4iLAotICAgICAgICAgICBvZmZzZXQsIHBhZGRyLCBmaXJzdFtvZmZzZXRdKTsKKyAgICAg ICAgICAgb2Zmc2V0LCBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSksIGZpcnN0W29mZnNldF0pOwog ICAgIGlmICggIShmaXJzdFtvZmZzZXRdICYgMHgxKSB8fAogICAgICAgICAgIShmaXJzdFtvZmZz ZXRdICYgMHgyKSApCiAgICAgICAgIGdvdG8gZG9uZTsKIAotICAgIHBhZGRyID0gcDJtX2xvb2t1 cChkLCBmaXJzdFtvZmZzZXRdICYgUEFHRV9NQVNLLCBOVUxMKTsKKyAgICBtZm4gPSBwMm1fbG9v a3VwKGQsIF9nZm4ocGFkZHJfdG9fcGZuKGZpcnN0W29mZnNldF0pKSwgTlVMTCk7CiAKLSAgICBp ZiAoIHBhZGRyID09IElOVkFMSURfUEFERFIgKQorICAgIGlmICggbWZuX2VxKG1mbiwgSU5WQUxJ RF9NRk5fVCkgKQogICAgIHsKICAgICAgICAgcHJpbnRrKCJGYWlsZWQgTDEgZW50cnkgbWFkZHIg bG9va3VwXG4iKTsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KLSAgICBzZWNvbmQgPSBtYXBf ZG9tYWluX3BhZ2UoX21mbihwYWRkcl90b19wZm4ocGFkZHIpKSk7CisgICAgc2Vjb25kID0gbWFw X2RvbWFpbl9wYWdlKG1mbik7CiAgICAgb2Zmc2V0ID0gKGFkZHIgPj4gMTIpICYgMHgzRkY7CiAg ICAgcHJpbnRrKCIyTkRbMHglIlBSSXgzMiJdICgweCUiUFJJcGFkZHIiKSA9IDB4JTA4IlBSSXgz MiJcbiIsCi0gICAgICAgICAgIG9mZnNldCwgcGFkZHIsIHNlY29uZFtvZmZzZXRdKTsKKyAgICAg ICAgICAgb2Zmc2V0LCBwZm5fdG9fcGFkZHIobWZuX3gobWZuKSksIHNlY29uZFtvZmZzZXRdKTsK IAogZG9uZToKICAgICBpZiAoc2Vjb25kKSB1bm1hcF9kb21haW5fcGFnZShzZWNvbmQpOwpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9wMm0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0v cDJtLmgKaW5kZXggMGQxZTYxZS4uZjIwNDQ4MiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNt LWFybS9wMm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCkBAIC0xMzUsOCArMTM1 LDggQEAgdm9pZCBwMm1fcmVzdG9yZV9zdGF0ZShzdHJ1Y3QgdmNwdSAqbik7CiAvKiBQcmludCBk ZWJ1Z2dpbmcvc3RhdGlzdGlhbCBpbmZvIGFib3V0IGEgZG9tYWluJ3MgcDJtICovCiB2b2lkIHAy bV9kdW1wX2luZm8oc3RydWN0IGRvbWFpbiAqZCk7CiAKLS8qIExvb2sgdXAgdGhlIE1GTiBjb3Jy ZXNwb25kaW5nIHRvIGEgZG9tYWluJ3MgUEZOLiAqLwotcGFkZHJfdCBwMm1fbG9va3VwKHN0cnVj dCBkb21haW4gKmQsIHBhZGRyX3QgZ3BmbiwgcDJtX3R5cGVfdCAqdCk7CisvKiBMb29rIHVwIHRo ZSBNRk4gY29ycmVzcG9uZGluZyB0byBhIGRvbWFpbidzIEdGTi4gKi8KK21mbl90IHAybV9sb29r dXAoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBwMm1fdHlwZV90ICp0KTsKIAogLyogQ2xl YW4gJiBpbnZhbGlkYXRlIGNhY2hlcyBjb3JyZXNwb25kaW5nIHRvIGEgcmVnaW9uIG9mIGd1ZXN0 IGFkZHJlc3Mgc3BhY2UgKi8KIGludCBwMm1fY2FjaGVfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwg eGVuX3Bmbl90IHN0YXJ0X21mbiwgeGVuX3Bmbl90IGVuZF9tZm4pOwpAQCAtMjAxLDggKzIwMSw3 IEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqZ2V0X3BhZ2VfZnJvbV9nZm4oCiB7 CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKICAgICBwMm1fdHlwZV90IHAybXQ7Ci0gICAg cGFkZHJfdCBtYWRkciA9IHAybV9sb29rdXAoZCwgcGZuX3RvX3BhZGRyKGdmbiksICZwMm10KTsK LSAgICB1bnNpZ25lZCBsb25nIG1mbiA9IG1hZGRyID4+IFBBR0VfU0hJRlQ7CisgICAgdW5zaWdu ZWQgbG9uZyBtZm4gPSBtZm5feChwMm1fbG9va3VwKGQsIF9nZm4oZ2ZuKSwgJnAybXQpKTsKIAog ICAgIGlmICh0KQogICAgICAgICAqdCA9IHAybXQ7Ci0tIAoxLjkuMQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==