From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v5 09/21] acpi/hvmloader: Replace mem_alloc() and virt_to_phys() with memory ops Date: Thu, 22 Sep 2016 15:13:34 -0400 Message-ID: <1474571626-6694-10-git-send-email-boris.ostrovsky@oracle.com> References: <1474571626-6694-1-git-send-email-boris.ostrovsky@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1474571626-6694-1-git-send-email-boris.ostrovsky@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.xen.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, julien.grall@arm.com, jbeulich@suse.com, zhaoshenglong@huawei.com, Boris Ostrovsky , roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Q29tcG9uZW50cyB0aGF0IHdpc2ggdG8gdXNlIEFDUEkgYnVpbGRlciB3aWxsIG5lZWQgdG8gcHJv dmlkZSB0aGVpciBvd24KbWVtX2FsbG9jKCkgYW5kIHZpcnRfdG9fcGh5cygpIHJvdXRpbmVzLiBQ b2ludGVycyB0byB0aGVzZSByb3V0aW5lcyB3aWxsCmJlIHBhc3NlZCB0byB0aGUgYnVpbGRlciBh cyBtZW1vcnkgb3BzLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ry b3Zza3lAb3JhY2xlLmNvbT4KQWNrZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KLS0tCiB0b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jICAgfCA5NSArKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9h Y3BpL2xpYmFjcGkuaCB8IDEwICsrKy0KIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMg ICAgICAgICB8IDI0ICsrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCsp LCA0NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIv YWNwaS9idWlsZC5jIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvYnVpbGQuYwppbmRl eCA1Mzc5MzNiLi4xZGQ5OTg3IDEwMDY0NAotLS0gYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIv YWNwaS9idWlsZC5jCisrKyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1aWxkLmMK QEAgLTcxLDcgKzcxLDggQEAgc3RhdGljIHZvaWQgc2V0X2NoZWNrc3VtKAogICAgIHBbY2hlY2tz dW1fb2Zmc2V0XSA9IC1zdW07CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9tYWR0ICpjb25z dHJ1Y3RfbWFkdChjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywKK3N0YXRpYyBzdHJ1 Y3QgYWNwaV8yMF9tYWR0ICpjb25zdHJ1Y3RfbWFkdChzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBh Y3BpX2NvbmZpZyAqY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBhY3BpX2luZm8gKmluZm8pCiB7CiAgICAgc3RydWN0IGFjcGlfMjBfbWFk dCAgICAgICAgICAgKm1hZHQ7CkBAIC04Niw3ICs4Nyw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV8y MF9tYWR0ICpjb25zdHJ1Y3RfbWFkdChjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywK ICAgICBzeiArPSBzaXplb2Yoc3RydWN0IGFjcGlfMjBfbWFkdF9pb2FwaWMpOwogICAgIHN6ICs9 IHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9tYWR0X2xhcGljKSAqIGh2bWluZm8tPm5yX3ZjcHVzOwog Ci0gICAgbWFkdCA9IG1lbV9hbGxvYyhzeiwgMTYpOworICAgIG1hZHQgPSBjdHh0LT5tZW1fb3Bz LmFsbG9jKGN0eHQsIHN6LCAxNik7CiAgICAgaWYgKCFtYWR0KSByZXR1cm4gTlVMTDsKIAogICAg IG1lbXNldChtYWR0LCAwLCBzaXplb2YoKm1hZHQpKTsKQEAgLTE2NiwxMSArMTY3LDEyIEBAIHN0 YXRpYyBzdHJ1Y3QgYWNwaV8yMF9tYWR0ICpjb25zdHJ1Y3RfbWFkdChjb25zdCBzdHJ1Y3QgYWNw aV9jb25maWcgKmNvbmZpZywKICAgICByZXR1cm4gbWFkdDsKIH0KIAotc3RhdGljIHN0cnVjdCBh Y3BpXzIwX2hwZXQgKmNvbnN0cnVjdF9ocGV0KHZvaWQpCitzdGF0aWMgc3RydWN0IGFjcGlfMjBf aHBldCAqY29uc3RydWN0X2hwZXQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcg KmNvbmZpZykKIHsKICAgICBzdHJ1Y3QgYWNwaV8yMF9ocGV0ICpocGV0OwogCi0gICAgaHBldCA9 IG1lbV9hbGxvYyhzaXplb2YoKmhwZXQpLCAxNik7CisgICAgaHBldCA9IGN0eHQtPm1lbV9vcHMu YWxsb2MoY3R4dCwgc2l6ZW9mKCpocGV0KSwgMTYpOwogICAgIGlmICghaHBldCkgcmV0dXJuIE5V TEw7CiAKICAgICBtZW1zZXQoaHBldCwgMCwgc2l6ZW9mKCpocGV0KSk7CkBAIC0xODksMTEgKzE5 MSwxMiBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfaHBldCAqY29uc3RydWN0X2hwZXQodm9pZCkK ICAgICByZXR1cm4gaHBldDsKIH0KIAotc3RhdGljIHN0cnVjdCBhY3BpXzIwX3dhZXQgKmNvbnN0 cnVjdF93YWV0KHZvaWQpCitzdGF0aWMgc3RydWN0IGFjcGlfMjBfd2FldCAqY29uc3RydWN0X3dh ZXQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKIHsKICAgICBz dHJ1Y3QgYWNwaV8yMF93YWV0ICp3YWV0OwogCi0gICAgd2FldCA9IG1lbV9hbGxvYyhzaXplb2Yo KndhZXQpLCAxNik7CisgICAgd2FldCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9m KCp3YWV0KSwgMTYpOwogICAgIGlmICghd2FldCkgcmV0dXJuIE5VTEw7CiAKICAgICBtZW1jcHko d2FldCwgJldhZXQsIHNpemVvZigqd2FldCkpOwpAQCAtMjA0LDcgKzIwNyw4IEBAIHN0YXRpYyBz dHJ1Y3QgYWNwaV8yMF93YWV0ICpjb25zdHJ1Y3Rfd2FldCh2b2lkKQogICAgIHJldHVybiB3YWV0 OwogfQogCi1zdGF0aWMgc3RydWN0IGFjcGlfMjBfc3JhdCAqY29uc3RydWN0X3NyYXQoY29uc3Qg c3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCitzdGF0aWMgc3RydWN0IGFjcGlfMjBfc3JhdCAq Y29uc3RydWN0X3NyYXQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZp ZykKIHsKICAgICBzdHJ1Y3QgYWNwaV8yMF9zcmF0ICpzcmF0OwogICAgIHN0cnVjdCBhY3BpXzIw X3NyYXRfcHJvY2Vzc29yICpwcm9jZXNzb3I7CkBAIC0yMTYsNyArMjIwLDcgQEAgc3RhdGljIHN0 cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KGNvbnN0IHN0cnVjdCBhY3BpX2NvbmZp ZyAqY29uZmlnKQogICAgIHNpemUgPSBzaXplb2YoKnNyYXQpICsgc2l6ZW9mKCpwcm9jZXNzb3Ip ICogY29uZmlnLT5odm1pbmZvLT5ucl92Y3B1cyArCiAgICAgICAgICAgIHNpemVvZigqbWVtb3J5 KSAqIGNvbmZpZy0+bnVtYS5ucl92bWVtcmFuZ2VzOwogCi0gICAgcCA9IG1lbV9hbGxvYyhzaXpl LCAxNik7CisgICAgcCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZSwgMTYpOwogICAg IGlmICggIXAgKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMjYyLDcgKzI2Niw4IEBAIHN0 YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zcmF0ICpjb25zdHJ1Y3Rfc3JhdChjb25zdCBzdHJ1Y3QgYWNw aV9jb25maWcgKmNvbmZpZykKICAgICByZXR1cm4gc3JhdDsKIH0KIAotc3RhdGljIHN0cnVjdCBh Y3BpXzIwX3NsaXQgKmNvbnN0cnVjdF9zbGl0KGNvbnN0IHN0cnVjdCBhY3BpX2NvbmZpZyAqY29u ZmlnKQorc3RhdGljIHN0cnVjdCBhY3BpXzIwX3NsaXQgKmNvbnN0cnVjdF9zbGl0KHN0cnVjdCBh Y3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiB7CiAgICAgc3RydWN0IGFjcGlf MjBfc2xpdCAqc2xpdDsKICAgICB1bnNpZ25lZCBpbnQgaSwgbnVtLCBzaXplOwpAQCAtMjcwLDcg KzI3NSw3IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpjb25zdHJ1Y3Rfc2xpdChjb25z dCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKICAgICBudW0gPSBjb25maWctPm51bWEubnJf dm5vZGVzICogY29uZmlnLT5udW1hLm5yX3Zub2RlczsKICAgICBzaXplID0gc2l6ZW9mKCpzbGl0 KSArIG51bSAqIHNpemVvZih1aW50OF90KTsKIAotICAgIHNsaXQgPSBtZW1fYWxsb2Moc2l6ZSwg MTYpOworICAgIHNsaXQgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemUsIDE2KTsKICAg ICBpZiAoICFzbGl0ICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTI5NCw3ICsyOTksOCBA QCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfc2xpdCAqY29uc3RydWN0X3NsaXQoY29uc3Qgc3RydWN0 IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgcmV0dXJuIHNsaXQ7CiB9CiAKLXN0YXRpYyBpbnQg Y29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAor c3RhdGljIGludCBjb25zdHJ1Y3RfcGFzc3Rocm91Z2hfdGFibGVzKHN0cnVjdCBhY3BpX2N0eHQg KmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg bG9uZyAqdGFibGVfcHRycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpbnQgbnJfdGFibGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogewpAQCAtMzE3LDcgKzMyMyw3IEBAIHN0YXRp YyBpbnQgY29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9w dHJzLAogCiAgICAgICAgIGhlYWRlciA9IChzdHJ1Y3QgYWNwaV9oZWFkZXIqKXB0X2FkZHI7CiAK LSAgICAgICAgYnVmZmVyID0gbWVtX2FsbG9jKGhlYWRlci0+bGVuZ3RoLCAxNik7CisgICAgICAg IGJ1ZmZlciA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgaGVhZGVyLT5sZW5ndGgsIDE2KTsK ICAgICAgICAgaWYgKCBidWZmZXIgPT0gTlVMTCApCiAgICAgICAgICAgICBicmVhazsKICAgICAg ICAgbWVtY3B5KGJ1ZmZlciwgaGVhZGVyLCBoZWFkZXItPmxlbmd0aCk7CkBAIC0zMzAsNyArMzM2 LDggQEAgc3RhdGljIGludCBjb25zdHJ1Y3RfcGFzc3Rocm91Z2hfdGFibGVzKHVuc2lnbmVkIGxv bmcgKnRhYmxlX3B0cnMsCiAgICAgcmV0dXJuIG5yX2FkZGVkOwogfQogCi1zdGF0aWMgaW50IGNv bnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0cnMsCitzdGF0 aWMgaW50IGNvbnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgKnRh YmxlX3B0cnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBh Y3BpX2NvbmZpZyAqY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgYWNwaV9pbmZvICppbmZvKQogewpAQCAtMzQ2LDcgKzM1Myw3IEBAIHN0YXRpYyBp bnQgY29uc3RydWN0X3NlY29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywK ICAgICAvKiBNQURULiAqLwogICAgIGlmICggKGNvbmZpZy0+aHZtaW5mby0+bnJfdmNwdXMgPiAx KSB8fCBjb25maWctPmh2bWluZm8tPmFwaWNfbW9kZSApCiAgICAgewotICAgICAgICBtYWR0ID0g Y29uc3RydWN0X21hZHQoY29uZmlnLCBpbmZvKTsKKyAgICAgICAgbWFkdCA9IGNvbnN0cnVjdF9t YWR0KGN0eHQsIGNvbmZpZywgaW5mbyk7CiAgICAgICAgIGlmICghbWFkdCkgcmV0dXJuIC0xOwog ICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBsb25nKW1hZHQ7CiAg ICAgfQpAQCAtMzU0LDcgKzM2MSw3IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0X3NlY29uZGFyeV90 YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKICAgICAvKiBIUEVULiAqLwogICAgIGlm ICggaW5mby0+aHBldF9wcmVzZW50ICkKICAgICB7Ci0gICAgICAgIGhwZXQgPSBjb25zdHJ1Y3Rf aHBldCgpOworICAgICAgICBocGV0ID0gY29uc3RydWN0X2hwZXQoY3R4dCwgY29uZmlnKTsKICAg ICAgICAgaWYgKCFocGV0KSByZXR1cm4gLTE7CiAgICAgICAgIHRhYmxlX3B0cnNbbnJfdGFibGVz KytdID0gKHVuc2lnbmVkIGxvbmcpaHBldDsKICAgICB9CkBAIC0zNjIsNyArMzY5LDcgQEAgc3Rh dGljIGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9w dHJzLAogICAgIC8qIFdBRVQuICovCiAgICAgaWYgKCBjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQ SV9IQVNfV0FFVCApCiAgICAgewotICAgICAgICB3YWV0ID0gY29uc3RydWN0X3dhZXQoKTsKKyAg ICAgICAgd2FldCA9IGNvbnN0cnVjdF93YWV0KGN0eHQsIGNvbmZpZyk7CiAgICAgICAgIGlmICgg IXdhZXQgKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB0YWJsZV9wdHJzW25yX3Rh YmxlcysrXSA9ICh1bnNpZ25lZCBsb25nKXdhZXQ7CkBAIC0zNzAsNyArMzc3LDcgQEAgc3RhdGlj IGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJz LAogCiAgICAgaWYgKCBjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9IQVNfU1NEVF9QTSApCiAg ICAgewotICAgICAgICBzc2R0ID0gbWVtX2FsbG9jKHNpemVvZihzc2R0X3BtKSwgMTYpOworICAg ICAgICBzc2R0ID0gY3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF9wbSksIDE2 KTsKICAgICAgICAgaWYgKCFzc2R0KSByZXR1cm4gLTE7CiAgICAgICAgIG1lbWNweShzc2R0LCBz c2R0X3BtLCBzaXplb2Yoc3NkdF9wbSkpOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysr XSA9ICh1bnNpZ25lZCBsb25nKXNzZHQ7CkBAIC0zNzgsNyArMzg1LDcgQEAgc3RhdGljIGludCBj b25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogCiAg ICAgaWYgKCBjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9IQVNfU1NEVF9TMyApCiAgICAgewot ICAgICAgICBzc2R0ID0gbWVtX2FsbG9jKHNpemVvZihzc2R0X3MzKSwgMTYpOworICAgICAgICBz c2R0ID0gY3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF9zMyksIDE2KTsKICAg ICAgICAgaWYgKCFzc2R0KSByZXR1cm4gLTE7CiAgICAgICAgIG1lbWNweShzc2R0LCBzc2R0X3Mz LCBzaXplb2Yoc3NkdF9zMykpOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1 bnNpZ25lZCBsb25nKXNzZHQ7CkBAIC0zODgsNyArMzk1LDcgQEAgc3RhdGljIGludCBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogCiAgICAgaWYg KCBjb25maWctPnRhYmxlX2ZsYWdzICYgQUNQSV9IQVNfU1NEVF9TNCApCiAgICAgewotICAgICAg ICBzc2R0ID0gbWVtX2FsbG9jKHNpemVvZihzc2R0X3M0KSwgMTYpOworICAgICAgICBzc2R0ID0g Y3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF9zNCksIDE2KTsKICAgICAgICAg aWYgKCFzc2R0KSByZXR1cm4gLTE7CiAgICAgICAgIG1lbWNweShzc2R0LCBzc2R0X3M0LCBzaXpl b2Yoc3NkdF9zNCkpOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25l ZCBsb25nKXNzZHQ7CkBAIC00MDIsMTIgKzQwOSwxMiBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF9z ZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0cnMsCiAgICAgICAgICAoY29u ZmlnLT50aXNfaGRyWzFdID09IHRpc19zaWduYXR1cmVbMV0pICYmCiAgICAgICAgICAoY29uZmln LT50aXNfaGRyWzJdID09IHRpc19zaWduYXR1cmVbMl0pICkKICAgICB7Ci0gICAgICAgIHNzZHQg PSBtZW1fYWxsb2Moc2l6ZW9mKHNzZHRfdHBtKSwgMTYpOworICAgICAgICBzc2R0ID0gY3R4dC0+ bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2Yoc3NkdF90cG0pLCAxNik7CiAgICAgICAgIGlmICgh c3NkdCkgcmV0dXJuIC0xOwogICAgICAgICBtZW1jcHkoc3NkdCwgc3NkdF90cG0sIHNpemVvZihz c2R0X3RwbSkpOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBs b25nKXNzZHQ7CiAKLSAgICAgICAgdGNwYSA9IG1lbV9hbGxvYyhzaXplb2Yoc3RydWN0IGFjcGlf MjBfdGNwYSksIDE2KTsKKyAgICAgICAgdGNwYSA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwg c2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3RjcGEpLCAxNik7CiAgICAgICAgIGlmICghdGNwYSkgcmV0 dXJuIC0xOwogICAgICAgICBtZW1zZXQodGNwYSwgMCwgc2l6ZW9mKCp0Y3BhKSk7CiAgICAgICAg IHRhYmxlX3B0cnNbbnJfdGFibGVzKytdID0gKHVuc2lnbmVkIGxvbmcpdGNwYTsKQEAgLTQyMCw5 ICs0MjcsOSBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVk IGxvbmcgKnRhYmxlX3B0cnMsCiAgICAgICAgIHRjcGEtPmhlYWRlci5vZW1fcmV2aXNpb24gPSBB Q1BJX09FTV9SRVZJU0lPTjsKICAgICAgICAgdGNwYS0+aGVhZGVyLmNyZWF0b3JfaWQgICA9IEFD UElfQ1JFQVRPUl9JRDsKICAgICAgICAgdGNwYS0+aGVhZGVyLmNyZWF0b3JfcmV2aXNpb24gPSBB Q1BJX0NSRUFUT1JfUkVWSVNJT047Ci0gICAgICAgIGlmICggKGxhc2EgPSBtZW1fYWxsb2MoQUNQ SV8yXzBfVENQQV9MQU1MX1NJWkUsIDE2KSkgIT0gTlVMTCApCisgICAgICAgIGlmICggKGxhc2Eg PSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIEFDUElfMl8wX1RDUEFfTEFNTF9TSVpFLCAxNikp ICE9IE5VTEwgKQogICAgICAgICB7Ci0gICAgICAgICAgICB0Y3BhLT5sYXNhID0gdmlydF90b19w aHlzKGxhc2EpOworICAgICAgICAgICAgdGNwYS0+bGFzYSA9IGN0eHQtPm1lbV9vcHMudjJwKGN0 eHQsIGxhc2EpOwogICAgICAgICAgICAgdGNwYS0+bGFtbCA9IEFDUElfMl8wX1RDUEFfTEFNTF9T SVpFOwogICAgICAgICAgICAgbWVtc2V0KGxhc2EsIDAsIHRjcGEtPmxhbWwpOwogICAgICAgICAg ICAgc2V0X2NoZWNrc3VtKHRjcGEsCkBAIC00MzQsOCArNDQxLDggQEAgc3RhdGljIGludCBjb25z dHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogICAgIC8q IFNSQVQgYW5kIFNMSVQgKi8KICAgICBpZiAoIGNvbmZpZy0+bnVtYS5ucl92bm9kZXMgPiAwICkK ICAgICB7Ci0gICAgICAgIHN0cnVjdCBhY3BpXzIwX3NyYXQgKnNyYXQgPSBjb25zdHJ1Y3Rfc3Jh dChjb25maWcpOwotICAgICAgICBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpzbGl0ID0gY29uc3RydWN0 X3NsaXQoY29uZmlnKTsKKyAgICAgICAgc3RydWN0IGFjcGlfMjBfc3JhdCAqc3JhdCA9IGNvbnN0 cnVjdF9zcmF0KGN0eHQsIGNvbmZpZyk7CisgICAgICAgIHN0cnVjdCBhY3BpXzIwX3NsaXQgKnNs aXQgPSBjb25zdHJ1Y3Rfc2xpdChjdHh0LCBjb25maWcpOwogCiAgICAgICAgIGlmICggc3JhdCAp CiAgICAgICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBsb25nKXNy YXQ7CkBAIC00NDgsNyArNDU1LDggQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3Rh Ymxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogICAgIH0KIAogICAgIC8qIExvYWQgYW55 IGFkZGl0aW9uYWwgdGFibGVzIHBhc3NlZCB0aHJvdWdoLiAqLwotICAgIG5yX3RhYmxlcyArPSBj b25zdHJ1Y3RfcGFzc3Rocm91Z2hfdGFibGVzKHRhYmxlX3B0cnMsIG5yX3RhYmxlcywgY29uZmln KTsKKyAgICBucl90YWJsZXMgKz0gY29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyhjdHh0LCB0 YWJsZV9wdHJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5yX3RhYmxlcywgY29uZmlnKTsKIAogICAgIHRhYmxlX3B0cnNbbnJfdGFibGVzXSA9IDA7CiAg ICAgcmV0dXJuIG5yX3RhYmxlczsKQEAgLTQ2MSw3ICs0NjksOCBAQCBzdGF0aWMgaW50IGNvbnN0 cnVjdF9zZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0cnMsCiAgKgogICog UmV0dXJuIDAgaWYgbWVtb3J5IGZhaWx1cmUsICE9IDAgaWYgc3VjY2VzcwogICovCi1zdGF0aWMg aW50IG5ld192bV9naWQoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsCitzdGF0aWMgaW50IG5l d192bV9naWQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg YWNwaV9pbmZvICppbmZvKQogewogICAgIHVpbnQ2NF90ICpidWY7CkBAIC00NzMsMTkgKzQ4Miwx OSBAQCBzdGF0aWMgaW50IG5ld192bV9naWQoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsCiAg ICAgICAgIHJldHVybiAxOwogCiAgICAgLyogY29weSB0byBhbGxvY2F0ZSBCSU9TIG1lbW9yeSAq LwotICAgIGJ1ZiA9IG1lbV9hbGxvYyhzaXplb2YoY29uZmlnLT52bV9naWQpLCA4KTsKKyAgICBi dWYgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihjb25maWctPnZtX2dpZCksIDgp OwogICAgIGlmICggIWJ1ZiApCiAgICAgICAgIHJldHVybiAwOwogICAgIG1lbWNweShidWYsIGNv bmZpZy0+dm1fZ2lkLCBzaXplb2YoY29uZmlnLT52bV9naWQpKTsKIAogICAgIC8qIHNldCB0aGUg YWRkcmVzcyBpbnRvIEFDUEkgdGFibGUgYW5kIGFsc28gcGFzcyBpdCBiYWNrIHRvIHRoZSBjYWxs ZXIgKi8KLSAgICBpbmZvLT52bV9naWRfYWRkciA9IHZpcnRfdG9fcGh5cyhidWYpOworICAgIGlu Zm8tPnZtX2dpZF9hZGRyID0gY3R4dC0+bWVtX29wcy52MnAoY3R4dCwgYnVmKTsKICAgICBjb25m aWctPnZtX2dpZF9hZGRyID0gaW5mby0+dm1fZ2lkX2FkZHI7CiAKICAgICByZXR1cm4gMTsKIH0K IAotdm9pZCBhY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKK3Zv aWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwgc3RydWN0IGFjcGlf Y29uZmlnICpjb25maWcpCiB7CiAgICAgc3RydWN0IGFjcGlfaW5mbyAqYWNwaV9pbmZvOwogICAg IHN0cnVjdCBhY3BpXzIwX3JzZHAgKnJzZHA7CkBAIC01MTYsNyArNTI1LDcgQEAgdm9pZCBhY3Bp X2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKICAgICAgKiBGaWxsIGlu IGhpZ2gtbWVtb3J5IGRhdGEgc3RydWN0dXJlcywgc3RhcnRpbmcgYXQgQGJ1Zi4KICAgICAgKi8K IAotICAgIGZhY3MgPSBtZW1fYWxsb2Moc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX2ZhY3MpLCAxNik7 CisgICAgZmFjcyA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHN0cnVjdCBhY3Bp XzIwX2ZhY3MpLCAxNik7CiAgICAgaWYgKCFmYWNzKSBnb3RvIG9vbTsKICAgICBtZW1jcHkoZmFj cywgJkZhY3MsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWNzKSk7CiAKQEAgLTUzMCwxMyArNTM5 LDEzIEBAIHZvaWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcp CiAgICAgICovCiAgICAgaWYgKCBjb25maWctPmh2bWluZm8tPm5yX3ZjcHVzIDw9IDE1ICYmIGNv bmZpZy0+ZHNkdF8xNWNwdSkKICAgICB7Ci0gICAgICAgIGRzZHQgPSBtZW1fYWxsb2MoY29uZmln LT5kc2R0XzE1Y3B1X2xlbiwgMTYpOworICAgICAgICBkc2R0ID0gY3R4dC0+bWVtX29wcy5hbGxv YyhjdHh0LCBjb25maWctPmRzZHRfMTVjcHVfbGVuLCAxNik7CiAgICAgICAgIGlmICghZHNkdCkg Z290byBvb207CiAgICAgICAgIG1lbWNweShkc2R0LCBjb25maWctPmRzZHRfMTVjcHUsIGNvbmZp Zy0+ZHNkdF8xNWNwdV9sZW4pOwogICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICBkc2R0 ID0gbWVtX2FsbG9jKGNvbmZpZy0+ZHNkdF9hbnljcHVfbGVuLCAxNik7CisgICAgICAgIGRzZHQg PSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIGNvbmZpZy0+ZHNkdF9hbnljcHVfbGVuLCAxNik7 CiAgICAgICAgIGlmICghZHNkdCkgZ290byBvb207CiAgICAgICAgIG1lbWNweShkc2R0LCBjb25m aWctPmRzZHRfYW55Y3B1LCBjb25maWctPmRzZHRfYW55Y3B1X2xlbik7CiAgICAgfQpAQCAtNTQ5 LDcgKzU1OCw3IEBAIHZvaWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpj b25maWcpCiAgICAgICogY29tcGF0aWJsZSByZXZpc2lvbiAxIEZBRFQgdGhhdCBpcyBsaW5rZWQg d2l0aCB0aGUgUlNEVC4gUmVmZXIgdG86CiAgICAgICogICAgIGh0dHA6Ly93d3cuYWNwaS5pbmZv L3ByZXNlbnRhdGlvbnMvUzAxVVNNT0JTMTY5X09TJTIwbmV3LnBwdAogICAgICAqLwotICAgIGZh ZHRfMTAgPSBtZW1fYWxsb2Moc2l6ZW9mKHN0cnVjdCBhY3BpXzEwX2ZhZHQpLCAxNik7CisgICAg ZmFkdF8xMCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzEw X2ZhZHQpLCAxNik7CiAgICAgaWYgKCFmYWR0XzEwKSBnb3RvIG9vbTsKICAgICBtZW1jcHkoZmFk dF8xMCwgJkZhZHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0KSk7CiAgICAgZmFkdF8xMC0+ aGVhZGVyLmxlbmd0aCA9IHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0KTsKQEAgLTU2MCw3ICs1 NjksNyBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmln KQogICAgICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgYWNwaV9oZWFkZXIsIGNoZWNrc3Vt KSwKICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBhY3BpXzEwX2ZhZHQpKTsKIAotICAg IGZhZHQgPSBtZW1fYWxsb2Moc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX2ZhZHQpLCAxNik7CisgICAg ZmFkdCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX2Zh ZHQpLCAxNik7CiAgICAgaWYgKCFmYWR0KSBnb3RvIG9vbTsKICAgICBtZW1jcHkoZmFkdCwgJkZh ZHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWR0KSk7CiAgICAgZmFkdC0+ZHNkdCAgID0gKHVu c2lnbmVkIGxvbmcpZHNkdDsKQEAgLTU3MSwxNCArNTgwLDE0IEBAIHZvaWQgYWNwaV9idWlsZF90 YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgICAgICAgICAgICAgIG9mZnNl dG9mKHN0cnVjdCBhY3BpX2hlYWRlciwgY2hlY2tzdW0pLAogICAgICAgICAgICAgICAgICBzaXpl b2Yoc3RydWN0IGFjcGlfMjBfZmFkdCkpOwogCi0gICAgbnJfc2Vjb25kYXJpZXMgPSBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzZWNvbmRhcnlfdGFibGVzLAorICAgIG5yX3NlY29uZGFyaWVz ID0gY29uc3RydWN0X3NlY29uZGFyeV90YWJsZXMoY3R4dCwgc2Vjb25kYXJ5X3RhYmxlcywKICAg ICAgICAgICAgICAgICAgY29uZmlnLCBhY3BpX2luZm8pOwogICAgIGlmICggbnJfc2Vjb25kYXJp ZXMgPCAwICkKICAgICAgICAgZ290byBvb207CiAKLSAgICB4c2R0ID0gbWVtX2FsbG9jKHNpemVv ZihzdHJ1Y3QgYWNwaV8yMF94c2R0KSsKLSAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50 NjRfdCkqbnJfc2Vjb25kYXJpZXMsCi0gICAgICAgICAgICAgICAgICAgICAxNik7CisgICAgeHNk dCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3hzZHQp ICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVpbnQ2NF90KSAqIG5y X3NlY29uZGFyaWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE2KTsKICAgICBp ZiAoIXhzZHQpIGdvdG8gb29tOwogICAgIG1lbWNweSh4c2R0LCAmWHNkdCwgc2l6ZW9mKHN0cnVj dCBhY3BpX2hlYWRlcikpOwogICAgIHhzZHQtPmVudHJ5WzBdID0gKHVuc2lnbmVkIGxvbmcpZmFk dDsKQEAgLTU4OSw5ICs1OTgsOSBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3Bp X2NvbmZpZyAqY29uZmlnKQogICAgICAgICAgICAgICAgICBvZmZzZXRvZihzdHJ1Y3QgYWNwaV9o ZWFkZXIsIGNoZWNrc3VtKSwKICAgICAgICAgICAgICAgICAgeHNkdC0+aGVhZGVyLmxlbmd0aCk7 CiAKLSAgICByc2R0ID0gbWVtX2FsbG9jKHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9yc2R0KSsKLSAg ICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50MzJfdCkqbnJfc2Vjb25kYXJpZXMsCi0gICAg ICAgICAgICAgICAgICAgICAxNik7CisgICAgcnNkdCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4 dCwgc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3JzZHQpICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplb2YodWludDMyX3QpICogbnJfc2Vjb25kYXJpZXMsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMTYpOwogICAgIGlmICghcnNkdCkgZ290byBvb207CiAgICAgbWVt Y3B5KHJzZHQsICZSc2R0LCBzaXplb2Yoc3RydWN0IGFjcGlfaGVhZGVyKSk7CiAgICAgcnNkdC0+ ZW50cnlbMF0gPSAodW5zaWduZWQgbG9uZylmYWR0XzEwOwpAQCAtNjE3LDcgKzYyNiw3IEBAIHZv aWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgICAg ICAgICAgICAgIG9mZnNldG9mKHN0cnVjdCBhY3BpXzIwX3JzZHAsIGV4dGVuZGVkX2NoZWNrc3Vt KSwKICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3JzZHApKTsKIAotICAg IGlmICggIW5ld192bV9naWQoY29uZmlnLCBhY3BpX2luZm8pICkKKyAgICBpZiAoICFuZXdfdm1f Z2lkKGN0eHQsIGNvbmZpZywgYWNwaV9pbmZvKSApCiAgICAgICAgIGdvdG8gb29tOwogCiAgICAg cmV0dXJuOwpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGliYWNw aS5oIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGliYWNwaS5oCmluZGV4IGI0MTFh NmUuLjM1YjZmNDcgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2xp YmFjcGkuaAorKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9saWJhY3BpLmgKQEAg LTQwLDYgKzQwLDE0IEBAIHN0cnVjdCBhY3BpX251bWEgewogICAgIGNvbnN0IHN0cnVjdCB4ZW5f dm1lbXJhbmdlICp2bWVtcmFuZ2U7CiB9OwogCitzdHJ1Y3QgYWNwaV9jdHh0IHsKKyAgICBzdHJ1 Y3QgYWNwaV9tZW1fb3BzIHsKKyAgICAgICAgdm9pZCAqKCphbGxvYykoc3RydWN0IGFjcGlfY3R4 dCAqY3R4dCwgdWludDMyX3Qgc2l6ZSwgdWludDMyX3QgYWxpZ24pOworICAgICAgICB2b2lkICgq ZnJlZSkoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwgdm9pZCAqdiwgdWludDMyX3Qgc2l6ZSk7Cisg ICAgICAgIHVuc2lnbmVkIGxvbmcgKCp2MnApKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHZvaWQg KnYpOworICAgIH0gbWVtX29wczsKK307CisKIHN0cnVjdCBhY3BpX2NvbmZpZyB7CiAgICAgY29u c3QgdW5zaWduZWQgY2hhciAqZHNkdF9hbnljcHU7CiAgICAgdW5zaWduZWQgaW50IGRzZHRfYW55 Y3B1X2xlbjsKQEAgLTc2LDcgKzg0LDcgQEAgc3RydWN0IGFjcGlfY29uZmlnIHsKICAgICB1bnNp Z25lZCBpbnQgcnNkcDsKIH07CiAKLXZvaWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlf Y29uZmlnICpjb25maWcpOwordm9pZCBhY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0 ICpjdHh0LCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZyk7CiAKICNlbmRpZiAvKiBfX0xJQkFD UElfSF9fICovCiAKZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMg Yi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jCmluZGV4IGIzNDU1NzYuLjNhNDIzYWIg MTAwNjQ0Ci0tLSBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci91dGlsLmMKKysrIGIvdG9vbHMv ZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYwpAQCAtODY2LDEwICs4NjYsMjggQEAgc3RhdGljIHVp bnQ4X3QgYmF0dGVyeV9wb3J0X2V4aXN0cyh2b2lkKQogICAgIHJldHVybiAoaW5iKDB4ODgpID09 IDB4MUYpOwogfQogCitzdGF0aWMgdW5zaWduZWQgbG9uZyBhY3BpX3YycChzdHJ1Y3QgYWNwaV9j dHh0ICpjdHh0LCB2b2lkICp2KQoreworICAgIHJldHVybiB2aXJ0X3RvX3BoeXModik7Cit9CisK K3N0YXRpYyB2b2lkICphY3BpX21lbV9hbGxvYyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IHNpemUsIHVpbnQzMl90IGFsaWduKQor eworICAgIHJldHVybiBtZW1fYWxsb2Moc2l6ZSwgYWxpZ24pOworfQorCitzdGF0aWMgdm9pZCBh Y3BpX21lbV9mcmVlKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKnYsIHVpbnQzMl90IHNpemUpCit7CisgICAgLyogQUNQSSBidWlsZGVyIGN1 cnJlbnRseSBkb2Vzbid0IGZyZWUgbWVtb3J5IHNvIHRoaXMgaXMganVzdCBhIHN0dWIgKi8KK30K Kwogdm9pZCBodm1sb2FkZXJfYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpj b25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgcGh5 c2ljYWwpCiB7CiAgICAgY29uc3QgY2hhciAqczsKKyAgICBzdHJ1Y3QgYWNwaV9jdHh0IGN0eHQ7 CiAKICAgICAvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGlzZSB0aGUgYWNwaSBpbmZvIGFyZWEuICov CiAgICAgbWVtX2hvbGVfcG9wdWxhdGVfcmFtKEFDUElfSU5GT19QSFlTSUNBTF9BRERSRVNTID4+ IFBBR0VfU0hJRlQsIDEpOwpAQCAtOTM0LDcgKzk1MiwxMSBAQCB2b2lkIGh2bWxvYWRlcl9hY3Bp X2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywKICAgICBjb25maWctPnJz ZHAgPSBwaHlzaWNhbDsKICAgICBjb25maWctPmluZm9wID0gQUNQSV9JTkZPX1BIWVNJQ0FMX0FE RFJFU1M7CiAKLSAgICBhY3BpX2J1aWxkX3RhYmxlcyhjb25maWcpOworICAgIGN0eHQubWVtX29w cy5hbGxvYyA9IGFjcGlfbWVtX2FsbG9jOworICAgIGN0eHQubWVtX29wcy5mcmVlID0gYWNwaV9t ZW1fZnJlZTsKKyAgICBjdHh0Lm1lbV9vcHMudjJwID0gYWNwaV92MnA7CisKKyAgICBhY3BpX2J1 aWxkX3RhYmxlcygmY3R4dCwgY29uZmlnKTsKIAogICAgIGh2bV9wYXJhbV9zZXQoSFZNX1BBUkFN X1ZNX0dFTkVSQVRJT05fSURfQUREUiwgY29uZmlnLT52bV9naWRfYWRkcik7CiB9Ci0tIAoxLjgu My4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwczovL2xpc3Rz Lnhlbi5vcmcveGVuLWRldmVsCg==