From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Kiper Subject: [GRUB2 PATCH v3 1/4] i386/relocator: Add grub_relocator64_efi relocator Date: Wed, 2 Mar 2016 17:51:37 +0100 Message-ID: <1456937500-7855-2-git-send-email-daniel.kiper@oracle.com> References: <1456937500-7855-1-git-send-email-daniel.kiper@oracle.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.84) (envelope-from ) id 1abA0h-0003Re-Eo for xen-devel@lists.xenproject.org; Wed, 02 Mar 2016 16:52:27 +0000 In-Reply-To: <1456937500-7855-1-git-send-email-daniel.kiper@oracle.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, grub-devel@gnu.org Cc: jgross@suse.com, eric.snowberg@oracle.com, arvidjaar@gmail.com, andrew.cooper3@citrix.com, stefano.stabellini@eu.citrix.com, cardoe@cardoe.com, pgnet.dev@gmail.com, roy.franz@linaro.org, ning.sun@intel.com, david.vrabel@citrix.com, jbeulich@suse.com, phcoder@gmail.com, qiaowei.ren@intel.com, richard.l.maliszewski@intel.com, gang.wei@intel.com, fu.wei@linaro.org, seth.goldberg@oracle.com List-Id: xen-devel@lists.xenproject.org QWRkIGdydWJfcmVsb2NhdG9yNjRfZWZpIHJlbG9jYXRvci4gSXQgd2lsbCBiZSB1c2VkIG9uIEVG SSA2NC1iaXQgcGxhdGZvcm1zCndoZW4gbXVsdGlib290MiBjb21wYXRpYmxlIGltYWdlIHJlcXVl c3RzIE1VTFRJQk9PVF9UQUdfVFlQRV9FRklfQlMuIFJlbG9jYXRvcgp3aWxsIHNldCBsb3dlciBw YXJ0cyBvZiAlcmF4IGFuZCAlcmJ4IGFjY29yZGluZ2x5IHRvIG11bHRpYm9vdDIgc3BlY2lmaWNh dGlvbi4KT24gdGhlIG90aGVyIGhhbmQgcHJvY2Vzc29yIG1vZGUsIGp1c3QgYmVmb3JlIGp1bXBp bmcgaW50byBsb2FkZWQgaW1hZ2UsIHdpbGwKYmUgc2V0IGFjY29yZGluZ2x5IHRvIFVuaWZpZWQg RXh0ZW5zaWJsZSBGaXJtd2FyZSBJbnRlcmZhY2UgU3BlY2lmaWNhdGlvbiwKVmVyc2lvbiAyLjQg RXJyYXRhIEIsIHNlY3Rpb24gMi4zLjQsIHg2NCBQbGF0Zm9ybXMsIGJvb3Qgc2VydmljZXMuIFRo aXMgd2F5CmxvYWRlZCBpbWFnZSB3aWxsIGJlIGFibGUgdG8gdXNlIEVGSSBib290IHNlcnZpY2Vz IHdpdGhvdXQgYW55IGlzc3Vlcy4KCklmIGlkZWEgaXMgYWNjZXB0ZWQgSSB3aWxsIHByZXBhcmUg Z3J1Yl9yZWxvY2F0b3IzMl9lZmkgcmVsb2NhdG9yIHRvby4KClNpZ25lZC1vZmYtYnk6IERhbmll bCBLaXBlciA8ZGFuaWVsLmtpcGVyQG9yYWNsZS5jb20+Ci0tLQp2MyAtIHN1Z2dlc3Rpb25zL2Zp eGVzOgogICAtIHJldXNlIGdydWItY29yZS9saWIvaTM4Ni9yZWxvY2F0b3I2NC5TIGNvZGUKICAg ICBpbnN0ZWFkIG9mIGNyZWF0aW5nIHNlcGFyYXRlIGFzc2VtYmx5IGZpbGUKICAgICAoc3VnZ2Vz dGVkIGJ5IFZsYWRpbWlyICdwaGNvZGVyJyBTZXJiaW5lbmtvKSwKICAgLSBncnViX211bHRpYm9v dF9ib290KCkgY2xlYW51cAogICAgIChzdWdnZXN0ZWQgYnkgVmxhZGltaXIgJ3BoY29kZXInIFNl cmJpbmVua28pLAogICAtIHJldXNlIG11bHRpYm9vdF9oZWFkZXJfdGFnX2VudHJ5X2FkZHJlc3Mg c3RydWN0IGluc3RlYWQKICAgICBvZiBjcmVhdGluZyBuZXcgb25lIGZvciBFRkkgNjQtYml0IGVu dHJ5IHBvaW50CiAgICAgKHN1Z2dlc3RlZCBieSBWbGFkaW1pciAncGhjb2RlcicgU2VyYmluZW5r bykuCi0tLQogZ3J1Yi1jb3JlL2xpYi9pMzg2L3JlbG9jYXRvci5jICAgIHwgICA0OCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBncnViLWNvcmUvbGliL2kzODYvcmVsb2NhdG9y NjQuUyAgfCAgICAzICsrKwogZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3QuYyAgICAgIHwgICA1 MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCiBncnViLWNvcmUvbG9hZGVy L211bHRpYm9vdF9tYmkyLmMgfCAgIDE5ICsrKysrKysrKysrLS0tCiBpbmNsdWRlL2dydWIvaTM4 Ni9tdWx0aWJvb3QuaCAgICAgfCAgIDExICsrKysrKysrCiBpbmNsdWRlL2dydWIvaTM4Ni9yZWxv Y2F0b3IuaCAgICAgfCAgIDIxICsrKysrKysrKysrKysrKwogaW5jbHVkZS9tdWx0aWJvb3QyLmgg ICAgICAgICAgICAgIHwgICAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDE0NSBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvaTM4Ni9yZWxvY2F0 b3IuYyBiL2dydWItY29yZS9saWIvaTM4Ni9yZWxvY2F0b3IuYwppbmRleCA3MWRkNGYwLi4yYjBj MjYwIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL2kzODYvcmVsb2NhdG9yLmMKKysrIGIvZ3J1 Yi1jb3JlL2xpYi9pMzg2L3JlbG9jYXRvci5jCkBAIC02OSw2ICs2OSwxMyBAQCBleHRlcm4gZ3J1 Yl91aW50NjRfdCBncnViX3JlbG9jYXRvcjY0X3JzaTsKIGV4dGVybiBncnViX2FkZHJfdCBncnVi X3JlbG9jYXRvcjY0X2NyMzsKIGV4dGVybiBzdHJ1Y3QgZ3J1Yl9pMzg2X2lkdCBncnViX3JlbG9j YXRvcjE2X2lkdDsKIAorI2lmZGVmIEdSVUJfTUFDSElORV9FRkkKKyNpZmRlZiBfX3g4Nl82NF9f CitleHRlcm4gZ3J1Yl91aW50OF90IGdydWJfcmVsb2NhdG9yNjRfZWZpX3N0YXJ0OworZXh0ZXJu IGdydWJfdWludDhfdCBncnViX3JlbG9jYXRvcjY0X2VmaV9lbmQ7CisjZW5kaWYKKyNlbmRpZgor CiAjZGVmaW5lIFJFTE9DQVRPUl9TSVpFT0YoeCkJKCZncnViX3JlbG9jYXRvciMjeCMjX2VuZCAt ICZncnViX3JlbG9jYXRvciMjeCMjX3N0YXJ0KQogCiBncnViX2Vycl90CkBAIC0yMTQsMyArMjIx LDQ0IEBAIGdydWJfcmVsb2NhdG9yNjRfYm9vdCAoc3RydWN0IGdydWJfcmVsb2NhdG9yICpyZWws CiAgIC8qIE5vdCByZWFjaGVkLiAgKi8KICAgcmV0dXJuIEdSVUJfRVJSX05PTkU7CiB9CisKKyNp ZmRlZiBHUlVCX01BQ0hJTkVfRUZJCisjaWZkZWYgX194ODZfNjRfXworZ3J1Yl9lcnJfdAorZ3J1 Yl9yZWxvY2F0b3I2NF9lZmlfYm9vdCAoc3RydWN0IGdydWJfcmVsb2NhdG9yICpyZWwsCisJCQkg ICBzdHJ1Y3QgZ3J1Yl9yZWxvY2F0b3I2NF9lZmlfc3RhdGUgc3RhdGUpCit7CisgIGdydWJfZXJy X3QgZXJyOworICB2b2lkICpyZWxzdDsKKyAgZ3J1Yl9yZWxvY2F0b3JfY2h1bmtfdCBjaDsKKwor ICBlcnIgPSBncnViX3JlbG9jYXRvcl9hbGxvY19jaHVua19hbGlnbiAocmVsLCAmY2gsIDAsCisJ CQkJCSAgMHg0MDAwMDAwMCAtIFJFTE9DQVRPUl9TSVpFT0YgKDY0X2VmaSksCisJCQkJCSAgUkVM T0NBVE9SX1NJWkVPRiAoNjRfZWZpKSwgMTYsCisJCQkJCSAgR1JVQl9SRUxPQ0FUT1JfUFJFRkVS RU5DRV9OT05FLCAxKTsKKyAgaWYgKGVycikKKyAgICByZXR1cm4gZXJyOworCisgIC8qIERvIG5v dCB0b3VjaCAlcnNwISBJdCBwb2ludHMgdG8gRUZJIGNyZWF0ZWQgc3RhY2suICovCisgIGdydWJf cmVsb2NhdG9yNjRfcmF4ID0gc3RhdGUucmF4OworICBncnViX3JlbG9jYXRvcjY0X3JieCA9IHN0 YXRlLnJieDsKKyAgZ3J1Yl9yZWxvY2F0b3I2NF9yY3ggPSBzdGF0ZS5yY3g7CisgIGdydWJfcmVs b2NhdG9yNjRfcmR4ID0gc3RhdGUucmR4OworICBncnViX3JlbG9jYXRvcjY0X3JpcCA9IHN0YXRl LnJpcDsKKyAgZ3J1Yl9yZWxvY2F0b3I2NF9yc2kgPSBzdGF0ZS5yc2k7CisKKyAgZ3J1Yl9tZW1t b3ZlIChnZXRfdmlydHVhbF9jdXJyZW50X2FkZHJlc3MgKGNoKSwgJmdydWJfcmVsb2NhdG9yNjRf ZWZpX3N0YXJ0LAorCQlSRUxPQ0FUT1JfU0laRU9GICg2NF9lZmkpKTsKKworICBlcnIgPSBncnVi X3JlbG9jYXRvcl9wcmVwYXJlX3JlbG9jcyAocmVsLCBnZXRfcGh5c2ljYWxfdGFyZ2V0X2FkZHJl c3MgKGNoKSwKKwkJCQkgICAgICAgJnJlbHN0LCBOVUxMKTsKKyAgaWYgKGVycikKKyAgICByZXR1 cm4gZXJyOworCisgICgodm9pZCAoKikgKHZvaWQpKSByZWxzdCkgKCk7CisKKyAgLyogTm90IHJl YWNoZWQuICAqLworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKyNlbmRpZgorI2VuZGlmCmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2kzODYvcmVsb2NhdG9yNjQuUyBiL2dydWItY29yZS9s aWIvaTM4Ni9yZWxvY2F0b3I2NC5TCmluZGV4IGU0NjQ4ZDguLjdhMDZiMTYgMTAwNjQ0Ci0tLSBh L2dydWItY29yZS9saWIvaTM4Ni9yZWxvY2F0b3I2NC5TCisrKyBiL2dydWItY29yZS9saWIvaTM4 Ni9yZWxvY2F0b3I2NC5TCkBAIC03Myw2ICs3Myw3IEBAIFZBUklBQkxFKGdydWJfcmVsb2NhdG9y NjRfcnNwKQogCiAJbW92cQklcmF4LCAlcnNwCiAKK1ZBUklBQkxFKGdydWJfcmVsb2NhdG9yNjRf ZWZpX3N0YXJ0KQogCS8qIG1vdiBpbW02NCwgJXJheCAqLwogCS5ieXRlIAkweDQ4CiAJLmJ5dGUJ MHhiOApAQCAtMTIwLDYgKzEyMSw4IEBAIExPQ0FMKGp1bXBfYWRkcik6CiBWQVJJQUJMRShncnVi X3JlbG9jYXRvcjY0X3JpcCkKIAkucXVhZAkwCiAKK1ZBUklBQkxFKGdydWJfcmVsb2NhdG9yNjRf ZWZpX2VuZCkKKwogI2lmbmRlZiBfX3g4Nl82NF9fCiAJLnAyYWxpZ24JNAogTE9DQUwoZ2R0KToK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290LmMgYi9ncnViLWNvcmUvbG9h ZGVyL211bHRpYm9vdC5jCmluZGV4IDczYWEwYWEuLjE4MDM4ZmQgMTAwNjQ0Ci0tLSBhL2dydWIt Y29yZS9sb2FkZXIvbXVsdGlib290LmMKKysrIGIvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3Qu YwpAQCAtMTE4LDYgKzExOCw0OCBAQCBncnViX211bHRpYm9vdF9zZXRfdmlkZW9fbW9kZSAodm9p ZCkKICAgcmV0dXJuIGVycjsKIH0KIAorI2lmZGVmIEdSVUJfTUFDSElORV9FRkkKKyNpZmRlZiBf X3g4Nl82NF9fCisjZGVmaW5lIGdydWJfcmVsb2NhdG9yX2VmaV9ib290CQlncnViX3JlbG9jYXRv cjY0X2VmaV9ib290CisjZGVmaW5lIGdydWJfcmVsb2NhdG9yX2VmaV9zdGF0ZQlncnViX3JlbG9j YXRvcjY0X2VmaV9zdGF0ZQorI2VuZGlmCisjZW5kaWYKKworI2lmZGVmIGdydWJfcmVsb2NhdG9y X2VmaV9ib290CitzdGF0aWMgdm9pZAorZWZpX2Jvb3QgKHN0cnVjdCBncnViX3JlbG9jYXRvciAq cmVsLAorCSAgZ3J1Yl91aW50MzJfdCB0YXJnZXQpCit7CisgIHN0cnVjdCBncnViX3JlbG9jYXRv cl9lZmlfc3RhdGUgc3RhdGVfZWZpID0gTVVMVElCT09UX0VGSV9JTklUSUFMX1NUQVRFOworCisg IHN0YXRlX2VmaS5NVUxUSUJPT1RfRUZJX0VOVFJZX1JFR0lTVEVSID0gZ3J1Yl9tdWx0aWJvb3Rf cGF5bG9hZF9laXA7CisgIHN0YXRlX2VmaS5NVUxUSUJPT1RfRUZJX01CSV9SRUdJU1RFUiA9IHRh cmdldDsKKworICBncnViX3JlbG9jYXRvcl9lZmlfYm9vdCAocmVsLCBzdGF0ZV9lZmkpOworfQor I2Vsc2UKKyNkZWZpbmUgZ3J1Yl9lZmlfaXNfZmluaXNoZWQJMQorc3RhdGljIHZvaWQKK2VmaV9i b290IChzdHJ1Y3QgZ3J1Yl9yZWxvY2F0b3IgKnJlbCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSks CisJICBncnViX3VpbnQzMl90IHRhcmdldCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCit7Cit9 CisjZW5kaWYKKworI2lmIGRlZmluZWQgKF9faTM4Nl9fKSB8fCBkZWZpbmVkIChfX3g4Nl82NF9f KQorc3RhdGljIHZvaWQKK25vcm1hbF9ib290IChzdHJ1Y3QgZ3J1Yl9yZWxvY2F0b3IgKnJlbCwg c3RydWN0IGdydWJfcmVsb2NhdG9yMzJfc3RhdGUgc3RhdGUpCit7CisgIGdydWJfcmVsb2NhdG9y MzJfYm9vdCAocmVsLCBzdGF0ZSwgMCk7Cit9CisjZWxzZQorc3RhdGljIHZvaWQKK25vcm1hbF9i b290IChzdHJ1Y3QgZ3J1Yl9yZWxvY2F0b3IgKnJlbCwgc3RydWN0IGdydWJfcmVsb2NhdG9yMzJf c3RhdGUgc3RhdGUpCit7CisgIGdydWJfcmVsb2NhdG9yMzJfYm9vdCAocmVsLCBzdGF0ZSk7Cit9 CisjZW5kaWYKKwogc3RhdGljIGdydWJfZXJyX3QKIGdydWJfbXVsdGlib290X2Jvb3QgKHZvaWQp CiB7CkBAIC0xMzEsMTEgKzE3MywxMCBAQCBncnViX211bHRpYm9vdF9ib290ICh2b2lkKQogICBp ZiAoZXJyKQogICAgIHJldHVybiBlcnI7CiAKLSNpZiBkZWZpbmVkIChfX2kzODZfXykgfHwgZGVm aW5lZCAoX194ODZfNjRfXykKLSAgZ3J1Yl9yZWxvY2F0b3IzMl9ib290IChncnViX211bHRpYm9v dF9yZWxvY2F0b3IsIHN0YXRlLCAwKTsKLSNlbHNlCi0gIGdydWJfcmVsb2NhdG9yMzJfYm9vdCAo Z3J1Yl9tdWx0aWJvb3RfcmVsb2NhdG9yLCBzdGF0ZSk7Ci0jZW5kaWYKKyAgaWYgKGdydWJfZWZp X2lzX2ZpbmlzaGVkKQorICAgIG5vcm1hbF9ib290IChncnViX211bHRpYm9vdF9yZWxvY2F0b3Is IHN0YXRlKTsKKyAgZWxzZQorICAgIGVmaV9ib290IChncnViX211bHRpYm9vdF9yZWxvY2F0b3Is IHN0YXRlLk1VTFRJQk9PVF9NQklfUkVHSVNURVIpOwogCiAgIC8qIE5vdCByZWFjaGVkLiAgKi8K ICAgcmV0dXJuIEdSVUJfRVJSX05PTkU7CmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbG9hZGVyL211 bHRpYm9vdF9tYmkyLmMgYi9ncnViLWNvcmUvbG9hZGVyL211bHRpYm9vdF9tYmkyLmMKaW5kZXgg ZjE0N2Q2Ny4uYTNkY2E5MCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xvYWRlci9tdWx0aWJvb3Rf bWJpMi5jCisrKyBiL2dydWItY29yZS9sb2FkZXIvbXVsdGlib290X21iaTIuYwpAQCAtMTA3LDgg KzEwNyw4IEBAIGdydWJfbXVsdGlib290X2xvYWQgKGdydWJfZmlsZV90IGZpbGUsIGNvbnN0IGNo YXIgKmZpbGVuYW1lKQogICBncnViX2Vycl90IGVycjsKICAgc3RydWN0IG11bHRpYm9vdF9oZWFk ZXJfdGFnICp0YWc7CiAgIHN0cnVjdCBtdWx0aWJvb3RfaGVhZGVyX3RhZ19hZGRyZXNzICphZGRy X3RhZyA9IE5VTEw7Ci0gIGludCBlbnRyeV9zcGVjaWZpZWQgPSAwOwotICBncnViX2FkZHJfdCBl bnRyeSA9IDA7CisgIGludCBlbnRyeV9zcGVjaWZpZWQgPSAwLCBlZmlfZW50cnlfc3BlY2lmaWVk ID0gMDsKKyAgZ3J1Yl9hZGRyX3QgZW50cnkgPSAwLCBlZmlfZW50cnkgPSAwOwogICBncnViX3Vp bnQzMl90IGNvbnNvbGVfcmVxdWlyZWQgPSAwOwogICBzdHJ1Y3QgbXVsdGlib290X2hlYWRlcl90 YWdfZnJhbWVidWZmZXIgKmZidGFnID0gTlVMTDsKICAgaW50IGFjY2VwdGVkX2NvbnNvbGVzID0g R1JVQl9NVUxUSUJPT1RfQ09OU09MRV9FR0FfVEVYVDsKQEAgLTE5Miw2ICsxOTIsMTMgQEAgZ3J1 Yl9tdWx0aWJvb3RfbG9hZCAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5hbWUp CiAJZW50cnkgPSAoKHN0cnVjdCBtdWx0aWJvb3RfaGVhZGVyX3RhZ19lbnRyeV9hZGRyZXNzICop IHRhZyktPmVudHJ5X2FkZHI7CiAJYnJlYWs7CiAKKyAgICAgIGNhc2UgTVVMVElCT09UX0hFQURF Ul9UQUdfRU5UUllfQUREUkVTU19FRkk2NDoKKyNpZiBkZWZpbmVkIChHUlVCX01BQ0hJTkVfRUZJ KSAmJiBkZWZpbmVkIChfX3g4Nl82NF9fKQorCWVmaV9lbnRyeV9zcGVjaWZpZWQgPSAxOworCWVm aV9lbnRyeSA9ICgoc3RydWN0IG11bHRpYm9vdF9oZWFkZXJfdGFnX2VudHJ5X2FkZHJlc3MgKikg dGFnKS0+ZW50cnlfYWRkcjsKKyNlbmRpZgorCWJyZWFrOworCiAgICAgICBjYXNlIE1VTFRJQk9P VF9IRUFERVJfVEFHX0NPTlNPTEVfRkxBR1M6CiAJaWYgKCEoKChzdHJ1Y3QgbXVsdGlib290X2hl YWRlcl90YWdfY29uc29sZV9mbGFncyAqKSB0YWcpLT5jb25zb2xlX2ZsYWdzCiAJICAgICYgTVVM VElCT09UX0NPTlNPTEVfRkxBR1NfRUdBX1RFWFRfU1VQUE9SVEVEKSkKQEAgLTIxMSw3ICsyMTgs OSBAQCBncnViX211bHRpYm9vdF9sb2FkIChncnViX2ZpbGVfdCBmaWxlLCBjb25zdCBjaGFyICpm aWxlbmFtZSkKIAlicmVhazsKIAogICAgICAgY2FzZSBNVUxUSUJPT1RfSEVBREVSX1RBR19FRklf QlM6CisjaWZkZWYgR1JVQl9NQUNISU5FX0VGSQogCWtlZXBfYnMgPSAxOworI2VuZGlmCiAJYnJl YWs7CiAKICAgICAgIGRlZmF1bHQ6CkBAIC0yMjQsNyArMjMzLDcgQEAgZ3J1Yl9tdWx0aWJvb3Rf bG9hZCAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3QgY2hhciAqZmlsZW5hbWUpCiAJYnJlYWs7CiAg ICAgICB9CiAKLSAgaWYgKGFkZHJfdGFnICYmICFlbnRyeV9zcGVjaWZpZWQpCisgIGlmIChhZGRy X3RhZyAmJiAhZW50cnlfc3BlY2lmaWVkICYmICEoa2VlcF9icyAmJiBlZmlfZW50cnlfc3BlY2lm aWVkKSkKICAgICB7CiAgICAgICBncnViX2ZyZWUgKGJ1ZmZlcik7CiAgICAgICByZXR1cm4gZ3J1 Yl9lcnJvciAoR1JVQl9FUlJfVU5LTk9XTl9PUywKQEAgLTI4Nyw3ICsyOTYsOSBAQCBncnViX211 bHRpYm9vdF9sb2FkIChncnViX2ZpbGVfdCBmaWxlLCBjb25zdCBjaGFyICpmaWxlbmFtZSkKIAl9 CiAgICAgfQogCi0gIGlmIChlbnRyeV9zcGVjaWZpZWQpCisgIGlmIChrZWVwX2JzICYmIGVmaV9l bnRyeV9zcGVjaWZpZWQpCisgICAgZ3J1Yl9tdWx0aWJvb3RfcGF5bG9hZF9laXAgPSBlZmlfZW50 cnk7CisgIGVsc2UgaWYgKGVudHJ5X3NwZWNpZmllZCkKICAgICBncnViX211bHRpYm9vdF9wYXls b2FkX2VpcCA9IGVudHJ5OwogCiAgIGlmIChmYnRhZykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1 Yi9pMzg2L211bHRpYm9vdC5oIGIvaW5jbHVkZS9ncnViL2kzODYvbXVsdGlib290LmgKaW5kZXgg YTFiOTQ4OC4uODA3YTFkZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ncnViL2kzODYvbXVsdGlib290 LmgKKysrIGIvaW5jbHVkZS9ncnViL2kzODYvbXVsdGlib290LmgKQEAgLTMwLDYgKzMwLDE3IEBA CiAjZGVmaW5lIE1VTFRJQk9PVF9NQklfUkVHSVNURVIgZWJ4CiAjZGVmaW5lIE1VTFRJQk9PVF9B UkNISVRFQ1RVUkVfQ1VSUkVOVCBNVUxUSUJPT1RfQVJDSElURUNUVVJFX0kzODYKIAorI2lmZGVm IEdSVUJfTUFDSElORV9FRkkKKyNpZmRlZiBfX3g4Nl82NF9fCisjZGVmaW5lIE1VTFRJQk9PVF9F RklfSU5JVElBTF9TVEFURSAgeyAucmF4ID0gTVVMVElCT09UX0JPT1RMT0FERVJfTUFHSUMsCVwK KyAgICAucmN4ID0gMCwJCQkJCQkJCQlcCisgICAgLnJkeCA9IDAsCQkJCQkJCQkJXAorICAgICAg fQorI2RlZmluZSBNVUxUSUJPT1RfRUZJX0VOVFJZX1JFR0lTVEVSIHJpcAorI2RlZmluZSBNVUxU SUJPT1RfRUZJX01CSV9SRUdJU1RFUiByYngKKyNlbmRpZgorI2VuZGlmCisKICNkZWZpbmUgTVVM VElCT09UX0VMRjMyX01BQ0hJTkUgRU1fMzg2CiAjZGVmaW5lIE1VTFRJQk9PVF9FTEY2NF9NQUNI SU5FIEVNX1g4Nl82NAogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvaTM4Ni9yZWxvY2F0b3Iu aCBiL2luY2x1ZGUvZ3J1Yi9pMzg2L3JlbG9jYXRvci5oCmluZGV4IDVmODlhN2UuLjJhNTZjM2Ig MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ3J1Yi9pMzg2L3JlbG9jYXRvci5oCisrKyBiL2luY2x1ZGUv Z3J1Yi9pMzg2L3JlbG9jYXRvci5oCkBAIC02NSw2ICs2NSwyMCBAQCBzdHJ1Y3QgZ3J1Yl9yZWxv Y2F0b3I2NF9zdGF0ZQogICBncnViX2FkZHJfdCBjcjM7CiB9OwogCisjaWZkZWYgR1JVQl9NQUNI SU5FX0VGSQorI2lmZGVmIF9feDg2XzY0X18KK3N0cnVjdCBncnViX3JlbG9jYXRvcjY0X2VmaV9z dGF0ZQoreworICBncnViX3VpbnQ2NF90IHJheDsKKyAgZ3J1Yl91aW50NjRfdCByYng7CisgIGdy dWJfdWludDY0X3QgcmN4OworICBncnViX3VpbnQ2NF90IHJkeDsKKyAgZ3J1Yl91aW50NjRfdCBy aXA7CisgIGdydWJfdWludDY0X3QgcnNpOworfTsKKyNlbmRpZgorI2VuZGlmCisKIGdydWJfZXJy X3QgZ3J1Yl9yZWxvY2F0b3IxNl9ib290IChzdHJ1Y3QgZ3J1Yl9yZWxvY2F0b3IgKnJlbCwKIAkJ CQkgIHN0cnVjdCBncnViX3JlbG9jYXRvcjE2X3N0YXRlIHN0YXRlKTsKIApAQCAtNzYsNCArOTAs MTEgQEAgZ3J1Yl9lcnJfdCBncnViX3JlbG9jYXRvcjY0X2Jvb3QgKHN0cnVjdCBncnViX3JlbG9j YXRvciAqcmVsLAogCQkJCSAgc3RydWN0IGdydWJfcmVsb2NhdG9yNjRfc3RhdGUgc3RhdGUsCiAJ CQkJICBncnViX2FkZHJfdCBtaW5fYWRkciwgZ3J1Yl9hZGRyX3QgbWF4X2FkZHIpOwogCisjaWZk ZWYgR1JVQl9NQUNISU5FX0VGSQorI2lmZGVmIF9feDg2XzY0X18KK2dydWJfZXJyX3QgZ3J1Yl9y ZWxvY2F0b3I2NF9lZmlfYm9vdCAoc3RydWN0IGdydWJfcmVsb2NhdG9yICpyZWwsCisJCQkJICAg ICAgc3RydWN0IGdydWJfcmVsb2NhdG9yNjRfZWZpX3N0YXRlIHN0YXRlKTsKKyNlbmRpZgorI2Vu ZGlmCisKICNlbmRpZiAvKiAhIEdSVUJfUkVMT0NBVE9SX0NQVV9IRUFERVIgKi8KZGlmZiAtLWdp dCBhL2luY2x1ZGUvbXVsdGlib290Mi5oIGIvaW5jbHVkZS9tdWx0aWJvb3QyLmgKaW5kZXggOWQ0 ODYyNy4uZDk2YWE0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9tdWx0aWJvb3QyLmgKKysrIGIvaW5j bHVkZS9tdWx0aWJvb3QyLmgKQEAgLTY5LDYgKzY5LDcgQEAKICNkZWZpbmUgTVVMVElCT09UX0hF QURFUl9UQUdfRlJBTUVCVUZGRVIgIDUKICNkZWZpbmUgTVVMVElCT09UX0hFQURFUl9UQUdfTU9E VUxFX0FMSUdOICA2CiAjZGVmaW5lIE1VTFRJQk9PVF9IRUFERVJfVEFHX0VGSV9CUyAgNworI2Rl ZmluZSBNVUxUSUJPT1RfSEVBREVSX1RBR19FTlRSWV9BRERSRVNTX0VGSTY0ICA5CiAKICNkZWZp bmUgTVVMVElCT09UX0FSQ0hJVEVDVFVSRV9JMzg2ICAwCiAjZGVmaW5lIE1VTFRJQk9PVF9BUkNI SVRFQ1RVUkVfTUlQUzMyICA0Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVs QGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==