From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3 09/25] xen/arm: introduce bootcmdlines Date: Tue, 31 Jul 2018 16:27:52 -0700 Message-ID: <1533079688-9541-9-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 , 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 ZXMgaW4gdjM6Ci0gaW50cm9kdWNlIGJvb3RjbWRsaW5lcwotIGRvIG5vdCBtb2RpZnkgYm9vdF9m ZHRfY21kbGluZQotIGFkZCBjb21tZW50cwoKQ2hhbmdlcyBpbiB2MjoKLSBuZXcgcGF0Y2gKLS0t CiB4ZW4vYXJjaC9hcm0vYm9vdGZkdC5jICAgICAgfCA2NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrLS0tLS0tLS0tLS0tLS0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8ICA4 ICsrKy0tLQogeGVuL2FyY2gvYXJtL2tlcm5lbC5oICAgICAgIHwgIDEgKwogeGVuL2FyY2gvYXJt L3NldHVwLmMgICAgICAgIHwgMjMgKysrKysrKysrKystLS0tLQogeGVuL2luY2x1ZGUvYXNtLWFy bS9zZXR1cC5oIHwgMTYgKysrKysrKysrLS0KIDUgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9u cygrKSwgMzIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2Jvb3RmZHQu YyBiL3hlbi9hcmNoL2FybS9ib290ZmR0LmMKaW5kZXggOGViYTQyYy4uNmY0NDAyMiAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYworKysgYi94ZW4vYXJjaC9hcm0vYm9vdGZkdC5j CkBAIC0xNjMsNiArMTYzLDM4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcm9jZXNzX21lbW9yeV9u b2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBf X2luaXQgYWRkX2Jvb3RfY21kbGluZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgYm9vdG1vZHVs ZV9raW5kIGtpbmQpCit7CisgICAgc3RydWN0IGJvb3RjbWRsaW5lcyAqbW9kcyA9ICZib290aW5m by5jbWRsaW5lczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgKm1vZDsKKyAgICBjb25zdCBzdHJ1 Y3QgZmR0X3Byb3BlcnR5ICpwcm9wOworICAgIGludCBsZW47CisgICAgY29uc3QgY2hhciAqY21k bGluZTsKKworICAgIGlmICggbW9kcy0+bnJfbW9kcyA9PSBNQVhfTU9EVUxFUyApCisgICAgewor ICAgICAgICBwcmludGsoIklnbm9yaW5nICVzIGJvb3QgbW9kdWxlICh0b28gbWFueSlcbiIsIG5h bWUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbW9kID0gJm1vZHMtPmNtZGxpbmVb bW9kcy0+bnJfbW9kcysrXTsKKyAgICBtb2QtPmtpbmQgPSBraW5kOworCisgICAgaWYgKCBzdHJs ZW4obmFtZSkgPiBEVF9NQVhfTkFNRSApCisgICAgICAgIHBhbmljKCJtb2R1bGUgJXMgbmFtZSB0 b28gbG9uZ1xuIiwgbmFtZSk7CisgICAgc2FmZV9zdHJjcHkobW9kLT5kdF9uYW1lLCBuYW1lKTsK KworICAgIHByb3AgPSBmZHRfZ2V0X3Byb3BlcnR5KGZkdCwgbm9kZSwgImJvb3RhcmdzIiwgJmxl bik7CisgICAgaWYgKCBwcm9wICkKKyAgICB7CisgICAgICAgIGlmICggbGVuID4gQk9PVE1PRF9N QVhfQ01ETElORSApCisgICAgICAgICAgICBwYW5pYygibW9kdWxlICVzIGNvbW1hbmQgbGluZSB0 b28gbG9uZ1xuIiwgbmFtZSk7CisgICAgICAgIGNtZGxpbmUgPSBwcm9wLT5kYXRhOworICAgICAg ICBzYWZlX3N0cmNweShtb2QtPmNtZGxpbmUsIGNtZGxpbmUpOworICAgIH0KK30KKwogc3RhdGlj IHZvaWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290X25vZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQg bm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIg YWRkcmVzc19jZWxscywgdTMyIHNpemVfY2VsbHMpCkBAIC0xNzIsOCArMjA0LDEyIEBAIHN0YXRp YyB2b2lkIF9faW5pdCBwcm9jZXNzX211bHRpYm9vdF9ub2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50 IG5vZGUsCiAgICAgY29uc3QgX19iZTMyICpjZWxsOwogICAgIGJvb3Rtb2R1bGVfa2luZCBraW5k OwogICAgIHBhZGRyX3Qgc3RhcnQsIHNpemU7Ci0gICAgY29uc3QgY2hhciAqY21kbGluZTsKICAg ICBpbnQgbGVuOworICAgIGludCBwYXJlbnRfbm9kZTsKKworICAgIHBhcmVudF9ub2RlID0gZmR0 X3BhcmVudF9vZmZzZXQoZmR0LCBub2RlKTsKKyAgICBpZiAoIHBhcmVudF9ub2RlIDwgMCApCisg ICAgICAgIHBhbmljKCJub2RlICVzIG1pc3NpbmcgYSBwYXJlbnRcbiIsIG5hbWUpOwogCiAgICAg cHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAicmVnIiwgJmxlbik7CiAgICAgaWYg KCAhcHJvcCApCkBAIC0yMjAsMTcgKzI1Niw4IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBwcm9jZXNz X211bHRpYm9vdF9ub2RlKGNvbnN0IHZvaWQgKmZkdCwgaW50IG5vZGUsCiAgICAgICAgICAgICBr aW5kID0gQk9PVE1PRF9YU007CiAgICAgfQogCi0gICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHko ZmR0LCBub2RlLCAiYm9vdGFyZ3MiLCAmbGVuKTsKLSAgICBpZiAoIHByb3AgKQotICAgIHsKLSAg ICAgICAgaWYgKCBsZW4gPiBCT09UTU9EX01BWF9DTURMSU5FICkKLSAgICAgICAgICAgIHBhbmlj KCJtb2R1bGUgJXMgY29tbWFuZCBsaW5lIHRvbyBsb25nXG4iLCBuYW1lKTsKLSAgICAgICAgY21k bGluZSA9IHByb3AtPmRhdGE7Ci0gICAgfQotICAgIGVsc2UKLSAgICAgICAgY21kbGluZSA9IE5V TEw7Ci0KLSAgICBhZGRfYm9vdF9tb2R1bGUoa2luZCwgc3RhcnQsIHNpemUsIGNtZGxpbmUpOwor ICAgIGFkZF9ib290X21vZHVsZShraW5kLCBzdGFydCwgc2l6ZSk7CisgICAgYWRkX2Jvb3RfY21k bGluZShmZHQsIG5vZGUsIGZkdF9nZXRfbmFtZShmZHQsIHBhcmVudF9ub2RlLCAmbGVuKSwga2lu ZCk7CiB9CiAKIHN0YXRpYyB2b2lkIF9faW5pdCBwcm9jZXNzX2Nob3Nlbl9ub2RlKGNvbnN0IHZv aWQgKmZkdCwgaW50IG5vZGUsCkBAIC0yNzYsNyArMzAzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0 IHByb2Nlc3NfY2hvc2VuX25vZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKIAogICAgIHBy aW50aygiSW5pdHJkICUiUFJJcGFkZHIiLSUiUFJJcGFkZHIiXG4iLCBzdGFydCwgZW5kKTsKIAot ICAgIGFkZF9ib290X21vZHVsZShCT09UTU9EX1JBTURJU0ssIHN0YXJ0LCBlbmQtc3RhcnQsIE5V TEwpOworICAgIGFkZF9ib290X21vZHVsZShCT09UTU9EX1JBTURJU0ssIHN0YXJ0LCBlbmQtc3Rh cnQpOwogfQogCiBzdGF0aWMgaW50IF9faW5pdCBlYXJseV9zY2FuX25vZGUoY29uc3Qgdm9pZCAq ZmR0LApAQCAtMzA3LDEyICszMzQsMTEgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X3ByaW50 X2luZm8odm9pZCkKICAgICAgICAgICAgICAgICAgICAgIG1pLT5iYW5rW2ldLnN0YXJ0ICsgbWkt PmJhbmtbaV0uc2l6ZSAtIDEpOwogICAgIHByaW50aygiXG4iKTsKICAgICBmb3IgKCBpID0gMCA7 IGkgPCBtb2RzLT5ucl9tb2RzOyBpKysgKQotICAgICAgICBwcmludGsoIk1PRFVMRVslZF06ICUi UFJJcGFkZHIiIC0gJSJQUklwYWRkciIgJS0xMnMgJXNcbiIsCisgICAgICAgIHByaW50aygiTU9E VUxFWyVkXTogJSJQUklwYWRkciIgLSAlIlBSSXBhZGRyIiAlLTEyc1xuIiwKICAgICAgICAgICAg ICAgICAgICAgIGksCiAgICAgICAgICAgICAgICAgICAgICBtb2RzLT5tb2R1bGVbaV0uc3RhcnQs CiAgICAgICAgICAgICAgICAgICAgICBtb2RzLT5tb2R1bGVbaV0uc3RhcnQgKyBtb2RzLT5tb2R1 bGVbaV0uc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgIGJvb3RfbW9kdWxlX2tpbmRfYXNfc3Ry aW5nKG1vZHMtPm1vZHVsZVtpXS5raW5kKSwKLSAgICAgICAgICAgICAgICAgICAgIG1vZHMtPm1v ZHVsZVtpXS5jbWRsaW5lKTsKKyAgICAgICAgICAgICAgICAgICAgIGJvb3RfbW9kdWxlX2tpbmRf YXNfc3RyaW5nKG1vZHMtPm1vZHVsZVtpXS5raW5kKSk7CiAgICAgbnJfcnN2ZCA9IGZkdF9udW1f bWVtX3JzdihkZXZpY2VfdHJlZV9mbGF0dGVuZWQpOwogICAgIGZvciAoIGkgPSAwOyBpIDwgbnJf cnN2ZDsgaSsrICkKICAgICB7CkBAIC0zNDEsNyArMzY3LDcgQEAgc2l6ZV90IF9faW5pdCBib290 X2ZkdF9pbmZvKGNvbnN0IHZvaWQgKmZkdCwgcGFkZHJfdCBwYWRkcikKICAgICBpZiAoIHJldCA8 IDAgKQogICAgICAgICBwYW5pYygiTm8gdmFsaWQgZGV2aWNlIHRyZWVcbiIpOwogCi0gICAgYWRk X2Jvb3RfbW9kdWxlKEJPT1RNT0RfRkRULCBwYWRkciwgZmR0X3RvdGFsc2l6ZShmZHQpLCBOVUxM KTsKKyAgICBhZGRfYm9vdF9tb2R1bGUoQk9PVE1PRF9GRFQsIHBhZGRyLCBmZHRfdG90YWxzaXpl KGZkdCkpOwogCiAgICAgZGV2aWNlX3RyZWVfZm9yX2VhY2hfbm9kZSgodm9pZCAqKWZkdCwgZWFy bHlfc2Nhbl9ub2RlLCBOVUxMKTsKICAgICBlYXJseV9wcmludF9pbmZvKCk7CkBAIC0zNjEsMTEg KzM4NywxMSBAQCBjb25zdCBjaGFyICpib290X2ZkdF9jbWRsaW5lKGNvbnN0IHZvaWQgKmZkdCkK ICAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJ4ZW4seGVuLWJvb3Rhcmdz IiwgTlVMTCk7CiAgICAgaWYgKCBwcm9wID09IE5VTEwgKQogICAgIHsKLSAgICAgICAgc3RydWN0 IGJvb3Rtb2R1bGUgKmRvbTBfbW9kID0KLSAgICAgICAgICAgIGJvb3RfbW9kdWxlX2ZpbmRfYnlf a2luZChCT09UTU9EX0tFUk5FTCk7CisgICAgICAgIHN0cnVjdCBib290Y21kbGluZSAqZG9tMF9j bWRsaW5lID0KKyAgICAgICAgICAgIGJvb3RfY21kbGluZV9maW5kX2J5X2tpbmQoQk9PVE1PRF9L RVJORUwpOwogCiAgICAgICAgIGlmIChmZHRfZ2V0X3Byb3BlcnR5KGZkdCwgbm9kZSwgInhlbixk b20wLWJvb3RhcmdzIiwgTlVMTCkgfHwKLSAgICAgICAgICAgICggZG9tMF9tb2QgJiYgZG9tMF9t b2QtPmNtZGxpbmVbMF0gKSApCisgICAgICAgICAgICAoIGRvbTBfY21kbGluZSAmJiBkb20wX2Nt ZGxpbmUtPmNtZGxpbmVbMF0gKSApCiAgICAgICAgICAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0 eShmZHQsIG5vZGUsICJib290YXJncyIsIE5VTEwpOwogICAgIH0KICAgICBpZiAoIHByb3AgPT0g TlVMTCApCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggY2Q0N2E2OC4uZWJhMWI3NyAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVp bGQuYwpAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHdyaXRlX3Byb3BlcnRp ZXMoc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGtlcm5lbF9pbmZvICpraW5mbywKICAgICBpbnQg cmVzID0gMDsKICAgICBpbnQgaGFkX2RvbTBfYm9vdGFyZ3MgPSAwOwogCi0gICAgY29uc3Qgc3Ry dWN0IGJvb3Rtb2R1bGUgKmtlcm5lbCA9IGtpbmZvLT5rZXJuZWxfYm9vdG1vZHVsZTsKKyAgICBj b25zdCBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmtlcm5lbCA9IGJvb3RfY21kbGluZV9maW5kX2J5X2tp bmQoQk9PVE1PRF9LRVJORUwpOwogCiAgICAgaWYgKCBrZXJuZWwgJiYga2VybmVsLT5jbWRsaW5l WzBdICkKICAgICAgICAgYm9vdGFyZ3MgPSAma2VybmVsLT5jbWRsaW5lWzBdOwpAQCAtOTUwLDkg Kzk1MCw5IEBAIHN0YXRpYyBpbnQgX19pbml0IG1ha2VfY2hvc2VuX25vZGUoY29uc3Qgc3RydWN0 IGtlcm5lbF9pbmZvICpraW5mbykKICAgICBpZiAoIHJlcyApCiAgICAgICAgIHJldHVybiByZXM7 CiAKLSAgICBpZiAoIG1vZCAmJiBtb2QtPmNtZGxpbmVbMF0gKQorICAgIGlmICgga2luZm8tPmNt ZGxpbmUgJiYga2luZm8tPmNtZGxpbmVbMF0gKQogICAgIHsKLSAgICAgICAgYm9vdGFyZ3MgPSAm bW9kLT5jbWRsaW5lWzBdOworICAgICAgICBib290YXJncyA9ICZraW5mby0+Y21kbGluZVswXTsK ICAgICAgICAgcmVzID0gZmR0X3Byb3BlcnR5KGZkdCwgImJvb3RhcmdzIiwgYm9vdGFyZ3MsIHN0 cmxlbihib290YXJncykgKyAxKTsKICAgICAgICAgaWYgKCByZXMgKQogICAgICAgICAgICByZXR1 cm4gcmVzOwpAQCAtMjEwOCw2ICsyMTA4LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGZpbmRfZ250 dGFiX3JlZ2lvbihzdHJ1Y3QgZG9tYWluICpkLAogCiBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20w KHN0cnVjdCBkb21haW4gKmQpCiB7CisgICAgY29uc3Qgc3RydWN0IGJvb3RjbWRsaW5lICprZXJu ZWwgPSBib290X2NtZGxpbmVfZmluZF9ieV9raW5kKEJPT1RNT0RfS0VSTkVMKTsKICAgICBzdHJ1 Y3Qga2VybmVsX2luZm8ga2luZm8gPSB7fTsKICAgICBzdHJ1Y3QgdmNwdSAqc2F2ZWRfY3VycmVu dDsKICAgICBpbnQgcmMsIGksIGNwdTsKQEAgLTIxNTMsNiArMjE1NCw3IEBAIGludCBfX2luaXQg Y29uc3RydWN0X2RvbTAoc3RydWN0IGRvbWFpbiAqZCkKIAogI2VuZGlmCiAKKyAgICBraW5mby5j bWRsaW5lID0ga2VybmVsICE9IE5VTEwgPyAma2VybmVsLT5jbWRsaW5lWzBdIDogTlVMTDsKICAg ICBhbGxvY2F0ZV9tZW1vcnkoZCwgJmtpbmZvKTsKICAgICBmaW5kX2dudHRhYl9yZWdpb24oZCwg JmtpbmZvKTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2tlcm5lbC5oIGIveGVuL2FyY2gv YXJtL2tlcm5lbC5oCmluZGV4IDQ3ZWFjYjUuLjM5Yjc4MjggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L2FybS9rZXJuZWwuaAorKysgYi94ZW4vYXJjaC9hcm0va2VybmVsLmgKQEAgLTI5LDYgKzI5LDcg QEAgc3RydWN0IGtlcm5lbF9pbmZvIHsKIAogICAgIC8qIGJvb3QgYmxvYiBsb2FkIGFkZHJlc3Nl cyAqLwogICAgIGNvbnN0IHN0cnVjdCBib290bW9kdWxlICprZXJuZWxfYm9vdG1vZHVsZSwgKmlu aXRyZF9ib290bW9kdWxlOworICAgIGNvbnN0IGNoYXIqIGNtZGxpbmU7CiAgICAgcGFkZHJfdCBk dGJfcGFkZHI7CiAgICAgcGFkZHJfdCBpbml0cmRfcGFkZHI7CiAKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKaW5kZXggN2Q0MGE4NC4uNjdh YjFmZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJt L3NldHVwLmMKQEAgLTIwMCw4ICsyMDAsNyBAQCB2b2lkIF9faW5pdCBkdF91bnJlc2VydmVkX3Jl Z2lvbnMocGFkZHJfdCBzLCBwYWRkcl90IGUsCiB9CiAKIHN0cnVjdCBib290bW9kdWxlIF9faW5p dCAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBraW5kLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwgcGFkZHJfdCBzaXplLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqY21k bGluZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3Qg c3RhcnQsIHBhZGRyX3Qgc2l6ZSkKIHsKICAgICBzdHJ1Y3QgYm9vdG1vZHVsZXMgKm1vZHMgPSAm Ym9vdGluZm8ubW9kdWxlczsKICAgICBzdHJ1Y3QgYm9vdG1vZHVsZSAqbW9kOwpAQCAtMjE3LDEw ICsyMTYsNiBAQCBzdHJ1Y3QgYm9vdG1vZHVsZSBfX2luaXQgKmFkZF9ib290X21vZHVsZShib290 bW9kdWxlX2tpbmQga2luZCwKICAgICBtb2QtPmtpbmQgPSBraW5kOwogICAgIG1vZC0+c3RhcnQg PSBzdGFydDsKICAgICBtb2QtPnNpemUgPSBzaXplOwotICAgIGlmICggY21kbGluZSApCi0gICAg ICAgIHNhZmVfc3RyY3B5KG1vZC0+Y21kbGluZSwgY21kbGluZSk7Ci0gICAgZWxzZQotICAgICAg ICBtb2QtPmNtZGxpbmVbMF0gPSAwOwogCiAgICAgcmV0dXJuIG1vZDsKIH0KQEAgLTIzOSw2ICsy MzQsMjAgQEAgc3RydWN0IGJvb3Rtb2R1bGUgKiBfX2luaXQgYm9vdF9tb2R1bGVfZmluZF9ieV9r aW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKQogICAgIHJldHVybiBOVUxMOwogfQogCitzdHJ1Y3Qg Ym9vdGNtZGxpbmUgKiBfX2luaXQgYm9vdF9jbWRsaW5lX2ZpbmRfYnlfa2luZChib290bW9kdWxl X2tpbmQga2luZCkKK3sKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmVzICptb2RzID0gJmJvb3RpbmZv LmNtZGxpbmVzOworICAgIHN0cnVjdCBib290Y21kbGluZSAqbW9kOworICAgIGludCBpOworICAg IGZvciAoaSA9IDAgOyBpIDwgbW9kcy0+bnJfbW9kcyA7IGkrKyApCisgICAgeworICAgICAgICBt b2QgPSAmbW9kcy0+Y21kbGluZVtpXTsKKyAgICAgICAgaWYgKCBtb2QtPmtpbmQgPT0ga2luZCAp CisgICAgICAgICAgICByZXR1cm4gbW9kOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKwog Y29uc3QgY2hhciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhib290bW9kdWxl X2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKCBraW5kICkKQEAgLTcyMyw3ICs3MzIsNyBAQCB2 b2lkIF9faW5pdCBzdGFydF94ZW4odW5zaWduZWQgbG9uZyBib290X3BoeXNfb2Zmc2V0LAogICAg IC8qIFJlZ2lzdGVyIFhlbidzIGxvYWQgYWRkcmVzcyBhcyBhIGJvb3QgbW9kdWxlLiAqLwogICAg IHhlbl9ib290bW9kdWxlID0gYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfWEVOLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAocGFkZHJfdCkodWludHB0cl90KShfc3RhcnQgKyBib290X3Bo eXNfb2Zmc2V0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZGRyX3QpKHVpbnRw dHJfdCkoX2VuZCAtIF9zdGFydCArIDEpLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHBhZGRyX3QpKHVpbnRwdHJfdCkoX2VuZCAtIF9zdGFydCArIDEpKTsKICAgICBCVUdf T04oIXhlbl9ib290bW9kdWxlKTsKIAogICAgIHhlbl9wYWRkciA9IGdldF94ZW5fcGFkZHIoKTsK ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vc2V0dXAuaCBiL3hlbi9pbmNsdWRlL2Fz bS1hcm0vc2V0dXAuaAppbmRleCBmMWU0YTNmLi5jYjdkYTUxIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20tYXJtL3NldHVwLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCkBA IC0zNSw2ICszNSwxMiBAQCBzdHJ1Y3QgYm9vdG1vZHVsZSB7CiAgICAgYm9vdG1vZHVsZV9raW5k IGtpbmQ7CiAgICAgcGFkZHJfdCBzdGFydDsKICAgICBwYWRkcl90IHNpemU7Cit9OworCisjZGVm aW5lIERUX01BWF9OQU1FIDMyCitzdHJ1Y3QgYm9vdGNtZGxpbmUgeworICAgIGJvb3Rtb2R1bGVf a2luZCBraW5kOworICAgIGNoYXIgZHRfbmFtZVtEVF9NQVhfTkFNRV07CiAgICAgY2hhciBjbWRs aW5lW0JPT1RNT0RfTUFYX0NNRExJTkVdOwogfTsKIApAQCAtNDMsOSArNDksMTUgQEAgc3RydWN0 IGJvb3Rtb2R1bGVzIHsKICAgICBzdHJ1Y3QgYm9vdG1vZHVsZSBtb2R1bGVbTUFYX01PRFVMRVNd OwogfTsKIAorc3RydWN0IGJvb3RjbWRsaW5lcyB7CisgICAgaW50IG5yX21vZHM7CisgICAgc3Ry dWN0IGJvb3RjbWRsaW5lIGNtZGxpbmVbTUFYX01PRFVMRVNdOworfTsKKwogc3RydWN0IGJvb3Rp bmZvIHsKICAgICBzdHJ1Y3QgbWVtaW5mbyBtZW07CiAgICAgc3RydWN0IGJvb3Rtb2R1bGVzIG1v ZHVsZXM7CisgICAgc3RydWN0IGJvb3RjbWRsaW5lcyBjbWRsaW5lczsKICNpZmRlZiBDT05GSUdf QUNQSQogICAgIHN0cnVjdCBtZW1pbmZvIGFjcGk7CiAjZW5kaWYKQEAgLTc4LDkgKzkwLDkgQEAg c2l6ZV90IF9faW5pdCBib290X2ZkdF9pbmZvKGNvbnN0IHZvaWQgKmZkdCwgcGFkZHJfdCBwYWRk cik7CiBjb25zdCBjaGFyIF9faW5pdCAqYm9vdF9mZHRfY21kbGluZShjb25zdCB2b2lkICpmZHQp OwogCiBzdHJ1Y3QgYm9vdG1vZHVsZSAqYWRkX2Jvb3RfbW9kdWxlKGJvb3Rtb2R1bGVfa2luZCBr aW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHN0YXJ0LCBw YWRkcl90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNo YXIgKmNtZGxpbmUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90 IHN0YXJ0LCBwYWRkcl90IHNpemUpOwogc3RydWN0IGJvb3Rtb2R1bGUgKmJvb3RfbW9kdWxlX2Zp bmRfYnlfa2luZChib290bW9kdWxlX2tpbmQga2luZCk7CitzdHJ1Y3QgYm9vdGNtZGxpbmUgKmJv b3RfY21kbGluZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVsZV9raW5kIGtpbmQpOwogY29uc3QgY2hh ciAqIF9faW5pdCBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhib290bW9kdWxlX2tpbmQga2lu ZCk7CiAKICNlbmRpZgotLSAKMS45LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54 ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGlu Zm8veGVuLWRldmVs