From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v5 06/25] xen/arm: introduce bootcmdlines Date: Mon, 22 Oct 2018 19:02:45 -0700 Message-ID: <1540260184-11294-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+CgotLS0KCkNoYW5n ZXMgaW4gdjU6Ci0gcmVtb3ZlIGxlZnRvdmVyIERFQlVHIG1lc3NhZ2UKLSBpbXByb3ZlIGNvbW1p dCBtZXNzYWdlCi0gdXNlIGtpbmZvLT5jbWRsaW5lIHdoZW4gcG9zc2libGUKLSBtb3ZlIGFkZF9i b29kX2NtZGxpbmUgdG8gc2V0dXAuYwoKQ2hhbmdlcyBpbiB2NDoKLSBjaGVjayB0aGF0IHRoZSBt dWx0aWJvb3Qgbm9kZSBpcyB1bmRlciAvY2hvc2VuCi0gdXNlIGNtZCBhbmQgY21kcyBhcyB2YXJp YWJsZSBuYW1lcyBmb3Igc3RydWN0IGJvb3RjbWRsaW5lIGFuZCBzdHJ1Y3QKICBib290Y21kbGlu ZSoKLSBmaXggcHJpbnRrCi0gdXNlIEFTU0VSVCBpbnN0ZWEgb2YgcGFuaWMKLSBkbyBub3QgYWRk IGVtcHR5IGNtZGxpbmUgZW50cmllcwotIGFkZCBtb3JlIGRlYnVnIHByaW50a3MgdG8gZWFybHlf cHJpbnRfaW5mbwotIGNvZGUgc3R5bGUgZml4ZXMKLSBhZGQgY29tbWVudCBvbiBEVF9NQVhfTkFN RQotIGluY3JlYXNlIERUX01BWF9OQU1FIHRvIDQxCi0gbWFrZSBucl9tb2RzIHVuc2lnbmVkIGlu dAoKQ2hhbmdlcyBpbiB2MzoKLSBpbnRyb2R1Y2UgYm9vdGNtZGxpbmVzCi0gZG8gbm90IG1vZGlm eSBib290X2ZkdF9jbWRsaW5lCi0gYWRkIGNvbW1lbnRzCgpDaGFuZ2VzIGluIHYyOgotIG5ldyBw YXRjaAotLS0KIHhlbi9hcmNoL2FybS9ib290ZmR0LmMgICAgICB8IDQzICsrKysrKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMg fCAxMiArKysrKystLS0tLS0KIHhlbi9hcmNoL2FybS9rZXJuZWwuaCAgICAgICB8ICAxICsKIHhl bi9hcmNoL2FybS9zZXR1cC5jICAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIHwgMTkgKysr KysrKysrKysrKysrKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDM1IGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9ib290ZmR0LmMgYi94ZW4vYXJj aC9hcm0vYm9vdGZkdC5jCmluZGV4IGEzMTRhY2EuLmNiNmY3N2QgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL2FybS9ib290ZmR0LmMKKysrIGIveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYwpAQCAtMTcyLDEw ICsxNzIsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290X25vZGUoY29u c3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICBjb25zdCBfX2JlMzIgKmNlbGw7CiAgICAgYm9v dG1vZHVsZV9raW5kIGtpbmQ7CiAgICAgcGFkZHJfdCBzdGFydCwgc2l6ZTsKLSAgICBjb25zdCBj aGFyICpjbWRsaW5lOwogICAgIGludCBsZW4gPSBzaXplb2YoIi9jaG9zZW4iKTsKICAgICBjaGFy IHBhdGhbOF07IC8qIHNpemVvZiAiL2Nob3NlbiIgKi8KLSAgICBpbnQgcmV0OworICAgIGludCBw YXJlbnRfbm9kZSwgcmV0OworCisgICAgcGFyZW50X25vZGUgPSBmZHRfcGFyZW50X29mZnNldChm ZHQsIG5vZGUpOworICAgIEFTU0VSVChwYXJlbnRfbm9kZSA+PSAwKTsKIAogICAgIC8qIENoZWNr IHRoYXQgdGhlIG5vZGUgaXMgdW5kZXIgImNob3NlbiIgKi8KICAgICByZXQgPSBmZHRfZ2V0X3Bh dGgoZmR0LCBub2RlLCBwYXRoLCBsZW4pOwpAQCAtMjI3LDE3ICsyMjksMTIgQEAgc3RhdGljIHZv aWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290X25vZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9k ZSwKICAgICAgICAgICAgIGtpbmQgPSBCT09UTU9EX1hTTTsKICAgICB9CiAKLSAgICBwcm9wID0g ZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJib290YXJncyIsICZsZW4pOwotICAgIGlmICgg cHJvcCApCi0gICAgewotICAgICAgICBpZiAoIGxlbiA+IEJPT1RNT0RfTUFYX0NNRExJTkUgKQot ICAgICAgICAgICAgcGFuaWMoIm1vZHVsZSAlcyBjb21tYW5kIGxpbmUgdG9vIGxvbmdcbiIsIG5h bWUpOwotICAgICAgICBjbWRsaW5lID0gcHJvcC0+ZGF0YTsKLSAgICB9Ci0gICAgZWxzZQotICAg ICAgICBjbWRsaW5lID0gTlVMTDsKKyAgICBhZGRfYm9vdF9tb2R1bGUoa2luZCwgc3RhcnQsIHNp emUpOwogCi0gICAgYWRkX2Jvb3RfbW9kdWxlKGtpbmQsIHN0YXJ0LCBzaXplLCBjbWRsaW5lKTsK KyAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJib290YXJncyIsICZsZW4p OworICAgIGlmICggIXByb3AgKQorICAgICAgICByZXR1cm47CisgICAgYWRkX2Jvb3RfY21kbGlu ZShmZHRfZ2V0X25hbWUoZmR0LCBwYXJlbnRfbm9kZSwgJmxlbiksIHByb3AtPmRhdGEsIGtpbmQp OwogfQogCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJvY2Vzc19jaG9zZW5fbm9kZShjb25zdCB2b2lk ICpmZHQsIGludCBub2RlLApAQCAtMjgzLDcgKzI4MCw3IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBw cm9jZXNzX2Nob3Nlbl9ub2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCiAKICAgICBwcmlu dGsoIkluaXRyZCAlIlBSSXBhZGRyIi0lIlBSSXBhZGRyIlxuIiwgc3RhcnQsIGVuZCk7CiAKLSAg ICBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9SQU1ESVNLLCBzdGFydCwgZW5kLXN0YXJ0LCBOVUxM KTsKKyAgICBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9SQU1ESVNLLCBzdGFydCwgZW5kLXN0YXJ0 KTsKIH0KIAogc3RhdGljIGludCBfX2luaXQgZWFybHlfc2Nhbl9ub2RlKGNvbnN0IHZvaWQgKmZk dCwKQEAgLTMwNiw2ICszMDMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZWFybHlfcHJpbnRfaW5m byh2b2lkKQogewogICAgIHN0cnVjdCBtZW1pbmZvICptaSA9ICZib290aW5mby5tZW07CiAgICAg c3RydWN0IGJvb3Rtb2R1bGVzICptb2RzID0gJmJvb3RpbmZvLm1vZHVsZXM7CisgICAgc3RydWN0 IGJvb3RjbWRsaW5lcyAqY21kcyA9ICZib290aW5mby5jbWRsaW5lczsKICAgICBpbnQgaSwgbnJf cnN2ZDsKIAogICAgIGZvciAoIGkgPSAwOyBpIDwgbWktPm5yX2JhbmtzOyBpKysgKQpAQCAtMzE0 LDEyICszMTIsMTIgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X3ByaW50X2luZm8odm9pZCkK ICAgICAgICAgICAgICAgICAgICAgIG1pLT5iYW5rW2ldLnN0YXJ0ICsgbWktPmJhbmtbaV0uc2l6 ZSAtIDEpOwogICAgIHByaW50aygiXG4iKTsKICAgICBmb3IgKCBpID0gMCA7IGkgPCBtb2RzLT5u cl9tb2RzOyBpKysgKQotICAgICAgICBwcmludGsoIk1PRFVMRVslZF06ICUiUFJJcGFkZHIiIC0g JSJQUklwYWRkciIgJS0xMnMgJXNcbiIsCisgICAgICAgIHByaW50aygiTU9EVUxFWyVkXTogJSJQ UklwYWRkciIgLSAlIlBSSXBhZGRyIiAlLTEyc1xuIiwKICAgICAgICAgICAgICAgICAgICAgIGks CiAgICAgICAgICAgICAgICAgICAgICBtb2RzLT5tb2R1bGVbaV0uc3RhcnQsCiAgICAgICAgICAg ICAgICAgICAgICBtb2RzLT5tb2R1bGVbaV0uc3RhcnQgKyBtb2RzLT5tb2R1bGVbaV0uc2l6ZSwK LSAgICAgICAgICAgICAgICAgICAgIGJvb3RfbW9kdWxlX2tpbmRfYXNfc3RyaW5nKG1vZHMtPm1v ZHVsZVtpXS5raW5kKSwKLSAgICAgICAgICAgICAgICAgICAgIG1vZHMtPm1vZHVsZVtpXS5jbWRs aW5lKTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb3RfbW9kdWxlX2tpbmRfYXNfc3RyaW5nKG1v ZHMtPm1vZHVsZVtpXS5raW5kKSk7CisKICAgICBucl9yc3ZkID0gZmR0X251bV9tZW1fcnN2KGRl dmljZV90cmVlX2ZsYXR0ZW5lZCk7CiAgICAgZm9yICggaSA9IDA7IGkgPCBucl9yc3ZkOyBpKysg KQogICAgIHsKQEAgLTMzMiw2ICszMzAsMTEgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X3By aW50X2luZm8odm9pZCkKICAgICAgICAgICAgICAgICAgICAgIGksIHMsIGUpOwogICAgIH0KICAg ICBwcmludGsoIlxuIik7CisgICAgZm9yICggaSA9IDAgOyBpIDwgY21kcy0+bnJfbW9kczsgaSsr ICkKKyAgICAgICAgcHJpbnRrKCJDTURMSU5FWyVkXTolcyAlc1xuIiwgaSwKKyAgICAgICAgICAg ICAgIGNtZHMtPmNtZGxpbmVbaV0uZHRfbmFtZSwKKyAgICAgICAgICAgICAgICZjbWRzLT5jbWRs aW5lW2ldLmNtZGxpbmVbMF0pOworICAgIHByaW50aygiXG4iKTsKIH0KIAogLyoqCkBAIC0zNDgs NyArMzUxLDcgQEAgc2l6ZV90IF9faW5pdCBib290X2ZkdF9pbmZvKGNvbnN0IHZvaWQgKmZkdCwg cGFkZHJfdCBwYWRkcikKICAgICBpZiAoIHJldCA8IDAgKQogICAgICAgICBwYW5pYygiTm8gdmFs aWQgZGV2aWNlIHRyZWVcbiIpOwogCi0gICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfRkRULCBw YWRkciwgZmR0X3RvdGFsc2l6ZShmZHQpLCBOVUxMKTsKKyAgICBhZGRfYm9vdF9tb2R1bGUoQk9P VE1PRF9GRFQsIHBhZGRyLCBmZHRfdG90YWxzaXplKGZkdCkpOwogCiAgICAgZGV2aWNlX3RyZWVf Zm9yX2VhY2hfbm9kZSgodm9pZCAqKWZkdCwgZWFybHlfc2Nhbl9ub2RlLCBOVUxMKTsKICAgICBl YXJseV9wcmludF9pbmZvKCk7CkBAIC0zNjgsMTEgKzM3MSwxMSBAQCBjb25zdCBjaGFyICpib290 X2ZkdF9jbWRsaW5lKGNvbnN0IHZvaWQgKmZkdCkKICAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0 eShmZHQsIG5vZGUsICJ4ZW4seGVuLWJvb3RhcmdzIiwgTlVMTCk7CiAgICAgaWYgKCBwcm9wID09 IE5VTEwgKQogICAgIHsKLSAgICAgICAgc3RydWN0IGJvb3Rtb2R1bGUgKmRvbTBfbW9kID0KLSAg ICAgICAgICAgIGJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChCT09UTU9EX0tFUk5FTCk7CisgICAg ICAgIHN0cnVjdCBib290Y21kbGluZSAqZG9tMF9jbWRsaW5lID0KKyAgICAgICAgICAgIGJvb3Rf Y21kbGluZV9maW5kX2J5X2tpbmQoQk9PVE1PRF9LRVJORUwpOwogCiAgICAgICAgIGlmIChmZHRf Z2V0X3Byb3BlcnR5KGZkdCwgbm9kZSwgInhlbixkb20wLWJvb3RhcmdzIiwgTlVMTCkgfHwKLSAg ICAgICAgICAgICggZG9tMF9tb2QgJiYgZG9tMF9tb2QtPmNtZGxpbmVbMF0gKSApCisgICAgICAg ICAgICAoIGRvbTBfY21kbGluZSAmJiBkb20wX2NtZGxpbmUtPmNtZGxpbmVbMF0gKSApCiAgICAg ICAgICAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJib290YXJncyIsIE5V TEwpOwogICAgIH0KICAgICBpZiAoIHByb3AgPT0gTlVMTCApCmRpZmYgLS1naXQgYS94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXgg ZjU1MjE1NC4uODk3NzM5NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5j CisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpAQCAtMzc1LDEwICszNzUsOCBAQCBz dGF0aWMgaW50IF9faW5pdCB3cml0ZV9wcm9wZXJ0aWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVj dCBrZXJuZWxfaW5mbyAqa2luZm8sCiAgICAgaW50IHJlcyA9IDA7CiAgICAgaW50IGhhZF9kb20w X2Jvb3RhcmdzID0gMDsKIAotICAgIGNvbnN0IHN0cnVjdCBib290bW9kdWxlICprZXJuZWwgPSBr aW5mby0+a2VybmVsX2Jvb3Rtb2R1bGU7Ci0KLSAgICBpZiAoIGtlcm5lbCAmJiBrZXJuZWwtPmNt ZGxpbmVbMF0gKQotICAgICAgICBib290YXJncyA9ICZrZXJuZWwtPmNtZGxpbmVbMF07CisgICAg aWYgKCBraW5mby0+Y21kbGluZSAmJiBraW5mby0+Y21kbGluZVswXSApCisgICAgICAgIGJvb3Rh cmdzID0gJmtpbmZvLT5jbWRsaW5lWzBdOwogCiAgICAgZHRfZm9yX2VhY2hfcHJvcGVydHlfbm9k ZSAobm9kZSwgcHJvcCkKICAgICB7CkBAIC05NTIsOSArOTUwLDkgQEAgc3RhdGljIGludCBfX2lu aXQgbWFrZV9jaG9zZW5fbm9kZShjb25zdCBzdHJ1Y3Qga2VybmVsX2luZm8gKmtpbmZvKQogICAg IGlmICggcmVzICkKICAgICAgICAgcmV0dXJuIHJlczsKIAotICAgIGlmICggbW9kICYmIG1vZC0+ Y21kbGluZVswXSApCisgICAgaWYgKCBraW5mby0+Y21kbGluZSAmJiBraW5mby0+Y21kbGluZVsw XSApCiAgICAgewotICAgICAgICBib290YXJncyA9ICZtb2QtPmNtZGxpbmVbMF07CisgICAgICAg IGJvb3RhcmdzID0gJmtpbmZvLT5jbWRsaW5lWzBdOwogICAgICAgICByZXMgPSBmZHRfcHJvcGVy dHkoZmR0LCAiYm9vdGFyZ3MiLCBib290YXJncywgc3RybGVuKGJvb3RhcmdzKSArIDEpOwogICAg ICAgICBpZiAoIHJlcyApCiAgICAgICAgICAgIHJldHVybiByZXM7CkBAIC0yMTA5LDYgKzIxMDcs NyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZmluZF9nbnR0YWJfcmVnaW9uKHN0cnVjdCBkb21haW4g KmQsCiAKIGludCBfX2luaXQgY29uc3RydWN0X2RvbTAoc3RydWN0IGRvbWFpbiAqZCkKIHsKKyAg ICBjb25zdCBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmtlcm5lbCA9IGJvb3RfY21kbGluZV9maW5kX2J5 X2tpbmQoQk9PVE1PRF9LRVJORUwpOwogICAgIHN0cnVjdCBrZXJuZWxfaW5mbyBraW5mbyA9IHt9 OwogICAgIHN0cnVjdCB2Y3B1ICpzYXZlZF9jdXJyZW50OwogICAgIGludCByYywgaSwgY3B1OwpA QCAtMjE1NCw2ICsyMTUzLDcgQEAgaW50IF9faW5pdCBjb25zdHJ1Y3RfZG9tMChzdHJ1Y3QgZG9t YWluICpkKQogCiAjZW5kaWYKIAorICAgIGtpbmZvLmNtZGxpbmUgPSBrZXJuZWwgIT0gTlVMTCA/ ICZrZXJuZWwtPmNtZGxpbmVbMF0gOiBOVUxMOwogICAgIGFsbG9jYXRlX21lbW9yeShkLCAma2lu Zm8pOwogICAgIGZpbmRfZ250dGFiX3JlZ2lvbihkLCAma2luZm8pOwogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC9hcm0va2VybmVsLmggYi94ZW4vYXJjaC9hcm0va2VybmVsLmgKaW5kZXggNDdlYWNi NS4uMzliNzgyOCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2tlcm5lbC5oCisrKyBiL3hlbi9h cmNoL2FybS9rZXJuZWwuaApAQCAtMjksNiArMjksNyBAQCBzdHJ1Y3Qga2VybmVsX2luZm8gewog CiAgICAgLyogYm9vdCBibG9iIGxvYWQgYWRkcmVzc2VzICovCiAgICAgY29uc3Qgc3RydWN0IGJv b3Rtb2R1bGUgKmtlcm5lbF9ib290bW9kdWxlLCAqaW5pdHJkX2Jvb3Rtb2R1bGU7CisgICAgY29u c3QgY2hhciogY21kbGluZTsKICAgICBwYWRkcl90IGR0Yl9wYWRkcjsKICAgICBwYWRkcl90IGlu aXRyZF9wYWRkcjsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJj aC9hcm0vc2V0dXAuYwppbmRleCBlYTI0OTVhLi4yMDk4NTkxIDEwMDY0NAotLS0gYS94ZW4vYXJj aC9hcm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtMjAxLDggKzIwMSw3 IEBAIHZvaWQgX19pbml0IGR0X3VucmVzZXJ2ZWRfcmVnaW9ucyhwYWRkcl90IHMsIHBhZGRyX3Qg ZSwKIH0KIAogc3RydWN0IGJvb3Rtb2R1bGUgX19pbml0ICphZGRfYm9vdF9tb2R1bGUoYm9vdG1v ZHVsZV9raW5kIGtpbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjbWRsaW5lKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwgcGFkZHJfdCBzaXplKQogewog ICAgIHN0cnVjdCBib290bW9kdWxlcyAqbW9kcyA9ICZib290aW5mby5tb2R1bGVzOwogICAgIHN0 cnVjdCBib290bW9kdWxlICptb2Q7CkBAIC0yMTgsMTAgKzIxNyw2IEBAIHN0cnVjdCBib290bW9k dWxlIF9faW5pdCAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBraW5kLAogICAgIG1v ZC0+a2luZCA9IGtpbmQ7CiAgICAgbW9kLT5zdGFydCA9IHN0YXJ0OwogICAgIG1vZC0+c2l6ZSA9 IHNpemU7Ci0gICAgaWYgKCBjbWRsaW5lICkKLSAgICAgICAgc2FmZV9zdHJjcHkobW9kLT5jbWRs aW5lLCBjbWRsaW5lKTsKLSAgICBlbHNlCi0gICAgICAgIG1vZC0+Y21kbGluZVswXSA9IDA7CiAK ICAgICByZXR1cm4gbW9kOwogfQpAQCAtMjQwLDYgKzIzNSw0NCBAQCBzdHJ1Y3QgYm9vdG1vZHVs ZSAqIF9faW5pdCBib290X21vZHVsZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVsZV9raW5kIGtpbmQp CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3ZvaWQgX19pbml0IGFkZF9ib290X2NtZGxpbmUoY29u c3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY21kbGluZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vdG1vZHVsZV9raW5kIGtpbmQpCit7CisgICAgc3RydWN0IGJvb3RjbWRsaW5l cyAqY21kcyA9ICZib290aW5mby5jbWRsaW5lczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmNt ZDsKKworICAgIGlmICggY21kcy0+bnJfbW9kcyA9PSBNQVhfTU9EVUxFUyApCisgICAgeworICAg ICAgICBwcmludGsoIklnbm9yaW5nICVzIGNtZGxpbmUgKHRvbyBtYW55KVxuIiwgbmFtZSk7Cisg ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjbWQgPSAmY21kcy0+Y21kbGluZVtjbWRzLT5u cl9tb2RzKytdOworICAgIGNtZC0+a2luZCA9IGtpbmQ7CisKKyAgICBBU1NFUlQoc3RybGVuKG5h bWUpIDw9IERUX01BWF9OQU1FKTsKKyAgICBzYWZlX3N0cmNweShjbWQtPmR0X25hbWUsIG5hbWUp OworCisgICAgaWYgKCBzdHJsZW4oY21kbGluZSkgPiBCT09UTU9EX01BWF9DTURMSU5FICkKKyAg ICAgICAgcGFuaWMoIm1vZHVsZSAlcyBjb21tYW5kIGxpbmUgdG9vIGxvbmdcbiIsIG5hbWUpOwor ICAgIHNhZmVfc3RyY3B5KGNtZC0+Y21kbGluZSwgY21kbGluZSk7Cit9CisKK3N0cnVjdCBib290 Y21kbGluZSAqIF9faW5pdCBib290X2NtZGxpbmVfZmluZF9ieV9raW5kKGJvb3Rtb2R1bGVfa2lu ZCBraW5kKQoreworICAgIHN0cnVjdCBib290Y21kbGluZXMgKmNtZHMgPSAmYm9vdGluZm8uY21k bGluZXM7CisgICAgc3RydWN0IGJvb3RjbWRsaW5lICpjbWQ7CisgICAgaW50IGk7CisKKyAgICBm b3IgKCBpID0gMCA7IGkgPCBjbWRzLT5ucl9tb2RzIDsgaSsrICkKKyAgICB7CisgICAgICAgIGNt ZCA9ICZjbWRzLT5jbWRsaW5lW2ldOworICAgICAgICBpZiAoIGNtZC0+a2luZCA9PSBraW5kICkK KyAgICAgICAgICAgIHJldHVybiBjbWQ7CisgICAgfQorICAgIHJldHVybiBOVUxMOworfQorCiBj b25zdCBjaGFyICogX19pbml0IGJvb3RfbW9kdWxlX2tpbmRfYXNfc3RyaW5nKGJvb3Rtb2R1bGVf a2luZCBraW5kKQogewogICAgIHN3aXRjaCAoIGtpbmQgKQpAQCAtNzI4LDcgKzc2MSw3IEBAIHZv aWQgX19pbml0IHN0YXJ0X3hlbih1bnNpZ25lZCBsb25nIGJvb3RfcGh5c19vZmZzZXQsCiAgICAg LyogUmVnaXN0ZXIgWGVuJ3MgbG9hZCBhZGRyZXNzIGFzIGEgYm9vdCBtb2R1bGUuICovCiAgICAg eGVuX2Jvb3Rtb2R1bGUgPSBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9YRU4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChwYWRkcl90KSh1aW50cHRyX3QpKF9zdGFydCArIGJvb3RfcGh5 c19vZmZzZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0 cl90KShfZW5kIC0gX3N0YXJ0ICsgMSksIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAocGFkZHJfdCkodWludHB0cl90KShfZW5kIC0gX3N0YXJ0ICsgMSkpOwogICAgIEJVR19P TigheGVuX2Jvb3Rtb2R1bGUpOwogCiAgICAgeGVuX3BhZGRyID0gZ2V0X3hlbl9wYWRkcigpOwpk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oIGIveGVuL2luY2x1ZGUvYXNt LWFybS9zZXR1cC5oCmluZGV4IGYxZTRhM2YuLjc1ODAwMDcgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNs dWRlL2FzbS1hcm0vc2V0dXAuaAorKysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmgKQEAg LTM1LDYgKzM1LDEzIEBAIHN0cnVjdCBib290bW9kdWxlIHsKICAgICBib290bW9kdWxlX2tpbmQg a2luZDsKICAgICBwYWRkcl90IHN0YXJ0OwogICAgIHBhZGRyX3Qgc2l6ZTsKK307CisKKy8qIERU X01BWF9OQU1FIGlzIHRoZSBub2RlIG5hbWUgbWF4IGxlbmd0aCBhY2NvcmRpbmcgdGhlIERUIHNw ZWMgKi8KKyNkZWZpbmUgRFRfTUFYX05BTUUgNDEKK3N0cnVjdCBib290Y21kbGluZSB7CisgICAg Ym9vdG1vZHVsZV9raW5kIGtpbmQ7CisgICAgY2hhciBkdF9uYW1lW0RUX01BWF9OQU1FXTsKICAg ICBjaGFyIGNtZGxpbmVbQk9PVE1PRF9NQVhfQ01ETElORV07CiB9OwogCkBAIC00Myw5ICs1MCwx NSBAQCBzdHJ1Y3QgYm9vdG1vZHVsZXMgewogICAgIHN0cnVjdCBib290bW9kdWxlIG1vZHVsZVtN QVhfTU9EVUxFU107CiB9OwogCitzdHJ1Y3QgYm9vdGNtZGxpbmVzIHsKKyAgICB1bnNpZ25lZCBp bnQgbnJfbW9kczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgY21kbGluZVtNQVhfTU9EVUxFU107 Cit9OworCiBzdHJ1Y3QgYm9vdGluZm8gewogICAgIHN0cnVjdCBtZW1pbmZvIG1lbTsKICAgICBz dHJ1Y3QgYm9vdG1vZHVsZXMgbW9kdWxlczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmVzIGNtZGxp bmVzOwogI2lmZGVmIENPTkZJR19BQ1BJCiAgICAgc3RydWN0IG1lbWluZm8gYWNwaTsKICNlbmRp ZgpAQCAtNzgsOSArOTEsMTEgQEAgc2l6ZV90IF9faW5pdCBib290X2ZkdF9pbmZvKGNvbnN0IHZv aWQgKmZkdCwgcGFkZHJfdCBwYWRkcik7CiBjb25zdCBjaGFyIF9faW5pdCAqYm9vdF9mZHRfY21k bGluZShjb25zdCB2b2lkICpmZHQpOwogCiBzdHJ1Y3QgYm9vdG1vZHVsZSAqYWRkX2Jvb3RfbW9k dWxlKGJvb3Rtb2R1bGVfa2luZCBraW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmNtZGxpbmUpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUpOwogc3RydWN0IGJvb3Rt b2R1bGUgKmJvb3RfbW9kdWxlX2ZpbmRfYnlfa2luZChib290bW9kdWxlX2tpbmQga2luZCk7Cit2 b2lkIGFkZF9ib290X2NtZGxpbmUoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqY21kbGlu ZSwKKyAgICAgICAgICAgICAgICAgICAgICBib290bW9kdWxlX2tpbmQga2luZCk7CitzdHJ1Y3Qg Ym9vdGNtZGxpbmUgKmJvb3RfY21kbGluZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVsZV9raW5kIGtp bmQpOwogY29uc3QgY2hhciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhib290 bW9kdWxlX2tpbmQga2luZCk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs