From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bruno Alvisio Subject: [PATCH RFC v2 6/8] Adapted libxc for migration of local disk Date: Wed, 18 Oct 2017 10:26:33 -0700 Message-ID: <1508347595-11657-7-git-send-email-bruno.alvisio@gmail.com> References: <1508347595-11657-1-git-send-email-bruno.alvisio@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1508347595-11657-1-git-send-email-bruno.alvisio@gmail.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: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, bruno.alvisio@gmail.com, dave@recoil.org List-Id: xen-devel@lists.xenproject.org LS0tCiB0b29scy9saWJ4Yy9pbmNsdWRlL3hlbmd1ZXN0LmggICAgfCAgIDYgKy0KIHRvb2xzL2xp YnhjL3hjX25vbWlncmF0ZS5jICAgICAgICB8ICAgNiArLQogdG9vbHMvbGlieGMveGNfc3JfY29t bW9uLmggICAgICAgIHwgICAzICsKIHRvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmUuYyAgICAgICB8 ICAxNCArKystLQogdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jICAgICAgICAgIHwgMTE4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiB0b29scy9saWJ4Yy94Y19zcl9zYXZl X3g4Nl9odm0uYyAgfCAgIDcgKystCiB0b29scy9saWJ4Yy94Y19zcl9zdHJlYW1fZm9ybWF0Lmgg fCAgIDQgKysKIDcgZmlsZXMgY2hhbmdlZCwgMTQ0IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3QuaCBiL3Rvb2xz L2xpYnhjL2luY2x1ZGUveGVuZ3Vlc3QuaAppbmRleCA1Y2Q4MTExLi5hNmY1MmYxIDEwMDY0NAot LS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmd1ZXN0LmgKKysrIGIvdG9vbHMvbGlieGMvaW5j bHVkZS94ZW5ndWVzdC5oCkBAIC0xMDMsNyArMTAzLDggQEAgdHlwZWRlZiBlbnVtIHsKIGludCB4 Y19kb21haW5fc2F2ZSh4Y19pbnRlcmZhY2UgKnhjaCwgaW50IGlvX2ZkLCB1aW50MzJfdCBkb20s IHVpbnQzMl90IG1heF9pdGVycywKICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBtYXhfZmFj dG9yLCB1aW50MzJfdCBmbGFncyAvKiBYQ0ZMQUdTX3h4eCAqLywKICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3Qgc2F2ZV9jYWxsYmFja3MqIGNhbGxiYWNrcywgaW50IGh2bSwKLSAgICAgICAgICAg ICAgICAgICB4Y19taWdyYXRpb25fc3RyZWFtX3Qgc3RyZWFtX3R5cGUsIGludCByZWN2X2ZkKTsK KyAgICAgICAgICAgICAgICAgICB4Y19taWdyYXRpb25fc3RyZWFtX3Qgc3RyZWFtX3R5cGUsIGlu dCByZWN2X2ZkLAorICAgICAgICAgICAgICAgICAgIGludCBtaWdyYXRpb25fcGhhc2UpOwogCiAv KiBjYWxsYmFja3MgcHJvdmlkZWQgYnkgeGNfZG9tYWluX3Jlc3RvcmUgKi8KIHN0cnVjdCByZXN0 b3JlX2NhbGxiYWNrcyB7CkBAIC0xNjgsNyArMTY5LDggQEAgaW50IHhjX2RvbWFpbl9yZXN0b3Jl KHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwKICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICpjb25zb2xlX21mbiwgZG9taWRfdCBjb25zb2xlX2Rv bWlkLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBodm0sIHVuc2lnbmVkIGlu dCBwYWUsCiAgICAgICAgICAgICAgICAgICAgICAgeGNfbWlncmF0aW9uX3N0cmVhbV90IHN0cmVh bV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXN0b3JlX2NhbGxiYWNrcyAq Y2FsbGJhY2tzLCBpbnQgc2VuZF9iYWNrX2ZkKTsKKyAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgcmVzdG9yZV9jYWxsYmFja3MgKmNhbGxiYWNrcywgaW50IHNlbmRfYmFja19mZCwKKyAgICAg ICAgICAgICAgICAgICAgICBpbnQgbWlncmF0aW9uX3BoYXNlKTsKIAogLyoqCiAgKiBUaGlzIGZ1 bmN0aW9uIHdpbGwgY3JlYXRlIGEgZG9tYWluIGZvciBhIHBhcmF2aXJ0dWFsaXplZCBMaW51eApk aWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfbm9taWdyYXRlLmMgYi90b29scy9saWJ4Yy94Y19u b21pZ3JhdGUuYwppbmRleCAzMTdjOGNlLi5jNzU0MTFiIDEwMDY0NAotLS0gYS90b29scy9saWJ4 Yy94Y19ub21pZ3JhdGUuYworKysgYi90b29scy9saWJ4Yy94Y19ub21pZ3JhdGUuYwpAQCAtMjMs NyArMjMsOCBAQAogaW50IHhjX2RvbWFpbl9zYXZlKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9f ZmQsIHVpbnQzMl90IGRvbSwgdWludDMyX3QgbWF4X2l0ZXJzLAogICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IG1heF9mYWN0b3IsIHVpbnQzMl90IGZsYWdzLAogICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzYXZlX2NhbGxiYWNrcyogY2FsbGJhY2tzLCBpbnQgaHZtLAotICAgICAgICAgICAg ICAgICAgIHhjX21pZ3JhdGlvbl9zdHJlYW1fdCBzdHJlYW1fdHlwZSwgaW50IHJlY3ZfZmQpCisg ICAgICAgICAgICAgICAgICAgeGNfbWlncmF0aW9uX3N0cmVhbV90IHN0cmVhbV90eXBlLCBpbnQg cmVjdl9mZCwKKyAgICAgICAgICAgICAgICAgICBpbnQgbWlncmF0aW9uX3BoYXNlKQogewogICAg IGVycm5vID0gRU5PU1lTOwogICAgIHJldHVybiAtMTsKQEAgLTM1LDcgKzM2LDggQEAgaW50IHhj X2RvbWFpbl9yZXN0b3JlKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRv bSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICpjb25zb2xlX21mbiwgZG9t aWRfdCBjb25zb2xlX2RvbWlkLAogICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBo dm0sIHVuc2lnbmVkIGludCBwYWUsCiAgICAgICAgICAgICAgICAgICAgICAgeGNfbWlncmF0aW9u X3N0cmVhbV90IHN0cmVhbV90eXBlLAotICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXN0 b3JlX2NhbGxiYWNrcyAqY2FsbGJhY2tzLCBpbnQgc2VuZF9iYWNrX2ZkKQorICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCByZXN0b3JlX2NhbGxiYWNrcyAqY2FsbGJhY2tzLCBpbnQgc2VuZF9i YWNrX2ZkLAorICAgICAgICAgICAgICAgICAgICAgIGludCBtaWdyYXRpb25fcGhhc2UpCiB7CiAg ICAgZXJybm8gPSBFTk9TWVM7CiAgICAgcmV0dXJuIC0xOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMveGNfc3JfY29tbW9uLmggYi90b29scy9saWJ4Yy94Y19zcl9jb21tb24uaAppbmRleCBhODNm MjJhLi45MDNmMThhIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9jb21tb24uaAorKysg Yi90b29scy9saWJ4Yy94Y19zcl9jb21tb24uaApAQCAtOTYsNiArOTYsOCBAQCBzdHJ1Y3QgeGNf c3Jfc2F2ZV9vcHMKICAgICAgKiBhZnRlciBhIHN1Y2Nlc3NmdWwgc2F2ZSwgb3IgdXBvbiBlbmNv dW50ZXJpbmcgYW4gZXJyb3IuCiAgICAgICovCiAgICAgaW50ICgqY2xlYW51cCkoc3RydWN0IHhj X3NyX2NvbnRleHQgKmN0eCk7CisKKyAgICBpbnQgKCpsb2NhbF9kaXNrcykoc3RydWN0IHhjX3Ny X2NvbnRleHQgKmN0eCk7CiB9OwogCiAKQEAgLTE3Nyw2ICsxNzksNyBAQCBzdHJ1Y3QgeGNfc3Jf Y29udGV4dAogICAgIHhjX2ludGVyZmFjZSAqeGNoOwogICAgIHVpbnQzMl90IGRvbWlkOwogICAg IGludCBmZDsKKyAgICBpbnQgbWlncmF0aW9uX3BoYXNlOwogCiAgICAgeGNfZG9taW5mb190IGRv bWluZm87CiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmUuYyBiL3Rvb2xz L2xpYnhjL3hjX3NyX3Jlc3RvcmUuYwppbmRleCBhMDE2Njc4Li4xM2U2YWJjIDEwMDY0NAotLS0g YS90b29scy9saWJ4Yy94Y19zcl9yZXN0b3JlLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3JfcmVz dG9yZS5jCkBAIC03OTksMTEgKzc5OSwxMyBAQCBzdGF0aWMgaW50IHJlc3RvcmUoc3RydWN0IHhj X3NyX2NvbnRleHQgKmN0eCkKICAgICAgKiBXaXRoIFJlbXVzLCBpZiB3ZSByZWFjaCBoZXJlLCB0 aGVyZSBtdXN0IGJlIHNvbWUgZXJyb3Igb24gcHJpbWFyeSwKICAgICAgKiBmYWlsb3ZlciBmcm9t IHRoZSBsYXN0IGNoZWNrcG9pbnQgc3RhdGUuCiAgICAgICovCi0gICAgcmMgPSBjdHgtPnJlc3Rv cmUub3BzLnN0cmVhbV9jb21wbGV0ZShjdHgpOwotICAgIGlmICggcmMgKQotICAgICAgICBnb3Rv IGVycjsKKyAgICBpZiAoICFjdHgtPm1pZ3JhdGlvbl9waGFzZSAhPSBNSUdSQVRJT05fUEhBU0Vf TUlSUk9SX0RJU0sgKSB7CisgICAgICAgIHJjID0gY3R4LT5yZXN0b3JlLm9wcy5zdHJlYW1fY29t cGxldGUoY3R4KTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBnb3RvIGVycjsKIAot ICAgIElQUklOVEYoIlJlc3RvcmUgc3VjY2Vzc2Z1bCIpOworICAgICAgICBJUFJJTlRGKCJSZXN0 b3JlIHN1Y2Nlc3NmdWwiKTsKKyAgICB9CiAgICAgZ290byBkb25lOwogCiAgZXJyOgpAQCAtODI5 LDEzICs4MzEsMTUgQEAgaW50IHhjX2RvbWFpbl9yZXN0b3JlKHhjX2ludGVyZmFjZSAqeGNoLCBp bnQgaW9fZmQsIHVpbnQzMl90IGRvbSwKICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBs b25nICpjb25zb2xlX2dmbiwgZG9taWRfdCBjb25zb2xlX2RvbWlkLAogICAgICAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBodm0sIHVuc2lnbmVkIGludCBwYWUsCiAgICAgICAgICAgICAg ICAgICAgICAgeGNfbWlncmF0aW9uX3N0cmVhbV90IHN0cmVhbV90eXBlLAotICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCByZXN0b3JlX2NhbGxiYWNrcyAqY2FsbGJhY2tzLCBpbnQgc2VuZF9i YWNrX2ZkKQorICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCByZXN0b3JlX2NhbGxiYWNrcyAq Y2FsbGJhY2tzLCBpbnQgc2VuZF9iYWNrX2ZkLAorICAgICAgICAgICAgICAgICAgICAgIGludCBt aWdyYXRpb25fcGhhc2UpCiB7CiAgICAgeGVuX3Bmbl90IG5yX3BmbnM7CiAgICAgc3RydWN0IHhj X3NyX2NvbnRleHQgY3R4ID0KICAgICAgICAgewogICAgICAgICAgICAgLnhjaCA9IHhjaCwKICAg ICAgICAgICAgIC5mZCA9IGlvX2ZkLAorICAgICAgICAgICAgLm1pZ3JhdGlvbl9waGFzZSA9IG1p Z3JhdGlvbl9waGFzZQogICAgICAgICB9OwogCiAgICAgLyogR0NDIDQuNCAob2YgQ2VudE9TIDYu eCB2aW50YWdlKSBjYW4nIHQgaW5pdGlhbGlzZSBhbm9ueW1vdXMgdW5pb25zLiAqLwpkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5j CmluZGV4IGNhNjkxM2IuLjE4MWEwYzggMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3Nh dmUuYworKysgYi90b29scy9saWJ4Yy94Y19zcl9zYXZlLmMKQEAgLTQxMiw2ICs0MTIsOTYgQEAg c3RhdGljIGludCBzZW5kX2FsbF9wYWdlcyhzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAg IHJldHVybiBzZW5kX2RpcnR5X3BhZ2VzKGN0eCwgY3R4LT5zYXZlLnAybV9zaXplKTsKIH0KIAor c3RhdGljIHZvaWQgY2xlYXJfdmlydHVhbF9kZXZpY2VzX21lbW9yeShzdHJ1Y3QgeGNfc3JfY29u dGV4dCAqY3R4KQoreworICAgIHhlbl9wZm5fdCBwOworICAgIERFQ0xBUkVfSFlQRVJDQUxMX0JV RkZFUl9TSEFET1codW5zaWduZWQgbG9uZywgZGlydHlfYml0bWFwLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmN0eC0+c2F2ZS5kaXJ0eV9iaXRtYXBfaGJ1Zik7CisKKyAg ICBmb3IgKCBwID0gMHg3ODAwOyBwIDwgMHhmZWZmMjsgcCsrICl7CisgICAgICAgIGlmICggdGVz dF9iaXQocCwgZGlydHlfYml0bWFwKSApeworICAgICAgICAgICAgY2xlYXJfYml0KHAsIGRpcnR5 X2JpdG1hcCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuOworfQorCitzdGF0aWMgaW50 IHNlbmRfdmlydHVhbF9yYW0oc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKK3sKKyAgICBERUNM QVJFX0hZUEVSQ0FMTF9CVUZGRVJfU0hBRE9XKHVuc2lnbmVkIGxvbmcsIGRpcnR5X2JpdG1hcCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgtPnNhdmUuZGlydHlfYml0 bWFwX2hidWYpOworCisgICAgYml0bWFwX3NldChkaXJ0eV9iaXRtYXAsIGN0eC0+c2F2ZS5wMm1f c2l6ZSk7CisKKyAgICAvKgorICAgICAqIE9uIHRoZSBzZWNvbmQgc3RyZWFtIG9mIGEgbWlncmF0 aW9uIHdpdGggbG9jYWwgZGlzaywKKyAgICAgKiBkb24ndCBzZW5kIHRoZSB2ZmIsIHZpcnR1YWwg ZGV2aWNlcy4gT25seSB2aXJ0dWFsIFJBTQorICAgICAqLworICAgIGNsZWFyX3ZpcnR1YWxfZGV2 aWNlc19tZW1vcnkoY3R4KTsKKworICAgIHJldHVybiBzZW5kX2RpcnR5X3BhZ2VzKGN0eCwgY3R4 LT5zYXZlLnAybV9zaXplKTsKK30KKworc3RhdGljIGludCBzZW5kX3NwZWNpZmljX3BhZ2VzKHN0 cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQ2NF90IHZhbHVlKQoreworCisgICAgaW50IHJj ID0gMDsKKyAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVJfU0hBRE9XKHVuc2lnbmVkIGxvbmcs IGRpcnR5X2JpdG1hcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjdHgt PnNhdmUuZGlydHlfYml0bWFwX2hidWYpOworCisgICAgYml0bWFwX2NsZWFyKGRpcnR5X2JpdG1h cCwgY3R4LT5zYXZlLnAybV9zaXplKTsKKyAgICBzZXRfYml0KHZhbHVlLCBkaXJ0eV9iaXRtYXAp OworCisgICAgcmMgPSBzZW5kX2RpcnR5X3BhZ2VzKGN0eCwgMSk7CisgICAgYml0bWFwX2NsZWFy KGRpcnR5X2JpdG1hcCwgY3R4LT5zYXZlLnAybV9zaXplKTsKKyAgICByZXR1cm4gcmM7CisKK30K Kworc3RhdGljIGludCBzZW5kX3ZpcnR1YWxfZGV2aWNlc19hbmRfcGFyYW1zKHN0cnVjdCB4Y19z cl9jb250ZXh0ICpjdHgpCit7CisgICAgeGNfaW50ZXJmYWNlICp4Y2ggPSBjdHgtPnhjaDsKKyAg ICB1aW50NjRfdCBpID0gMDsKKyAgICBpbnQgcmMgPSAwOworCisgICAgZnByaW50ZihzdGRlcnIs ICJCUlVOTzogU0VORCBWSVJUVUFMIERFVklDRVMgQU5EIFBBUkFNU1xuIik7CisgICAgeGNfc2V0 X3Byb2dyZXNzX3ByZWZpeCh4Y2gsICJGcmFtZXMiKTsKKworICAgIC8vRk9SIFJUTCBBTkQgVkdB IElOIDEyOE1CIFZNIC4gTWlnaHQgY2hhbmdlIG9uIHNpemUgb2YgVk0KKyAgICBmb3IoIGkgPSAw eDgwMDA7IGkgPCAweDgwNTA7IGkrKyApCisgICAgeworICAgICAgICByYyA9IHNlbmRfc3BlY2lm aWNfcGFnZXMoY3R4LCBpKTsKKyAgICAgICAgaWYoIHJjICkKKyAgICAgICAgICAgIGdvdG8gb3V0 OworICAgIH0KKyAgICAvL1ZHQQorICAgIGZvciggaSA9IDB4ZjAwMDA7IGkgPCAweGYwODAwOyBp KysgKQorICAgIHsKKyAgICAgICAgcmMgPSBzZW5kX3NwZWNpZmljX3BhZ2VzKGN0eCwgaSk7Cisg ICAgICAgIGlmKCByYyApCisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICAvL1Zp cnR1YWwgRGV2aWNlCisgICAgZm9yKCBpID0gMHhmYzAwMDsgaSA8IDB4ZmMwMGI7IGkrKyApCisg ICAgeworICAgICAgICByYyA9IHNlbmRfc3BlY2lmaWNfcGFnZXMoY3R4LCBpKTsKKyAgICAgICAg aWYoIHJjICkKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGZvciggaSA9IDB4 ZmVmZjI7IGkgPCAweGZmMDAwOyBpKysgKQorICAgIHsKKyAgICAgICAgcmMgPSBzZW5kX3NwZWNp ZmljX3BhZ2VzKGN0eCwgaSk7CisgICAgICAgICAgaWYoIHJjICkKKyAgICAgICAgICAgIGdvdG8g b3V0OworICAgIH0KKworICAgcmMgPSBjdHgtPnNhdmUub3BzLmxvY2FsX2Rpc2tzKGN0eCk7Cisg b3V0OgorICAgIHJldHVybiByYzsKK30KKwogc3RhdGljIGludCBlbmFibGVfbG9nZGlydHkoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKIHsKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+ eGNoOwpAQCAtNDgxLDcgKzU3MSwxMSBAQCBzdGF0aWMgaW50IHNlbmRfbWVtb3J5X2xpdmUoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBvdXQ7 CiAKLSAgICByYyA9IHNlbmRfYWxsX3BhZ2VzKGN0eCk7CisgICAgaWYgKCAhY3R4LT5taWdyYXRp b25fcGhhc2UgKQorICAgICAgICByYyA9IHNlbmRfYWxsX3BhZ2VzKGN0eCk7CisgICAgZWxzZQor ICAgICAgICByYyA9IHNlbmRfdmlydHVhbF9yYW0oY3R4KTsKKwogICAgIGlmICggcmMgKQogICAg ICAgICBnb3RvIG91dDsKIApAQCAtNDk5LDYgKzU5Myw5IEBAIHN0YXRpYyBpbnQgc2VuZF9tZW1v cnlfbGl2ZShzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgICAgICAgICAgZ290byBvdXQ7 CiAgICAgICAgIH0KIAorICAgICAgICBpZiAoIGN0eC0+bWlncmF0aW9uX3BoYXNlICkKKyAgICAg ICAgICAgIGNsZWFyX3ZpcnR1YWxfZGV2aWNlc19tZW1vcnkoY3R4KTsKKwogICAgICAgICBpZiAo IHN0YXRzLmRpcnR5X2NvdW50ID09IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTYyMCw2 ICs3MTcsOSBAQCBzdGF0aWMgaW50IHN1c3BlbmRfYW5kX3NlbmRfZGlydHkoc3RydWN0IHhjX3Ny X2NvbnRleHQgKmN0eCkKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICggY3R4LT5taWdyYXRp b25fcGhhc2UgKQorICAgICAgICBjbGVhcl92aXJ0dWFsX2RldmljZXNfbWVtb3J5KGN0eCk7CisK ICAgICByYyA9IHNlbmRfZGlydHlfcGFnZXMoY3R4LCBzdGF0cy5kaXJ0eV9jb3VudCArIGN0eC0+ c2F2ZS5ucl9kZWZlcnJlZF9wYWdlcyk7CiAgICAgaWYgKCByYyApCiAgICAgICAgIGdvdG8gb3V0 OwpAQCAtODA1LDYgKzkwNSwxNCBAQCBzdGF0aWMgaW50IHNhdmUoc3RydWN0IHhjX3NyX2NvbnRl eHQgKmN0eCwgdWludDE2X3QgZ3Vlc3RfdHlwZSkKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290 byBlcnI7CiAKKyAgICAvKiBGaXJzdCBwYXNzIG9mIFFFTVUgZGlzayBtaWdyYXRpb24gKi8KKyAg ICBpZiAoIGN0eC0+bWlncmF0aW9uX3BoYXNlID09IE1JR1JBVElPTl9QSEFTRV9NSVJST1JfRElT SyApIHsKKyAgICAgICAgcmMgPSBzZW5kX3ZpcnR1YWxfZGV2aWNlc19hbmRfcGFyYW1zKGN0eCk7 CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIGdvdG8g ZW5kOworICAgIH0KKwogICAgIHJjID0gY3R4LT5zYXZlLm9wcy5zdGFydF9vZl9zdHJlYW0oY3R4 KTsKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBlcnI7CkBAIC04ODksNiArOTk3LDcgQEAg c3RhdGljIGludCBzYXZlKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHVpbnQxNl90IGd1ZXN0 X3R5cGUpCiAgICAgICAgIH0KICAgICB9IHdoaWxlICggY3R4LT5zYXZlLmNoZWNrcG9pbnRlZCAh PSBYQ19NSUdfU1RSRUFNX05PTkUgKTsKIAorIGVuZDoKICAgICB4Y19yZXBvcnRfcHJvZ3Jlc3Nf c2luZ2xlKHhjaCwgIkVuZCBvZiBzdHJlYW0iKTsKIAogICAgIHJjID0gd3JpdGVfZW5kX3JlY29y ZChjdHgpOwpAQCAtOTE4LDEyICsxMDI3LDE0IEBAIHN0YXRpYyBpbnQgc2F2ZShzdHJ1Y3QgeGNf c3JfY29udGV4dCAqY3R4LCB1aW50MTZfdCBndWVzdF90eXBlKQogaW50IHhjX2RvbWFpbl9zYXZl KHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwKICAgICAgICAgICAg ICAgICAgICB1aW50MzJfdCBtYXhfaXRlcnMsIHVpbnQzMl90IG1heF9mYWN0b3IsIHVpbnQzMl90 IGZsYWdzLAogICAgICAgICAgICAgICAgICAgIHN0cnVjdCBzYXZlX2NhbGxiYWNrcyogY2FsbGJh Y2tzLCBpbnQgaHZtLAotICAgICAgICAgICAgICAgICAgIHhjX21pZ3JhdGlvbl9zdHJlYW1fdCBz dHJlYW1fdHlwZSwgaW50IHJlY3ZfZmQpCisgICAgICAgICAgICAgICAgICAgeGNfbWlncmF0aW9u X3N0cmVhbV90IHN0cmVhbV90eXBlLCBpbnQgcmVjdl9mZCwKKyAgICAgICAgICAgICAgICAgICBp bnQgbWlncmF0aW9uX3BoYXNlKQogewogICAgIHN0cnVjdCB4Y19zcl9jb250ZXh0IGN0eCA9CiAg ICAgICAgIHsKICAgICAgICAgICAgIC54Y2ggPSB4Y2gsCiAgICAgICAgICAgICAuZmQgPSBpb19m ZCwKKyAgICAgICAgICAgIC5taWdyYXRpb25fcGhhc2UgPSBtaWdyYXRpb25fcGhhc2UKICAgICAg ICAgfTsKIAogICAgIC8qIEdDQyA0LjQgKG9mIENlbnRPUyA2LnggdmludGFnZSkgY2FuJyB0IGlu aXRpYWxpc2UgYW5vbnltb3VzIHVuaW9ucy4gKi8KQEAgLTk0OCw3ICsxMDU5LDggQEAgaW50IHhj X2RvbWFpbl9zYXZlKHhjX2ludGVyZmFjZSAqeGNoLCBpbnQgaW9fZmQsIHVpbnQzMl90IGRvbSwK ICAgICBjdHguc2F2ZS5kaXJ0eV90aHJlc2hvbGQgPSA1MDsKIAogICAgIC8qIFNhbml0eSBjaGVj a3MgZm9yIGNhbGxiYWNrcy4gKi8KLSAgICBpZiAoIGh2bSApCisgICAgLyogTm93IHRoZSBtaXJy b3IgcWVtdSBzdHJlYW0gZG9lc24ndCBlbmFibGUvZGlzYWJsZSBxZW11IGxvZyAqLworICAgIGlm ICggaHZtICYmIGN0eC5taWdyYXRpb25fcGhhc2UgIT0gTUlHUkFUSU9OX1BIQVNFX01JUlJPUl9E SVNLICkKICAgICAgICAgYXNzZXJ0KGNhbGxiYWNrcy0+c3dpdGNoX3FlbXVfbG9nZGlydHkpOwog ICAgIGlmICggY3R4LnNhdmUuY2hlY2twb2ludGVkICkKICAgICAgICAgYXNzZXJ0KGNhbGxiYWNr cy0+Y2hlY2twb2ludCAmJiBjYWxsYmFja3MtPnBvc3Rjb3B5KTsKZGlmZiAtLWdpdCBhL3Rvb2xz L2xpYnhjL3hjX3NyX3NhdmVfeDg2X2h2bS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZf aHZtLmMKaW5kZXggZTE3YmI1OS4uZTQxN2RhMiAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNf c3Jfc2F2ZV94ODZfaHZtLmMKKysrIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZV94ODZfaHZtLmMK QEAgLTE1Nyw3ICsxNTcsOCBAQCBzdGF0aWMgaW50IHg4Nl9odm1fc2V0dXAoc3RydWN0IHhjX3Ny X2NvbnRleHQgKmN0eCkKIAogICAgIGN0eC0+c2F2ZS5wMm1fc2l6ZSA9IG5yX3BmbnM7CiAKLSAg ICBpZiAoIGN0eC0+c2F2ZS5jYWxsYmFja3MtPnN3aXRjaF9xZW11X2xvZ2RpcnR5KAorICAgIGlm ICggY3R4LT5taWdyYXRpb25fcGhhc2UgIT0gTUlHUkFUSU9OX1BIQVNFX01JUlJPUl9ESVNLICYm CisgICAgICAgICBjdHgtPnNhdmUuY2FsbGJhY2tzLT5zd2l0Y2hfcWVtdV9sb2dkaXJ0eSgKICAg ICAgICAgICAgICBjdHgtPmRvbWlkLCAxLCBjdHgtPnNhdmUuY2FsbGJhY2tzLT5kYXRhKSApCiAg ICAgewogICAgICAgICBQRVJST1IoIkNvdWxkbid0IGVuYWJsZSBxZW11IGxvZy1kaXJ0eSBtb2Rl Iik7CkBAIC0yMTQsNyArMjE1LDggQEAgc3RhdGljIGludCB4ODZfaHZtX2NsZWFudXAoc3RydWN0 IHhjX3NyX2NvbnRleHQgKmN0eCkKICAgICB4Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+eGNoOwog CiAgICAgLyogSWYgcWVtdSBzdWNjZXNzZnVsbHkgZW5hYmxlZCBsb2dkaXJ0eSBtb2RlLCBhdHRl bXB0IHRvIGRpc2FibGUuICovCi0gICAgaWYgKCBjdHgtPng4Nl9odm0uc2F2ZS5xZW11X2VuYWJs ZWRfbG9nZGlydHkgJiYKKyAgICBpZiAoIGN0eC0+bWlncmF0aW9uX3BoYXNlICE9IE1JR1JBVElP Tl9QSEFTRV9NSVJST1JfRElTSyAmJgorICAgICAgICAgY3R4LT54ODZfaHZtLnNhdmUucWVtdV9l bmFibGVkX2xvZ2RpcnR5ICYmCiAgICAgICAgICBjdHgtPnNhdmUuY2FsbGJhY2tzLT5zd2l0Y2hf cWVtdV9sb2dkaXJ0eSgKICAgICAgICAgICAgICBjdHgtPmRvbWlkLCAwLCBjdHgtPnNhdmUuY2Fs bGJhY2tzLT5kYXRhKSApCiAgICAgewpAQCAtMjM1LDYgKzIzNyw3IEBAIHN0cnVjdCB4Y19zcl9z YXZlX29wcyBzYXZlX29wc194ODZfaHZtID0KICAgICAuZW5kX29mX2NoZWNrcG9pbnQgICA9IHg4 Nl9odm1fZW5kX29mX2NoZWNrcG9pbnQsCiAgICAgLmNoZWNrX3ZtX3N0YXRlICAgICAgPSB4ODZf aHZtX2NoZWNrX3ZtX3N0YXRlLAogICAgIC5jbGVhbnVwICAgICAgICAgICAgID0geDg2X2h2bV9j bGVhbnVwLAorICAgIC5sb2NhbF9kaXNrcyAgICAgICAgID0geDg2X2h2bV9lbmRfb2ZfY2hlY2tw b2ludCwKIH07CiAKIC8qCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94Y19zcl9zdHJlYW1fZm9y bWF0LmggYi90b29scy9saWJ4Yy94Y19zcl9zdHJlYW1fZm9ybWF0LmgKaW5kZXggMTVmZjFjNy4u MWYwYjI3NCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGMveGNfc3Jfc3RyZWFtX2Zvcm1hdC5oCisr KyBiL3Rvb2xzL2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQuaApAQCAtOCw2ICs4LDEwIEBACiAK ICNpbmNsdWRlIDxpbnR0eXBlcy5oPgogCisjZGVmaW5lIE1JR1JBVElPTl9QSEFTRV9OT05fTE9D QUxfRElTSyAwCisjZGVmaW5lIE1JR1JBVElPTl9QSEFTRV9WSVJUVUFMX1JBTSAxCisjZGVmaW5l IE1JR1JBVElPTl9QSEFTRV9NSVJST1JfRElTSyAyCisKIC8qCiAgKiBJbWFnZSBIZWFkZXIKICAq LwotLSAKMi4zLjIgKEFwcGxlIEdpdC01NSkKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0 cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK