From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v4 05/23] xen/arm: introduce bootcmdlines Date: Fri, 5 Oct 2018 11:47:13 -0700 Message-ID: <1538765251-25256-5-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 ZXMgaW4gdjQ6Ci0gY2hlY2sgdGhhdCB0aGUgbXVsdGlib290IG5vZGUgaXMgdW5kZXIgL2Nob3Nl bgotIHVzZSBjbWQgYW5kIGNtZHMgYXMgdmFyaWFibGUgbmFtZXMgZm9yIHN0cnVjdCBib290Y21k bGluZSBhbmQgc3RydWN0CiAgYm9vdGNtZGxpbmUqCi0gZml4IHByaW50awotIHVzZSBBU1NFUlQg aW5zdGVhIG9mIHBhbmljCi0gZG8gbm90IGFkZCBlbXB0eSBjbWRsaW5lIGVudHJpZXMKLSBhZGQg bW9yZSBkZWJ1ZyBwcmludGtzIHRvIGVhcmx5X3ByaW50X2luZm8KLSBjb2RlIHN0eWxlIGZpeGVz Ci0gYWRkIGNvbW1lbnQgb24gRFRfTUFYX05BTUUKLSBpbmNyZWFzZSBEVF9NQVhfTkFNRSB0byA0 MQotIG1ha2UgbnJfbW9kcyB1bnNpZ25lZCBpbnQKCkNoYW5nZXMgaW4gdjM6Ci0gaW50cm9kdWNl IGJvb3RjbWRsaW5lcwotIGRvIG5vdCBtb2RpZnkgYm9vdF9mZHRfY21kbGluZQotIGFkZCBjb21t ZW50cwoKQ2hhbmdlcyBpbiB2MjoKLSBuZXcgcGF0Y2gKLS0tCiB4ZW4vYXJjaC9hcm0vYm9vdGZk dC5jICAgICAgfCA4MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0KIHhlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyB8ICA4ICsrKy0tCiB4ZW4vYXJjaC9hcm0v a2VybmVsLmggICAgICAgfCAgMSArCiB4ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgfCAyNCAr KysrKysrKystLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmggfCAxNyArKysrKysrKy0t CiA1IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9ib290ZmR0LmMgYi94ZW4vYXJjaC9hcm0vYm9vdGZkdC5j CmluZGV4IDhlYmE0MmMuLjI3MzAzMmIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9ib290ZmR0 LmMKKysrIGIveGVuL2FyY2gvYXJtL2Jvb3RmZHQuYwpAQCAtMTYzLDYgKzE2MywzNyBAQCBzdGF0 aWMgdm9pZCBfX2luaXQgcHJvY2Vzc19tZW1vcnlfbm9kZShjb25zdCB2b2lkICpmZHQsIGludCBu b2RlLAogICAgIH0KIH0KIAorc3RhdGljIHZvaWQgX19pbml0IGFkZF9ib290X2NtZGxpbmUoY29u c3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUsIGJvb3Rtb2R1bGVfa2luZCBraW5kKQoreworICAgIHN0cnVj dCBib290Y21kbGluZXMgKmNtZHMgPSAmYm9vdGluZm8uY21kbGluZXM7CisgICAgc3RydWN0IGJv b3RjbWRsaW5lICpjbWQ7CisgICAgY29uc3Qgc3RydWN0IGZkdF9wcm9wZXJ0eSAqcHJvcDsKKyAg ICBpbnQgbGVuOworICAgIGNvbnN0IGNoYXIgKmNtZGxpbmU7CisKKyAgICBpZiAoIGNtZHMtPm5y X21vZHMgPT0gTUFYX01PRFVMRVMgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJJZ25vcmluZyAl cyBjbWRsaW5lICh0b28gbWFueSlcbiIsIG5hbWUpOworICAgICAgICByZXR1cm47CisgICAgfQor CisgICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAiYm9vdGFyZ3MiLCAmbGVu KTsKKyAgICBpZiAoICFwcm9wICkKKyAgICAgICAgcmV0dXJuOworCisgICAgY21kID0gJmNtZHMt PmNtZGxpbmVbY21kcy0+bnJfbW9kcysrXTsKKyAgICBjbWQtPmtpbmQgPSBraW5kOworCisgICAg QVNTRVJUKHN0cmxlbihuYW1lKSA8PSBEVF9NQVhfTkFNRSk7CisgICAgc2FmZV9zdHJjcHkoY21k LT5kdF9uYW1lLCBuYW1lKTsKKworICAgIGlmICggbGVuID4gQk9PVE1PRF9NQVhfQ01ETElORSAp CisgICAgICAgIHBhbmljKCJtb2R1bGUgJXMgY29tbWFuZCBsaW5lIHRvbyBsb25nXG4iLCBuYW1l KTsKKyAgICBjbWRsaW5lID0gcHJvcC0+ZGF0YTsKKyAgICBzYWZlX3N0cmNweShjbWQtPmNtZGxp bmUsIGNtZGxpbmUpOworfQorCiBzdGF0aWMgdm9pZCBfX2luaXQgcHJvY2Vzc19tdWx0aWJvb3Rf bm9kZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHUzMiBhZGRyZXNzX2NlbGxzLCB1MzIgc2l6ZV9jZWxscykK QEAgLTE3Miw4ICsyMDMsMjAgQEAgc3RhdGljIHZvaWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290 X25vZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICBjb25zdCBfX2JlMzIgKmNlbGw7 CiAgICAgYm9vdG1vZHVsZV9raW5kIGtpbmQ7CiAgICAgcGFkZHJfdCBzdGFydCwgc2l6ZTsKLSAg ICBjb25zdCBjaGFyICpjbWRsaW5lOwotICAgIGludCBsZW47CisgICAgaW50IGxlbiA9IHNpemVv ZigiL2Nob3NlbiIpOworICAgIGNoYXIgcGF0aFs4XTsgLyogc2l6ZW9mICIvY2hvc2VuIiAqLwor ICAgIGludCBwYXJlbnRfbm9kZTsKKworICAgIHBhcmVudF9ub2RlID0gZmR0X3BhcmVudF9vZmZz ZXQoZmR0LCBub2RlKTsKKyAgICBBU1NFUlQocGFyZW50X25vZGUgPj0gMCk7CisKKyAgICAvKiBD aGVjayB0aGF0IHRoZSBub2RlIGlzIHVuZGVyICJjaG9zZW4iICovCisgICAgZmR0X2dldF9wYXRo KGZkdCwgbm9kZSwgcGF0aCwgbGVuKTsKKyAgICBpZiAoIHN0cm5jbXAocGF0aCwgIi9jaG9zZW4i LCBsZW4gLSAxKSApCisgICAgeworICAgICAgICBwcmludGsoIkRFQlVHICVzICVzXG4iLG5hbWUs cGF0aCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBwcm9wID0gZmR0X2dldF9wcm9w ZXJ0eShmZHQsIG5vZGUsICJyZWciLCAmbGVuKTsKICAgICBpZiAoICFwcm9wICkKQEAgLTIyMCwx NyArMjYzLDggQEAgc3RhdGljIHZvaWQgX19pbml0IHByb2Nlc3NfbXVsdGlib290X25vZGUoY29u c3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwKICAgICAgICAgICAgIGtpbmQgPSBCT09UTU9EX1hTTTsK ICAgICB9CiAKLSAgICBwcm9wID0gZmR0X2dldF9wcm9wZXJ0eShmZHQsIG5vZGUsICJib290YXJn cyIsICZsZW4pOwotICAgIGlmICggcHJvcCApCi0gICAgewotICAgICAgICBpZiAoIGxlbiA+IEJP T1RNT0RfTUFYX0NNRExJTkUgKQotICAgICAgICAgICAgcGFuaWMoIm1vZHVsZSAlcyBjb21tYW5k IGxpbmUgdG9vIGxvbmdcbiIsIG5hbWUpOwotICAgICAgICBjbWRsaW5lID0gcHJvcC0+ZGF0YTsK LSAgICB9Ci0gICAgZWxzZQotICAgICAgICBjbWRsaW5lID0gTlVMTDsKLQotICAgIGFkZF9ib290 X21vZHVsZShraW5kLCBzdGFydCwgc2l6ZSwgY21kbGluZSk7CisgICAgYWRkX2Jvb3RfbW9kdWxl KGtpbmQsIHN0YXJ0LCBzaXplKTsKKyAgICBhZGRfYm9vdF9jbWRsaW5lKGZkdCwgbm9kZSwgZmR0 X2dldF9uYW1lKGZkdCwgcGFyZW50X25vZGUsICZsZW4pLCBraW5kKTsKIH0KIAogc3RhdGljIHZv aWQgX19pbml0IHByb2Nlc3NfY2hvc2VuX25vZGUoY29uc3Qgdm9pZCAqZmR0LCBpbnQgbm9kZSwK QEAgLTI3Niw3ICszMTAsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcHJvY2Vzc19jaG9zZW5fbm9k ZShjb25zdCB2b2lkICpmZHQsIGludCBub2RlLAogCiAgICAgcHJpbnRrKCJJbml0cmQgJSJQUklw YWRkciItJSJQUklwYWRkciJcbiIsIHN0YXJ0LCBlbmQpOwogCi0gICAgYWRkX2Jvb3RfbW9kdWxl KEJPT1RNT0RfUkFNRElTSywgc3RhcnQsIGVuZC1zdGFydCwgTlVMTCk7CisgICAgYWRkX2Jvb3Rf bW9kdWxlKEJPT1RNT0RfUkFNRElTSywgc3RhcnQsIGVuZC1zdGFydCk7CiB9CiAKIHN0YXRpYyBp bnQgX19pbml0IGVhcmx5X3NjYW5fbm9kZShjb25zdCB2b2lkICpmZHQsCkBAIC0yOTksNiArMzMz LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGVhcmx5X3ByaW50X2luZm8odm9pZCkKIHsKICAgICBz dHJ1Y3QgbWVtaW5mbyAqbWkgPSAmYm9vdGluZm8ubWVtOwogICAgIHN0cnVjdCBib290bW9kdWxl cyAqbW9kcyA9ICZib290aW5mby5tb2R1bGVzOworICAgIHN0cnVjdCBib290Y21kbGluZXMgKmNt ZHMgPSAmYm9vdGluZm8uY21kbGluZXM7CiAgICAgaW50IGksIG5yX3JzdmQ7CiAKICAgICBmb3Ig KCBpID0gMDsgaSA8IG1pLT5ucl9iYW5rczsgaSsrICkKQEAgLTMwNywxMiArMzQyLDEyIEBAIHN0 YXRpYyB2b2lkIF9faW5pdCBlYXJseV9wcmludF9pbmZvKHZvaWQpCiAgICAgICAgICAgICAgICAg ICAgICBtaS0+YmFua1tpXS5zdGFydCArIG1pLT5iYW5rW2ldLnNpemUgLSAxKTsKICAgICBwcmlu dGsoIlxuIik7CiAgICAgZm9yICggaSA9IDAgOyBpIDwgbW9kcy0+bnJfbW9kczsgaSsrICkKLSAg ICAgICAgcHJpbnRrKCJNT0RVTEVbJWRdOiAlIlBSSXBhZGRyIiAtICUiUFJJcGFkZHIiICUtMTJz ICVzXG4iLAorICAgICAgICBwcmludGsoIk1PRFVMRVslZF06ICUiUFJJcGFkZHIiIC0gJSJQUklw YWRkciIgJS0xMnNcbiIsCiAgICAgICAgICAgICAgICAgICAgICBpLAogICAgICAgICAgICAgICAg ICAgICAgbW9kcy0+bW9kdWxlW2ldLnN0YXJ0LAogICAgICAgICAgICAgICAgICAgICAgbW9kcy0+ bW9kdWxlW2ldLnN0YXJ0ICsgbW9kcy0+bW9kdWxlW2ldLnNpemUsCi0gICAgICAgICAgICAgICAg ICAgICBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhtb2RzLT5tb2R1bGVbaV0ua2luZCksCi0g ICAgICAgICAgICAgICAgICAgICBtb2RzLT5tb2R1bGVbaV0uY21kbGluZSk7CisgICAgICAgICAg ICAgICAgICAgICBib290X21vZHVsZV9raW5kX2FzX3N0cmluZyhtb2RzLT5tb2R1bGVbaV0ua2lu ZCkpOworCiAgICAgbnJfcnN2ZCA9IGZkdF9udW1fbWVtX3JzdihkZXZpY2VfdHJlZV9mbGF0dGVu ZWQpOwogICAgIGZvciAoIGkgPSAwOyBpIDwgbnJfcnN2ZDsgaSsrICkKICAgICB7CkBAIC0zMjUs NiArMzYwLDExIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBlYXJseV9wcmludF9pbmZvKHZvaWQpCiAg ICAgICAgICAgICAgICAgICAgICBpLCBzLCBlKTsKICAgICB9CiAgICAgcHJpbnRrKCJcbiIpOwor ICAgIGZvciAoIGkgPSAwIDsgaSA8IGNtZHMtPm5yX21vZHM7IGkrKyApCisgICAgICAgIHByaW50 aygiQ01ETElORVslZF06JXMgJXNcbiIsIGksCisgICAgICAgICAgICAgICBjbWRzLT5jbWRsaW5l W2ldLmR0X25hbWUsCisgICAgICAgICAgICAgICAmY21kcy0+Y21kbGluZVtpXS5jbWRsaW5lWzBd KTsKKyAgICBwcmludGsoIlxuIik7CiB9CiAKIC8qKgpAQCAtMzQxLDcgKzM4MSw3IEBAIHNpemVf dCBfX2luaXQgYm9vdF9mZHRfaW5mbyhjb25zdCB2b2lkICpmZHQsIHBhZGRyX3QgcGFkZHIpCiAg ICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgcGFuaWMoIk5vIHZhbGlkIGRldmljZSB0cmVlXG4i KTsKIAotICAgIGFkZF9ib290X21vZHVsZShCT09UTU9EX0ZEVCwgcGFkZHIsIGZkdF90b3RhbHNp emUoZmR0KSwgTlVMTCk7CisgICAgYWRkX2Jvb3RfbW9kdWxlKEJPT1RNT0RfRkRULCBwYWRkciwg ZmR0X3RvdGFsc2l6ZShmZHQpKTsKIAogICAgIGRldmljZV90cmVlX2Zvcl9lYWNoX25vZGUoKHZv aWQgKilmZHQsIGVhcmx5X3NjYW5fbm9kZSwgTlVMTCk7CiAgICAgZWFybHlfcHJpbnRfaW5mbygp OwpAQCAtMzYxLDExICs0MDEsMTEgQEAgY29uc3QgY2hhciAqYm9vdF9mZHRfY21kbGluZShjb25z dCB2b2lkICpmZHQpCiAgICAgcHJvcCA9IGZkdF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAieGVu LHhlbi1ib290YXJncyIsIE5VTEwpOwogICAgIGlmICggcHJvcCA9PSBOVUxMICkKICAgICB7Ci0g ICAgICAgIHN0cnVjdCBib290bW9kdWxlICpkb20wX21vZCA9Ci0gICAgICAgICAgICBib290X21v ZHVsZV9maW5kX2J5X2tpbmQoQk9PVE1PRF9LRVJORUwpOworICAgICAgICBzdHJ1Y3QgYm9vdGNt ZGxpbmUgKmRvbTBfY21kbGluZSA9CisgICAgICAgICAgICBib290X2NtZGxpbmVfZmluZF9ieV9r aW5kKEJPT1RNT0RfS0VSTkVMKTsKIAogICAgICAgICBpZiAoZmR0X2dldF9wcm9wZXJ0eShmZHQs IG5vZGUsICJ4ZW4sZG9tMC1ib290YXJncyIsIE5VTEwpIHx8Ci0gICAgICAgICAgICAoIGRvbTBf bW9kICYmIGRvbTBfbW9kLT5jbWRsaW5lWzBdICkgKQorICAgICAgICAgICAgKCBkb20wX2NtZGxp bmUgJiYgZG9tMF9jbWRsaW5lLT5jbWRsaW5lWzBdICkgKQogICAgICAgICAgICAgcHJvcCA9IGZk dF9nZXRfcHJvcGVydHkoZmR0LCBub2RlLCAiYm9vdGFyZ3MiLCBOVUxMKTsKICAgICB9CiAgICAg aWYgKCBwcm9wID09IE5VTEwgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2RvbWFpbl9idWls ZC5jIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCmluZGV4IGY1NTIxNTQuLjY0ZjhkNmIg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYworKysgYi94ZW4vYXJjaC9h cm0vZG9tYWluX2J1aWxkLmMKQEAgLTM3NSw3ICszNzUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCB3 cml0ZV9wcm9wZXJ0aWVzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2lu Zm8sCiAgICAgaW50IHJlcyA9IDA7CiAgICAgaW50IGhhZF9kb20wX2Jvb3RhcmdzID0gMDsKIAot ICAgIGNvbnN0IHN0cnVjdCBib290bW9kdWxlICprZXJuZWwgPSBraW5mby0+a2VybmVsX2Jvb3Rt b2R1bGU7CisgICAgY29uc3Qgc3RydWN0IGJvb3RjbWRsaW5lICprZXJuZWwgPSBib290X2NtZGxp bmVfZmluZF9ieV9raW5kKEJPT1RNT0RfS0VSTkVMKTsKIAogICAgIGlmICgga2VybmVsICYmIGtl cm5lbC0+Y21kbGluZVswXSApCiAgICAgICAgIGJvb3RhcmdzID0gJmtlcm5lbC0+Y21kbGluZVsw XTsKQEAgLTk1Miw5ICs5NTIsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBtYWtlX2Nob3Nlbl9ub2Rl KGNvbnN0IHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8pCiAgICAgaWYgKCByZXMgKQogICAgICAg ICByZXR1cm4gcmVzOwogCi0gICAgaWYgKCBtb2QgJiYgbW9kLT5jbWRsaW5lWzBdICkKKyAgICBp ZiAoIGtpbmZvLT5jbWRsaW5lICYmIGtpbmZvLT5jbWRsaW5lWzBdICkKICAgICB7Ci0gICAgICAg IGJvb3RhcmdzID0gJm1vZC0+Y21kbGluZVswXTsKKyAgICAgICAgYm9vdGFyZ3MgPSAma2luZm8t PmNtZGxpbmVbMF07CiAgICAgICAgIHJlcyA9IGZkdF9wcm9wZXJ0eShmZHQsICJib290YXJncyIs IGJvb3RhcmdzLCBzdHJsZW4oYm9vdGFyZ3MpICsgMSk7CiAgICAgICAgIGlmICggcmVzICkKICAg ICAgICAgICAgcmV0dXJuIHJlczsKQEAgLTIxMDksNiArMjEwOSw3IEBAIHN0YXRpYyB2b2lkIF9f aW5pdCBmaW5kX2dudHRhYl9yZWdpb24oc3RydWN0IGRvbWFpbiAqZCwKIAogaW50IF9faW5pdCBj b25zdHJ1Y3RfZG9tMChzdHJ1Y3QgZG9tYWluICpkKQogeworICAgIGNvbnN0IHN0cnVjdCBib290 Y21kbGluZSAqa2VybmVsID0gYm9vdF9jbWRsaW5lX2ZpbmRfYnlfa2luZChCT09UTU9EX0tFUk5F TCk7CiAgICAgc3RydWN0IGtlcm5lbF9pbmZvIGtpbmZvID0ge307CiAgICAgc3RydWN0IHZjcHUg KnNhdmVkX2N1cnJlbnQ7CiAgICAgaW50IHJjLCBpLCBjcHU7CkBAIC0yMTU0LDYgKzIxNTUsNyBA QCBpbnQgX19pbml0IGNvbnN0cnVjdF9kb20wKHN0cnVjdCBkb21haW4gKmQpCiAKICNlbmRpZgog CisgICAga2luZm8uY21kbGluZSA9IGtlcm5lbCAhPSBOVUxMID8gJmtlcm5lbC0+Y21kbGluZVsw XSA6IE5VTEw7CiAgICAgYWxsb2NhdGVfbWVtb3J5KGQsICZraW5mbyk7CiAgICAgZmluZF9nbnR0 YWJfcmVnaW9uKGQsICZraW5mbyk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS9rZXJuZWwu aCBiL3hlbi9hcmNoL2FybS9rZXJuZWwuaAppbmRleCA0N2VhY2I1Li4zOWI3ODI4IDEwMDY0NAot LS0gYS94ZW4vYXJjaC9hcm0va2VybmVsLmgKKysrIGIveGVuL2FyY2gvYXJtL2tlcm5lbC5oCkBA IC0yOSw2ICsyOSw3IEBAIHN0cnVjdCBrZXJuZWxfaW5mbyB7CiAKICAgICAvKiBib290IGJsb2Ig bG9hZCBhZGRyZXNzZXMgKi8KICAgICBjb25zdCBzdHJ1Y3QgYm9vdG1vZHVsZSAqa2VybmVsX2Jv b3Rtb2R1bGUsICppbml0cmRfYm9vdG1vZHVsZTsKKyAgICBjb25zdCBjaGFyKiBjbWRsaW5lOwog ICAgIHBhZGRyX3QgZHRiX3BhZGRyOwogICAgIHBhZGRyX3QgaW5pdHJkX3BhZGRyOwogCmRpZmYg LS1naXQgYS94ZW4vYXJjaC9hcm0vc2V0dXAuYyBiL3hlbi9hcmNoL2FybS9zZXR1cC5jCmluZGV4 IGVhMjQ5NWEuLmJjN2RkOTcgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9zZXR1cC5jCisrKyBi L3hlbi9hcmNoL2FybS9zZXR1cC5jCkBAIC0yMDEsOCArMjAxLDcgQEAgdm9pZCBfX2luaXQgZHRf dW5yZXNlcnZlZF9yZWdpb25zKHBhZGRyX3QgcywgcGFkZHJfdCBlLAogfQogCiBzdHJ1Y3QgYm9v dG1vZHVsZSBfX2luaXQgKmFkZF9ib290X21vZHVsZShib290bW9kdWxlX2tpbmQga2luZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3Qgc3RhcnQsIHBh ZGRyX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IGNoYXIgKmNtZGxpbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwYWRkcl90IHN0YXJ0LCBwYWRkcl90IHNpemUpCiB7CiAgICAgc3RydWN0IGJvb3Rtb2R1 bGVzICptb2RzID0gJmJvb3RpbmZvLm1vZHVsZXM7CiAgICAgc3RydWN0IGJvb3Rtb2R1bGUgKm1v ZDsKQEAgLTIxOCwxMCArMjE3LDYgQEAgc3RydWN0IGJvb3Rtb2R1bGUgX19pbml0ICphZGRfYm9v dF9tb2R1bGUoYm9vdG1vZHVsZV9raW5kIGtpbmQsCiAgICAgbW9kLT5raW5kID0ga2luZDsKICAg ICBtb2QtPnN0YXJ0ID0gc3RhcnQ7CiAgICAgbW9kLT5zaXplID0gc2l6ZTsKLSAgICBpZiAoIGNt ZGxpbmUgKQotICAgICAgICBzYWZlX3N0cmNweShtb2QtPmNtZGxpbmUsIGNtZGxpbmUpOwotICAg IGVsc2UKLSAgICAgICAgbW9kLT5jbWRsaW5lWzBdID0gMDsKIAogICAgIHJldHVybiBtb2Q7CiB9 CkBAIC0yNDAsNiArMjM1LDIxIEBAIHN0cnVjdCBib290bW9kdWxlICogX19pbml0IGJvb3RfbW9k dWxlX2ZpbmRfYnlfa2luZChib290bW9kdWxlX2tpbmQga2luZCkKICAgICByZXR1cm4gTlVMTDsK IH0KIAorc3RydWN0IGJvb3RjbWRsaW5lICogX19pbml0IGJvb3RfY21kbGluZV9maW5kX2J5X2tp bmQoYm9vdG1vZHVsZV9raW5kIGtpbmQpCit7CisgICAgc3RydWN0IGJvb3RjbWRsaW5lcyAqY21k cyA9ICZib290aW5mby5jbWRsaW5lczsKKyAgICBzdHJ1Y3QgYm9vdGNtZGxpbmUgKmNtZDsKKyAg ICBpbnQgaTsKKworICAgIGZvciAoIGkgPSAwIDsgaSA8IGNtZHMtPm5yX21vZHMgOyBpKysgKQor ICAgIHsKKyAgICAgICAgY21kID0gJmNtZHMtPmNtZGxpbmVbaV07CisgICAgICAgIGlmICggY21k LT5raW5kID09IGtpbmQgKQorICAgICAgICAgICAgcmV0dXJuIGNtZDsKKyAgICB9CisgICAgcmV0 dXJuIE5VTEw7Cit9CisKIGNvbnN0IGNoYXIgKiBfX2luaXQgYm9vdF9tb2R1bGVfa2luZF9hc19z dHJpbmcoYm9vdG1vZHVsZV9raW5kIGtpbmQpCiB7CiAgICAgc3dpdGNoICgga2luZCApCkBAIC03 MjgsNyArNzM4LDcgQEAgdm9pZCBfX2luaXQgc3RhcnRfeGVuKHVuc2lnbmVkIGxvbmcgYm9vdF9w aHlzX29mZnNldCwKICAgICAvKiBSZWdpc3RlciBYZW4ncyBsb2FkIGFkZHJlc3MgYXMgYSBib290 IG1vZHVsZS4gKi8KICAgICB4ZW5fYm9vdG1vZHVsZSA9IGFkZF9ib290X21vZHVsZShCT09UTU9E X1hFTiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhZGRyX3QpKHVpbnRwdHJfdCko X3N0YXJ0ICsgYm9vdF9waHlzX29mZnNldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IChwYWRkcl90KSh1aW50cHRyX3QpKF9lbmQgLSBfc3RhcnQgKyAxKSwgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwYWRkcl90KSh1aW50cHRyX3QpKF9lbmQgLSBfc3RhcnQg KyAxKSk7CiAgICAgQlVHX09OKCF4ZW5fYm9vdG1vZHVsZSk7CiAKICAgICB4ZW5fcGFkZHIgPSBn ZXRfeGVuX3BhZGRyKCk7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmgg Yi94ZW4vaW5jbHVkZS9hc20tYXJtL3NldHVwLmgKaW5kZXggZjFlNGEzZi4uYzJlZDVjYyAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9zZXR1cC5oCisrKyBiL3hlbi9pbmNsdWRlL2Fz bS1hcm0vc2V0dXAuaApAQCAtMzUsNiArMzUsMTMgQEAgc3RydWN0IGJvb3Rtb2R1bGUgewogICAg IGJvb3Rtb2R1bGVfa2luZCBraW5kOwogICAgIHBhZGRyX3Qgc3RhcnQ7CiAgICAgcGFkZHJfdCBz aXplOworfTsKKworLyogRFRfTUFYX05BTUUgaXMgdGhlIG5vZGUgbmFtZSBtYXggbGVuZ3RoIGFj Y29yZGluZyB0aGUgRFQgc3BlYyAqLworI2RlZmluZSBEVF9NQVhfTkFNRSA0MQorc3RydWN0IGJv b3RjbWRsaW5lIHsKKyAgICBib290bW9kdWxlX2tpbmQga2luZDsKKyAgICBjaGFyIGR0X25hbWVb RFRfTUFYX05BTUVdOwogICAgIGNoYXIgY21kbGluZVtCT09UTU9EX01BWF9DTURMSU5FXTsKIH07 CiAKQEAgLTQzLDkgKzUwLDE1IEBAIHN0cnVjdCBib290bW9kdWxlcyB7CiAgICAgc3RydWN0IGJv b3Rtb2R1bGUgbW9kdWxlW01BWF9NT0RVTEVTXTsKIH07CiAKK3N0cnVjdCBib290Y21kbGluZXMg eworICAgIHVuc2lnbmVkIGludCBucl9tb2RzOworICAgIHN0cnVjdCBib290Y21kbGluZSBjbWRs aW5lW01BWF9NT0RVTEVTXTsKK307CisKIHN0cnVjdCBib290aW5mbyB7CiAgICAgc3RydWN0IG1l bWluZm8gbWVtOwogICAgIHN0cnVjdCBib290bW9kdWxlcyBtb2R1bGVzOworICAgIHN0cnVjdCBi b290Y21kbGluZXMgY21kbGluZXM7CiAjaWZkZWYgQ09ORklHX0FDUEkKICAgICBzdHJ1Y3QgbWVt aW5mbyBhY3BpOwogI2VuZGlmCkBAIC03OCw5ICs5MSw5IEBAIHNpemVfdCBfX2luaXQgYm9vdF9m ZHRfaW5mbyhjb25zdCB2b2lkICpmZHQsIHBhZGRyX3QgcGFkZHIpOwogY29uc3QgY2hhciBfX2lu aXQgKmJvb3RfZmR0X2NtZGxpbmUoY29uc3Qgdm9pZCAqZmR0KTsKIAogc3RydWN0IGJvb3Rtb2R1 bGUgKmFkZF9ib290X21vZHVsZShib290bW9kdWxlX2tpbmQga2luZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwgcGFkZHJfdCBzaXplLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpjbWRsaW5lKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBzdGFydCwgcGFkZHJfdCBzaXpl KTsKIHN0cnVjdCBib290bW9kdWxlICpib290X21vZHVsZV9maW5kX2J5X2tpbmQoYm9vdG1vZHVs ZV9raW5kIGtpbmQpOworc3RydWN0IGJvb3RjbWRsaW5lICpib290X2NtZGxpbmVfZmluZF9ieV9r aW5kKGJvb3Rtb2R1bGVfa2luZCBraW5kKTsKIGNvbnN0IGNoYXIgKiBfX2luaXQgYm9vdF9tb2R1 bGVfa2luZF9hc19zdHJpbmcoYm9vdG1vZHVsZV9raW5kIGtpbmQpOwogCiAjZW5kaWYKLS0gCjEu OS4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==