From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v6 06/26] xen/arm: introduce bootcmdlines Date: Fri, 2 Nov 2018 16:44:58 -0700 Message-ID: <1541202318-9840-6-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: julien.grall@arm.com Cc: Stefano Stabellini , Achin.Gupta@arm.com, sstabellini@kernel.org, andrii_anisov@epam.com, xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org SW50cm9kdWNlIGEgbmV3IGFycmF5IHRvIHN0b3JlIHRoZSBjbWRsaW5lIG9mIGVhY2ggYm9vdCBt b2R1bGUuIEl0IGlzCnNlcGFyYXRlIGZyb20gc3RydWN0IGJvb3Rtb2R1bGVzLiBSZW1vdmUgdGhl IGNtZGxpbmUgZmllbGQgZnJvbSBzdHJ1Y3QKYm9vdF9tb2R1bGUuIFRoaXMgd2F5LCBrZXJuZWxz IGFuZCBpbml0cmRzIHdpdGggdGhlIHNhbWUgYWRkcmVzcyBpbgptZW1vcnkgY2FuIHNoYXJlIHN0 cnVjdCBib290bW9kdWxlIChpbXBvcnRhbnQgYmVjYXVzZSB3ZSB3YW50IHRoZW0gdG8gYmUKZnJl ZSdkIG9ubHkgb25jZSksIGJ1dCB0aGV5IGNhbiBzdGlsbCBoYXZlIHRoZWlyIHNlcGFyYXRlIGJv b3RjbWRsaW5lCmVudHJpZXMuCgpBZGQgYSBkdF9uYW1lIGZpZWxkIHRvIHN0cnVjdCBib290Y21k bGluZSB0byBtYWtlIGl0IGVhc2llciB0byBmaW5kIHRoZQpjb3JyZWN0IGVudHJ5LiBTdG9yZSB0 aGUgbmFtZSBvZiB0aGUgInhlbixkb21haW4iIGNvbXBhdGlibGUgbm9kZSAoZm9yCmV4YW1wbGUg IkRvbTEiKS4gVGhpcyBpcyBhIGJldHRlciBjaG9pY2UgY29tcGFyZWQgdG8gdGhlIG5hbWUgb2Yg dGhlCiJtdWx0aWJvb3Qsa2VybmVsIiBjb21wYXRpYmxlIG5vZGUsIGJlY2F1c2UgdGhlaXIgbmFt ZXMgYXJlIG5vdCB1bmlxdWUuCkZvciBpbnN0YW5jZSB0aGVyZSBjYW4gYmUgbW9yZSB0aGFuIG9u ZSAibW9kdWxlQDB4NGMwMDAwMDAiIGluIHRoZQpzeXN0ZW0sIGJ1dCB0aGVyZSBjYW4gb25seSBi ZSBvbmUgIi9jaG9zZW4vRG9tMSIuCgpBZGQgYSBwb2ludGVyIHRvIHN0cnVjdCBrZXJuZWxfaW5m byB0byBwb2ludCB0byB0aGUgY21kbGluZSBmb3IgYSBnaXZlbgprZXJuZWwuCgpTaWduZWQtb2Zm LWJ5OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+CkFja2VkLWJ5OiBK dWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgotLS0KQ2hhbmdlcyBpbiB2NjoKLSBj b2RlIHN0eWxlCi0gYWRkIGFjawoKQ2hhbmdlcyBpbiB2NToKLSByZW1vdmUgbGVmdG92ZXIgREVC VUcgbWVzc2FnZQotIGltcHJvdmUgY29tbWl0IG1lc3NhZ2UKLSB1c2Uga2luZm8tPmNtZGxpbmUg d2hlbiBwb3NzaWJsZQotIG1vdmUgYWRkX2Jvb2RfY21kbGluZSB0byBzZXR1cC5jCgpDaGFuZ2Vz IGluIHY0OgotIGNoZWNrIHRoYXQgdGhlIG11bHRpYm9vdCBub2RlIGlzIHVuZGVyIC9jaG9zZW4K LSB1c2UgY21kIGFuZCBjbWRzIGFzIHZhcmlhYmxlIG5hbWVzIGZvciBzdHJ1Y3QgYm9vdGNtZGxp bmUgYW5kIHN0cnVjdAogIGJvb3RjbWRsaW5lKgotIGZpeCBwcmludGsKLSB1c2UgQVNTRVJUIGlu c3RlYSBvZiBwYW5pYwotIGRvIG5vdCBhZGQgZW1wdHkgY21kbGluZSBlbnRyaWVzCi0gYWRkIG1v cmUgZGVidWcgcHJpbnRrcyB0byBlYXJseV9wcmludF9pbmZvCi0gY29kZSBzdHlsZSBmaXhlcwot IGFkZCBjb21tZW50IG9uIERUX01BWF9OQU1FCi0gaW5jcmVhc2UgRFRfTUFYX05BTUUgdG8gNDEK LSBtYWtlIG5yX21vZHMgdW5zaWduZWQgaW50CgpDaGFuZ2VzIGluIHYzOgotIGludHJvZHVjZSBi b290Y21kbGluZXMKLSBkbyBub3QgbW9kaWZ5IGJvb3RfZmR0X2NtZGxpbmUKLSBhZGQgY29tbWVu dHMKCkNoYW5nZXMgaW4gdjI6Ci0gbmV3IHBhdGNoCi0tLQogeGVuL2FyY2gvYXJtL2Jvb3RmZHQu YyAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KIHhl bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8IDEyICsrKysrKy0tLS0tLQogeGVuL2FyY2gvYXJt L2tlcm5lbC5oICAgICAgIHwgIDEgKwogeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgIHwgNDcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB4ZW4vaW5jbHVk ZS9hc20tYXJtL3NldHVwLmggfCAxOSArKysrKysrKysrKysrKysrLS0KIDUgZmlsZXMgY2hhbmdl ZCwgODcgaW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL2Jvb3RmZHQuYyBiL3hlbi9hcmNoL2FybS9ib290ZmR0LmMKaW5kZXggYTQyZmU4Ny4u MDdhOTAzNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYworKysgYi94ZW4vYXJj aC9hcm0vYm9vdGZkdC5jCkBAIC0xNzIsMTAgKzE3MiwxMiBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cHJvY2Vzc19tdWx0aWJvb3Rfbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAogICAgIGNv bnN0IF9fYmUzMiAqY2VsbDsKICAgICBib290bW9kdWxlX2tpbmQga2luZDsKICAgICBwYWRkcl90 IHN0YXJ0LCBzaXplOwotICAgIGNvbnN0IGNoYXIgKmNtZGxpbmU7CiAgICAgaW50IGxlbiA9IDg7 IC8qIHNpemVvZiAiL2Nob3NlbiIgKi8KICAgICBjaGFyIHBhdGhbOF07Ci0gICAgaW50IHJldDsK KyAgICBpbnQgcGFyZW50X25vZGUsIHJldDsKKworICAgIHBhcmVudF9ub2RlID0gZmR0X3BhcmVu dF9vZmZzZXQoZmR0LCBub2RlKTsKKyAgICBBU1NFUlQocGFyZW50X25vZGUgPj0gMCk7CiAKICAg ICAvKiBDaGVjayB0aGF0IHRoZSBub2RlIGlzIHVuZGVyICJjaG9zZW4iICovCiAgICAgcmV0ID0g ZmR0X2dldF9wYXRoKGZkdCwgbm9kZSwgcGF0aCwgbGVuKTsKQEAgLTIyOCwxNyArMjMwLDEyIEBA IHN0YXRpYyB2b2lkIF9faW5pdCBwcm9jZXNzX211bHRpYm9vdF9ub2RlKGNvbnN0IHZvaWQgKmZk dCwgaW50IG5vZGUsCiAgICAgICAgICAgICBraW5kID0gQk9PVE1PRF9YU007CiAgICAgfQogCi0g ICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAiYm9vdGFyZ3MiLCAmbGVuKTsK LSAgICBpZiAoIHByb3AgKQotICAgIHsKLSAgICAgICAgaWYgKCBsZW4gPiBCT09UTU9EX01BWF9D TURMSU5FICkKLSAgICAgICAgICAgIHBhbmljKCJtb2R1bGUgJXMgY29tbWFuZCBsaW5lIHRvbyBs b25nXG4iLCBuYW1lKTsKLSAgICAgICAgY21kbGluZSA9IHByb3AtPmRhdGE7Ci0gICAgfQotICAg IGVsc2UKLSAgICAgICAgY21kbGluZSA9IE5VTEw7CisgICAgYWRkX2Jvb3RfbW9kdWxlKGtpbmQs IHN0YXJ0LCBzaXplKTsKIAotICAgIGFkZF9ib290X21vZHVsZShraW5kLCBzdGFydCwgc2l6ZSwg Y21kbGluZSk7CisgICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAiYm9vdGFy Z3MiLCAmbGVuKTsKKyAgICBpZiAoICFwcm9wICkKKyAgICAgICAgcmV0dXJuOworICAgIGFkZF9i b290X2NtZGxpbmUoZmR0X2dldF9uYW1lKGZkdCwgcGFyZW50X25vZGUsICZsZW4pLCBwcm9wLT5k YXRhLCBraW5kKTsKIH0KIAogc3RhdGljIHZvaWQgX19pbml0IHByb2Nlc3NfY2hvc2VuX25vZGUo Y29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKQEAgLTI4NCw3ICsyODEsNyBAQCBzdGF0aWMgdm9p ZCBfX2luaXQgcHJvY2Vzc19jaG9zZW5fbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAog CiAgICAgcHJpbnRrKCJJbml0cmQgJSJQUklwYWRkciItJSJQUklwYWRkciJcbiIsIHN0YXJ0LCBl bmQpOwogCi0gICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfUkFNRElTSywgc3RhcnQsIGVuZC1z dGFydCwgTlVMTCk7CisgICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfUkFNRElTSywgc3RhcnQs IGVuZC1zdGFydCk7CiB9CiAKIHN0YXRpYyBpbnQgX19pbml0IGVhcmx5X3NjYW5fbm9kZShjb25z dCB2b2lkICpmZHQsCkBAIC0zMDcsNiArMzA0LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5 X3ByaW50X2luZm8odm9pZCkKIHsKICAgICBzdHJ1Y3QgbWVtaW5mbyAqbWkgPSAmYm9vdGluZm8u bWVtOwogICAgIHN0cnVjdCBib290bW9kdWxlcyAqbW9kcyA9ICZib290aW5mby5tb2R1bGVzOwor ICAgIHN0cnVjdCBib290Y21kbGluZXMgKmNtZHMgPSAmYm9vdGluZm8uY21kbGluZXM7CiAgICAg aW50IGksIG5yX3JzdmQ7CiAKICAgICBmb3IgKCBpID0gMDsgaSA8IG1pLT5ucl9iYW5rczsgaSsr ICkKQEAgLTMxNSwxMiArMzEzLDEyIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9wcmludF9p bmZvKHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICBtaS0+YmFua1tpXS5zdGFydCArIG1pLT5i YW5rW2ldLnNpemUgLSAxKTsKICAgICBwcmludGsoIlxuIik7CiAgICAgZm9yICggaSA9IDAgOyBp IDwgbW9kcy0+bnJfbW9kczsgaSsrICkKLSAgICAgICAgcHJpbnRrKCJNT0RVTEVbJWRdOiAlIlBS SXBhZGRyIiAtICUiUFJJcGFkZHIiICUtMTJzICVzXG4iLAorICAgICAgICBwcmludGsoIk1PRFVM RVslZF06ICUiUFJJcGFkZHIiIC0gJSJQUklwYWRkciIgJS0xMnNcbiIsCiAgICAgICAgICAgICAg ICAgICAgICBpLAogICAgICAgICAgICAgICAgICAgICAgbW9kcy0+bW9kdWxlW2ldLnN0YXJ0LAog ICAgICAgICAgICAgICAgICAgICAgbW9kcy0+bW9kdWxlW2ldLnN0YXJ0ICsgbW9kcy0+bW9kdWxl W2ldLnNpemUsCi0gICAgICAgICAgICAgICAgICAgICBib290X21vZHVsZV9raW5kX2FzX3N0cmlu Zyhtb2RzLT5tb2R1bGVbaV0ua2luZCksCi0gICAgICAgICAgICAgICAgICAgICBtb2RzLT5tb2R1 bGVbaV0uY21kbGluZSk7CisgICAgICAgICAgICAgICAgICAgICBib290X21vZHVsZV9raW5kX2Fz X3N0cmluZyhtb2RzLT5tb2R1bGVbaV0ua2luZCkpOworCiAgICAgbnJfcnN2ZCA9IGZkdF9udW1f bWVtX3JzdihkZXZpY2VfdHJlZV9mbGF0dGVuZWQpOwogICAgIGZvciAoIGkgPSAwOyBpIDwgbnJf cnN2ZDsgaSsrICkKICAgICB7CkBAIC0zMzMsNiArMzMxLDExIEBAIHN0YXRpYyB2b2lkIF9faW5p dCBlYXJseV9wcmludF9pbmZvKHZvaWQpCiAgICAgICAgICAgICAgICAgICAgICBpLCBzLCBlKTsK ICAgICB9CiAgICAgcHJpbnRrKCJcbiIpOworICAgIGZvciAoIGkgPSAwIDsgaSA8IGNtZHMtPm5y X21vZHM7IGkrKyApCisgICAgICAgIHByaW50aygiQ01ETElORVslZF06JXMgJXNcbiIsIGksCisg ICAgICAgICAgICAgICBjbWRzLT5jbWRsaW5lW2ldLmR0X25hbWUsCisgICAgICAgICAgICAgICAm Y21kcy0+Y21kbGluZVtpXS5jbWRsaW5lWzBdKTsKKyAgICBwcmludGsoIlxuIik7CiB9CiAKIC8q KgpAQCAtMzQ5LDcgKzM1Miw3IEBAIHNpemVfdCBfX2luaXQgYm9vdF9mZHRfaW5mbyhjb25zdCB2 b2lkICpmZHQsIHBhZGRyX3QgcGFkZHIpCiAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgcGFu aWMoIk5vIHZhbGlkIGRldmljZSB0cmVlXG4iKTsKIAotICAgIGFkZF9ib290X21vZHVsZShCT09U TU9EX0ZEVCwgcGFkZHIsIGZkdF90b3RhbHNpemUoZmR0KSwgTlVMTCk7CisgICAgYWRkX2Jvb3Rf bW9kdWxlKEJPT1RNT0RfRkRULCBwYWRkciwgZmR0X3RvdGFsc2l6ZShmZHQpKTsKIAogICAgIGRl dmljZV90cmVlX2Zvcl9lYWNoX25vZGUoKHZvaWQgKilmZHQsIGVhcmx5X3NjYW5fbm9kZSwgTlVM TCk7CiAgICAgZWFybHlfcHJpbnRfaW5mbygpOwpAQCAtMzY5LDExICszNzIsMTEgQEAgY29uc3Qg Y2hhciAqYm9vdF9mZHRfY21kbGluZShjb25zdCB2b2lkICpmZHQpCiAgICAgcHJvcCA9IGZkdF9n ZXRfcHJvcGVydHkoZmR0LCBub2RlLCAieGVuLHhlbi1ib290YXJncyIsIE5VTEwpOwogICAgIGlm ICggcHJvcCA9PSBOVUxMICkKICAgICB7Ci0gICAgICAgIHN0cnVjdCBib290bW9kdWxlICpkb20w X21vZCA9Ci0gICAgICAgICAgICBib290X21vZHVsZV9maW5kX2J5X2tpbmQoQk9PVE1PRF9LRVJO RUwpOworICAgICAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmRvbTBfY21kbGluZSA9CisgICAgICAg ICAgICBib290X2NtZGxpbmVfZmluZF9ieV9raW5kKEJPT1RNT0RfS0VSTkVMKTsKIAogICAgICAg ICBpZiAoZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJ4ZW4sZG9tMC1ib290YXJncyIsIE5V TEwpIHx8Ci0gICAgICAgICAgICAoIGRvbTBfbW9kICYmIGRvbTBfbW9kLT5jbWRsaW5lWzBdICkg KQorICAgICAgICAgICAgKCBkb20wX2NtZGxpbmUgJiYgZG9tMF9jbWRsaW5lLT5jbWRsaW5lWzBd ICkgKQogICAgICAgICAgICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAiYm9v dGFyZ3MiLCBOVUxMKTsKICAgICB9CiAgICAgaWYgKCBwcm9wID09IE5VTEwgKQpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWls ZC5jCmluZGV4IGY1NTIxNTQuLjZiMTViYzcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21h aW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKQEAgLTM3NSwxMCAr Mzc1LDggQEAgc3RhdGljIGludCBfX2luaXQgd3JpdGVfcHJvcGVydGllcyhzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvLAogICAgIGludCByZXMgPSAwOwogICAgIGlu dCBoYWRfZG9tMF9ib290YXJncyA9IDA7CiAKLSAgICBjb25zdCBzdHJ1Y3QgYm9vdG1vZHVsZSAq a2VybmVsID0ga2luZm8tPmtlcm5lbF9ib290bW9kdWxlOwotCi0gICAgaWYgKCBrZXJuZWwgJiYg a2VybmVsLT5jbWRsaW5lWzBdICkKLSAgICAgICAgYm9vdGFyZ3MgPSAma2VybmVsLT5jbWRsaW5l WzBdOworICAgIGlmICgga2luZm8tPmNtZGxpbmUgJiYga2luZm8tPmNtZGxpbmVbMF0gKQorICAg ICAgICBib290YXJncyA9ICZraW5mby0+Y21kbGluZVswXTsKIAogICAgIGR0X2Zvcl9lYWNoX3By b3BlcnR5X25vZGUgKG5vZGUsIHByb3ApCiAgICAgewpAQCAtOTUyLDkgKzk1MCw5IEBAIHN0YXRp YyBpbnQgX19pbml0IG1ha2VfY2hvc2VuX25vZGUoY29uc3Qgc3RydWN0IGtlcm5lbF9pbmZvICpr aW5mbykKICAgICBpZiAoIHJlcyApCiAgICAgICAgIHJldHVybiByZXM7CiAKLSAgICBpZiAoIG1v ZCAmJiBtb2QtPmNtZGxpbmVbMF0gKQorICAgIGlmICgga2luZm8tPmNtZGxpbmUgJiYga2luZm8t PmNtZGxpbmVbMF0gKQogICAgIHsKLSAgICAgICAgYm9vdGFyZ3MgPSAmbW9kLT5jbWRsaW5lWzBd OworICAgICAgICBib290YXJncyA9ICZraW5mby0+Y21kbGluZVswXTsKICAgICAgICAgcmVzID0g ZmR0X3Byb3BlcnR5KGZkdCwgImJvb3RhcmdzIiwgYm9vdGFyZ3MsIHN0cmxlbihib290YXJncykg KyAxKTsKICAgICAgICAgaWYgKCByZXMgKQogICAgICAgICAgICByZXR1cm4gcmVzOwpAQCAtMjEw OSw2ICsyMTA3LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZ250dGFiX3JlZ2lvbihzdHJ1 Y3QgZG9tYWluICpkLAogCiBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4g KmQpCiB7CisgICAgY29uc3Qgc3RydWN0IGJvb3RjbWRsaW5lICprZXJuZWwgPSBib290X2NtZGxp bmVfZmluZF9ieV9raW5kKEJPT1RNT0RfS0VSTkVMKTsKICAgICBzdHJ1Y3Qga2VybmVsX2luZm8g a2luZm8gPSB7fTsKICAgICBzdHJ1Y3QgdmNwdSAqc2F2ZWRfY3VycmVudDsKICAgICBpbnQgcmMs IGksIGNwdTsKQEAgLTIxNTQsNiArMjE1Myw3IEBAIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAo c3RydWN0IGRvbWFpbiAqZCkKIAogI2VuZGlmCiAKKyAgICBraW5mby5jbWRsaW5lID0gKGtlcm5l bCAhPSBOVUxMKSA/ICZrZXJuZWwtPmNtZGxpbmVbMF0gOiBOVUxMOwogICAgIGFsbG9jYXRlX21l bW9yeShkLCAma2luZm8pOwogICAgIGZpbmRfZ250dGFiX3JlZ2lvbihkLCAma2luZm8pOwogCmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0va2VybmVsLmggYi94ZW4vYXJjaC9hcm0va2VybmVsLmgK aW5kZXggNDdlYWNiNS4uMzliNzgyOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2tlcm5lbC5o CisrKyBiL3hlbi9hcmNoL2FybS9rZXJuZWwuaApAQCAtMjksNiArMjksNyBAQCBzdHJ1Y3Qga2Vy bmVsX2luZm8gewogCiAgICAgLyogYm9vdCBibG9iIGxvYWQgYWRkcmVzc2VzICovCiAgICAgY29u c3Qgc3RydWN0IGJvb3Rtb2R1bGUgKmtlcm5lbF9ib290bW9kdWxlLCAqaW5pdHJkX2Jvb3Rtb2R1 bGU7CisgICAgY29uc3QgY2hhciogY21kbGluZTsKICAgICBwYWRkcl90IGR0Yl9wYWRkcjsKICAg ICBwYWRkcl90IGluaXRyZF9wYWRkcjsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3NldHVw LmMgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwppbmRleCBlYTI0OTVhLi4yMDk4NTkxIDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAt MjAxLDggKzIwMSw3IEBAIHZvaWQgX19pbml0IGR0X3VucmVzZXJ2ZWRfcmVnaW9ucyhwYWRkcl90 IHMsIHBhZGRyX3QgZSwKIH0KIAogc3RydWN0IGJvb3Rtb2R1bGUgX19pbml0ICphZGRfYm9vdF9t b2R1bGUoYm9vdG1vZHVsZV9raW5kIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjbWRsaW5lKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwgcGFkZHJf dCBzaXplKQogewogICAgIHN0cnVjdCBib290bW9kdWxlcyAqbW9kcyA9ICZib290aW5mby5tb2R1 bGVzOwogICAgIHN0cnVjdCBib290bW9kdWxlICptb2Q7CkBAIC0yMTgsMTAgKzIxNyw2IEBAIHN0 cnVjdCBib290bW9kdWxlIF9faW5pdCAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBr aW5kLAogICAgIG1vZC0+a2luZCA9IGtpbmQ7CiAgICAgbW9kLT5zdGFydCA9IHN0YXJ0OwogICAg IG1vZC0+c2l6ZSA9IHNpemU7Ci0gICAgaWYgKCBjbWRsaW5lICkKLSAgICAgICAgc2FmZV9zdHJj cHkobW9kLT5jbWRsaW5lLCBjbWRsaW5lKTsKLSAgICBlbHNlCi0gICAgICAgIG1vZC0+Y21kbGlu ZVswXSA9IDA7CiAKICAgICByZXR1cm4gbW9kOwogfQpAQCAtMjQwLDYgKzIzNSw0NCBAQCBzdHJ1 Y3QgYm9vdG1vZHVsZSAqIF9faW5pdCBib290X21vZHVsZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVs ZV9raW5kIGtpbmQpCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3ZvaWQgX19pbml0IGFkZF9ib290 X2NtZGxpbmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY21kbGluZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vdG1vZHVsZV9raW5kIGtpbmQpCit7CisgICAgc3RydWN0 IGJvb3RjbWRsaW5lcyAqY21kcyA9ICZib290aW5mby5jbWRsaW5lczsKKyAgICBzdHJ1Y3QgYm9v dGNtZGxpbmUgKmNtZDsKKworICAgIGlmICggY21kcy0+bnJfbW9kcyA9PSBNQVhfTU9EVUxFUyAp CisgICAgeworICAgICAgICBwcmludGsoIklnbm9yaW5nICVzIGNtZGxpbmUgKHRvbyBtYW55KVxu IiwgbmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjbWQgPSAmY21kcy0+Y21k bGluZVtjbWRzLT5ucl9tb2RzKytdOworICAgIGNtZC0+a2luZCA9IGtpbmQ7CisKKyAgICBBU1NF UlQoc3RybGVuKG5hbWUpIDw9IERUX01BWF9OQU1FKTsKKyAgICBzYWZlX3N0cmNweShjbWQtPmR0 X25hbWUsIG5hbWUpOworCisgICAgaWYgKCBzdHJsZW4oY21kbGluZSkgPiBCT09UTU9EX01BWF9D TURMSU5FICkKKyAgICAgICAgcGFuaWMoIm1vZHVsZSAlcyBjb21tYW5kIGxpbmUgdG9vIGxvbmdc biIsIG5hbWUpOworICAgIHNhZmVfc3RyY3B5KGNtZC0+Y21kbGluZSwgY21kbGluZSk7Cit9CisK K3N0cnVjdCBib290Y21kbGluZSAqIF9faW5pdCBib290X2NtZGxpbmVfZmluZF9ieV9raW5kKGJv b3Rtb2R1bGVfa2luZCBraW5kKQoreworICAgIHN0cnVjdCBib290Y21kbGluZXMgKmNtZHMgPSAm Ym9vdGluZm8uY21kbGluZXM7CisgICAgc3RydWN0IGJvb3RjbWRsaW5lICpjbWQ7CisgICAgaW50 IGk7CisKKyAgICBmb3IgKCBpID0gMCA7IGkgPCBjbWRzLT5ucl9tb2RzIDsgaSsrICkKKyAgICB7 CisgICAgICAgIGNtZCA9ICZjbWRzLT5jbWRsaW5lW2ldOworICAgICAgICBpZiAoIGNtZC0+a2lu ZCA9PSBraW5kICkKKyAgICAgICAgICAgIHJldHVybiBjbWQ7CisgICAgfQorICAgIHJldHVybiBO VUxMOworfQorCiBjb25zdCBjaGFyICogX19pbml0IGJvb3RfbW9kdWxlX2tpbmRfYXNfc3RyaW5n KGJvb3Rtb2R1bGVfa2luZCBraW5kKQogewogICAgIHN3aXRjaCAoIGtpbmQgKQpAQCAtNzI4LDcg Kzc2MSw3IEBAIHZvaWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19v ZmZzZXQsCiAgICAgLyogUmVnaXN0ZXIgWGVuJ3MgbG9hZCBhZGRyZXNzIGFzIGEgYm9vdCBtb2R1 bGUuICovCiAgICAgeGVuX2Jvb3Rtb2R1bGUgPSBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9YRU4s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWRkcl90KSh1aW50cHRyX3QpKF9zdGFy dCArIGJvb3RfcGh5c19vZmZzZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFk ZHJfdCkodWludHB0cl90KShfZW5kIC0gX3N0YXJ0ICsgMSksIE5VTEwpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0cl90KShfZW5kIC0gX3N0YXJ0ICsgMSkp OwogICAgIEJVR19PTigheGVuX2Jvb3Rtb2R1bGUpOwogCiAgICAgeGVuX3BhZGRyID0gZ2V0X3hl bl9wYWRkcigpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIGIveGVu L2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCmluZGV4IGYxZTRhM2YuLjc1ODAwMDcgMTAwNjQ0Ci0t LSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJt L3NldHVwLmgKQEAgLTM1LDYgKzM1LDEzIEBAIHN0cnVjdCBib290bW9kdWxlIHsKICAgICBib290 bW9kdWxlX2tpbmQga2luZDsKICAgICBwYWRkcl90IHN0YXJ0OwogICAgIHBhZGRyX3Qgc2l6ZTsK K307CisKKy8qIERUX01BWF9OQU1FIGlzIHRoZSBub2RlIG5hbWUgbWF4IGxlbmd0aCBhY2NvcmRp bmcgdGhlIERUIHNwZWMgKi8KKyNkZWZpbmUgRFRfTUFYX05BTUUgNDEKK3N0cnVjdCBib290Y21k bGluZSB7CisgICAgYm9vdG1vZHVsZV9raW5kIGtpbmQ7CisgICAgY2hhciBkdF9uYW1lW0RUX01B WF9OQU1FXTsKICAgICBjaGFyIGNtZGxpbmVbQk9PVE1PRF9NQVhfQ01ETElORV07CiB9OwogCkBA IC00Myw5ICs1MCwxNSBAQCBzdHJ1Y3QgYm9vdG1vZHVsZXMgewogICAgIHN0cnVjdCBib290bW9k dWxlIG1vZHVsZVtNQVhfTU9EVUxFU107CiB9OwogCitzdHJ1Y3QgYm9vdGNtZGxpbmVzIHsKKyAg ICB1bnNpZ25lZCBpbnQgbnJfbW9kczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgY21kbGluZVtN QVhfTU9EVUxFU107Cit9OworCiBzdHJ1Y3QgYm9vdGluZm8gewogICAgIHN0cnVjdCBtZW1pbmZv IG1lbTsKICAgICBzdHJ1Y3QgYm9vdG1vZHVsZXMgbW9kdWxlczsKKyAgICBzdHJ1Y3QgYm9vdGNt ZGxpbmVzIGNtZGxpbmVzOwogI2lmZGVmIENPTkZJR19BQ1BJCiAgICAgc3RydWN0IG1lbWluZm8g YWNwaTsKICNlbmRpZgpAQCAtNzgsOSArOTEsMTEgQEAgc2l6ZV90IF9faW5pdCBib290X2ZkdF9p bmZvKGNvbnN0IHZvaWQgKmZkdCwgcGFkZHJfdCBwYWRkcik7CiBjb25zdCBjaGFyIF9faW5pdCAq Ym9vdF9mZHRfY21kbGluZShjb25zdCB2b2lkICpmZHQpOwogCiBzdHJ1Y3QgYm9vdG1vZHVsZSAq YWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBraW5kLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNtZGxpbmUpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUpOwog c3RydWN0IGJvb3Rtb2R1bGUgKmJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChib290bW9kdWxlX2tp bmQga2luZCk7Cit2b2lkIGFkZF9ib290X2NtZGxpbmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3Qg Y2hhciAqY21kbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICBib290bW9kdWxlX2tpbmQga2lu ZCk7CitzdHJ1Y3QgYm9vdGNtZGxpbmUgKmJvb3RfY21kbGluZV9maW5kX2J5X2tpbmQoYm9vdG1v ZHVsZV9raW5kIGtpbmQpOwogY29uc3QgY2hhciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2Fz X3N0cmluZyhib290bW9kdWxlX2tpbmQga2luZCk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs