From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH 10/19] libxl: add PVH support to domain building Date: Tue, 22 Aug 2017 10:49:11 +0100 Message-ID: <20170822094920.70151-11-roger.pau@citrix.com> References: <20170822094920.70151-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dk5oX-0005FK-09 for xen-devel@lists.xenproject.org; Tue, 22 Aug 2017 09:49:37 +0000 In-Reply-To: <20170822094920.70151-1-roger.pau@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Wei Liu , boris.ostrovsky@oracle.com, Roger Pau Monne , Ian Jackson List-Id: xen-devel@lists.xenproject.org QW5kIHJlbW92ZSBkZXZpY2UgbW9kZWwgIm5vbmUiIHN1cHBvcnQuCgpTaWduZWQtb2ZmLWJ5OiBS b2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0tCkNjOiBJYW4gSmFja3Nv biA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJp eC5jb20+Ci0tLQogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgfCAxNDggKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgOTQgaW5z ZXJ0aW9ucygrKSwgNTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGwvbGli eGxfZG9tLmMgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwppbmRleCA1ZWYzNWU2NmJmLi43MmNh NWUyNjZjIDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9kb20uYworKysgYi90b29scy9s aWJ4bC9saWJ4bF9kb20uYwpAQCAtMzE3LDE3ICszMTcsMzEgQEAgc3RhdGljIGludCBodm1fc2V0 X21jYV9jYXBhYmlsaXRpZXMobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiBzdGF0aWMg dm9pZCBodm1fc2V0X2NvbmZfcGFyYW1zKHhjX2ludGVyZmFjZSAqaGFuZGxlLCB1aW50MzJfdCBk b21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxk X2luZm8gKmNvbnN0IGluZm8pCiB7Ci0gICAgeGNfaHZtX3BhcmFtX3NldChoYW5kbGUsIGRvbWlk LCBIVk1fUEFSQU1fUEFFX0VOQUJMRUQsCi0gICAgICAgICAgICAgICAgICAgIGxpYnhsX2RlZmJv b2xfdmFsKGluZm8tPnUuaHZtLnBhZSkpOworICAgIHN3aXRjaChpbmZvLT50eXBlKSB7CisgICAg Y2FzZSBMSUJYTF9ET01BSU5fVFlQRV9QVkg6CisgICAgICAgIHhjX2h2bV9wYXJhbV9zZXQoaGFu ZGxlLCBkb21pZCwgSFZNX1BBUkFNX1BBRV9FTkFCTEVELCB0cnVlKTsKKyAgICAgICAgeGNfaHZt X3BhcmFtX3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fVElNRVJfTU9ERSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICB0aW1lcl9tb2RlKGluZm8pKTsKKyAgICAgICAgeGNfaHZtX3BhcmFt X3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fTkVTVEVESFZNLAorICAgICAgICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPm5lc3RlZF9odm0pKTsKKyAgICAgICAg YnJlYWs7CisgICAgY2FzZSBMSUJYTF9ET01BSU5fVFlQRV9IVk06CisgICAgICAgIHhjX2h2bV9w YXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX1BBRV9FTkFCTEVELAorICAgICAgICAg ICAgICAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLnBhZSkpOwogI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykKLSAgICB4Y19odm1fcGFy YW1fc2V0KGhhbmRsZSwgZG9taWQsIEhWTV9QQVJBTV9IUEVUX0VOQUJMRUQsCi0gICAgICAgICAg ICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLmhwZXQpKTsKKyAgICAgICAg eGNfaHZtX3BhcmFtX3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fSFBFVF9FTkFCTEVELAor ICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPnUuaHZtLmhw ZXQpKTsKICNlbmRpZgotICAgIHhjX2h2bV9wYXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BB UkFNX1RJTUVSX01PREUsIHRpbWVyX21vZGUoaW5mbykpOwotICAgIHhjX2h2bV9wYXJhbV9zZXQo aGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX1ZQVF9BTElHTiwKLSAgICAgICAgICAgICAgICAgICAg bGlieGxfZGVmYm9vbF92YWwoaW5mby0+dS5odm0udnB0X2FsaWduKSk7Ci0gICAgeGNfaHZtX3Bh cmFtX3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fTkVTVEVESFZNLAotICAgICAgICAgICAg ICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT5uZXN0ZWRfaHZtKSk7CisgICAgICAgIHhj X2h2bV9wYXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX1RJTUVSX01PREUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgdGltZXJfbW9kZShpbmZvKSk7CisgICAgICAgIHhjX2h2bV9w YXJhbV9zZXQoaGFuZGxlLCBkb21pZCwgSFZNX1BBUkFNX1ZQVF9BTElHTiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICBsaWJ4bF9kZWZib29sX3ZhbChpbmZvLT51Lmh2bS52cHRfYWxpZ24pKTsK KyAgICAgICAgeGNfaHZtX3BhcmFtX3NldChoYW5kbGUsIGRvbWlkLCBIVk1fUEFSQU1fTkVTVEVE SFZNLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnhsX2RlZmJvb2xfdmFsKGluZm8tPm5l c3RlZF9odm0pKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYWJvcnQo KTsKKyAgICB9CiB9CiAKIGludCBsaWJ4bF9fYnVpbGRfcHJlKGxpYnhsX19nYyAqZ2MsIHVpbnQz Ml90IGRvbWlkLApAQCAtNDY3LDkgKzQ4MSwxMSBAQCBpbnQgbGlieGxfX2J1aWxkX3ByZShsaWJ4 bF9fZ2MgKmdjLCB1aW50MzJfdCBkb21pZCwKICAgICBzdGF0ZS0+c3RvcmVfcG9ydCA9IHhjX2V2 dGNobl9hbGxvY191bmJvdW5kKGN0eC0+eGNoLCBkb21pZCwgc3RhdGUtPnN0b3JlX2RvbWlkKTsK ICAgICBzdGF0ZS0+Y29uc29sZV9wb3J0ID0geGNfZXZ0Y2huX2FsbG9jX3VuYm91bmQoY3R4LT54 Y2gsIGRvbWlkLCBzdGF0ZS0+Y29uc29sZV9kb21pZCk7CiAKLSAgICBpZiAoaW5mby0+dHlwZSA9 PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHsKKyAgICBpZiAoaW5mby0+dHlwZSAhPSBMSUJYTF9E T01BSU5fVFlQRV9QVikKICAgICAgICAgaHZtX3NldF9jb25mX3BhcmFtcyhjdHgtPnhjaCwgZG9t aWQsIGluZm8pOworCiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9f KQorICAgIGlmIChpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSkgewogICAgICAg ICByYyA9IGh2bV9zZXRfdmlyaWRpYW5fZmVhdHVyZXMoZ2MsIGRvbWlkLCBpbmZvKTsKICAgICAg ICAgaWYgKHJjKQogICAgICAgICAgICAgcmV0dXJuIHJjOwpAQCAtNDc3LDEwICs0OTMsMTAgQEAg aW50IGxpYnhsX19idWlsZF9wcmUobGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAg ICAgIHJjID0gaHZtX3NldF9tY2FfY2FwYWJpbGl0aWVzKGdjLCBkb21pZCwgaW5mbyk7CiAgICAg ICAgIGlmIChyYykKICAgICAgICAgICAgIHJldHVybiByYzsKLSNlbmRpZgogICAgIH0KKyNlbmRp ZgogCi0gICAgLyogQWx0ZXJuYXRlIHAybSBzdXBwb3J0IG9uIHg4NiBpcyBhdmFpbGFibGUgb25s eSBmb3IgSFZNIGd1ZXN0cy4gKi8KKyAgICAvKiBBbHRlcm5hdGUgcDJtIHN1cHBvcnQgb24geDg2 IGlzIGF2YWlsYWJsZSBvbmx5IGZvciBQVkgvSFZNIGd1ZXN0cy4gKi8KICAgICBpZiAoaW5mby0+ dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0pIHsKICAgICAgICAgLyogVGhlIGNvbmZpZyBw YXJhbWV0ZXIgImFsdHAybSIgcmVwbGFjZXMgdGhlIHBhcmFtZXRlciAiYWx0cDJtaHZtIi4gRm9y CiAgICAgICAgICAqIGxlZ2FjeSByZWFzb25zLCBib3RoIHBhcmFtZXRlcnMgYXJlIGFjY2VwdGVk IG9uIHg4NiBIVk0gZ3Vlc3RzLgpAQCAtNDk0LDYgKzUxMCw5IEBAIGludCBsaWJ4bF9fYnVpbGRf cHJlKGxpYnhsX19nYyAqZ2MsIHVpbnQzMl90IGRvbWlkLAogICAgICAgICBlbHNlCiAgICAgICAg ICAgICB4Y19odm1fcGFyYW1fc2V0KGN0eC0+eGNoLCBkb21pZCwgSFZNX1BBUkFNX0FMVFAyTSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+YWx0cDJtKTsKKyAgICB9IGVsc2Ug aWYgKGluZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfUFZIKSB7CisgICAgICAgIHhjX2h2 bV9wYXJhbV9zZXQoY3R4LT54Y2gsIGRvbWlkLCBIVk1fUEFSQU1fQUxUUDJNLAorICAgICAgICAg ICAgICAgICAgICAgICAgIGluZm8tPmFsdHAybSk7CiAgICAgfQogCiAgICAgcmMgPSBsaWJ4bF9f YXJjaF9kb21haW5fY3JlYXRlKGdjLCBkX2NvbmZpZywgZG9taWQpOwpAQCAtODQ3LDcgKzg2Niw3 IEBAIHN0YXRpYyBpbnQgaHZtX2J1aWxkX3NldF9wYXJhbXMoeGNfaW50ZXJmYWNlICpoYW5kbGUs IHVpbnQzMl90IGRvbWlkLAogICAgIHVpbnQ2NF90IHN0cl9tZm4sIGNvbnNfbWZuOwogICAgIGlu dCBpOwogCi0gICAgaWYgKGluZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uICE9IExJQlhMX0RFVklD RV9NT0RFTF9WRVJTSU9OX05PTkUpIHsKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01B SU5fVFlQRV9IVk0pIHsKICAgICAgICAgdmFfbWFwID0geGNfbWFwX2ZvcmVpZ25fcmFuZ2UoaGFu ZGxlLCBkb21pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWENfUEFH RV9TSVpFLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBIVk1fSU5GT19QRk4pOwpAQCAtOTAzLDcgKzkyMiw3IEBAIHN0YXRpYyBp bnQgaHZtX2J1aWxkX3NldF94c192YWx1ZXMobGlieGxfX2djICpnYywKIAogICAgIC8qIE9ubHkg b25lIG1vZHVsZSBjYW4gYmUgcGFzc2VkLiBQVkh2MiBndWVzdHMgZG8gbm90IHN1cHBvcnQgdGhp cy4gKi8KICAgICBpZiAoZG9tLT5hY3BpX21vZHVsZXNbMF0uZ3Vlc3RfYWRkcl9vdXQgJiYgCi0g ICAgICAgIGluZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uICE9TElCWExfREVWSUNFX01PREVMX1ZF UlNJT05fTk9ORSkgeworICAgICAgICBpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hW TSkgewogICAgICAgICBwYXRoID0gR0NTUFJJTlRGKCIvbG9jYWwvZG9tYWluLyVkLyJIVk1fWFNf QUNQSV9QVF9BRERSRVNTLCBkb21pZCk7CiAKICAgICAgICAgcmV0ID0gbGlieGxfX3hzX3ByaW50 ZihnYywgWEJUX05VTEwsIHBhdGgsICIweCUiUFJJeDY0LApAQCAtOTY0LDYgKzk4Myw3IEBAIG91 dDoKIAogc3RhdGljIGludCBsaWJ4bF9fZG9tYWluX2Zpcm13YXJlKGxpYnhsX19nYyAqZ2MsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZG9tYWluX2J1aWxkX2luZm8g KmluZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX2RvbWFpbl9i dWlsZF9zdGF0ZSAqc3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHhjX2RvbV9pbWFnZSAqZG9tKQogewogICAgIGxpYnhsX2N0eCAqY3R4ID0gbGlieGxfX2dj X293bmVyKGdjKTsKQEAgLTk3MywzOSArOTkzLDY0IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RvbWFp bl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAogICAgIHZvaWQgKmRhdGE7CiAgICAgY29uc3QgY2hh ciAqYmlvc19maWxlbmFtZSA9IE5VTEw7CiAKLSAgICBpZiAoaW5mby0+dS5odm0uZmlybXdhcmUp Ci0gICAgICAgIGZpcm13YXJlID0gaW5mby0+dS5odm0uZmlybXdhcmU7Ci0gICAgZWxzZSB7Ci0g ICAgICAgIHN3aXRjaCAoaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24pCi0gICAgICAgIHsKLSAg ICAgICAgY2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTl9UUkFESVRJT05B TDoKLSAgICAgICAgICAgIGZpcm13YXJlID0gImh2bWxvYWRlciI7Ci0gICAgICAgICAgICBicmVh azsKLSAgICAgICAgY2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTjoKLSAg ICAgICAgICAgIGZpcm13YXJlID0gImh2bWxvYWRlciI7Ci0gICAgICAgICAgICBicmVhazsKLSAg ICAgICAgY2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9OT05FOgotICAgICAgICAgICAg aWYgKGluZm8tPmtlcm5lbCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAi bm8gZGV2aWNlIG1vZGVsIHJlcXVlc3RlZCB3aXRob3V0IGEga2VybmVsIik7CisgICAgaWYgKGlu Zm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNKSB7CisgICAgICAgIGlmIChpbmZvLT51 Lmh2bS5maXJtd2FyZSkgeworICAgICAgICAgICAgZmlybXdhcmUgPSBpbmZvLT51Lmh2bS5maXJt d2FyZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHN3aXRjaCAoaW5mby0+ZGV2aWNl X21vZGVsX3ZlcnNpb24pCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjYXNlIExJQlhMX0RF VklDRV9NT0RFTF9WRVJTSU9OX1FFTVVfWEVOOgorICAgICAgICAgICAgY2FzZSBMSUJYTF9ERVZJ Q0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTl9UUkFESVRJT05BTDoKKyAgICAgICAgICAgICAgICBm aXJtd2FyZSA9ICJodm1sb2FkZXIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBMT0coRVJST1IsICJpbnZhbGlkIGRldmljZSBt b2RlbCB2ZXJzaW9uICVkIiwKKyAgICAgICAgICAgICAgICAgICAgaW5mby0+ZGV2aWNlX21vZGVs X3ZlcnNpb24pOwogICAgICAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKICAgICAgICAgICAg ICAgICBnb3RvIG91dDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAg ICBkZWZhdWx0OgotICAgICAgICAgICAgTE9HKEVSUk9SLCAiaW52YWxpZCBkZXZpY2UgbW9kZWwg dmVyc2lvbiAlZCIsCi0gICAgICAgICAgICAgICAgaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24p OwotICAgICAgICAgICAgcmMgPSBFUlJPUl9GQUlMOwotICAgICAgICAgICAgZ290byBvdXQ7CiAg ICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoaW5mby0+a2VybmVsICE9IE5VTEwgJiYKLSAgICAg ICAgaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJ T05fTk9ORSkgeworICAgIGlmIChzdGF0ZS0+cHZfa2VybmVsLnBhdGggIT0gTlVMTCAmJiBpbmZv LT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX1BWSCkgewogICAgICAgICAvKiBUcnkgdG8gbG9h ZCBhIGtlcm5lbCBpbnN0ZWFkIG9mIHRoZSBmaXJtd2FyZS4gKi8KLSAgICAgICAgcmMgPSB4Y19k b21fa2VybmVsX2ZpbGUoZG9tLCBpbmZvLT5rZXJuZWwpOwotICAgICAgICBpZiAocmMgPT0gMCAm JiBpbmZvLT5yYW1kaXNrICE9IE5VTEwpCi0gICAgICAgICAgICByYyA9IHhjX2RvbV9yYW1kaXNr X2ZpbGUoZG9tLCBpbmZvLT5yYW1kaXNrKTsKKyAgICAgICAgaWYgKHN0YXRlLT5wdl9rZXJuZWwu bWFwcGVkKSB7CisgICAgICAgICAgICByYyA9IHhjX2RvbV9rZXJuZWxfbWVtKGRvbSwgc3RhdGUt PnB2X2tlcm5lbC5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0 ZS0+cHZfa2VybmVsLnNpemUpOworICAgICAgICAgICAgaWYgKHJjKSB7CisgICAgICAgICAgICAg ICAgTE9HRShFUlJPUiwgInhjX2RvbV9rZXJuZWxfbWVtIGZhaWxlZCIpOworICAgICAgICAgICAg ICAgIGdvdG8gb3V0OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg ICAgcmMgPSB4Y19kb21fa2VybmVsX2ZpbGUoZG9tLCBzdGF0ZS0+cHZfa2VybmVsLnBhdGgpOwor ICAgICAgICAgICAgaWYgKHJjKSB7CisgICAgICAgICAgICAgICAgTE9HRShFUlJPUiwgInhjX2Rv bV9rZXJuZWxfZmlsZSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzdGF0ZS0+cHZfcmFtZGlzay5wYXRo ICYmIHN0cmxlbihzdGF0ZS0+cHZfcmFtZGlzay5wYXRoKSkgeworICAgICAgICAgICAgaWYgKHN0 YXRlLT5wdl9yYW1kaXNrLm1hcHBlZCkgeworICAgICAgICAgICAgICAgIHJjID0geGNfZG9tX3Jh bWRpc2tfbWVtKGRvbSwgc3RhdGUtPnB2X3JhbWRpc2suZGF0YSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+cHZfcmFtZGlzay5zaXplKTsKKyAgICAgICAg ICAgICAgICBpZiAocmMpIHsKKyAgICAgICAgICAgICAgICAgICAgTE9HRShFUlJPUiwgInhjX2Rv bV9yYW1kaXNrX21lbSBmYWlsZWQiKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBy YyA9IHhjX2RvbV9yYW1kaXNrX2ZpbGUoZG9tLCBzdGF0ZS0+cHZfcmFtZGlzay5wYXRoKTsKKyAg ICAgICAgICAgICAgICBpZiAocmMpIHsKKyAgICAgICAgICAgICAgICAgICAgTE9HRShFUlJPUiwg InhjX2RvbV9yYW1kaXNrX2ZpbGUgZmFpbGVkIik7CisgICAgICAgICAgICAgICAgICAgIGdvdG8g b3V0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0g ZWxzZSB7CisgICAgICAgIC8qCisgICAgICAgICAqIE9ubHkgSFZNIGd1ZXN0cyBzaG91bGQgZ2V0 IGhlcmUsIFBWSCBzaG91bGQgYWx3YXlzIGhhdmUgYSBzZXQKKyAgICAgICAgICoga2VybmVsIGF0 IHRoaXMgcG9pbnQuCisgICAgICAgICAqLworICAgICAgICBhc3NlcnQoaW5mby0+dHlwZSA9PSBM SUJYTF9ET01BSU5fVFlQRV9IVk0pOwogICAgICAgICByYyA9IHhjX2RvbV9rZXJuZWxfZmlsZShk b20sIGxpYnhsX19hYnNfcGF0aChnYywgZmlybXdhcmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfX3hlbmZpcm13YXJlZGlyX3BhdGgoKSkp OwogICAgIH0KQEAgLTEwMTUsNyArMTA2MCw4IEBAIHN0YXRpYyBpbnQgbGlieGxfX2RvbWFpbl9m aXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBp ZiAoaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJ T05fUUVNVV9YRU4pIHsKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9I Vk0gJiYKKyAgICAgICAgaW5mby0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNF X01PREVMX1ZFUlNJT05fUUVNVV9YRU4pIHsKICAgICAgICAgaWYgKGluZm8tPnUuaHZtLnN5c3Rl bV9maXJtd2FyZSkgewogICAgICAgICAgICAgYmlvc19maWxlbmFtZSA9IGluZm8tPnUuaHZtLnN5 c3RlbV9maXJtd2FyZTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwMzksNyArMTA4NSw4IEBAIHN0 YXRpYyBpbnQgbGlieGxfX2RvbWFpbl9maXJtd2FyZShsaWJ4bF9fZ2MgKmdjLAogICAgICAgICBp ZiAocmMpIGdvdG8gb3V0OwogICAgIH0KIAotICAgIGlmIChpbmZvLT51Lmh2bS5zbWJpb3NfZmly bXdhcmUpIHsKKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9ET01BSU5fVFlQRV9IVk0gJiYK KyAgICAgICAgaW5mby0+dS5odm0uc21iaW9zX2Zpcm13YXJlKSB7CiAgICAgICAgIGRhdGEgPSBO VUxMOwogICAgICAgICBlID0gbGlieGxfcmVhZF9maWxlX2NvbnRlbnRzKGN0eCwgaW5mby0+dS5o dm0uc21iaW9zX2Zpcm13YXJlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICZkYXRhLCAmZGF0YWxlbik7CkBAIC0xMDU3LDE0ICsxMTA0LDggQEAgc3RhdGljIGludCBsaWJ4 bF9fZG9tYWluX2Zpcm13YXJlKGxpYnhsX19nYyAqZ2MsCiAgICAgICAgIH0KICAgICB9CiAKLSAg ICBpZiAoaW5mby0+dS5odm0uYWNwaV9maXJtd2FyZSkgewotCi0gICAgICAgIGlmIChpbmZvLT5k ZXZpY2VfbW9kZWxfdmVyc2lvbiA9PSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9OT05FKSB7 Ci0gICAgICAgICAgICBMT0dFKEVSUk9SLCAiUFZIIGd1ZXN0cyBkbyBub3QgYWxsb3cgbG9hZGlu ZyBBQ1BJIG1vZHVsZXMiKTsKLSAgICAgICAgICAgIHJjID0gRVJST1JfRkFJTDsKLSAgICAgICAg ICAgIGdvdG8gb3V0OwotICAgICAgICB9Ci0KKyAgICBpZiAoaW5mby0+dHlwZSA9PSBMSUJYTF9E T01BSU5fVFlQRV9IVk0gJiYKKyAgICAgICAgaW5mby0+dS5odm0uYWNwaV9maXJtd2FyZSkgewog ICAgICAgICBkYXRhID0gTlVMTDsKICAgICAgICAgZSA9IGxpYnhsX3JlYWRfZmlsZV9jb250ZW50 cyhjdHgsIGluZm8tPnUuaHZtLmFjcGlfZmlybXdhcmUsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJmRhdGEsICZkYXRhbGVuKTsKQEAgLTEwOTcsMTMgKzExMzgsMTIgQEAg aW50IGxpYnhsX19idWlsZF9odm0obGlieGxfX2djICpnYywgdWludDMyX3QgZG9taWQsCiAgICAg dWludDY0X3QgbW1pb19zdGFydCwgbG93bWVtX2VuZCwgaGlnaG1lbV9lbmQsIG1lbV9zaXplOwog ICAgIGxpYnhsX2RvbWFpbl9idWlsZF9pbmZvICpjb25zdCBpbmZvID0gJmRfY29uZmlnLT5iX2lu Zm87CiAgICAgc3RydWN0IHhjX2RvbV9pbWFnZSAqZG9tID0gTlVMTDsKLSAgICBib29sIGRldmlj ZV9tb2RlbCA9Ci0gICAgICAgIGluZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uICE9IExJQlhMX0RF VklDRV9NT0RFTF9WRVJTSU9OX05PTkUgPwotICAgICAgICB0cnVlIDogZmFsc2U7CisgICAgYm9v bCBkZXZpY2VfbW9kZWwgPSBpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9UWVBFX0hWTSA/IHRy dWUgOiBmYWxzZTsKIAogICAgIHhjX2RvbV9sb2dpbml0KGN0eC0+eGNoKTsKIAotICAgIGRvbSA9 IHhjX2RvbV9hbGxvY2F0ZShjdHgtPnhjaCwgaW5mby0+Y21kbGluZSwgTlVMTCk7CisgICAgZG9t ID0geGNfZG9tX2FsbG9jYXRlKGN0eC0+eGNoLCBpbmZvLT50eXBlID09IExJQlhMX0RPTUFJTl9U WVBFX1BWSCA/CisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5wdl9jbWRsaW5lIDog aW5mby0+Y21kbGluZSwgTlVMTCk7CiAgICAgaWYgKCFkb20pIHsKICAgICAgICAgTE9HRShFUlJP UiwgInhjX2RvbV9hbGxvY2F0ZSBmYWlsZWQiKTsKICAgICAgICAgcmMgPSBFUlJPUl9OT01FTTsK QEAgLTExMjgsNyArMTE2OCw3IEBAIGludCBsaWJ4bF9fYnVpbGRfaHZtKGxpYnhsX19nYyAqZ2Ms IHVpbnQzMl90IGRvbWlkLAogICAgICAgICAgICAgZG9tLT5tbWlvX3NpemUgPSBpbmZvLT51Lmh2 bS5tbWlvX2hvbGVfbWVta2IgPDwgMTA7CiAgICAgfQogCi0gICAgcmMgPSBsaWJ4bF9fZG9tYWlu X2Zpcm13YXJlKGdjLCBpbmZvLCBkb20pOworICAgIHJjID0gbGlieGxfX2RvbWFpbl9maXJtd2Fy ZShnYywgaW5mbywgc3RhdGUsIGRvbSk7CiAgICAgaWYgKHJjICE9IDApIHsKICAgICAgICAgTE9H KEVSUk9SLCAiaW5pdGlhbGl6aW5nIGRvbWFpbiBmaXJtd2FyZSBmYWlsZWQiKTsKICAgICAgICAg Z290byBvdXQ7Ci0tIAoyLjExLjAgKEFwcGxlIEdpdC04MSkKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK