From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH RFC v1 11/13] xen/libxl: allow creating HVM guests without a device model Date: Mon, 22 Jun 2015 18:11:25 +0200 Message-ID: <1434989487-74940-12-git-send-email-roger.pau@citrix.com> References: <1434989487-74940-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.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Z74NY-0000sr-LK for xen-devel@lists.xenproject.org; Mon, 22 Jun 2015 16:15:24 +0000 In-Reply-To: <1434989487-74940-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: Elena Ufimtseva , Wei Liu , Ian Campbell , Stefano Stabellini , Andrew Cooper , Ian Jackson , Jan Beulich , Boris Ostrovsky , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org SW50b3JkdWNlIGEgbmV3IGRldmljZSBtb2RlbCB2ZXJzaW9uIChOT05FKSB0aGF0IGNhbiBiZSB1 c2VkIHRvIHNwZWNpZnkgdGhhdApubyBkZXZpY2UgbW9kZWwgc2hvdWxkIGJlIHVzZWQuIFByb3Bh Z2F0ZSB0aGlzIHRvIFhlbiBieSBjcmVhdGluZyBhIG5ldwpYRU5fRE9NQ1RMX0NERl9ub2VtdSBm bGFnIHRoYXQgZGlzYWJsZXMgc29tZSBvZiB0aGUgZW11bGF0aW9uIGRvbmUgaW5zaWRlIG9mClhl bi4KClNpZ25lZC1vZmYtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29t PgpDYzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBTdGVmYW5v IFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBldS5jaXRyaXguY29tPgpDYzogSWFuIENh bXBiZWxsIDxpYW4uY2FtcGJlbGxAY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNp dHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzogQm9yaXMgT3N0cm92c2t5IDxi b3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4KQ2M6IEtvbnJhZCBSemVzenV0ZWsgV2lsayA8a29u cmFkLndpbGtAb3JhY2xlLmNvbT4KQ2M6IEVsZW5hIFVmaW10c2V2YSA8ZWxlbmEudWZpbXRzZXZh QG9yYWNsZS5jb20+Ci0tLQpJTUhPIHRoZSBYRU5fRE9NQ1RMX0NERl9ub2VtdSBmbGFnIHNob3Vs ZCBiZSBleHBhbmRlZCBpbnRvIG11bHRpcGxlIHNtYWxsZXIKZmxhZ3MgdGhhdCBjYW4gYmUgdXNl ZCB0byBkaXNhYmxlIHNwZWNpZmljIGVtdWxhdGVkIGRldmljZXMsIGxpa2UgdGhlCnZsYXBpYywg dmlvYXBpYywgdmhwZXQuLi4KCkFsc28gaHZtX21taW9faGFuZGxlcnMgc2hvdWxkIGJlY29tZSBk b21haW4gc3BlY2lmaWMgaW4gb3JkZXIgdG8gcG9wdWxhdGUgaXQKd2l0aCB0aGUgdXNhYmxlIGhh bmRsZXJzIG9ubHkuCi0tLQogdG9vbHMvbGlieGwvbGlieGwuYyAgICAgICAgICAgICAgfCAgNyAr KystLS0tCiB0b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyAgICAgICB8IDE2ICsrKysrKysrKysr KysrKysKIHRvb2xzL2xpYnhsL2xpYnhsX2RvbS5jICAgICAgICAgIHwgIDYgKysrKysrCiB0b29s cy9saWJ4bC9saWJ4bF90eXBlcy5pZGwgICAgICB8ICAxICsKIHRvb2xzL2xpYnhsL3hsX2NtZGlt cGwuYyAgICAgICAgIHwgIDIgKysKIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICAgIHwg IDIgKy0KIHhlbi9hcmNoL3g4Ni9odm0vaHZtLmMgICAgICAgICAgIHwgMTQgKysrKysrKysrLS0t LS0KIHhlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMgICAgIHwgIDYgKysrKysrCiB4ZW4vY29t bW9uL2RvbWN0bC5jICAgICAgICAgICAgICB8ICA1ICsrKystCiB4ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9kb21haW4uaCB8ICAxICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oICAgIHwg IDIgKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCAgICAgIHwgIDMgKysrCiB4ZW4vaW5j bHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICB8ICA0ICsrKysKIDEzIGZpbGVzIGNoYW5nZWQsIDU3 IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhs L2xpYnhsLmMgYi90b29scy9saWJ4bC9saWJ4bC5jCmluZGV4IGQ4NmVhNjIuLjdjODM0ODYgMTAw NjQ0Ci0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsLmMKKysrIGIvdG9vbHMvbGlieGwvbGlieGwuYwpA QCAtMTU4NywxMSArMTU4NywxMCBAQCB2b2lkIGxpYnhsX19kZXN0cm95X2RvbWlkKGxpYnhsX19l Z2MgKmVnYywgbGlieGxfX2Rlc3Ryb3lfZG9taWRfc3RhdGUgKmRpcykKIAogICAgIHN3aXRjaCAo bGlieGxfX2RvbWFpbl90eXBlKGdjLCBkb21pZCkpIHsKICAgICBjYXNlIExJQlhMX0RPTUFJTl9U WVBFX0hWTToKLSAgICAgICAgaWYgKCFsaWJ4bF9nZXRfc3R1YmRvbV9pZChDVFgsIGRvbWlkKSkK LSAgICAgICAgICAgIGRtX3ByZXNlbnQgPSAxOwotICAgICAgICBlbHNlCisgICAgICAgIGlmIChs aWJ4bF9nZXRfc3R1YmRvbV9pZChDVFgsIGRvbWlkKSkgewogICAgICAgICAgICAgZG1fcHJlc2Vu dCA9IDA7Ci0gICAgICAgIGJyZWFrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAg ICBjYXNlIExJQlhMX0RPTUFJTl9UWVBFX1BWOgogICAgICAgICBwaWQgPSBsaWJ4bF9feHNfcmVh ZChnYywgWEJUX05VTEwsIGxpYnhsX19zcHJpbnRmKGdjLCAiL2xvY2FsL2RvbWFpbi8lZC9pbWFn ZS9kZXZpY2UtbW9kZWwtcGlkIiwgZG9taWQpKTsKICAgICAgICAgZG1fcHJlc2VudCA9IChwaWQg IT0gTlVMTCk7CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9jcmVhdGUuYyBiL3Rvb2xz L2xpYnhsL2xpYnhsX2NyZWF0ZS5jCmluZGV4IDg2Mzg0ZDIuLjA2Y2YwMmMgMTAwNjQ0Ci0tLSBh L3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0ZS5jCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2NyZWF0 ZS5jCkBAIC0xNjQsNiArMTY0LDggQEAgaW50IGxpYnhsX19kb21haW5fYnVpbGRfaW5mb19zZXRk ZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAgICAgYl9pbmZvLT51Lmh2bS5iaW9z ID0gTElCWExfQklPU19UWVBFX1JPTUJJT1M7IGJyZWFrOwogICAgICAgICAgICAgY2FzZSBMSUJY TF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTjoKICAgICAgICAgICAgICAgICBiX2luZm8t PnUuaHZtLmJpb3MgPSBMSUJYTF9CSU9TX1RZUEVfU0VBQklPUzsgYnJlYWs7CisgICAgICAgICAg ICBjYXNlIExJQlhMX0RFVklDRV9NT0RFTF9WRVJTSU9OX05PTkU6CisgICAgICAgICAgICAgICAg YnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OnJldHVybiBFUlJPUl9JTlZBTDsKICAgICAgICAg ICAgIH0KIApAQCAtMTc3LDYgKzE3OSw4IEBAIGludCBsaWJ4bF9fZG9tYWluX2J1aWxkX2luZm9f c2V0ZGVmYXVsdChsaWJ4bF9fZ2MgKmdjLAogICAgICAgICAgICAgaWYgKGJfaW5mby0+dS5odm0u YmlvcyA9PSBMSUJYTF9CSU9TX1RZUEVfUk9NQklPUykKICAgICAgICAgICAgICAgICByZXR1cm4g RVJST1JfSU5WQUw7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBMSUJYTF9ERVZJ Q0VfTU9ERUxfVkVSU0lPTl9OT05FOgorICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1 bHQ6YWJvcnQoKTsKICAgICAgICAgfQogCkBAIC0yNzgsNiArMjgyLDkgQEAgaW50IGxpYnhsX19k b21haW5fYnVpbGRfaW5mb19zZXRkZWZhdWx0KGxpYnhsX19nYyAqZ2MsCiAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz ZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9OT05FOgorICAgICAgICAgICAgYl9pbmZvLT52 aWRlb19tZW1rYiA9IDA7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMSUJYTF9E RVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTjoKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAg ICAgIHN3aXRjaCAoYl9pbmZvLT51Lmh2bS52Z2Eua2luZCkgewpAQCAtNTM1LDYgKzU0Miw3IEBA IGludCBsaWJ4bF9fZG9tYWluX21ha2UobGlieGxfX2djICpnYywgbGlieGxfZG9tYWluX2NvbmZp ZyAqZF9jb25maWcsCiAKICAgICAvKiBjb252ZW5pZW5jZSBhbGlhc2VzICovCiAgICAgbGlieGxf ZG9tYWluX2NyZWF0ZV9pbmZvICppbmZvID0gJmRfY29uZmlnLT5jX2luZm87CisgICAgbGlieGxf ZG9tYWluX2J1aWxkX2luZm8gKmJfaW5mbyA9ICZkX2NvbmZpZy0+Yl9pbmZvOwogCiAgICAgYXNz ZXJ0KCFsaWJ4bF9kb21pZF92YWxpZF9ndWVzdCgqZG9taWQpKTsKIApAQCAtNTQ5LDYgKzU1Nyw4 IEBAIGludCBsaWJ4bF9fZG9tYWluX21ha2UobGlieGxfX2djICpnYywgbGlieGxfZG9tYWluX2Nv bmZpZyAqZF9jb25maWcsCiAgICAgICAgIGZsYWdzIHw9IFhFTl9ET01DVExfQ0RGX2h2bV9ndWVz dDsKICAgICAgICAgZmxhZ3MgfD0gbGlieGxfZGVmYm9vbF92YWwoaW5mby0+aGFwKSA/IFhFTl9E T01DVExfQ0RGX2hhcCA6IDA7CiAgICAgICAgIGZsYWdzIHw9IGxpYnhsX2RlZmJvb2xfdmFsKGlu Zm8tPm9vcykgPyAwIDogWEVOX0RPTUNUTF9DREZfb29zX29mZjsKKyAgICAgICAgaWYgKGJfaW5m by0+ZGV2aWNlX21vZGVsX3ZlcnNpb24gPT0gTElCWExfREVWSUNFX01PREVMX1ZFUlNJT05fTk9O RSkKKyAgICAgICAgICAgIGZsYWdzIHw9IFhFTl9ET01DVExfQ0RGX25vZW11OwogICAgIH0gZWxz ZSBpZiAobGlieGxfZGVmYm9vbF92YWwoaW5mby0+cHZoKSkgewogICAgICAgICBmbGFncyB8PSBY RU5fRE9NQ1RMX0NERl9wdmhfZ3Vlc3Q7CiAgICAgICAgIGlmICghbGlieGxfZGVmYm9vbF92YWwo aW5mby0+aGFwKSkgewpAQCAtMTI5Myw2ICsxMzAzLDEyIEBAIHN0YXRpYyB2b2lkIGRvbWNyZWF0 ZV9sYXVuY2hfZG0obGlieGxfX2VnYyAqZWdjLCBsaWJ4bF9fbXVsdGlkZXYgKm11bHRpZGV2LAog ICAgICAgICBsaWJ4bF9fZGV2aWNlX2NvbnNvbGVfYWRkKGdjLCBkb21pZCwgJmNvbnNvbGUsIHN0 YXRlLCAmZGV2aWNlKTsKICAgICAgICAgbGlieGxfX2RldmljZV9jb25zb2xlX2Rpc3Bvc2UoJmNv bnNvbGUpOwogCisgICAgICAgIGlmIChkX2NvbmZpZy0+Yl9pbmZvLmRldmljZV9tb2RlbF92ZXJz aW9uID09CisgICAgICAgICAgICBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9OT05FKSB7Cisg ICAgICAgICAgICBkb21jcmVhdGVfZGV2bW9kZWxfc3RhcnRlZChlZ2MsICZkY3MtPmRtc3MuZG0s IDApOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgbGlieGxfZGV2 aWNlX3ZrYl9pbml0KCZ2a2IpOwogICAgICAgICBsaWJ4bF9fZGV2aWNlX3ZrYl9hZGQoZ2MsIGRv bWlkLCAmdmtiKTsKICAgICAgICAgbGlieGxfZGV2aWNlX3ZrYl9kaXNwb3NlKCZ2a2IpOwpkaWZm IC0tZ2l0IGEvdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgYi90b29scy9saWJ4bC9saWJ4bF9kb20u YwppbmRleCA4ZWUxNGI5Li5kOTQ4NTQ2IDEwMDY0NAotLS0gYS90b29scy9saWJ4bC9saWJ4bF9k b20uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwpAQCAtODY2LDYgKzg2NiwxMiBAQCBz dGF0aWMgaW50IGxpYnhsX19kb21haW5fZmlybXdhcmUobGlieGxfX2djICpnYywKICAgICAgICAg Y2FzZSBMSUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9RRU1VX1hFTjoKICAgICAgICAgICAgIGZp cm13YXJlID0gImh2bWxvYWRlciI7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBM SUJYTF9ERVZJQ0VfTU9ERUxfVkVSU0lPTl9OT05FOgorICAgICAgICAgICAgaWYgKGluZm8tPmtl cm5lbCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgTE9HKEVSUk9SLCAibm8gZGV2aWNlIG1v ZGVsIHJlcXVlc3RlZCB3aXRob3V0IGEga2VybmVsIik7CisgICAgICAgICAgICAgICAgcmV0dXJu IEVSUk9SX0ZBSUw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAg ZGVmYXVsdDoKICAgICAgICAgICAgIExPRyhFUlJPUiwgImludmFsaWQgZGV2aWNlIG1vZGVsIHZl cnNpb24gJWQiLAogICAgICAgICAgICAgICAgIGluZm8tPmRldmljZV9tb2RlbF92ZXJzaW9uKTsK ZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhsL2xpYnhsX3R5cGVzLmlkbCBiL3Rvb2xzL2xpYnhsL2xp YnhsX3R5cGVzLmlkbAppbmRleCAyM2YyN2Q0Li4wYjc1ODM0IDEwMDY0NAotLS0gYS90b29scy9s aWJ4bC9saWJ4bF90eXBlcy5pZGwKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRsCkBA IC04Myw2ICs4Myw3IEBAIGxpYnhsX2RldmljZV9tb2RlbF92ZXJzaW9uID0gRW51bWVyYXRpb24o ImRldmljZV9tb2RlbF92ZXJzaW9uIiwgWwogICAgICgwLCAiVU5LTk9XTiIpLAogICAgICgxLCAi UUVNVV9YRU5fVFJBRElUSU9OQUwiKSwgIyBIaXN0b3JpY2FsIHFlbXUteGVuIGRldmljZSBtb2Rl bCAocWVtdS1kbSkKICAgICAoMiwgIlFFTVVfWEVOIiksICAgICAgICAgICAgICMgVXBzdHJlYW0g YmFzZWQgcWVtdS14ZW4gZGV2aWNlIG1vZGVsCisgICAgKDMsICJOT05FIiksICAgICAgICAgICAg ICAgICAjIE5vIGRldmljZSBtb2RlbAogICAgIF0pCiAKIGxpYnhsX2NvbnNvbGVfdHlwZSA9IEVu dW1lcmF0aW9uKCJjb25zb2xlX3R5cGUiLCBbCmRpZmYgLS1naXQgYS90b29scy9saWJ4bC94bF9j bWRpbXBsLmMgYi90b29scy9saWJ4bC94bF9jbWRpbXBsLmMKaW5kZXggYzg1ODA2OC4uM2Q5YjNk NCAxMDA2NDQKLS0tIGEvdG9vbHMvbGlieGwveGxfY21kaW1wbC5jCisrKyBiL3Rvb2xzL2xpYnhs L3hsX2NtZGltcGwuYwpAQCAtMjA2Nyw2ICsyMDY3LDggQEAgc2tpcF92ZmI6CiAgICAgICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChidWYsICJxZW11LXhlbiIpKSB7CiAgICAgICAgICAgICBiX2luZm8t PmRldmljZV9tb2RlbF92ZXJzaW9uCiAgICAgICAgICAgICAgICAgPSBMSUJYTF9ERVZJQ0VfTU9E RUxfVkVSU0lPTl9RRU1VX1hFTjsKKyAgICAgICAgfSBlbHNlIGlmICghc3RyY21wKGJ1ZiwgIm5v bmUiKSkgeworICAgICAgICAgICAgYl9pbmZvLT5kZXZpY2VfbW9kZWxfdmVyc2lvbiA9IExJQlhM X0RFVklDRV9NT0RFTF9WRVJTSU9OX05PTkU7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwKICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gZGV2aWNlX21v ZGVsX3ZlcnNpb24gXCIlc1wiIHNwZWNpZmllZFxuIiwgYnVmKTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCAwMzYzNjUwLi5i YWQwODcyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gv eDg2L2RvbWFpbi5jCkBAIC02MTAsNyArNjEwLDcgQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShz dHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZG9tY3JfZmxhZ3MsCiAKICAgICBpZiAoIGhh c19odm1fY29udGFpbmVyX2RvbWFpbihkKSApCiAgICAgewotICAgICAgICBpZiAoIChyYyA9IGh2 bV9kb21haW5faW5pdGlhbGlzZShkKSkgIT0gMCApCisgICAgICAgIGlmICggKHJjID0gaHZtX2Rv bWFpbl9pbml0aWFsaXNlKGQsIGRvbWNyX2ZsYWdzKSkgIT0gMCApCiAgICAgICAgIHsKICAgICAg ICAgICAgIGlvbW11X2RvbWFpbl9kZXN0cm95KGQpOwogICAgICAgICAgICAgZ290byBmYWlsOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZt LmMKaW5kZXggZDVlNTI0Mi4uNzY5NGM5ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9o dm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC0zNDMsNyArMzQzLDcgQEAgdTY0 IGh2bV9nZXRfZ3Vlc3RfdHNjX2FkanVzdChzdHJ1Y3QgdmNwdSAqdikKIHZvaWQgaHZtX21pZ3Jh dGVfdGltZXJzKHN0cnVjdCB2Y3B1ICp2KQogewogICAgIC8qIFBWSCBkb2Vzbid0IHVzZSBydGMg YW5kIGVtdWxhdGVkIHRpbWVycywgaXQgdXNlcyBwdmNsb2NrIG1lY2hhbmlzbS4gKi8KLSAgICBp ZiAoIGlzX3B2aF92Y3B1KHYpICkKKyAgICBpZiAoIGlzX3B2aF92Y3B1KHYpIHx8IHYtPmRvbWFp bi0+YXJjaC5odm1fZG9tYWluLm5vX2VtdSApCiAgICAgICAgIHJldHVybjsKIAogICAgIHJ0Y19t aWdyYXRlX3RpbWVycyh2KTsKQEAgLTE0MjMsNyArMTQyMyw3IEBAIHN0YXRpYyBpbnQgaHZtX3Nl dF9kbV9kb21haW4oc3RydWN0IGRvbWFpbiAqZCwgZG9taWRfdCBkb21pZCkKICAgICByZXR1cm4g cmM7CiB9CiAKLWludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCkKK2lu dCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGRv bWNyX2ZsYWdzKQogewogICAgIGludCByYzsKIApAQCAtMTQ4NSw5ICsxNDg1LDEwIEBAIGludCBo dm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCkKICAgICBlbHNlCiAgICAgICAg IGQtPmFyY2guaHZtX2RvbWFpbi5pb19iaXRtYXAgPSBodm1faW9fYml0bWFwOwogCi0gICAgaWYg KCBpc19wdmhfZG9tYWluKGQpICkKKyAgICBpZiAoIGlzX3B2aF9kb21haW4oZCkgfHwgZG9tY3Jf ZmxhZ3MgJiBET01DUkZfbm9lbXUgKQogICAgIHsKICAgICAgICAgcmVnaXN0ZXJfcG9ydGlvX2hh bmRsZXIoZCwgMCwgMHgxMDAwMywgaGFuZGxlX3B2aF9pbyk7CisgICAgICAgIGQtPmFyY2guaHZt X2RvbWFpbi5ub19lbXUgPSBUUlVFOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTE1 MzEsNyArMTUzMiw3IEBAIGludCBodm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAq ZCkKIAogdm9pZCBodm1fZG9tYWluX3JlbGlucXVpc2hfcmVzb3VyY2VzKHN0cnVjdCBkb21haW4g KmQpCiB7Ci0gICAgaWYgKCBpc19wdmhfZG9tYWluKGQpICkKKyAgICBpZiAoIGlzX3B2aF9kb21h aW4oZCkgfHwgZC0+YXJjaC5odm1fZG9tYWluLm5vX2VtdSApCiAgICAgICAgIHJldHVybjsKIAog ICAgIGlmICggaHZtX2Z1bmNzLm5odm1fZG9tYWluX3JlbGlucXVpc2hfcmVzb3VyY2VzICkKQEAg LTE1NTcsNyArMTU1OCw3IEBAIHZvaWQgaHZtX2RvbWFpbl9kZXN0cm95KHN0cnVjdCBkb21haW4g KmQpCiAKICAgICBodm1fZGVzdHJveV9jYWNoZWF0dHJfcmVnaW9uX2xpc3QoZCk7CiAKLSAgICBp ZiAoIGlzX3B2aF9kb21haW4oZCkgKQorICAgIGlmICggaXNfcHZoX2RvbWFpbihkKSB8fCBkLT5h cmNoLmh2bV9kb21haW4ubm9fZW11ICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaHZtX2Z1bmNz LmRvbWFpbl9kZXN0cm95KGQpOwpAQCAtMjMyNyw2ICsyMzI4LDkgQEAgaW50IGh2bV92Y3B1X2lu aXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAorICAg IGlmICggZC0+YXJjaC5odm1fZG9tYWluLm5vX2VtdSApCisgICAgICAgIHJldHVybiAwOworCiAg ICAgcmMgPSBzZXR1cF9jb21wYXRfYXJnX3hsYXQodik7IC8qIHRlYXJkb3duOiBmcmVlX2NvbXBh dF9hcmdfeGxhdCgpICovCiAgICAgaWYgKCByYyAhPSAwICkKICAgICAgICAgZ290byBmYWlsNDsK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMgYi94ZW4vYXJjaC94ODYv aHZtL2ludGVyY2VwdC5jCmluZGV4IGQ1MmE0OGMuLmI3YmMzYzcgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9odm0vaW50ZXJjZXB0LmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQu YwpAQCAtMTY4LDYgKzE2OCw5IEBAIGJvb2xfdCBodm1fbW1pb19pbnRlcm5hbChwYWRkcl90IGdw YSkKICAgICBzdHJ1Y3QgdmNwdSAqY3VyciA9IGN1cnJlbnQ7CiAgICAgdW5zaWduZWQgaW50IGk7 CiAKKyAgICBpZiAoIGN1cnItPmRvbWFpbi0+YXJjaC5odm1fZG9tYWluLm5vX2VtdSApCisgICAg ICAgIHJldHVybiAwOworCiAgICAgZm9yICggaSA9IDA7IGkgPCBIVk1fTU1JT19IQU5ETEVSX05S OyArK2kgKQogICAgICAgICBpZiAoIGh2bV9tbWlvX2hhbmRsZXJzW2ldLT5jaGVja19oYW5kbGVy KGN1cnIsIGdwYSkgKQogICAgICAgICAgICAgcmV0dXJuIDE7CkBAIC0xODAsNiArMTgzLDkgQEAg aW50IGh2bV9tbWlvX2ludGVyY2VwdChpb3JlcV90ICpwKQogICAgIHN0cnVjdCB2Y3B1ICp2ID0g Y3VycmVudDsKICAgICBpbnQgaTsKIAorICAgIGlmICggdi0+ZG9tYWluLT5hcmNoLmh2bV9kb21h aW4ubm9fZW11ICkKKyAgICAgICAgcmV0dXJuIFg4NkVNVUxfVU5IQU5ETEVBQkxFOworCiAgICAg Zm9yICggaSA9IDA7IGkgPCBIVk1fTU1JT19IQU5ETEVSX05SOyBpKysgKQogICAgIHsKICAgICAg ICAgaHZtX21taW9fY2hlY2tfdCBjaGVja19oYW5kbGVyID0KZGlmZiAtLWdpdCBhL3hlbi9jb21t b24vZG9tY3RsLmMgYi94ZW4vY29tbW9uL2RvbWN0bC5jCmluZGV4IGNlNTE3YTcuLjFjZTdhZTAg MTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vZG9tY3RsLmMKKysrIGIveGVuL2NvbW1vbi9kb21jdGwu YwpAQCAtNTUwLDcgKzU1MCw4IEBAIGxvbmcgZG9fZG9tY3RsKFhFTl9HVUVTVF9IQU5ETEVfUEFS QU0oeGVuX2RvbWN0bF90KSB1X2RvbWN0bCkKICAgICAgICAgICAgICAgIHwgWEVOX0RPTUNUTF9D REZfcHZoX2d1ZXN0CiAgICAgICAgICAgICAgICB8IFhFTl9ET01DVExfQ0RGX2hhcAogICAgICAg ICAgICAgICAgfCBYRU5fRE9NQ1RMX0NERl9zM19pbnRlZ3JpdHkKLSAgICAgICAgICAgICAgIHwg WEVOX0RPTUNUTF9DREZfb29zX29mZikpICkKKyAgICAgICAgICAgICAgIHwgWEVOX0RPTUNUTF9D REZfb29zX29mZgorICAgICAgICAgICAgICAgfCBYRU5fRE9NQ1RMX0NERl9ub2VtdSkpICkKICAg ICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGRvbSA9IG9wLT5kb21haW47CkBAIC01OTIsNiAr NTkzLDggQEAgbG9uZyBkb19kb21jdGwoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fZG9tY3Rs X3QpIHVfZG9tY3RsKQogICAgICAgICAgICAgZG9tY3JfZmxhZ3MgfD0gRE9NQ1JGX3MzX2ludGVn cml0eTsKICAgICAgICAgaWYgKCBvcC0+dS5jcmVhdGVkb21haW4uZmxhZ3MgJiBYRU5fRE9NQ1RM X0NERl9vb3Nfb2ZmICkKICAgICAgICAgICAgIGRvbWNyX2ZsYWdzIHw9IERPTUNSRl9vb3Nfb2Zm OworICAgICAgICBpZiAoIG9wLT51LmNyZWF0ZWRvbWFpbi5mbGFncyAmIFhFTl9ET01DVExfQ0RG X25vZW11ICkKKyAgICAgICAgICAgIGRvbWNyX2ZsYWdzIHw9IERPTUNSRl9ub2VtdTsKIAogICAg ICAgICBkID0gZG9tYWluX2NyZWF0ZShkb20sIGRvbWNyX2ZsYWdzLCBvcC0+dS5jcmVhdGVkb21h aW4uc3NpZHJlZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wLT51LmNyZWF0ZWRvbWFp bi5jb25maWcpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vZG9tYWluLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaAppbmRleCBhZDY4ZmNmLi45NDhjZWQ4 IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaAorKysgYi94ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9kb21haW4uaApAQCAtMTM1LDYgKzEzNSw3IEBAIHN0cnVjdCBo dm1fZG9tYWluIHsKICAgICBib29sX3QgICAgICAgICAgICAgICAgIG1lbV9zaGFyaW5nX2VuYWJs ZWQ7CiAgICAgYm9vbF90ICAgICAgICAgICAgICAgICBxZW11X21hcGNhY2hlX2ludmFsaWRhdGU7 CiAgICAgYm9vbF90ICAgICAgICAgICAgICAgICBpc19zM19zdXNwZW5kZWQ7CisgICAgYm9vbF90 ICAgICAgICAgICAgICAgICBub19lbXU7CiAKICAgICAvKgogICAgICAqIFRTQyB2YWx1ZSB0aGF0 IFZDUFVzIHVzZSB0byBjYWxjdWxhdGUgdGhlaXIgdHNjX29mZnNldCB2YWx1ZS4KZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vaHZtLmgKaW5kZXggNzdlZWFjNS4uNjhjOTg3YSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv YXNtLXg4Ni9odm0vaHZtLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmgKQEAg LTIxNyw3ICsyMTcsNyBAQCBleHRlcm4gczggaHZtX3BvcnQ4MF9hbGxvd2VkOwogZXh0ZXJuIGNv bnN0IHN0cnVjdCBodm1fZnVuY3Rpb25fdGFibGUgKnN0YXJ0X3N2bSh2b2lkKTsKIGV4dGVybiBj b25zdCBzdHJ1Y3QgaHZtX2Z1bmN0aW9uX3RhYmxlICpzdGFydF92bXgodm9pZCk7CiAKLWludCBo dm1fZG9tYWluX2luaXRpYWxpc2Uoc3RydWN0IGRvbWFpbiAqZCk7CitpbnQgaHZtX2RvbWFpbl9p bml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQsIHVuc2lnbmVkIGludCBkb21jcl9mbGFncyk7CiB2 b2lkIGh2bV9kb21haW5fcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCk7CiB2 b2lkIGh2bV9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsKIApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5o CmluZGV4IGJjNDVlYTUuLjRlOWQ3ZTcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9k b21jdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTYzLDYgKzYzLDkg QEAgc3RydWN0IHhlbl9kb21jdGxfY3JlYXRlZG9tYWluIHsKICAvKiBJcyB0aGlzIGEgUFZIIGd1 ZXN0IChhcyBvcHBvc2VkIHRvIGFuIEhWTSBvciBQViBndWVzdCk/ICovCiAjZGVmaW5lIF9YRU5f RE9NQ1RMX0NERl9wdmhfZ3Vlc3QgICAgIDQKICNkZWZpbmUgWEVOX0RPTUNUTF9DREZfcHZoX2d1 ZXN0ICAgICAgKDFVPDxfWEVOX0RPTUNUTF9DREZfcHZoX2d1ZXN0KQorIC8qIERpc2FibGUgZW11 bGF0ZWQgZGV2aWNlcyAqLworI2RlZmluZSBfWEVOX0RPTUNUTF9DREZfbm9lbXUgICAgICAgICA1 CisjZGVmaW5lIFhFTl9ET01DVExfQ0RGX25vZW11ICAgICAgICAgICgxVTw8X1hFTl9ET01DVExf Q0RGX25vZW11KQogICAgIHVpbnQzMl90IGZsYWdzOwogICAgIHN0cnVjdCB4ZW5fYXJjaF9kb21h aW5jb25maWcgY29uZmlnOwogfTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9zY2hlZC5o IGIveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKaW5kZXggNjA0ZDA0Ny4uMGFhZmYxZSAxMDA2NDQK LS0tIGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmgKKysrIGIveGVuL2luY2x1ZGUveGVuL3NjaGVk LmgKQEAgLTU1Miw2ICs1NTIsMTAgQEAgc3RydWN0IGRvbWFpbiAqZG9tYWluX2NyZWF0ZShkb21p ZF90IGRvbWlkLCB1bnNpZ25lZCBpbnQgZG9tY3JfZmxhZ3MsCiAgLyogRE9NQ1JGX3B2aDogQ3Jl YXRlIFBWIGRvbWFpbiBpbiBIVk0gY29udGFpbmVyLiAqLwogI2RlZmluZSBfRE9NQ1JGX3B2aCAg ICAgICAgICAgICA1CiAjZGVmaW5lIERPTUNSRl9wdmggICAgICAgICAgICAgICgxVTw8X0RPTUNS Rl9wdmgpCisvKiBET01DUkZfbm9lbXU6IENyZWF0ZSBhIEhWTSBkb21haW4gd2l0aG91dCBlbXVs YXRlZCBkZXZpY2VzLiAqLworLyogWFhYOiBTaG91bGQgYmUgc3BsaXQgaW50byBzbWFsbGVyIGZs YWdzIHRoYXQgZGlzYWJsZSBzcGVjaWZpYyBkZXZpY2VzPyAqLworI2RlZmluZSBfRE9NQ1JGX25v ZW11ICAgICAgICAgICA2CisjZGVmaW5lIERPTUNSRl9ub2VtdSAgICAgICAgICAgICgxVTw8X0RP TUNSRl9ub2VtdSkKIAogLyoKICAqIHJjdV9sb2NrX2RvbWFpbl9ieV9pZCgpIGlzIG1vcmUgZWZm aWNpZW50IHRoYW4gZ2V0X2RvbWFpbl9ieV9pZCgpLgotLSAKMS45LjUgKEFwcGxlIEdpdC01MC4z KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==