From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v7 10/32] libxl: switch HVM domain building to use xc_dom_* helpers Date: Fri, 2 Oct 2015 17:48:41 +0200 Message-ID: <1443800943-17668-11-git-send-email-roger.pau@citrix.com> References: <1443800943-17668-1-git-send-email-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Zi2aN-0008UR-0z for xen-devel@lists.xenproject.org; Fri, 02 Oct 2015 15:49:27 +0000 In-Reply-To: <1443800943-17668-1-git-send-email-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: Wei Liu , Stefano Stabellini , Ian Jackson , Ian Campbell , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org Tm93IHRoYXQgd2UgaGF2ZSBhbGwgdGhlIGNvZGUgaW4gcGxhY2UgSFZNIGRvbWFpbiBidWlsZGlu ZyBpbiBsaWJ4bCBjYW4gYmUKc3dpdGNoZWQgdG8gdXNlIHRoZSB4Y19kb21fKiBmYW1pbHkgb2Yg ZnVuY3Rpb25zLCBqdXN0IGxpa2UgdGhleSBhcmUgdXNlZCBpbgpvcmRlciB0byBidWlsZCBQViBn dWVzdHMuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBJYW4gSmFj a3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8 c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNpdHJpeC5jb20+CkNjOiBJYW4gQ2FtcGJlbGwgPGlhbi5j YW1wYmVsbEBjaXRyaXguY29tPgpDYzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4KLS0t CkNoYW5nZXMgc2luY2UgdjY6CiAtIEZpeCB1bmluaXRpYWxpemVkIHVzYWdlIG9mIHJjIGluIGxp YnhsX19idWlsZF9odm0uCgpDaGFuZ2VzIHNpbmNlIHY0OgogLSBBZGQgV2VpIExpdSBBY2tlZC1i eS4KLS0tCiB0b29scy9saWJ4bC9saWJ4bF9hcmNoLmggICAgIHwgICAyICstCiB0b29scy9saWJ4 bC9saWJ4bF9hcm0uYyAgICAgIHwgICAyICstCiB0b29scy9saWJ4bC9saWJ4bF9kbS5jICAgICAg IHwgIDE4ICsrLS0KIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgfCAyMjggKysrKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogdG9vbHMvbGlieGwvbGlieGxfaW50 ZXJuYWwuaCB8ICAgNCArLQogdG9vbHMvbGlieGwvbGlieGxfdm51bWEuYyAgICB8ICAxMiArKy0K IHRvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jICAgICAgfCAgIDggKy0KIDcgZmlsZXMgY2hhbmdlZCwg MTU3IGluc2VydGlvbnMoKyksIDExNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF9hcmNoLmggYi90b29scy9saWJ4bC9saWJ4bF9hcmNoLmgKaW5kZXggYmQwMzBi Ni4uMzRhODUzYyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfYXJjaC5oCisrKyBiL3Rv b2xzL2xpYnhsL2xpYnhsX2FyY2guaApAQCAtNjAsNiArNjAsNiBAQCBfaGlkZGVuCiBpbnQgbGli eGxfX2FyY2hfZG9tYWluX2NvbnN0cnVjdF9tZW1tYXAobGlieGxfX2djICpnYywKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY29uZmlnICpkX2Nv bmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBk b21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNf aHZtX2J1aWxkX2FyZ3MgKmFyZ3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRvbSk7CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv dG9vbHMvbGlieGwvbGlieGxfYXJtLmMgYi90b29scy9saWJ4bC9saWJ4bF9hcm0uYwppbmRleCAw YWY4MDEwLi4xMTk1YjM3IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9hcm0uYworKysg Yi90b29scy9saWJ4bC9saWJ4bF9hcm0uYwpAQCAtOTc0LDcgKzk3NCw3IEBAIGludCBsaWJ4bF9f YXJjaF9kb21haW5fbWFwX2lycShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwgaW50IGly cSkKIGludCBsaWJ4bF9fYXJjaF9kb21haW5fY29uc3RydWN0X21lbW1hcChsaWJ4bF9fZ2MgKmdj LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9j b25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCB4Y19odm1fYnVpbGRfYXJncyAqYXJncykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiB7CiAgICAgcmV0dXJu IDA7CiB9CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kbS5jIGIvdG9vbHMvbGlieGwv bGlieGxfZG0uYwppbmRleCA3MWExYTNlLi44ZTMzN2RlIDEwMDY0NAotLS0gYS90b29scy9saWJ4 bC9saWJ4bF9kbS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMKQEAgLTE4LDYgKzE4LDgg QEAKICNpbmNsdWRlICJsaWJ4bF9vc2RlcHMuaCIgLyogbXVzdCBjb21lIGJlZm9yZSBhbnkgb3Ro ZXIgaGVhZGVycyAqLwogCiAjaW5jbHVkZSAibGlieGxfaW50ZXJuYWwuaCIKKworI2luY2x1ZGUg PHhjX2RvbS5oPgogI2luY2x1ZGUgPHhlbi9odm0vZTgyMC5oPgogCiBzdGF0aWMgY29uc3QgY2hh ciAqbGlieGxfdGFwaWZfc2NyaXB0KGxpYnhsX19nYyAqZ2MpCkBAIC0xODEsNyArMTgzLDcgQEAg YWRkX3JkbV9lbnRyeShsaWJ4bF9fZ2MgKmdjLCBsaWJ4bF9kb21haW5fY29uZmlnICpkX2NvbmZp ZywKIGludCBsaWJ4bF9fZG9tYWluX2RldmljZV9jb25zdHJ1Y3RfcmRtKGxpYnhsX19nYyAqZ2Ms CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21haW5fY29u ZmlnICpkX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ2NF90IHJkbV9tZW1fYm91bmRhcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pCiB7CiAgICAg aW50IGksIGosIGNvbmZsaWN0LCByYzsKICAgICBzdHJ1Y3QgeGVuX3Jlc2VydmVkX2RldmljZV9t ZW1vcnkgKnhyZG0gPSBOVUxMOwpAQCAtMTg5LDcgKzE5MSw3IEBAIGludCBsaWJ4bF9fZG9tYWlu X2RldmljZV9jb25zdHJ1Y3RfcmRtKGxpYnhsX19nYyAqZ2MsCiAgICAgdWludDE2X3Qgc2VnOwog ICAgIHVpbnQ4X3QgYnVzLCBkZXZmbjsKICAgICB1aW50NjRfdCByZG1fc3RhcnQsIHJkbV9zaXpl OwotICAgIHVpbnQ2NF90IGhpZ2htZW1fZW5kID0gYXJncy0+aGlnaG1lbV9lbmQgPyBhcmdzLT5o aWdobWVtX2VuZCA6ICgxdWxsPDwzMik7CisgICAgdWludDY0X3QgaGlnaG1lbV9lbmQgPSBkb20t PmhpZ2htZW1fZW5kID8gZG9tLT5oaWdobWVtX2VuZCA6ICgxdWxsPDwzMik7CiAKICAgICAvKgog ICAgICAqIFdlIGp1c3Qgd2FudCB0byBjb25zdHJ1Y3QgUkRNIG9uY2Ugc2luY2UgUkRNIGlzIHNw ZWNpZmljIHRvIHRoZQpAQCAtMzAzLDcgKzMwNSw3IEBAIGludCBsaWJ4bF9fZG9tYWluX2Rldmlj ZV9jb25zdHJ1Y3RfcmRtKGxpYnhsX19nYyAqZ2MsCiAgICAgZm9yIChpID0gMDsgaSA8IGRfY29u ZmlnLT5udW1fcmRtczsgaSsrKSB7CiAgICAgICAgIHJkbV9zdGFydCA9IGRfY29uZmlnLT5yZG1z W2ldLnN0YXJ0OwogICAgICAgICByZG1fc2l6ZSA9IGRfY29uZmlnLT5yZG1zW2ldLnNpemU7Ci0g ICAgICAgIGNvbmZsaWN0ID0gb3ZlcmxhcHNfcmRtKDAsIGFyZ3MtPmxvd21lbV9lbmQsIHJkbV9z dGFydCwgcmRtX3NpemUpOworICAgICAgICBjb25mbGljdCA9IG92ZXJsYXBzX3JkbSgwLCBkb20t Pmxvd21lbV9lbmQsIHJkbV9zdGFydCwgcmRtX3NpemUpOwogCiAgICAgICAgIGlmICghY29uZmxp Y3QpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMxNCwxNCArMzE2LDE0IEBAIGludCBsaWJ4 bF9fZG9tYWluX2RldmljZV9jb25zdHJ1Y3RfcmRtKGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAg ICAgKiBXZSB3aWxsIG1vdmUgZG93bndhcmRzIGxvd21lbV9lbmQgc28gd2UgaGF2ZSB0byBleHBh bmQKICAgICAgICAgICAgICAqIGhpZ2htZW1fZW5kLgogICAgICAgICAgICAgICovCi0gICAgICAg ICAgICBoaWdobWVtX2VuZCArPSAoYXJncy0+bG93bWVtX2VuZCAtIHJkbV9zdGFydCk7CisgICAg ICAgICAgICBoaWdobWVtX2VuZCArPSAoZG9tLT5sb3dtZW1fZW5kIC0gcmRtX3N0YXJ0KTsKICAg ICAgICAgICAgIC8qIE5vdyBtb3ZlIGRvd253YXJkcyBsb3dtZW1fZW5kLiAqLwotICAgICAgICAg ICAgYXJncy0+bG93bWVtX2VuZCA9IHJkbV9zdGFydDsKKyAgICAgICAgICAgIGRvbS0+bG93bWVt X2VuZCA9IHJkbV9zdGFydDsKICAgICAgICAgfQogICAgIH0KIAogICAgIC8qIFN5bmMgaGlnaG1l bV9lbmQuICovCi0gICAgYXJncy0+aGlnaG1lbV9lbmQgPSBoaWdobWVtX2VuZDsKKyAgICBkb20t PmhpZ2htZW1fZW5kID0gaGlnaG1lbV9lbmQ7CiAKICAgICAvKgogICAgICAqIEZpbmFsbHkgd2Ug Y2FuIHRha2Ugc2FtZSBwb2xpY3kgdG8gY2hlY2sgbG93bWVtKDwgMkcpIGFuZApAQCAtMzMxLDEx ICszMzMsMTEgQEAgaW50IGxpYnhsX19kb21haW5fZGV2aWNlX2NvbnN0cnVjdF9yZG0obGlieGxf X2djICpnYywKICAgICAgICAgcmRtX3N0YXJ0ID0gZF9jb25maWctPnJkbXNbaV0uc3RhcnQ7CiAg ICAgICAgIHJkbV9zaXplID0gZF9jb25maWctPnJkbXNbaV0uc2l6ZTsKICAgICAgICAgLyogRG9l cyB0aGlzIGVudHJ5IGNvbmZsaWN0IHdpdGggbG93bWVtPyAqLwotICAgICAgICBjb25mbGljdCA9 IG92ZXJsYXBzX3JkbSgwLCBhcmdzLT5sb3dtZW1fZW5kLAorICAgICAgICBjb25mbGljdCA9IG92 ZXJsYXBzX3JkbSgwLCBkb20tPmxvd21lbV9lbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJkbV9zdGFydCwgcmRtX3NpemUpOwogICAgICAgICAvKiBEb2VzIHRoaXMgZW50cnkg Y29uZmxpY3Qgd2l0aCBoaWdobWVtPyAqLwogICAgICAgICBjb25mbGljdCB8PSBvdmVybGFwc19y ZG0oKDFVTEw8PDMyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MtPmhp Z2htZW1fZW5kIC0gKDFVTEw8PDMyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbS0+aGlnaG1lbV9lbmQgLSAoMVVMTDw8MzIpLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmRtX3N0YXJ0LCByZG1fc2l6ZSk7CiAKICAgICAgICAgaWYgKCFjb25mbGljdCkK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RvbS5jIGIvdG9vbHMvbGlieGwvbGlieGxf ZG9tLmMKaW5kZXggMDExNzJiMC4uYTk5MjViNyAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMKQEAgLTYwMyw2ICs2MDMsNjMg QEAgc3RhdGljIGludCBzZXRfdm51bWFfaW5mbyhsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21p ZCwKICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBpbnQgbGlieGxfX2J1aWxkX2RvbShsaWJ4 bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKKyAgICAgICAgICAgICBsaWJ4bF9kb21haW5fYnVp bGRfaW5mbyAqaW5mbywgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUsCisgICAgICAg ICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQoreworICAgIHVpbnQ2NF90IG1lbV9rYjsK KyAgICBpbnQgcmV0OworCisgICAgaWYgKCAocmV0ID0geGNfZG9tX2Jvb3RfeGVuX2luaXQoZG9t LCBDVFgtPnhjaCwgZG9taWQpKSAhPSAwICkgeworICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9t X2Jvb3RfeGVuX2luaXQgZmFpbGVkIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyNpZmRl ZiBHVUVTVF9SQU1fQkFTRQorICAgIGlmICggKHJldCA9IHhjX2RvbV9yYW1iYXNlX2luaXQoZG9t LCBHVUVTVF9SQU1fQkFTRSkpICE9IDAgKSB7CisgICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21f cmFtYmFzZSBmYWlsZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorI2VuZGlmCisgICAg aWYgKCAocmV0ID0geGNfZG9tX3BhcnNlX2ltYWdlKGRvbSkpICE9IDAgKSB7CisgICAgICAgIExP R0UoRVJST1IsICJ4Y19kb21fcGFyc2VfaW1hZ2UgZmFpbGVkIik7CisgICAgICAgIGdvdG8gb3V0 OworICAgIH0KKyAgICBpZiAoIChyZXQgPSBsaWJ4bF9fYXJjaF9kb21haW5faW5pdF9od19kZXNj cmlwdGlvbihnYywgaW5mbywgc3RhdGUsIGRvbSkpICE9IDAgKSB7CisgICAgICAgIExPR0UoRVJS T1IsICJsaWJ4bF9fYXJjaF9kb21haW5faW5pdF9od19kZXNjcmlwdGlvbiBmYWlsZWQiKTsKKyAg ICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgbWVtX2tiID0gZG9tLT5jb250YWluZXJfdHlw ZSA9PSBYQ19ET01fSFZNX0NPTlRBSU5FUiA/CisgICAgICAgICAgICAgKGluZm8tPm1heF9tZW1r YiAtIGluZm8tPnZpZGVvX21lbWtiKSA6IGluZm8tPnRhcmdldF9tZW1rYjsKKyAgICBpZiAoIChy ZXQgPSB4Y19kb21fbWVtX2luaXQoZG9tLCBtZW1fa2IgLyAxMDI0KSkgIT0gMCApIHsKKyAgICAg ICAgTE9HRShFUlJPUiwgInhjX2RvbV9tZW1faW5pdCBmYWlsZWQiKTsKKyAgICAgICAgZ290byBv dXQ7CisgICAgfQorICAgIGlmICggKHJldCA9IHhjX2RvbV9ib290X21lbV9pbml0KGRvbSkpICE9 IDAgKSB7CisgICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fYm9vdF9tZW1faW5pdCBmYWlsZWQi KTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICggKHJldCA9IGxpYnhsX19hcmNo X2RvbWFpbl9maW5hbGlzZV9od19kZXNjcmlwdGlvbihnYywgaW5mbywgZG9tKSkgIT0gMCApIHsK KyAgICAgICAgTE9HRShFUlJPUiwgImxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19kZXNj cmlwdGlvbiBmYWlsZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorICAgIGlmICggKHJl dCA9IHhjX2RvbV9idWlsZF9pbWFnZShkb20pKSAhPSAwICkgeworICAgICAgICBMT0dFKEVSUk9S LCAieGNfZG9tX2J1aWxkX2ltYWdlIGZhaWxlZCIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9 CisgICAgaWYgKCAocmV0ID0geGNfZG9tX2Jvb3RfaW1hZ2UoZG9tKSkgIT0gMCApIHsKKyAgICAg ICAgTE9HRShFUlJPUiwgInhjX2RvbV9ib290X2ltYWdlIGZhaWxlZCIpOworICAgICAgICBnb3Rv IG91dDsKKyAgICB9CisgICAgaWYgKCAocmV0ID0geGNfZG9tX2dudHRhYl9pbml0KGRvbSkpICE9 IDAgKSB7CisgICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fZ250dGFiX2luaXQgZmFpbGVkIik7 CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworb3V0OgorICAgIHJldHVybiByZXQgIT0gMCA/ IEVSUk9SX0ZBSUwgOiAwOworfQorCiBpbnQgbGlieGxfX2J1aWxkX3B2KGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpp bmZvLCBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSkKIHsKQEAgLTY5Myw0OCArNzUw LDkgQEAgaW50IGxpYnhsX19idWlsZF9wdihsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwK ICAgICAgICAgICAgIGRvbS0+dm5vZGVfdG9fcG5vZGVbaV0gPSBpbmZvLT52bnVtYV9ub2Rlc1tp XS5wbm9kZTsKICAgICB9CiAKLSAgICBpZiAoIChyZXQgPSB4Y19kb21fYm9vdF94ZW5faW5pdChk b20sIGN0eC0+eGNoLCBkb21pZCkpICE9IDAgKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJ4Y19k b21fYm9vdF94ZW5faW5pdCBmYWlsZWQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotI2lm ZGVmIEdVRVNUX1JBTV9CQVNFCi0gICAgaWYgKCAocmV0ID0geGNfZG9tX3JhbWJhc2VfaW5pdChk b20sIEdVRVNUX1JBTV9CQVNFKSkgIT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgInhjX2Rv bV9yYW1iYXNlIGZhaWxlZCIpOworICAgIHJldCA9IGxpYnhsX19idWlsZF9kb20oZ2MsIGRvbWlk LCBpbmZvLCBzdGF0ZSwgZG9tKTsKKyAgICBpZiAocmV0ICE9IDApCiAgICAgICAgIGdvdG8gb3V0 OwotICAgIH0KLSNlbmRpZgotICAgIGlmICggKHJldCA9IHhjX2RvbV9wYXJzZV9pbWFnZShkb20p KSAhPSAwICkgewotICAgICAgICBMT0dFKEVSUk9SLCAieGNfZG9tX3BhcnNlX2ltYWdlIGZhaWxl ZCIpOwotICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgaWYgKCAocmV0ID0gbGlieGxfX2Fy Y2hfZG9tYWluX2luaXRfaHdfZGVzY3JpcHRpb24oZ2MsIGluZm8sIHN0YXRlLCBkb20pKSAhPSAw ICkgewotICAgICAgICBMT0dFKEVSUk9SLCAibGlieGxfX2FyY2hfZG9tYWluX2luaXRfaHdfZGVz Y3JpcHRpb24gZmFpbGVkIik7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0KLSAgICBpZiAoIChy ZXQgPSB4Y19kb21fbWVtX2luaXQoZG9tLCBpbmZvLT50YXJnZXRfbWVta2IgLyAxMDI0KSkgIT0g MCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9tZW1faW5pdCBmYWlsZWQiKTsKLSAg ICAgICAgZ290byBvdXQ7Ci0gICAgfQotICAgIGlmICggKHJldCA9IHhjX2RvbV9ib290X21lbV9p bml0KGRvbSkpICE9IDAgKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fYm9vdF9tZW1f aW5pdCBmYWlsZWQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQotICAgIGlmICggKHJldCA9 IGxpYnhsX19hcmNoX2RvbWFpbl9maW5hbGlzZV9od19kZXNjcmlwdGlvbihnYywgaW5mbywgZG9t KSkgIT0gMCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgImxpYnhsX19hcmNoX2RvbWFpbl9maW5h bGlzZV9od19kZXNjcmlwdGlvbiBmYWlsZWQiKTsKLSAgICAgICAgZ290byBvdXQ7Ci0gICAgfQot ICAgIGlmICggKHJldCA9IHhjX2RvbV9idWlsZF9pbWFnZShkb20pKSAhPSAwICkgewotICAgICAg ICBMT0dFKEVSUk9SLCAieGNfZG9tX2J1aWxkX2ltYWdlIGZhaWxlZCIpOwotICAgICAgICBnb3Rv IG91dDsKLSAgICB9Ci0gICAgaWYgKCAocmV0ID0geGNfZG9tX2Jvb3RfaW1hZ2UoZG9tKSkgIT0g MCApIHsKLSAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9ib290X2ltYWdlIGZhaWxlZCIpOwot ICAgICAgICBnb3RvIG91dDsKLSAgICB9Ci0gICAgaWYgKCAocmV0ID0geGNfZG9tX2dudHRhYl9p bml0KGRvbSkpICE9IDAgKSB7Ci0gICAgICAgIExPR0UoRVJST1IsICJ4Y19kb21fZ250dGFiX2lu aXQgZmFpbGVkIik7Ci0gICAgICAgIGdvdG8gb3V0OwotICAgIH0KIAogICAgIGlmICh4Y19kb21f ZmVhdHVyZV90cmFuc2xhdGVkKGRvbSkpIHsKICAgICAgICAgc3RhdGUtPmNvbnNvbGVfbWZuID0g ZG9tLT5jb25zb2xlX3BmbjsKQEAgLTc5NCwzOSArODEyLDM5IEBAIHN0YXRpYyBpbnQgaHZtX2J1 aWxkX3NldF9wYXJhbXMoeGNfaW50ZXJmYWNlICpoYW5kbGUsIHVpbnQzMl90IGRvbWlkLAogCiBz dGF0aWMgaW50IGh2bV9idWlsZF9zZXRfeHNfdmFsdWVzKGxpYnhsX19nYyAqZ2MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGRvbWlkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19kb21faW1hZ2UgKmRv bSkKIHsKICAgICBjaGFyICpwYXRoID0gTlVMTDsKICAgICBpbnQgcmV0ID0gMDsKIAotICAgIGlm IChhcmdzLT5zbWJpb3NfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0KSB7CisgICAgaWYgKGRvbS0+c21i aW9zX21vZHVsZS5ndWVzdF9hZGRyX291dCkgewogICAgICAgICBwYXRoID0gR0NTUFJJTlRGKCIv bG9jYWwvZG9tYWluLyVkLyJIVk1fWFNfU01CSU9TX1BUX0FERFJFU1MsIGRvbWlkKTsKIAogICAg ICAgICByZXQgPSBsaWJ4bF9feHNfd3JpdGUoZ2MsIFhCVF9OVUxMLCBwYXRoLCAiMHglIlBSSXg2 NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MtPnNtYmlvc19tb2R1bGUuZ3Vl c3RfYWRkcl9vdXQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5zbWJpb3Nf bW9kdWxlLmd1ZXN0X2FkZHJfb3V0KTsKICAgICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIGdv dG8gZXJyOwogCiAgICAgICAgIHBhdGggPSBHQ1NQUklOVEYoIi9sb2NhbC9kb21haW4vJWQvIkhW TV9YU19TTUJJT1NfUFRfTEVOR1RILCBkb21pZCk7CiAKICAgICAgICAgcmV0ID0gbGlieGxfX3hz X3dyaXRlKGdjLCBYQlRfTlVMTCwgcGF0aCwgIjB4JXgiLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXJncy0+c21iaW9zX21vZHVsZS5sZW5ndGgpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tLT5zbWJpb3NfbW9kdWxlLmxlbmd0aCk7CiAgICAgICAgIGlmIChyZXQp CiAgICAgICAgICAgICBnb3RvIGVycjsKICAgICB9CiAKLSAgICBpZiAoYXJncy0+YWNwaV9tb2R1 bGUuZ3Vlc3RfYWRkcl9vdXQpIHsKKyAgICBpZiAoZG9tLT5hY3BpX21vZHVsZS5ndWVzdF9hZGRy X291dCkgewogICAgICAgICBwYXRoID0gR0NTUFJJTlRGKCIvbG9jYWwvZG9tYWluLyVkLyJIVk1f WFNfQUNQSV9QVF9BRERSRVNTLCBkb21pZCk7CiAKICAgICAgICAgcmV0ID0gbGlieGxfX3hzX3dy aXRlKGdjLCBYQlRfTlVMTCwgcGF0aCwgIjB4JSJQUkl4NjQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhcmdzLT5hY3BpX21vZHVsZS5ndWVzdF9hZGRyX291dCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlLmd1ZXN0X2FkZHJfb3V0KTsKICAg ICAgICAgaWYgKHJldCkKICAgICAgICAgICAgIGdvdG8gZXJyOwogCiAgICAgICAgIHBhdGggPSBH Q1NQUklOVEYoIi9sb2NhbC9kb21haW4vJWQvIkhWTV9YU19BQ1BJX1BUX0xFTkdUSCwgZG9taWQp OwogCiAgICAgICAgIHJldCA9IGxpYnhsX194c193cml0ZShnYywgWEJUX05VTEwsIHBhdGgsICIw eCV4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MtPmFjcGlfbW9kdWxlLmxl bmd0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb20tPmFjcGlfbW9kdWxlLmxl bmd0aCk7CiAgICAgICAgIGlmIChyZXQpCiAgICAgICAgICAgICBnb3RvIGVycjsKICAgICB9CkBA IC04NDAsNyArODU4LDcgQEAgZXJyOgogCiBzdGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdh cmUobGlieGxfX2djICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4 bF9kb21haW5fYnVpbGRfaW5mbyAqaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogewogICAgIGxpYnhsX2N0 eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKICAgICBjb25zdCBjaGFyICpmaXJtd2FyZTsK QEAgLTg2Niw4ICs4ODQsMTMgQEAgc3RhdGljIGludCBsaWJ4bF9fZG9tYWluX2Zpcm13YXJlKGxp YnhsX19nYyAqZ2MsCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0KLSAgICBh cmdzLT5pbWFnZV9maWxlX25hbWUgPSBsaWJ4bF9fYWJzX3BhdGgoZ2MsIGZpcm13YXJlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9feGVuZmlybXdh cmVkaXJfcGF0aCgpKTsKKworICAgIHJjID0geGNfZG9tX2tlcm5lbF9maWxlKGRvbSwgbGlieGxf X2Fic19wYXRoKGdjLCBmaXJtd2FyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsaWJ4bF9feGVuZmlybXdhcmVkaXJfcGF0aCgpKSk7CisgICAgaWYg KHJjICE9IDApIHsKKyAgICAgICAgTE9HRShFUlJPUiwgInhjX2RvbV9rZXJuZWxfZmlsZSBmYWls ZWQiKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQogCiAgICAgaWYgKGluZm8tPnUuaHZtLnNt Ymlvc19maXJtd2FyZSkgewogICAgICAgICBkYXRhID0gTlVMTDsKQEAgLTg4MSw4ICs5MDQsOCBA QCBzdGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdhcmUobGlieGxfX2djICpnYywKICAgICAg ICAgbGlieGxfX3B0cl9hZGQoZ2MsIGRhdGEpOwogICAgICAgICBpZiAoZGF0YWxlbikgewogICAg ICAgICAgICAgLyogT25seSBhY2NlcHQgbm9uLWVtcHR5IGZpbGVzICovCi0gICAgICAgICAgICBh cmdzLT5zbWJpb3NfbW9kdWxlLmRhdGEgPSBkYXRhOwotICAgICAgICAgICAgYXJncy0+c21iaW9z X21vZHVsZS5sZW5ndGggPSAodWludDMyX3QpZGF0YWxlbjsKKyAgICAgICAgICAgIGRvbS0+c21i aW9zX21vZHVsZS5kYXRhID0gZGF0YTsKKyAgICAgICAgICAgIGRvbS0+c21iaW9zX21vZHVsZS5s ZW5ndGggPSAodWludDMyX3QpZGF0YWxlbjsKICAgICAgICAgfQogICAgIH0KIApAQCAtODk4LDgg KzkyMSw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RvbWFpbl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdj LAogICAgICAgICBsaWJ4bF9fcHRyX2FkZChnYywgZGF0YSk7CiAgICAgICAgIGlmIChkYXRhbGVu KSB7CiAgICAgICAgICAgICAvKiBPbmx5IGFjY2VwdCBub24tZW1wdHkgZmlsZXMgKi8KLSAgICAg ICAgICAgIGFyZ3MtPmFjcGlfbW9kdWxlLmRhdGEgPSBkYXRhOwotICAgICAgICAgICAgYXJncy0+ YWNwaV9tb2R1bGUubGVuZ3RoID0gKHVpbnQzMl90KWRhdGFsZW47CisgICAgICAgICAgICBkb20t PmFjcGlfbW9kdWxlLmRhdGEgPSBkYXRhOworICAgICAgICAgICAgZG9tLT5hY3BpX21vZHVsZS5s ZW5ndGggPSAodWludDMyX3QpZGF0YWxlbjsKICAgICAgICAgfQogICAgIH0KIApAQCAtOTEzLDUy ICs5MzYsNjMgQEAgaW50IGxpYnhsX19idWlsZF9odm0obGlieGxfX2djICpnYywgdWludDMyX3Qg ZG9taWQsCiAgICAgICAgICAgICAgIGxpYnhsX19kb21haW5fYnVpbGRfc3RhdGUgKnN0YXRlKQog ewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2djX293bmVyKGdjKTsKLSAgICBzdHJ1Y3Qg eGNfaHZtX2J1aWxkX2FyZ3MgYXJncyA9IHt9OwotICAgIGludCByZXQsIHJjOwotICAgIHVpbnQ2 NF90IG1taW9fc3RhcnQsIGxvd21lbV9lbmQsIGhpZ2htZW1fZW5kOworICAgIGludCByYzsKKyAg ICB1aW50NjRfdCBtbWlvX3N0YXJ0LCBsb3dtZW1fZW5kLCBoaWdobWVtX2VuZCwgbWVtX3NpemU7 CiAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8gKmNvbnN0IGluZm8gPSAmZF9jb25maWctPmJf aW5mbzsKKyAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20gPSBOVUxMOworCisgICAgeGNfZG9t X2xvZ2luaXQoY3R4LT54Y2gpOworCisgICAgZG9tID0geGNfZG9tX2FsbG9jYXRlKGN0eC0+eGNo LCBOVUxMLCBOVUxMKTsKKyAgICBpZiAoIWRvbSkgeworICAgICAgICBMT0dFKEVSUk9SLCAieGNf ZG9tX2FsbG9jYXRlIGZhaWxlZCIpOworICAgICAgICByYyA9IEVSUk9SX05PTUVNOworICAgICAg ICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBkb20tPmNvbnRhaW5lcl90eXBlID0gWENfRE9NX0hW TV9DT05UQUlORVI7CiAKLSAgICBtZW1zZXQoJmFyZ3MsIDAsIHNpemVvZihzdHJ1Y3QgeGNfaHZt X2J1aWxkX2FyZ3MpKTsKICAgICAvKiBUaGUgcGFyYW1zIGZyb20gdGhlIGNvbmZpZ3VyYXRpb24g ZmlsZSBhcmUgaW4gTWIsIHdoaWNoIGFyZSB0aGVuCiAgICAgICogbXVsdGlwbGllZCBieSAxIEti LiBUaGlzIHdhcyB0aGVuIGRpdmlkZWQgb2ZmIHdoZW4gY2FsbGluZwogICAgICAqIHRoZSBvbGQg eGNfaHZtX2J1aWxkX3RhcmdldF9tZW0oKSB3aGljaCB0aGVuIHR1cm5lZCB0aGVtIHRvIGJ5dGVz LgogICAgICAqIERvIGFsbCB0aGlzIGluIG9uZSBzdGVwIGhlcmUuLi4KICAgICAgKi8KLSAgICBh cmdzLm1lbV9zaXplID0gKHVpbnQ2NF90KShpbmZvLT5tYXhfbWVta2IgLSBpbmZvLT52aWRlb19t ZW1rYikgPDwgMTA7Ci0gICAgYXJncy5tZW1fdGFyZ2V0ID0gKHVpbnQ2NF90KShpbmZvLT50YXJn ZXRfbWVta2IgLSBpbmZvLT52aWRlb19tZW1rYikgPDwgMTA7Ci0gICAgYXJncy5jbGFpbV9lbmFi bGVkID0gbGlieGxfZGVmYm9vbF92YWwoaW5mby0+Y2xhaW1fbW9kZSk7CisgICAgbWVtX3NpemUg PSAodWludDY0X3QpKGluZm8tPm1heF9tZW1rYiAtIGluZm8tPnZpZGVvX21lbWtiKSA8PCAxMDsK KyAgICBkb20tPnRhcmdldF9wYWdlcyA9ICh1aW50NjRfdCkoaW5mby0+dGFyZ2V0X21lbWtiIC0g aW5mby0+dmlkZW9fbWVta2IpID4+IDI7CisgICAgZG9tLT5jbGFpbV9lbmFibGVkID0gbGlieGxf ZGVmYm9vbF92YWwoaW5mby0+Y2xhaW1fbW9kZSk7CiAgICAgaWYgKGluZm8tPnUuaHZtLm1taW9f aG9sZV9tZW1rYikgewogICAgICAgICB1aW50NjRfdCBtYXhfcmFtX2JlbG93XzRnID0gKDFVTEwg PDwgMzIpIC0KICAgICAgICAgICAgIChpbmZvLT51Lmh2bS5tbWlvX2hvbGVfbWVta2IgPDwgMTAp OwogCiAgICAgICAgIGlmIChtYXhfcmFtX2JlbG93XzRnIDwgSFZNX0JFTE9XXzRHX01NSU9fU1RB UlQpCi0gICAgICAgICAgICBhcmdzLm1taW9fc2l6ZSA9IGluZm8tPnUuaHZtLm1taW9faG9sZV9t ZW1rYiA8PCAxMDsKKyAgICAgICAgICAgIGRvbS0+bW1pb19zaXplID0gaW5mby0+dS5odm0ubW1p b19ob2xlX21lbWtiIDw8IDEwOwogICAgIH0KIAotICAgIHJjID0gbGlieGxfX2RvbWFpbl9maXJt d2FyZShnYywgaW5mbywgJmFyZ3MpOworICAgIHJjID0gbGlieGxfX2RvbWFpbl9maXJtd2FyZShn YywgaW5mbywgZG9tKTsKICAgICBpZiAocmMgIT0gMCkgewogICAgICAgICBMT0coRVJST1IsICJp bml0aWFsaXppbmcgZG9tYWluIGZpcm13YXJlIGZhaWxlZCIpOwogICAgICAgICBnb3RvIG91dDsK ICAgICB9Ci0gICAgaWYgKGFyZ3MubWVtX3RhcmdldCA9PSAwKQotICAgICAgICBhcmdzLm1lbV90 YXJnZXQgPSBhcmdzLm1lbV9zaXplOwotICAgIGlmIChhcmdzLm1taW9fc2l6ZSA9PSAwKQotICAg ICAgICBhcmdzLm1taW9fc2l6ZSA9IEhWTV9CRUxPV180R19NTUlPX0xFTkdUSDsKLSAgICBsb3dt ZW1fZW5kID0gYXJncy5tZW1fc2l6ZTsKKworICAgIGlmIChkb20tPnRhcmdldF9wYWdlcyA9PSAw KQorICAgICAgICBkb20tPnRhcmdldF9wYWdlcyA9IG1lbV9zaXplID4+IFhDX1BBR0VfU0hJRlQ7 CisgICAgaWYgKGRvbS0+bW1pb19zaXplID09IDApCisgICAgICAgIGRvbS0+bW1pb19zaXplID0g SFZNX0JFTE9XXzRHX01NSU9fTEVOR1RIOworICAgIGxvd21lbV9lbmQgPSBtZW1fc2l6ZTsKICAg ICBoaWdobWVtX2VuZCA9IDA7Ci0gICAgbW1pb19zdGFydCA9ICgxdWxsIDw8IDMyKSAtIGFyZ3Mu bW1pb19zaXplOworICAgIG1taW9fc3RhcnQgPSAoMXVsbCA8PCAzMikgLSBkb20tPm1taW9fc2l6 ZTsKICAgICBpZiAobG93bWVtX2VuZCA+IG1taW9fc3RhcnQpCiAgICAgewogICAgICAgICBoaWdo bWVtX2VuZCA9ICgxdWxsIDw8IDMyKSArIChsb3dtZW1fZW5kIC0gbW1pb19zdGFydCk7CiAgICAg ICAgIGxvd21lbV9lbmQgPSBtbWlvX3N0YXJ0OwogICAgIH0KLSAgICBhcmdzLmxvd21lbV9lbmQg PSBsb3dtZW1fZW5kOwotICAgIGFyZ3MuaGlnaG1lbV9lbmQgPSBoaWdobWVtX2VuZDsKLSAgICBh cmdzLm1taW9fc3RhcnQgPSBtbWlvX3N0YXJ0OworICAgIGRvbS0+bG93bWVtX2VuZCA9IGxvd21l bV9lbmQ7CisgICAgZG9tLT5oaWdobWVtX2VuZCA9IGhpZ2htZW1fZW5kOworICAgIGRvbS0+bW1p b19zdGFydCA9IG1taW9fc3RhcnQ7CiAKICAgICByYyA9IGxpYnhsX19kb21haW5fZGV2aWNlX2Nv bnN0cnVjdF9yZG0oZ2MsIGRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbmZvLT51Lmh2bS5yZG1fbWVtX2JvdW5kYXJ5X21lbWtiKjEwMjQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmdzKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tKTsKICAgICBpZiAocmMp IHsKICAgICAgICAgTE9HKEVSUk9SLCAiY2hlY2tpbmcgcmVzZXJ2ZWQgZGV2aWNlIG1lbW9yeSBm YWlsZWQiKTsKICAgICAgICAgZ290byBvdXQ7CkBAIC05NjcsNyArMTAwMSw3IEBAIGludCBsaWJ4 bF9fYnVpbGRfaHZtKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgIGlmIChpbmZv LT5udW1fdm51bWFfbm9kZXMgIT0gMCkgewogICAgICAgICBpbnQgaTsKIAotICAgICAgICByYyA9 IGxpYnhsX192bnVtYV9idWlsZF92bWVtcmFuZ2VfaHZtKGdjLCBkb21pZCwgaW5mbywgc3RhdGUs ICZhcmdzKTsKKyAgICAgICAgcmMgPSBsaWJ4bF9fdm51bWFfYnVpbGRfdm1lbXJhbmdlX2h2bShn YywgZG9taWQsIGluZm8sIHN0YXRlLCBkb20pOwogICAgICAgICBpZiAocmMgIT0gMCkgewogICAg ICAgICAgICAgTE9HKEVSUk9SLCAiaHZtIGJ1aWxkIHZtZW1yYW5nZXMgZmFpbGVkIik7CiAgICAg ICAgICAgICBnb3RvIG91dDsKQEAgLTk3NywzNyArMTAxMSwzNCBAQCBpbnQgbGlieGxfX2J1aWxk X2h2bShsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICAgICAgcmMgPSBzZXRfdm51 bWFfaW5mbyhnYywgZG9taWQsIGluZm8sIHN0YXRlKTsKICAgICAgICAgaWYgKHJjICE9IDApIGdv dG8gb3V0OwogCi0gICAgICAgIGFyZ3MubnJfdm1lbXJhbmdlcyA9IHN0YXRlLT5udW1fdm1lbXJh bmdlczsKLSAgICAgICAgYXJncy52bWVtcmFuZ2VzID0gbGlieGxfX21hbGxvYyhnYywgc2l6ZW9m KCphcmdzLnZtZW1yYW5nZXMpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcmdzLm5yX3ZtZW1yYW5nZXMpOworICAgICAgICBkb20tPm5yX3ZtZW1yYW5nZXMgPSBz dGF0ZS0+bnVtX3ZtZW1yYW5nZXM7CisgICAgICAgIGRvbS0+dm1lbXJhbmdlcyA9IGxpYnhsX19t YWxsb2MoZ2MsIHNpemVvZigqZG9tLT52bWVtcmFuZ2VzKSAqCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9tLT5ucl92bWVtcmFuZ2VzKTsKIAotICAgICAgICBmb3Ig KGkgPSAwOyBpIDwgYXJncy5ucl92bWVtcmFuZ2VzOyBpKyspIHsKLSAgICAgICAgICAgIGFyZ3Mu dm1lbXJhbmdlc1tpXS5zdGFydCA9IHN0YXRlLT52bWVtcmFuZ2VzW2ldLnN0YXJ0OwotICAgICAg ICAgICAgYXJncy52bWVtcmFuZ2VzW2ldLmVuZCAgID0gc3RhdGUtPnZtZW1yYW5nZXNbaV0uZW5k OwotICAgICAgICAgICAgYXJncy52bWVtcmFuZ2VzW2ldLmZsYWdzID0gc3RhdGUtPnZtZW1yYW5n ZXNbaV0uZmxhZ3M7Ci0gICAgICAgICAgICBhcmdzLnZtZW1yYW5nZXNbaV0ubmlkICAgPSBzdGF0 ZS0+dm1lbXJhbmdlc1tpXS5uaWQ7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBkb20tPm5yX3Zt ZW1yYW5nZXM7IGkrKykgeworICAgICAgICAgICAgZG9tLT52bWVtcmFuZ2VzW2ldLnN0YXJ0ID0g c3RhdGUtPnZtZW1yYW5nZXNbaV0uc3RhcnQ7CisgICAgICAgICAgICBkb20tPnZtZW1yYW5nZXNb aV0uZW5kICAgPSBzdGF0ZS0+dm1lbXJhbmdlc1tpXS5lbmQ7CisgICAgICAgICAgICBkb20tPnZt ZW1yYW5nZXNbaV0uZmxhZ3MgPSBzdGF0ZS0+dm1lbXJhbmdlc1tpXS5mbGFnczsKKyAgICAgICAg ICAgIGRvbS0+dm1lbXJhbmdlc1tpXS5uaWQgICA9IHN0YXRlLT52bWVtcmFuZ2VzW2ldLm5pZDsK ICAgICAgICAgfQogCi0gICAgICAgIGFyZ3MubnJfdm5vZGVzID0gaW5mby0+bnVtX3ZudW1hX25v ZGVzOwotICAgICAgICBhcmdzLnZub2RlX3RvX3Bub2RlID0gbGlieGxfX21hbGxvYyhnYywgc2l6 ZW9mKCphcmdzLnZub2RlX3RvX3Bub2RlKSAqCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3MubnJfdm5vZGVzKTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8 IGFyZ3MubnJfdm5vZGVzOyBpKyspCi0gICAgICAgICAgICBhcmdzLnZub2RlX3RvX3Bub2RlW2ld ID0gaW5mby0+dm51bWFfbm9kZXNbaV0ucG5vZGU7Ci0gICAgfQotCi0gICAgcmV0ID0geGNfaHZt X2J1aWxkKGN0eC0+eGNoLCBkb21pZCwgJmFyZ3MpOwotICAgIGlmIChyZXQpIHsKLSAgICAgICAg TE9HRVYoRVJST1IsIHJldCwgImh2bSBidWlsZGluZyBmYWlsZWQiKTsKLSAgICAgICAgcmMgPSBF UlJPUl9GQUlMOwotICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgZG9tLT5ucl92bm9kZXMgPSBp bmZvLT5udW1fdm51bWFfbm9kZXM7CisgICAgICAgIGRvbS0+dm5vZGVfdG9fcG5vZGUgPSBsaWJ4 bF9fbWFsbG9jKGdjLCBzaXplb2YoKmRvbS0+dm5vZGVfdG9fcG5vZGUpICoKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tLT5ucl92bm9kZXMpOworICAgICAg ICBmb3IgKGkgPSAwOyBpIDwgZG9tLT5ucl92bm9kZXM7IGkrKykKKyAgICAgICAgICAgIGRvbS0+ dm5vZGVfdG9fcG5vZGVbaV0gPSBpbmZvLT52bnVtYV9ub2Rlc1tpXS5wbm9kZTsKICAgICB9CiAK LSAgICByYyA9IGxpYnhsX19hcmNoX2RvbWFpbl9jb25zdHJ1Y3RfbWVtbWFwKGdjLCBkX2NvbmZp ZywgZG9taWQsICZhcmdzKTsKKyAgICByYyA9IGxpYnhsX19hcmNoX2RvbWFpbl9jb25zdHJ1Y3Rf bWVtbWFwKGdjLCBkX2NvbmZpZywgZG9taWQsIGRvbSk7CiAgICAgaWYgKHJjICE9IDApIHsKICAg ICAgICAgTE9HKEVSUk9SLCAic2V0dGluZyBkb21haW4gbWVtb3J5IG1hcCBmYWlsZWQiKTsKICAg ICAgICAgZ290byBvdXQ7CiAgICAgfQogCisgICAgcmMgPSBsaWJ4bF9fYnVpbGRfZG9tKGdjLCBk b21pZCwgaW5mbywgc3RhdGUsIGRvbSk7CisgICAgaWYgKHJjICE9IDApCisgICAgICAgIGdvdG8g b3V0OworCiAgICAgcmMgPSBodm1fYnVpbGRfc2V0X3BhcmFtcyhjdHgtPnhjaCwgZG9taWQsIGlu Zm8sIHN0YXRlLT5zdG9yZV9wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZz dGF0ZS0+c3RvcmVfbWZuLCBzdGF0ZS0+Y29uc29sZV9wb3J0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZzdGF0ZS0+Y29uc29sZV9tZm4sIHN0YXRlLT5zdG9yZV9kb21pZCwKQEAg LTEwMTcsMTUgKzEwNDgsMTggQEAgaW50IGxpYnhsX19idWlsZF9odm0obGlieGxfX2djICpnYywg dWludDMyX3QgZG9taWQsCiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAotICAgIHJjID0gaHZt X2J1aWxkX3NldF94c192YWx1ZXMoZ2MsIGRvbWlkLCAmYXJncyk7CisgICAgcmMgPSBodm1fYnVp bGRfc2V0X3hzX3ZhbHVlcyhnYywgZG9taWQsIGRvbSk7CiAgICAgaWYgKHJjICE9IDApIHsKICAg ICAgICAgTE9HKEVSUk9SLCAiaHZtIGJ1aWxkIHNldCB4ZW5zdG9yZSB2YWx1ZXMgZmFpbGVkIik7 CiAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KIAorICAgIHhjX2RvbV9yZWxlYXNlKGRvbSk7CiAg ICAgcmV0dXJuIDA7CisKIG91dDoKICAgICBhc3NlcnQocmMgIT0gMCk7CisgICAgaWYgKGRvbSAh PSBOVUxMKSB4Y19kb21fcmVsZWFzZShkb20pOwogICAgIHJldHVybiByYzsKIH0KIApkaWZmIC0t Z2l0IGEvdG9vbHMvbGlieGwvbGlieGxfaW50ZXJuYWwuaCBiL3Rvb2xzL2xpYnhsL2xpYnhsX2lu dGVybmFsLmgKaW5kZXggYzI0MTNjMi4uYzVkZjM5OCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwv bGlieGxfaW50ZXJuYWwuaAorKysgYi90b29scy9saWJ4bC9saWJ4bF9pbnRlcm5hbC5oCkBAIC0x NjA5LDcgKzE2MDksNyBAQCBfaGlkZGVuIGludCBsaWJ4bF9fbmVlZF94ZW5wdl9xZW11KGxpYnhs X19nYyAqZ2MsCiBfaGlkZGVuIGludCBsaWJ4bF9fZG9tYWluX2RldmljZV9jb25zdHJ1Y3RfcmRt KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X2RvbWFpbl9jb25maWcgKmRfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50NjRfdCByZG1fbWVtX2d1YXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdlICpkb20pOwogCiAvKgogICog VGhpcyBmdW5jdGlvbiB3aWxsIGNhdXNlIHRoZSB3aG9sZSBsaWJ4bCBwcm9jZXNzIHRvIGhhbmcK QEAgLTM3NzIsNyArMzc3Miw3IEBAIGludCBsaWJ4bF9fdm51bWFfYnVpbGRfdm1lbXJhbmdlX2h2 bShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQzMl90IGRvbWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhs X2RvbWFpbl9idWlsZF9pbmZvICpiX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlieGxfX2RvbWFpbl9idWlsZF9zdGF0ZSAqc3RhdGUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2h2bV9idWlsZF9hcmdzICphcmdzKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfZG9tX2ltYWdl ICpkb20pOwogYm9vbCBsaWJ4bF9fdm51bWFfY29uZmlndXJlZChjb25zdCBsaWJ4bF9kb21haW5f YnVpbGRfaW5mbyAqYl9pbmZvKTsKIAogX2hpZGRlbiBpbnQgbGlieGxfX21zX3ZtX2dlbmlkX3Nl dChsaWJ4bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsX3ZudW1hLmMgYi90b29scy9saWJ4bC9saWJ4bF92bnVtYS5jCmluZGV4IDU2ODU2ZDIu LmRiMjI3OTkgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3ZudW1hLmMKKysrIGIvdG9v bHMvbGlieGwvbGlieGxfdm51bWEuYwpAQCAtMTcsNiArMTcsOCBAQAogI2luY2x1ZGUgImxpYnhs X2FyY2guaCIKICNpbmNsdWRlIDxzdGRsaWIuaD4KIAorI2luY2x1ZGUgPHhjX2RvbS5oPgorCiBi b29sIGxpYnhsX192bnVtYV9jb25maWd1cmVkKGNvbnN0IGxpYnhsX2RvbWFpbl9idWlsZF9pbmZv ICpiX2luZm8pCiB7CiAgICAgcmV0dXJuIGJfaW5mby0+bnVtX3ZudW1hX25vZGVzICE9IDA7CkBA IC0yNTIsNyArMjU0LDcgQEAgaW50IGxpYnhsX192bnVtYV9idWlsZF92bWVtcmFuZ2VfaHZtKGxp YnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMy X3QgZG9taWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9t YWluX2J1aWxkX2luZm8gKmJfaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsaWJ4bF9fZG9tYWluX2J1aWxkX3N0YXRlICpzdGF0ZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9t KQogewogICAgIHVpbnQ2NF90IGhvbGVfc3RhcnQsIGhvbGVfZW5kLCBuZXh0OwogICAgIGludCBu aWQsIG5yX3ZtZW1yYW5nZTsKQEAgLTI2NCwxMCArMjY2LDEwIEBAIGludCBsaWJ4bF9fdm51bWFf YnVpbGRfdm1lbXJhbmdlX2h2bShsaWJ4bF9fZ2MgKmdjLAogICAgICAqIEd1ZXN0IHBoeXNpY2Fs IGFkZHJlc3Mgc3BhY2UgbGF5b3V0OgogICAgICAqIFswLCBob2xlX3N0YXJ0KSBbaG9sZV9zdGFy dCwgaG9sZV9lbmQpIFtob2xlX2VuZCwgaGlnaG1lbV9lbmQpCiAgICAgICovCi0gICAgaG9sZV9z dGFydCA9IGFyZ3MtPmxvd21lbV9lbmQgPCBhcmdzLT5tbWlvX3N0YXJ0ID8KLSAgICAgICAgYXJn cy0+bG93bWVtX2VuZCA6IGFyZ3MtPm1taW9fc3RhcnQ7Ci0gICAgaG9sZV9lbmQgPSAoYXJncy0+ bW1pb19zdGFydCArIGFyZ3MtPm1taW9fc2l6ZSkgPiAoMVVMTCA8PCAzMikgPwotICAgICAgICAo YXJncy0+bW1pb19zdGFydCArIGFyZ3MtPm1taW9fc2l6ZSkgOiAoMVVMTCA8PCAzMik7CisgICAg aG9sZV9zdGFydCA9IGRvbS0+bG93bWVtX2VuZCA8IGRvbS0+bW1pb19zdGFydCA/CisgICAgICAg IGRvbS0+bG93bWVtX2VuZCA6IGRvbS0+bW1pb19zdGFydDsKKyAgICBob2xlX2VuZCA9IChkb20t Pm1taW9fc3RhcnQgKyBkb20tPm1taW9fc2l6ZSkgPiAoMVVMTCA8PCAzMikgPworICAgICAgICAo ZG9tLT5tbWlvX3N0YXJ0ICsgZG9tLT5tbWlvX3NpemUpIDogKDFVTEwgPDwgMzIpOwogCiAgICAg YXNzZXJ0KHN0YXRlLT52bWVtcmFuZ2VzID09IE5VTEwpOwogCmRpZmYgLS1naXQgYS90b29scy9s aWJ4bC9saWJ4bF94ODYuYyBiL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jCmluZGV4IDg5NmYzNGMu LjkyNzYxMjYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX3g4Ni5jCisrKyBiL3Rvb2xz L2xpYnhsL2xpYnhsX3g4Ni5jCkBAIC0xLDYgKzEsOCBAQAogI2luY2x1ZGUgImxpYnhsX2ludGVy bmFsLmgiCiAjaW5jbHVkZSAibGlieGxfYXJjaC5oIgogCisjaW5jbHVkZSA8eGNfZG9tLmg+CisK IGludCBsaWJ4bF9fYXJjaF9kb21haW5fcHJlcGFyZV9jb25maWcobGlieGxfX2djICpnYywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2NvbmZpZyAq ZF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhjX2RvbWFp bl9jb25maWd1cmF0aW9uX3QgKnhjX2NvbmZpZykKQEAgLTQ3Myw3ICs0NzUsNyBAQCBpbnQgbGli eGxfX2FyY2hfZG9tYWluX21hcF9pcnEobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsIGlu dCBpcnEpCiBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVjdF9tZW1tYXAobGlieGxfX2dj ICpnYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kb21h aW5fY29uZmlnICpkX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBkb21pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgeGNfaHZtX2J1aWxkX2FyZ3MgKmFyZ3MpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogewogICAgIGlu dCByYyA9IDA7CiAgICAgdW5zaWduZWQgaW50IG5yID0gMCwgaTsKQEAgLTQ4MSw3ICs0ODMsNyBA QCBpbnQgbGlieGxfX2FyY2hfZG9tYWluX2NvbnN0cnVjdF9tZW1tYXAobGlieGxfX2djICpnYywK ICAgICB1bnNpZ25lZCBpbnQgZTgyMF9lbnRyaWVzID0gMTsKICAgICBzdHJ1Y3QgZTgyMGVudHJ5 ICplODIwID0gTlVMTDsKICAgICB1aW50NjRfdCBoaWdobWVtX3NpemUgPQotICAgICAgICAgICAg ICAgICAgICBhcmdzLT5oaWdobWVtX2VuZCA/IGFyZ3MtPmhpZ2htZW1fZW5kIC0gKDF1bGwgPDwg MzIpIDogMDsKKyAgICAgICAgICAgICAgICAgICAgZG9tLT5oaWdobWVtX2VuZCA/IGRvbS0+aGln aG1lbV9lbmQgLSAoMXVsbCA8PCAzMikgOiAwOwogCiAgICAgLyogQWRkIGFsbCByZG0gZW50cmll cy4gKi8KICAgICBmb3IgKGkgPSAwOyBpIDwgZF9jb25maWctPm51bV9yZG1zOyBpKyspCkBAIC01 MDMsNyArNTA1LDcgQEAgaW50IGxpYnhsX19hcmNoX2RvbWFpbl9jb25zdHJ1Y3RfbWVtbWFwKGxp YnhsX19nYyAqZ2MsCiAKICAgICAvKiBMb3cgbWVtb3J5ICovCiAgICAgZTgyMFtucl0uYWRkciA9 IEdVRVNUX0xPV19NRU1fU1RBUlRfREVGQVVMVDsKLSAgICBlODIwW25yXS5zaXplID0gYXJncy0+ bG93bWVtX2VuZCAtIEdVRVNUX0xPV19NRU1fU1RBUlRfREVGQVVMVDsKKyAgICBlODIwW25yXS5z aXplID0gZG9tLT5sb3dtZW1fZW5kIC0gR1VFU1RfTE9XX01FTV9TVEFSVF9ERUZBVUxUOwogICAg IGU4MjBbbnJdLnR5cGUgPSBFODIwX1JBTTsKICAgICBucisrOwogCi0tIAoxLjkuNSAoQXBwbGUg R2l0LTUwLjMpCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8v bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK