From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: [for-4.8][PATCH v2 12/23] xen/arm: p2m: Introduce p2m_get_entry and use it to implement __p2m_lookup Date: Thu, 15 Sep 2016 12:28:28 +0100 Message-ID: <1473938919-31976-13-git-send-email-julien.grall@arm.com> References: <1473938919-31976-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: <1473938919-31976-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: proskurin@sec.in.tum.de, Julien Grall , sstabellini@kernel.org, steve.capper@arm.com, wei.chen@linaro.org List-Id: xen-devel@lists.xenproject.org Q3VycmVudGx5LCBmb3IgYSBnaXZlbiBHRk4sIHRoZSBmdW5jdGlvbiBfX3AybV9sb29rdXAgd2ls bCBvbmx5IHJldHVybgp0aGUgYXNzb2NpYXRlZCBNRk4gYW5kIHRoZSBwMm0gdHlwZSBvZiB0aGUg bWFwcGluZy4KCkluIHNvbWUgY2FzZSB3ZSBuZWVkIHRoZSBvcmRlciBvZiB0aGUgbWFwcGluZyBh bmQgdGhlIG1lbWFjY2VzcwpwZXJtaXNzaW9uLiBSYXRoZXIgdGhhbiBwcm92aWRpbmcgYSBzZXBh cmF0ZSBmdW5jdGlvbiBmb3IgdGhpcyBwdXJwb3NlLAppdCBpcyBiZXR0ZXIgdG8gaW1wbGVtZW50 IGEgZ2VuZXJpYyBmdW5jdGlvbiB0byByZXR1cm4gYWxsIHRoZQppbmZvcm1hdGlvbi4KClRvIGF2 b2lkIHBhc3NpbmcgZHVtbXkgcGFyYW1ldGVyLCBhIGNhbGxlciB0aGF0IGRvZXMgbm90IG5lZWQg YQpzcGVjaWZpYyBpbmZvcm1hdGlvbiBjYW4gdXNlIE5VTEwgaW5zdGVhZC4KClRoZSBsaXN0IG9m IHRoZSBpbmZvcm1hdGlvbnMgcmV0cmlldmVkIGlzIGJhc2VkIG9uIHRoZSB4ODYgdmVyc2lvbi4g QWxsCm9mIHRoZW0gd2lsbCBiZSB1c2VkIGluIGZvbGxvdy11cCBwYXRjaGVzLgoKSXQgbWlnaHQg aGF2ZSBiZWVuIHBvc3NpYmxlIHRvIGV4dGVuZCBfX3AybV9sb29rdXAsIGhvd2V2ZXIgSSBjaG9v c2UgdG8KcmVpbXBsZW1lbnQgaXQgZnJvbSBzY3JhdGNoIHRvIGFsbG93IHNoYXJpbmcgc29tZSBo ZWxwZXJzIHdpdGggdGhlCmZ1bmN0aW9uIHRoYXQgd2lsbCB1cGRhdGUgdGhlIFAyTSAod2lsbCBi ZSBhZGRlZCBpbiBhIGZvbGxvdy11cCBwYXRjaCkuCgpTaWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3Jh bGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoKLS0tCiAgICBDaGFuZ2VzIGluIHYyOgogICAgICAg IC0gRXhwb3J0IHAybV9nZXRfZW50cnkKICAgICAgICAtIEZpeCB0aGUgY29tcHV0YXRpb24gb2Yg dGhlIG9yZGVyIHdoZW4gdGhlcmUgaXMgbm8gbWFwcGluZwogICAgICAgIC0gVXNlIGxldmVsX29y ZGVycyByYXRoZXIgdGhhbiBsZXZlbF9zaGlmdHMgLSBQQUdFX1NISUZUCiAgICAgICAgLSBVcGRh dGUgZG9jdW1lbnRhdGlvbgogICAgICAgIC0gRml4IHR5cG9lcwogICAgICAgIC0gVGhlIGRlZmlu aXRpb24gb2YgbGV2ZWxfb3JkZXJzIGhhcyBiZWVuIG1vdmVkIGluIGFuIGVhcmxpZXIKICAgICAg ICBwYXRjaAotLS0KIHhlbi9hcmNoL2FybS9wMm0uYyAgICAgICAgfCAxODggKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLWFybS9w Mm0uaCB8ICAgOCArKwogMiBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgNDIgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3AybS5jIGIveGVuL2FyY2gvYXJt L3AybS5jCmluZGV4IGIyYTI5YWQuLjZlNTZiOTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9w Mm0uYworKysgYi94ZW4vYXJjaC9hcm0vcDJtLmMKQEAgLTIzOCwyOCArMjM4LDEwNCBAQCBzdGF0 aWMgbHBhZV90ICpwMm1fZ2V0X3Jvb3RfcG9pbnRlcihzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLAog CiAvKgogICogTG9va3VwIHRoZSBNRk4gY29ycmVzcG9uZGluZyB0byBhIGRvbWFpbidzIEdGTi4K KyAqIExvb2t1cCBtZW0gYWNjZXNzIGluIHRoZSByYXRyaXggdHJlZS4KKyAqIFRoZSBlbnRyaWVz IGFzc29jaWF0ZWQgdG8gdGhlIEdGTiBpcyBjb25zaWRlcmVkIHZhbGlkLgorICovCitzdGF0aWMg cDJtX2FjY2Vzc190IHAybV9tZW1fYWNjZXNzX3JhZGl4X2dldChzdHJ1Y3QgcDJtX2RvbWFpbiAq cDJtLCBnZm5fdCBnZm4pCit7CisgICAgdm9pZCAqcHRyOworCisgICAgaWYgKCAhcDJtLT5tZW1f YWNjZXNzX2VuYWJsZWQgKQorICAgICAgICByZXR1cm4gcDJtLT5kZWZhdWx0X2FjY2VzczsKKwor ICAgIHB0ciA9IHJhZGl4X3RyZWVfbG9va3VwKCZwMm0tPm1lbV9hY2Nlc3Nfc2V0dGluZ3MsIGdm bl94KGdmbikpOworICAgIGlmICggIXB0ciApCisgICAgICAgIHJldHVybiBwMm1fYWNjZXNzX3J3 eDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiByYWRpeF90cmVlX3B0cl90b19pbnQocHRyKTsK K30KKworI2RlZmluZSBHVUVTVF9UQUJMRV9NQVBfRkFJTEVEIDAKKyNkZWZpbmUgR1VFU1RfVEFC TEVfU1VQRVJfUEFHRSAxCisjZGVmaW5lIEdVRVNUX1RBQkxFX05PUk1BTF9QQUdFIDIKKworc3Rh dGljIGludCBwMm1fY3JlYXRlX3RhYmxlKHN0cnVjdCBwMm1fZG9tYWluICpwMm0sIGxwYWVfdCAq ZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxldmVsX3NoaWZ0KTsKKwor LyoKKyAqIFRha2UgdGhlIGN1cnJlbnRseSBtYXBwZWQgdGFibGUsIGZpbmQgdGhlIGNvcnJlc3Bv bmRpbmcgR0ZOIGVudHJ5LAorICogYW5kIG1hcCB0aGUgbmV4dCB0YWJsZSwgaWYgYXZhaWxhYmxl LiBUaGUgcHJldmlvdXMgdGFibGUgd2lsbCBiZQorICogdW5tYXBwZWQgaWYgdGhlIG5leHQgbGV2 ZWwgd2FzIG1hcHBlZCAoZS5nIEdVRVNUX1RBQkxFX05PUk1BTF9QQUdFCisgKiByZXR1cm5lZCku CiAgKgotICogVGhlcmUgYXJlIG5vIHByb2Nlc3NvciBmdW5jdGlvbnMgdG8gZG8gYSBzdGFnZSAy IG9ubHkgbG9va3VwIHRoZXJlZm9yZSB3ZQotICogZG8gYSBhIHNvZnR3YXJlIHdhbGsuCisgKiBU aGUgcmVhZF9vbmx5IHBhcmFtZXRlcnMgaW5kaWNhdGVzIHdoZXRoZXIgaW50ZXJtZWRpYXRlIHRh YmxlcyBzaG91bGQKKyAqIGJlIGFsbG9jYXRlZCB3aGVuIG5vdCBwcmVzZW50LgorICoKKyAqIFJl dHVybiB2YWx1ZXM6CisgKiAgR1VFU1RfVEFCTEVfTUFQX0ZBSUxFRDogRWl0aGVyIHJlYWRfb25s eSB3YXMgc2V0IGFuZCB0aGUgZW50cnkKKyAqICB3YXMgZW1wdHksIG9yIGFsbG9jYXRpbmcgYSBu ZXcgcGFnZSBmYWlsZWQuCisgKiAgR1VFU1RfVEFCTEVfTk9STUFMX1BBR0U6IG5leHQgbGV2ZWwg bWFwcGVkIG5vcm1hbGx5CisgKiAgR1VFU1RfVEFCTEVfU1VQRVJfUEFHRTogVGhlIG5leHQgZW50 cnkgcG9pbnRzIHRvIGEgc3VwZXJwYWdlLgogICovCi1zdGF0aWMgbWZuX3QgX19wMm1fbG9va3Vw KHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCkKK3N0YXRpYyBpbnQg cDJtX25leHRfbGV2ZWwoc3RydWN0IHAybV9kb21haW4gKnAybSwgYm9vbCByZWFkX29ubHksCisg ICAgICAgICAgICAgICAgICAgICAgICAgIGxwYWVfdCAqKnRhYmxlLCB1bnNpZ25lZCBpbnQgb2Zm c2V0KQogewotICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0gPSAmZC0+YXJjaC5wMm07Ci0gICAg Y29uc3QgcGFkZHJfdCBwYWRkciA9IHBmbl90b19wYWRkcihnZm5feChnZm4pKTsKLSAgICBjb25z dCB1bnNpZ25lZCBpbnQgb2Zmc2V0c1s0XSA9IHsKLSAgICAgICAgemVyb2V0aF90YWJsZV9vZmZz ZXQocGFkZHIpLAotICAgICAgICBmaXJzdF90YWJsZV9vZmZzZXQocGFkZHIpLAotICAgICAgICBz ZWNvbmRfdGFibGVfb2Zmc2V0KHBhZGRyKSwKLSAgICAgICAgdGhpcmRfdGFibGVfb2Zmc2V0KHBh ZGRyKQotICAgIH07Ci0gICAgY29uc3QgcGFkZHJfdCBtYXNrc1s0XSA9IHsKLSAgICAgICAgWkVS T0VUSF9NQVNLLCBGSVJTVF9NQVNLLCBTRUNPTkRfTUFTSywgVEhJUkRfTUFTSwotICAgIH07Ci0g ICAgbHBhZV90IHB0ZSwgKm1hcDsKKyAgICBscGFlX3QgKmVudHJ5OworICAgIGludCByZXQ7Cisg ICAgbWZuX3QgbWZuOworCisgICAgZW50cnkgPSAqdGFibGUgKyBvZmZzZXQ7CisKKyAgICBpZiAo ICFwMm1fdmFsaWQoKmVudHJ5KSApCisgICAgeworICAgICAgICBpZiAoIHJlYWRfb25seSApCisg ICAgICAgICAgICByZXR1cm4gR1VFU1RfVEFCTEVfTUFQX0ZBSUxFRDsKKworICAgICAgICByZXQg PSBwMm1fY3JlYXRlX3RhYmxlKHAybSwgZW50cnksIC8qIG5vdCB1c2VkICovIH4wKTsKKyAgICAg ICAgaWYgKCByZXQgKQorICAgICAgICAgICAgcmV0dXJuIEdVRVNUX1RBQkxFX01BUF9GQUlMRUQ7 CisgICAgfQorCisgICAgLyogVGhlIGZ1bmN0aW9uIHAybV9uZXh0X2xldmVsIGlzIG5ldmVyIGNh bGxlZCBhdCB0aGUgM3JkIGxldmVsICovCisgICAgaWYgKCBwMm1fbWFwcGluZygqZW50cnkpICkK KyAgICAgICAgcmV0dXJuIEdVRVNUX1RBQkxFX1NVUEVSX1BBR0U7CisKKyAgICBtZm4gPSBfbWZu KGVudHJ5LT5wMm0uYmFzZSk7CisKKyAgICB1bm1hcF9kb21haW5fcGFnZSgqdGFibGUpOworICAg ICp0YWJsZSA9IG1hcF9kb21haW5fcGFnZShtZm4pOworCisgICAgcmV0dXJuIEdVRVNUX1RBQkxF X05PUk1BTF9QQUdFOworfQorCisvKgorICogR2V0IHRoZSBkZXRhaWxzIG9mIGEgZ2l2ZW4gZ2Zu LgorICoKKyAqIElmIHRoZSBlbnRyeSBpcyBwcmVzZW50LCB0aGUgYXNzb2NpYXRlZCBNRk4gd2ls bCBiZSByZXR1cm5lZCBhbmQgdGhlCisgKiBhY2Nlc3MgYW5kIHR5cGUgZmlsbGVkIHVwLiBUaGUg cGFnZV9vcmRlciB3aWxsIGNvcnJlc3BvbmQgdG8gdGhlCisgKiBvcmRlciBvZiB0aGUgbWFwcGlu ZyBpbiB0aGUgcGFnZSB0YWJsZSAoaS5lIGl0IGNvdWxkIGJlIGEgc3VwZXJwYWdlKS4KKyAqCisg KiBJZiB0aGUgZW50cnkgaXMgbm90IHByZXNlbnQsIElOVkFMSURfTUZOIHdpbGwgYmUgcmV0dXJu ZWQgYW5kIHRoZQorICogcGFnZV9vcmRlciB3aWxsIGJlIHNldCBhY2NvcmRpbmcgdG8gdGhlIG9y ZGVyIG9mIHRoZSBpbnZhbGlkIHJhbmdlLgorICovCittZm5fdCBwMm1fZ2V0X2VudHJ5KHN0cnVj dCBwMm1fZG9tYWluICpwMm0sIGdmbl90IGdmbiwKKyAgICAgICAgICAgICAgICAgICAgcDJtX3R5 cGVfdCAqdCwgcDJtX2FjY2Vzc190ICphLAorICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgKnBhZ2Vfb3JkZXIpCit7CisgICAgcGFkZHJfdCBhZGRyID0gcGZuX3RvX3BhZGRyKGdmbl94 KGdmbikpOworICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IDA7CisgICAgbHBhZV90IGVudHJ5LCAq dGFibGU7CisgICAgaW50IHJjOwogICAgIG1mbl90IG1mbiA9IElOVkFMSURfTUZOOwotICAgIHBh ZGRyX3QgbWFzayA9IDA7CiAgICAgcDJtX3R5cGVfdCBfdDsKLSAgICB1bnNpZ25lZCBpbnQgbGV2 ZWw7CisKKyAgICAvKiBDb252ZW5pZW5jZSBhbGlhc2VzICovCisgICAgY29uc3QgdW5zaWduZWQg aW50IG9mZnNldHNbNF0gPSB7CisgICAgICAgIHplcm9ldGhfdGFibGVfb2Zmc2V0KGFkZHIpLAor ICAgICAgICBmaXJzdF90YWJsZV9vZmZzZXQoYWRkciksCisgICAgICAgIHNlY29uZF90YWJsZV9v ZmZzZXQoYWRkciksCisgICAgICAgIHRoaXJkX3RhYmxlX29mZnNldChhZGRyKQorICAgIH07CiAK ICAgICBBU1NFUlQocDJtX2lzX2xvY2tlZChwMm0pKTsKICAgICBCVUlMRF9CVUdfT04oVEhJUkRf TUFTSyAhPSBQQUdFX01BU0spOwpAQCAtMjY5LDQ2ICszNDUsNzQgQEAgc3RhdGljIG1mbl90IF9f cDJtX2xvb2t1cChzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sIHAybV90eXBlX3QgKnQpCiAK ICAgICAqdCA9IHAybV9pbnZhbGlkOwogCi0gICAgbWFwID0gcDJtX2dldF9yb290X3BvaW50ZXIo cDJtLCBnZm4pOwotICAgIGlmICggIW1hcCApCi0gICAgICAgIHJldHVybiBJTlZBTElEX01GTjsK LQotICAgIEFTU0VSVChQMk1fUk9PVF9MRVZFTCA8IDQpOworICAgIC8qIFhYWDogQ2hlY2sgaWYg dGhlIG1hcHBpbmcgaXMgbG93ZXIgdGhhbiB0aGUgbWFwcGVkIGdmbiAqLwogCi0gICAgZm9yICgg bGV2ZWwgPSBQMk1fUk9PVF9MRVZFTCA7IGxldmVsIDwgNCA7IGxldmVsKysgKQorICAgIC8qIFRo aXMgZ2ZuIGlzIGhpZ2hlciB0aGFuIHRoZSBoaWdoZXN0IHRoZSBwMm0gbWFwIGN1cnJlbnRseSBo b2xkcyAqLworICAgIGlmICggZ2ZuX3goZ2ZuKSA+IGdmbl94KHAybS0+bWF4X21hcHBlZF9nZm4p ICkKICAgICB7Ci0gICAgICAgIG1hc2sgPSBtYXNrc1tsZXZlbF07CisgICAgICAgIGZvciAoIGxl dmVsID0gUDJNX1JPT1RfTEVWRUw7IGxldmVsIDwgMzsgbGV2ZWwrKyApCisgICAgICAgICAgICBp ZiAoIChnZm5feChnZm4pICYgKGxldmVsX21hc2tzW2xldmVsXSA+PiBQQUdFX1NISUZUKSkgPgor ICAgICAgICAgICAgICAgICBnZm5feChwMm0tPm1heF9tYXBwZWRfZ2ZuKSApCisgICAgICAgICAg ICAgICAgYnJlYWs7CiAKLSAgICAgICAgcHRlID0gbWFwW29mZnNldHNbbGV2ZWxdXTsKKyAgICAg ICAgZ290byBvdXQ7CisgICAgfQogCi0gICAgICAgIGlmICggbGV2ZWwgPT0gMyAmJiAhcDJtX3Rh YmxlKHB0ZSkgKQotICAgICAgICAgICAgLyogSW52YWxpZCwgY2xvYmJlciB0aGUgcHRlICovCi0g ICAgICAgICAgICBwdGUuYml0cyA9IDA7Ci0gICAgICAgIGlmICggbGV2ZWwgPT0gMyB8fCAhcDJt X3RhYmxlKHB0ZSkgKQotICAgICAgICAgICAgLyogRG9uZSAqLwotICAgICAgICAgICAgYnJlYWs7 CisgICAgdGFibGUgPSBwMm1fZ2V0X3Jvb3RfcG9pbnRlcihwMm0sIGdmbik7CiAKLSAgICAgICAg QVNTRVJUKGxldmVsIDwgMyk7CisgICAgLyoKKyAgICAgKiB0aGUgdGFibGUgc2hvdWxkIGFsd2F5 cyBiZSBub24tTlVMTCBiZWNhdXNlIHRoZSBnZm4gaXMgYmVsb3cKKyAgICAgKiBwMm0tPm1heF9t YXBwZWRfZ2ZuIGFuZCB0aGUgcm9vdCB0YWJsZSBwYWdlcyBhcmUgYWx3YXlzIHByZXNlbnQuCisg ICAgICovCisgICAgQlVHX09OKHRhYmxlID09IE5VTEwpOwogCi0gICAgICAgIC8qIE1hcCBmb3Ig bmV4dCBsZXZlbCAqLwotICAgICAgICB1bm1hcF9kb21haW5fcGFnZShtYXApOwotICAgICAgICBt YXAgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdGUucDJtLmJhc2UpKTsKKyAgICBmb3IgKCBsZXZl bCA9IFAyTV9ST09UX0xFVkVMOyBsZXZlbCA8IDM7IGxldmVsKysgKQorICAgIHsKKyAgICAgICAg cmMgPSBwMm1fbmV4dF9sZXZlbChwMm0sIHRydWUsICZ0YWJsZSwgb2Zmc2V0c1tsZXZlbF0pOwor ICAgICAgICBpZiAoIHJjID09IEdVRVNUX1RBQkxFX01BUF9GQUlMRUQgKQorICAgICAgICAgICAg Z290byBvdXRfdW5tYXA7CisgICAgICAgIGVsc2UgaWYgKCByYyAhPSBHVUVTVF9UQUJMRV9OT1JN QUxfUEFHRSApCisgICAgICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICB1bm1hcF9kb21haW5f cGFnZShtYXApOworICAgIGVudHJ5ID0gdGFibGVbb2Zmc2V0c1tsZXZlbF1dOwogCi0gICAgaWYg KCBwMm1fdmFsaWQocHRlKSApCisgICAgaWYgKCBwMm1fdmFsaWQoZW50cnkpICkKICAgICB7Ci0g ICAgICAgIEFTU0VSVChtYXNrKTsKLSAgICAgICAgQVNTRVJUKHB0ZS5wMm0udHlwZSAhPSBwMm1f aW52YWxpZCk7Ci0gICAgICAgIG1mbiA9IF9tZm4ocGFkZHJfdG9fcGZuKChwdGUuYml0cyAmIFBB RERSX01BU0sgJiBtYXNrKSB8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWRk ciAmIH5tYXNrKSkpOwotICAgICAgICAqdCA9IHB0ZS5wMm0udHlwZTsKKyAgICAgICAgKnQgPSBl bnRyeS5wMm0udHlwZTsKKworICAgICAgICBpZiAoIGEgKQorICAgICAgICAgICAgKmEgPSBwMm1f bWVtX2FjY2Vzc19yYWRpeF9nZXQocDJtLCBnZm4pOworCisgICAgICAgIG1mbiA9IF9tZm4oZW50 cnkucDJtLmJhc2UpOworICAgICAgICAvKgorICAgICAgICAgKiBUaGUgZW50cnkgbWF5IHBvaW50 IHRvIGEgc3VwZXJwYWdlLiBGaW5kIHRoZSBNRk4gYXNzb2NpYXRlZAorICAgICAgICAgKiB0byB0 aGUgR0ZOLgorICAgICAgICAgKi8KKyAgICAgICAgbWZuID0gbWZuX2FkZChtZm4sIGdmbl94KGdm bikgJiAoKDFVTCA8PCBsZXZlbF9vcmRlcnNbbGV2ZWxdKSAtIDEpKTsKICAgICB9CiAKK291dF91 bm1hcDoKKyAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7CisKK291dDoKKyAgICBpZiAoIHBh Z2Vfb3JkZXIgKQorICAgICAgICAqcGFnZV9vcmRlciA9IGxldmVsX29yZGVyc1tsZXZlbF07CisK ICAgICByZXR1cm4gbWZuOwogfQogCisvKgorICogTG9va3VwIHRoZSBNRk4gY29ycmVzcG9uZGlu ZyB0byBhIGRvbWFpbidzIEdGTi4KKyAqCisgKiBUaGVyZSBhcmUgbm8gcHJvY2Vzc29yIGZ1bmN0 aW9ucyB0byBkbyBhIHN0YWdlIDIgb25seSBsb29rdXAgdGhlcmVmb3JlIHdlCisgKiBkbyBhIGEg c29mdHdhcmUgd2Fsay4KKyAqLworc3RhdGljIG1mbl90IF9fcDJtX2xvb2t1cChzdHJ1Y3QgZG9t YWluICpkLCBnZm5fdCBnZm4sIHAybV90eXBlX3QgKnQpCit7CisgICAgcmV0dXJuIHAybV9nZXRf ZW50cnkoJmQtPmFyY2gucDJtLCBnZm4sIHQsIE5VTEwsIE5VTEwpOworfQorCiBtZm5fdCBwMm1f bG9va3VwKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5cGVfdCAqdCkKIHsKICAg ICBtZm5fdCByZXQ7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9wMm0uaAppbmRleCAxNTZkZjVlLi42ZmU2YTM3IDEwMDY0NAotLS0g YS94ZW4vaW5jbHVkZS9hc20tYXJtL3AybS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vcDJt LmgKQEAgLTE3OSw2ICsxNzksMTQgQEAgdm9pZCBwMm1fZHVtcF9pbmZvKHN0cnVjdCBkb21haW4g KmQpOwogLyogTG9vayB1cCB0aGUgTUZOIGNvcnJlc3BvbmRpbmcgdG8gYSBkb21haW4ncyBHRk4u ICovCiBtZm5fdCBwMm1fbG9va3VwKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgcDJtX3R5 cGVfdCAqdCk7CiAKKy8qCisgKiBHZXQgZGV0YWlscyBvZiBhIGdpdmVuIGdmbi4KKyAqIFRoZSBQ Mk0gbG9jayBzaG91bGQgYmUgdGFrZW4gYnkgdGhlIGNhbGxlci4KKyAqLworbWZuX3QgcDJtX2dl dF9lbnRyeShzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCBnZm5fdCBnZm4sCisgICAgICAgICAgICAg ICAgICAgIHAybV90eXBlX3QgKnQsIHAybV9hY2Nlc3NfdCAqYSwKKyAgICAgICAgICAgICAgICAg ICAgdW5zaWduZWQgaW50ICpwYWdlX29yZGVyKTsKKwogLyogQ2xlYW4gJiBpbnZhbGlkYXRlIGNh Y2hlcyBjb3JyZXNwb25kaW5nIHRvIGEgcmVnaW9uIG9mIGd1ZXN0IGFkZHJlc3Mgc3BhY2UgKi8K IGludCBwMm1fY2FjaGVfZmx1c2goc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3Qgc3RhcnQsIHVuc2ln bmVkIGxvbmcgbnIpOwogCi0tIAoxLjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=