From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Ostrovsky Subject: [PATCH v3 06/19] acpi/hvmloader: Replace mem_alloc() and virt_to_phys() with memory ops Date: Wed, 7 Sep 2016 14:59:16 -0400 Message-ID: <1473274769-19129-7-git-send-email-boris.ostrovsky@oracle.com> References: <1473274769-19129-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: <1473274769-19129-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@oracle.com, roger.pau@citrix.com List-Id: xen-devel@lists.xenproject.org Q29tcG9uZW50cyB0aGF0IHdpc2ggdG8gdXNlIEFDUEkgYnVpbGRlciB3aWxsIG5lZWQgdG8gcHJv dmlkZSB0aGVpciBvd24KbWVtX2FsbG9jKCkgYW5kIHZpcnRfdG9fcGh5cygpIHJvdXRpbmVzLiBQ b2ludGVycyB0byB0aGVzZSByb3V0aW5lcyB3aWxsCmJlIHBhc3NlZCB0byB0aGUgYnVpbGRlciBh cyBtZW1vcnkgb3BzLgoKU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0cm92c2t5IDxib3Jpcy5vc3Ry b3Zza3lAb3JhY2xlLmNvbT4KLS0tCkNoYW5nZXMgaW4gdjM6CiogQ29uc3RpZmllZCBtb3JlIGZ1 bmN0aW9uIGNhbGwgcGFyYW1ldGVycwoqIEFkZGVkIGEgZnJlZSgpIG5vcCBob29rIGluIHV0aWwu YwoKIHRvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1aWxkLmMgICB8IDk1ICsrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQogdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkv bGliYWNwaS5oIHwgMTAgKysrLQogdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYyAgICAg ICAgIHwgMjMgKysrKysrKy0KIDMgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgNDUg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkv YnVpbGQuYyBiL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2J1aWxkLmMKaW5kZXggMWVh MTQ2Zi4uOWM0YTBhMCAxMDA2NDQKLS0tIGEvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkv YnVpbGQuYworKysgYi90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9idWlsZC5jCkBAIC03 MCw3ICs3MCw4IEBAIHN0YXRpYyB2b2lkIHNldF9jaGVja3N1bSgKICAgICBwW2NoZWNrc3VtX29m ZnNldF0gPSAtc3VtOwogfQogCi1zdGF0aWMgc3RydWN0IGFjcGlfMjBfbWFkdCAqY29uc3RydWN0 X21hZHQoY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsCitzdGF0aWMgc3RydWN0IGFj cGlfMjBfbWFkdCAqY29uc3RydWN0X21hZHQoc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9j b25maWcgKmNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgYWNwaV9pbmZvICppbmZvKQogewogICAgIHN0cnVjdCBhY3BpXzIwX21hZHQgICAg ICAgICAgICptYWR0OwpAQCAtODUsNyArODYsNyBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfbWFk dCAqY29uc3RydWN0X21hZHQoY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcsCiAgICAg c3ogKz0gc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX21hZHRfaW9hcGljKTsKICAgICBzeiArPSBzaXpl b2Yoc3RydWN0IGFjcGlfMjBfbWFkdF9sYXBpYykgKiBodm1pbmZvLT5ucl92Y3B1czsKIAotICAg IG1hZHQgPSBtZW1fYWxsb2Moc3osIDE2KTsKKyAgICBtYWR0ID0gY3R4dC0+bWVtX29wcy5hbGxv YyhjdHh0LCBzeiwgMTYpOwogICAgIGlmICghbWFkdCkgcmV0dXJuIE5VTEw7CiAKICAgICBtZW1z ZXQobWFkdCwgMCwgc2l6ZW9mKCptYWR0KSk7CkBAIC0xNjUsMTEgKzE2NiwxMiBAQCBzdGF0aWMg c3RydWN0IGFjcGlfMjBfbWFkdCAqY29uc3RydWN0X21hZHQoY29uc3Qgc3RydWN0IGFjcGlfY29u ZmlnICpjb25maWcsCiAgICAgcmV0dXJuIG1hZHQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8y MF9ocGV0ICpjb25zdHJ1Y3RfaHBldCh2b2lkKQorc3RhdGljIHN0cnVjdCBhY3BpXzIwX2hwZXQg KmNvbnN0cnVjdF9ocGV0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25m aWcpCiB7CiAgICAgc3RydWN0IGFjcGlfMjBfaHBldCAqaHBldDsKIAotICAgIGhwZXQgPSBtZW1f YWxsb2Moc2l6ZW9mKCpocGV0KSwgMTYpOworICAgIGhwZXQgPSBjdHh0LT5tZW1fb3BzLmFsbG9j KGN0eHQsIHNpemVvZigqaHBldCksIDE2KTsKICAgICBpZiAoIWhwZXQpIHJldHVybiBOVUxMOwog CiAgICAgbWVtc2V0KGhwZXQsIDAsIHNpemVvZigqaHBldCkpOwpAQCAtMTg4LDExICsxOTAsMTIg QEAgc3RhdGljIHN0cnVjdCBhY3BpXzIwX2hwZXQgKmNvbnN0cnVjdF9ocGV0KHZvaWQpCiAgICAg cmV0dXJuIGhwZXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8yMF93YWV0ICpjb25zdHJ1Y3Rf d2FldCh2b2lkKQorc3RhdGljIHN0cnVjdCBhY3BpXzIwX3dhZXQgKmNvbnN0cnVjdF93YWV0KHN0 cnVjdCBhY3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiB7CiAgICAgc3RydWN0 IGFjcGlfMjBfd2FldCAqd2FldDsKIAotICAgIHdhZXQgPSBtZW1fYWxsb2Moc2l6ZW9mKCp3YWV0 KSwgMTYpOworICAgIHdhZXQgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZigqd2Fl dCksIDE2KTsKICAgICBpZiAoIXdhZXQpIHJldHVybiBOVUxMOwogCiAgICAgbWVtY3B5KHdhZXQs ICZXYWV0LCBzaXplb2YoKndhZXQpKTsKQEAgLTIwMyw3ICsyMDYsOCBAQCBzdGF0aWMgc3RydWN0 IGFjcGlfMjBfd2FldCAqY29uc3RydWN0X3dhZXQodm9pZCkKICAgICByZXR1cm4gd2FldDsKIH0K IAotc3RhdGljIHN0cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0cnVjdF9zcmF0KGNvbnN0IHN0cnVj dCBhY3BpX2NvbmZpZyAqY29uZmlnKQorc3RhdGljIHN0cnVjdCBhY3BpXzIwX3NyYXQgKmNvbnN0 cnVjdF9zcmF0KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiB7 CiAgICAgc3RydWN0IGFjcGlfMjBfc3JhdCAqc3JhdDsKICAgICBzdHJ1Y3QgYWNwaV8yMF9zcmF0 X3Byb2Nlc3NvciAqcHJvY2Vzc29yOwpAQCAtMjE1LDcgKzIxOSw3IEBAIHN0YXRpYyBzdHJ1Y3Qg YWNwaV8yMF9zcmF0ICpjb25zdHJ1Y3Rfc3JhdChjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNv bmZpZykKICAgICBzaXplID0gc2l6ZW9mKCpzcmF0KSArIHNpemVvZigqcHJvY2Vzc29yKSAqIGNv bmZpZy0+aHZtaW5mby0+bnJfdmNwdXMgKwogICAgICAgICAgICBzaXplb2YoKm1lbW9yeSkgKiBj b25maWctPm51bWEubnJfdm1lbXJhbmdlczsKIAotICAgIHAgPSBtZW1fYWxsb2Moc2l6ZSwgMTYp OworICAgIHAgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemUsIDE2KTsKICAgICBpZiAo ICFwICkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTI2MSw3ICsyNjUsOCBAQCBzdGF0aWMg c3RydWN0IGFjcGlfMjBfc3JhdCAqY29uc3RydWN0X3NyYXQoY29uc3Qgc3RydWN0IGFjcGlfY29u ZmlnICpjb25maWcpCiAgICAgcmV0dXJuIHNyYXQ7CiB9CiAKLXN0YXRpYyBzdHJ1Y3QgYWNwaV8y MF9zbGl0ICpjb25zdHJ1Y3Rfc2xpdChjb25zdCBzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykK K3N0YXRpYyBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpjb25zdHJ1Y3Rfc2xpdChzdHJ1Y3QgYWNwaV9j dHh0ICpjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpXzIwX3Ns aXQgKnNsaXQ7CiAgICAgdW5zaWduZWQgaW50IGksIG51bSwgc2l6ZTsKQEAgLTI2OSw3ICsyNzQs NyBAQCBzdGF0aWMgc3RydWN0IGFjcGlfMjBfc2xpdCAqY29uc3RydWN0X3NsaXQoY29uc3Qgc3Ry dWN0IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgbnVtID0gY29uZmlnLT5udW1hLm5yX3Zub2Rl cyAqIGNvbmZpZy0+bnVtYS5ucl92bm9kZXM7CiAgICAgc2l6ZSA9IHNpemVvZigqc2xpdCkgKyBu dW0gKiBzaXplb2YodWludDhfdCk7CiAKLSAgICBzbGl0ID0gbWVtX2FsbG9jKHNpemUsIDE2KTsK KyAgICBzbGl0ID0gY3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplLCAxNik7CiAgICAgaWYg KCAhc2xpdCApCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0yOTMsNyArMjk4LDggQEAgc3Rh dGljIHN0cnVjdCBhY3BpXzIwX3NsaXQgKmNvbnN0cnVjdF9zbGl0KGNvbnN0IHN0cnVjdCBhY3Bp X2NvbmZpZyAqY29uZmlnKQogICAgIHJldHVybiBzbGl0OwogfQogCi1zdGF0aWMgaW50IGNvbnN0 cnVjdF9wYXNzdGhyb3VnaF90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKK3N0YXRp YyBpbnQgY29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcg KnRhYmxlX3B0cnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 IG5yX3RhYmxlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKIHsKQEAgLTMxNiw3ICszMjIsNyBAQCBzdGF0aWMgaW50 IGNvbnN0cnVjdF9wYXNzdGhyb3VnaF90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywK IAogICAgICAgICBoZWFkZXIgPSAoc3RydWN0IGFjcGlfaGVhZGVyKilwdF9hZGRyOwogCi0gICAg ICAgIGJ1ZmZlciA9IG1lbV9hbGxvYyhoZWFkZXItPmxlbmd0aCwgMTYpOworICAgICAgICBidWZm ZXIgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIGhlYWRlci0+bGVuZ3RoLCAxNik7CiAgICAg ICAgIGlmICggYnVmZmVyID09IE5VTEwgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIG1l bWNweShidWZmZXIsIGhlYWRlciwgaGVhZGVyLT5sZW5ndGgpOwpAQCAtMzI5LDcgKzMzNSw4IEBA IHN0YXRpYyBpbnQgY29uc3RydWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyh1bnNpZ25lZCBsb25nICp0 YWJsZV9wdHJzLAogICAgIHJldHVybiBucl9hZGRlZDsKIH0KIAotc3RhdGljIGludCBjb25zdHJ1 Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAorc3RhdGljIGlu dCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyhzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICp0YWJsZV9w dHJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWNwaV9j b25maWcgKmNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IGFjcGlfaW5mbyAqaW5mbykKIHsKQEAgLTM0NSw3ICszNTIsNyBAQCBzdGF0aWMgaW50IGNv bnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0cnMsCiAgICAg LyogTUFEVC4gKi8KICAgICBpZiAoIChjb25maWctPmh2bWluZm8tPm5yX3ZjcHVzID4gMSkgfHwg Y29uZmlnLT5odm1pbmZvLT5hcGljX21vZGUgKQogICAgIHsKLSAgICAgICAgbWFkdCA9IGNvbnN0 cnVjdF9tYWR0KGNvbmZpZywgaW5mbyk7CisgICAgICAgIG1hZHQgPSBjb25zdHJ1Y3RfbWFkdChj dHh0LCBjb25maWcsIGluZm8pOwogICAgICAgICBpZiAoIW1hZHQpIHJldHVybiAtMTsKICAgICAg ICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9uZyltYWR0OwogICAgIH0K QEAgLTM1Myw3ICszNjAsNyBAQCBzdGF0aWMgaW50IGNvbnN0cnVjdF9zZWNvbmRhcnlfdGFibGVz KHVuc2lnbmVkIGxvbmcgKnRhYmxlX3B0cnMsCiAgICAgLyogSFBFVC4gKi8KICAgICBpZiAoIGlu Zm8tPmhwZXRfcHJlc2VudCApCiAgICAgewotICAgICAgICBocGV0ID0gY29uc3RydWN0X2hwZXQo KTsKKyAgICAgICAgaHBldCA9IGNvbnN0cnVjdF9ocGV0KGN0eHQsIGNvbmZpZyk7CiAgICAgICAg IGlmICghaHBldCkgcmV0dXJuIC0xOwogICAgICAgICB0YWJsZV9wdHJzW25yX3RhYmxlcysrXSA9 ICh1bnNpZ25lZCBsb25nKWhwZXQ7CiAgICAgfQpAQCAtMzYxLDcgKzM2OCw3IEBAIHN0YXRpYyBp bnQgY29uc3RydWN0X3NlY29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywK ICAgICAvKiBXQUVULiAqLwogICAgIGlmICggY29uZmlnLT50YWJsZV9mbGFncyAmIEFDUElfSEFT X1dBRVQgKQogICAgIHsKLSAgICAgICAgd2FldCA9IGNvbnN0cnVjdF93YWV0KCk7CisgICAgICAg IHdhZXQgPSBjb25zdHJ1Y3Rfd2FldChjdHh0LCBjb25maWcpOwogICAgICAgICBpZiAoICF3YWV0 ICkKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMr K10gPSAodW5zaWduZWQgbG9uZyl3YWV0OwpAQCAtMzY5LDcgKzM3Niw3IEBAIHN0YXRpYyBpbnQg Y29uc3RydWN0X3NlY29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKIAog ICAgIGlmICggY29uZmlnLT50YWJsZV9mbGFncyAmIEFDUElfSEFTX1NTRFRfUE0gKQogICAgIHsK LSAgICAgICAgc3NkdCA9IG1lbV9hbGxvYyhzaXplb2Yoc3NkdF9wbSksIDE2KTsKKyAgICAgICAg c3NkdCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHNzZHRfcG0pLCAxNik7CiAg ICAgICAgIGlmICghc3NkdCkgcmV0dXJuIC0xOwogICAgICAgICBtZW1jcHkoc3NkdCwgc3NkdF9w bSwgc2l6ZW9mKHNzZHRfcG0pKTsKICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAo dW5zaWduZWQgbG9uZylzc2R0OwpAQCAtMzc3LDcgKzM4NCw3IEBAIHN0YXRpYyBpbnQgY29uc3Ry dWN0X3NlY29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKIAogICAgIGlm ICggY29uZmlnLT50YWJsZV9mbGFncyAmIEFDUElfSEFTX1NTRFRfUzMgKQogICAgIHsKLSAgICAg ICAgc3NkdCA9IG1lbV9hbGxvYyhzaXplb2Yoc3NkdF9zMyksIDE2KTsKKyAgICAgICAgc3NkdCA9 IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHNzZHRfczMpLCAxNik7CiAgICAgICAg IGlmICghc3NkdCkgcmV0dXJuIC0xOwogICAgICAgICBtZW1jcHkoc3NkdCwgc3NkdF9zMywgc2l6 ZW9mKHNzZHRfczMpKTsKICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWdu ZWQgbG9uZylzc2R0OwpAQCAtMzg3LDcgKzM5NCw3IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0X3Nl Y29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKIAogICAgIGlmICggY29u ZmlnLT50YWJsZV9mbGFncyAmIEFDUElfSEFTX1NTRFRfUzQgKQogICAgIHsKLSAgICAgICAgc3Nk dCA9IG1lbV9hbGxvYyhzaXplb2Yoc3NkdF9zNCksIDE2KTsKKyAgICAgICAgc3NkdCA9IGN0eHQt Pm1lbV9vcHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHNzZHRfczQpLCAxNik7CiAgICAgICAgIGlmICgh c3NkdCkgcmV0dXJuIC0xOwogICAgICAgICBtZW1jcHkoc3NkdCwgc3NkdF9zNCwgc2l6ZW9mKHNz ZHRfczQpKTsKICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9u Zylzc2R0OwpAQCAtNDAxLDEyICs0MDgsMTIgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfc2Vjb25k YXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogICAgICAgICAgKGNvbmZpZy0+ dGlzX2hkclsxXSA9PSB0aXNfc2lnbmF0dXJlWzFdKSAmJgogICAgICAgICAgKGNvbmZpZy0+dGlz X2hkclsyXSA9PSB0aXNfc2lnbmF0dXJlWzJdKSApCiAgICAgewotICAgICAgICBzc2R0ID0gbWVt X2FsbG9jKHNpemVvZihzc2R0X3RwbSksIDE2KTsKKyAgICAgICAgc3NkdCA9IGN0eHQtPm1lbV9v cHMuYWxsb2MoY3R4dCwgc2l6ZW9mKHNzZHRfdHBtKSwgMTYpOwogICAgICAgICBpZiAoIXNzZHQp IHJldHVybiAtMTsKICAgICAgICAgbWVtY3B5KHNzZHQsIHNzZHRfdHBtLCBzaXplb2Yoc3NkdF90 cG0pKTsKICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9uZylz c2R0OwogCi0gICAgICAgIHRjcGEgPSBtZW1fYWxsb2Moc2l6ZW9mKHN0cnVjdCBhY3BpXzIwX3Rj cGEpLCAxNik7CisgICAgICAgIHRjcGEgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVv ZihzdHJ1Y3QgYWNwaV8yMF90Y3BhKSwgMTYpOwogICAgICAgICBpZiAoIXRjcGEpIHJldHVybiAt MTsKICAgICAgICAgbWVtc2V0KHRjcGEsIDAsIHNpemVvZigqdGNwYSkpOwogICAgICAgICB0YWJs ZV9wdHJzW25yX3RhYmxlcysrXSA9ICh1bnNpZ25lZCBsb25nKXRjcGE7CkBAIC00MTksOSArNDI2 LDkgQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rfc2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25n ICp0YWJsZV9wdHJzLAogICAgICAgICB0Y3BhLT5oZWFkZXIub2VtX3JldmlzaW9uID0gQUNQSV9P RU1fUkVWSVNJT047CiAgICAgICAgIHRjcGEtPmhlYWRlci5jcmVhdG9yX2lkICAgPSBBQ1BJX0NS RUFUT1JfSUQ7CiAgICAgICAgIHRjcGEtPmhlYWRlci5jcmVhdG9yX3JldmlzaW9uID0gQUNQSV9D UkVBVE9SX1JFVklTSU9OOwotICAgICAgICBpZiAoIChsYXNhID0gbWVtX2FsbG9jKEFDUElfMl8w X1RDUEFfTEFNTF9TSVpFLCAxNikpICE9IE5VTEwgKQorICAgICAgICBpZiAoIChsYXNhID0gY3R4 dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBBQ1BJXzJfMF9UQ1BBX0xBTUxfU0laRSwgMTYpKSAhPSBO VUxMICkKICAgICAgICAgewotICAgICAgICAgICAgdGNwYS0+bGFzYSA9IHZpcnRfdG9fcGh5cyhs YXNhKTsKKyAgICAgICAgICAgIHRjcGEtPmxhc2EgPSBjdHh0LT5tZW1fb3BzLnYycChjdHh0LCBs YXNhKTsKICAgICAgICAgICAgIHRjcGEtPmxhbWwgPSBBQ1BJXzJfMF9UQ1BBX0xBTUxfU0laRTsK ICAgICAgICAgICAgIG1lbXNldChsYXNhLCAwLCB0Y3BhLT5sYW1sKTsKICAgICAgICAgICAgIHNl dF9jaGVja3N1bSh0Y3BhLApAQCAtNDMzLDggKzQ0MCw4IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0 X3NlY29uZGFyeV90YWJsZXModW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKICAgICAvKiBTUkFU IGFuZCBTTElUICovCiAgICAgaWYgKCBjb25maWctPm51bWEubnJfdm5vZGVzID4gMCApCiAgICAg ewotICAgICAgICBzdHJ1Y3QgYWNwaV8yMF9zcmF0ICpzcmF0ID0gY29uc3RydWN0X3NyYXQoY29u ZmlnKTsKLSAgICAgICAgc3RydWN0IGFjcGlfMjBfc2xpdCAqc2xpdCA9IGNvbnN0cnVjdF9zbGl0 KGNvbmZpZyk7CisgICAgICAgIHN0cnVjdCBhY3BpXzIwX3NyYXQgKnNyYXQgPSBjb25zdHJ1Y3Rf c3JhdChjdHh0LCBjb25maWcpOworICAgICAgICBzdHJ1Y3QgYWNwaV8yMF9zbGl0ICpzbGl0ID0g Y29uc3RydWN0X3NsaXQoY3R4dCwgY29uZmlnKTsKIAogICAgICAgICBpZiAoIHNyYXQgKQogICAg ICAgICAgICAgdGFibGVfcHRyc1tucl90YWJsZXMrK10gPSAodW5zaWduZWQgbG9uZylzcmF0OwpA QCAtNDQ3LDcgKzQ1NCw4IEBAIHN0YXRpYyBpbnQgY29uc3RydWN0X3NlY29uZGFyeV90YWJsZXMo dW5zaWduZWQgbG9uZyAqdGFibGVfcHRycywKICAgICB9CiAKICAgICAvKiBMb2FkIGFueSBhZGRp dGlvbmFsIHRhYmxlcyBwYXNzZWQgdGhyb3VnaC4gKi8KLSAgICBucl90YWJsZXMgKz0gY29uc3Ry dWN0X3Bhc3N0aHJvdWdoX3RhYmxlcyh0YWJsZV9wdHJzLCBucl90YWJsZXMsIGNvbmZpZyk7Cisg ICAgbnJfdGFibGVzICs9IGNvbnN0cnVjdF9wYXNzdGhyb3VnaF90YWJsZXMoY3R4dCwgdGFibGVf cHRycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucl90 YWJsZXMsIGNvbmZpZyk7CiAKICAgICB0YWJsZV9wdHJzW25yX3RhYmxlc10gPSAwOwogICAgIHJl dHVybiBucl90YWJsZXM7CkBAIC00NjAsNyArNDY4LDggQEAgc3RhdGljIGludCBjb25zdHJ1Y3Rf c2Vjb25kYXJ5X3RhYmxlcyh1bnNpZ25lZCBsb25nICp0YWJsZV9wdHJzLAogICoKICAqIFJldHVy biAwIGlmIG1lbW9yeSBmYWlsdXJlLCAhPSAwIGlmIHN1Y2Nlc3MKICAqLwotc3RhdGljIGludCBu ZXdfdm1fZ2lkKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLAorc3RhdGljIGludCBuZXdfdm1f Z2lkKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGFjcGlfY29uZmlnICpjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFjcGlf aW5mbyAqaW5mbykKIHsKICAgICB1aW50NjRfdCAqYnVmOwpAQCAtNDcyLDE5ICs0ODEsMTkgQEAg c3RhdGljIGludCBuZXdfdm1fZ2lkKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnLAogICAgICAg ICByZXR1cm4gMTsKIAogICAgIC8qIGNvcHkgdG8gYWxsb2NhdGUgQklPUyBtZW1vcnkgKi8KLSAg ICBidWYgPSBtZW1fYWxsb2Moc2l6ZW9mKGNvbmZpZy0+dm1fZ2lkKSwgOCk7CisgICAgYnVmID0g Y3R4dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBzaXplb2YoY29uZmlnLT52bV9naWQpLCA4KTsKICAg ICBpZiAoICFidWYgKQogICAgICAgICByZXR1cm4gMDsKICAgICBtZW1jcHkoYnVmLCBjb25maWct PnZtX2dpZCwgc2l6ZW9mKGNvbmZpZy0+dm1fZ2lkKSk7CiAKICAgICAvKiBzZXQgdGhlIGFkZHJl c3MgaW50byBBQ1BJIHRhYmxlIGFuZCBhbHNvIHBhc3MgaXQgYmFjayB0byB0aGUgY2FsbGVyICov Ci0gICAgaW5mby0+dm1fZ2lkX2FkZHIgPSB2aXJ0X3RvX3BoeXMoYnVmKTsKKyAgICBpbmZvLT52 bV9naWRfYWRkciA9IGN0eHQtPm1lbV9vcHMudjJwKGN0eHQsIGJ1Zik7CiAgICAgY29uZmlnLT52 bV9naWRfYWRkciA9IGluZm8tPnZtX2dpZF9hZGRyOwogCiAgICAgcmV0dXJuIDE7CiB9CiAKLXZv aWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCit2b2lkIGFj cGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHN0cnVjdCBhY3BpX2NvbmZp ZyAqY29uZmlnKQogewogICAgIHN0cnVjdCBhY3BpX2luZm8gKmFjcGlfaW5mbzsKICAgICBzdHJ1 Y3QgYWNwaV8yMF9yc2RwICpyc2RwOwpAQCAtNTE1LDcgKzUyNCw3IEBAIHZvaWQgYWNwaV9idWls ZF90YWJsZXMoc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpCiAgICAgICogRmlsbCBpbiBoaWdo LW1lbW9yeSBkYXRhIHN0cnVjdHVyZXMsIHN0YXJ0aW5nIGF0IEBidWYuCiAgICAgICovCiAKLSAg ICBmYWNzID0gbWVtX2FsbG9jKHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWNzKSwgMTYpOworICAg IGZhY3MgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9m YWNzKSwgMTYpOwogICAgIGlmICghZmFjcykgZ290byBvb207CiAgICAgbWVtY3B5KGZhY3MsICZG YWNzLCBzaXplb2Yoc3RydWN0IGFjcGlfMjBfZmFjcykpOwogCkBAIC01MjksMTMgKzUzOCwxMyBA QCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAg ICAqLwogICAgIGlmICggY29uZmlnLT5odm1pbmZvLT5ucl92Y3B1cyA8PSAxNSAmJiBjb25maWct PmRzZHRfMTVjcHUpCiAgICAgewotICAgICAgICBkc2R0ID0gbWVtX2FsbG9jKGNvbmZpZy0+ZHNk dF8xNWNwdV9sZW4sIDE2KTsKKyAgICAgICAgZHNkdCA9IGN0eHQtPm1lbV9vcHMuYWxsb2MoY3R4 dCwgY29uZmlnLT5kc2R0XzE1Y3B1X2xlbiwgMTYpOwogICAgICAgICBpZiAoIWRzZHQpIGdvdG8g b29tOwogICAgICAgICBtZW1jcHkoZHNkdCwgY29uZmlnLT5kc2R0XzE1Y3B1LCBjb25maWctPmRz ZHRfMTVjcHVfbGVuKTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgZHNkdCA9IG1l bV9hbGxvYyhjb25maWctPmRzZHRfYW55Y3B1X2xlbiwgMTYpOworICAgICAgICBkc2R0ID0gY3R4 dC0+bWVtX29wcy5hbGxvYyhjdHh0LCBjb25maWctPmRzZHRfYW55Y3B1X2xlbiwgMTYpOwogICAg ICAgICBpZiAoIWRzZHQpIGdvdG8gb29tOwogICAgICAgICBtZW1jcHkoZHNkdCwgY29uZmlnLT5k c2R0X2FueWNwdSwgY29uZmlnLT5kc2R0X2FueWNwdV9sZW4pOwogICAgIH0KQEAgLTU0OCw3ICs1 NTcsNyBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmln KQogICAgICAqIGNvbXBhdGlibGUgcmV2aXNpb24gMSBGQURUIHRoYXQgaXMgbGlua2VkIHdpdGgg dGhlIFJTRFQuIFJlZmVyIHRvOgogICAgICAqICAgICBodHRwOi8vd3d3LmFjcGkuaW5mby9wcmVz ZW50YXRpb25zL1MwMVVTTU9CUzE2OV9PUyUyMG5ldy5wcHQKICAgICAgKi8KLSAgICBmYWR0XzEw ID0gbWVtX2FsbG9jKHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0KSwgMTYpOworICAgIGZhZHRf MTAgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0 KSwgMTYpOwogICAgIGlmICghZmFkdF8xMCkgZ290byBvb207CiAgICAgbWVtY3B5KGZhZHRfMTAs ICZGYWR0LCBzaXplb2Yoc3RydWN0IGFjcGlfMTBfZmFkdCkpOwogICAgIGZhZHRfMTAtPmhlYWRl ci5sZW5ndGggPSBzaXplb2Yoc3RydWN0IGFjcGlfMTBfZmFkdCk7CkBAIC01NTksNyArNTY4LDcg QEAgdm9pZCBhY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZykKICAg ICAgICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IGFjcGlfaGVhZGVyLCBjaGVja3N1bSksCiAg ICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgYWNwaV8xMF9mYWR0KSk7CiAKLSAgICBmYWR0 ID0gbWVtX2FsbG9jKHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWR0KSwgMTYpOworICAgIGZhZHQg PSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9mYWR0KSwg MTYpOwogICAgIGlmICghZmFkdCkgZ290byBvb207CiAgICAgbWVtY3B5KGZhZHQsICZGYWR0LCBz aXplb2Yoc3RydWN0IGFjcGlfMjBfZmFkdCkpOwogICAgIGZhZHQtPmRzZHQgICA9ICh1bnNpZ25l ZCBsb25nKWRzZHQ7CkBAIC01NzAsMTQgKzU3OSwxNCBAQCB2b2lkIGFjcGlfYnVpbGRfdGFibGVz KHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgICAgICAgICAgICAgICBvZmZzZXRvZihz dHJ1Y3QgYWNwaV9oZWFkZXIsIGNoZWNrc3VtKSwKICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0 cnVjdCBhY3BpXzIwX2ZhZHQpKTsKIAotICAgIG5yX3NlY29uZGFyaWVzID0gY29uc3RydWN0X3Nl Y29uZGFyeV90YWJsZXMoc2Vjb25kYXJ5X3RhYmxlcywKKyAgICBucl9zZWNvbmRhcmllcyA9IGNv bnN0cnVjdF9zZWNvbmRhcnlfdGFibGVzKGN0eHQsIHNlY29uZGFyeV90YWJsZXMsCiAgICAgICAg ICAgICAgICAgIGNvbmZpZywgYWNwaV9pbmZvKTsKICAgICBpZiAoIG5yX3NlY29uZGFyaWVzIDwg MCApCiAgICAgICAgIGdvdG8gb29tOwogCi0gICAgeHNkdCA9IG1lbV9hbGxvYyhzaXplb2Yoc3Ry dWN0IGFjcGlfMjBfeHNkdCkrCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2YodWludDY0X3Qp Km5yX3NlY29uZGFyaWVzLAotICAgICAgICAgICAgICAgICAgICAgMTYpOworICAgIHhzZHQgPSBj dHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF94c2R0KSArIAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1aW50NjRfdCkgKiBucl9zZWNv bmRhcmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxNik7CiAgICAgaWYgKCF4 c2R0KSBnb3RvIG9vbTsKICAgICBtZW1jcHkoeHNkdCwgJlhzZHQsIHNpemVvZihzdHJ1Y3QgYWNw aV9oZWFkZXIpKTsKICAgICB4c2R0LT5lbnRyeVswXSA9ICh1bnNpZ25lZCBsb25nKWZhZHQ7CkBA IC01ODgsOSArNTk3LDkgQEAgdm9pZCBhY3BpX2J1aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25m aWcgKmNvbmZpZykKICAgICAgICAgICAgICAgICAgb2Zmc2V0b2Yoc3RydWN0IGFjcGlfaGVhZGVy LCBjaGVja3N1bSksCiAgICAgICAgICAgICAgICAgIHhzZHQtPmhlYWRlci5sZW5ndGgpOwogCi0g ICAgcnNkdCA9IG1lbV9hbGxvYyhzaXplb2Yoc3RydWN0IGFjcGlfMjBfcnNkdCkrCi0gICAgICAg ICAgICAgICAgICAgICBzaXplb2YodWludDMyX3QpKm5yX3NlY29uZGFyaWVzLAotICAgICAgICAg ICAgICAgICAgICAgMTYpOworICAgIHJzZHQgPSBjdHh0LT5tZW1fb3BzLmFsbG9jKGN0eHQsIHNp emVvZihzdHJ1Y3QgYWNwaV8yMF9yc2R0KSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2l6ZW9mKHVpbnQzMl90KSAqIG5yX3NlY29uZGFyaWVzLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDE2KTsKICAgICBpZiAoIXJzZHQpIGdvdG8gb29tOwogICAgIG1lbWNweShy c2R0LCAmUnNkdCwgc2l6ZW9mKHN0cnVjdCBhY3BpX2hlYWRlcikpOwogICAgIHJzZHQtPmVudHJ5 WzBdID0gKHVuc2lnbmVkIGxvbmcpZmFkdF8xMDsKQEAgLTYxNiw3ICs2MjUsNyBAQCB2b2lkIGFj cGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZpZyAqY29uZmlnKQogICAgICAgICAgICAg ICAgICBvZmZzZXRvZihzdHJ1Y3QgYWNwaV8yMF9yc2RwLCBleHRlbmRlZF9jaGVja3N1bSksCiAg ICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgYWNwaV8yMF9yc2RwKSk7CiAKLSAgICBpZiAo ICFuZXdfdm1fZ2lkKGNvbmZpZywgYWNwaV9pbmZvKSApCisgICAgaWYgKCAhbmV3X3ZtX2dpZChj dHh0LCBjb25maWcsIGFjcGlfaW5mbykgKQogICAgICAgICBnb3RvIG9vbTsKIAogICAgIHJldHVy bjsKZGlmZiAtLWdpdCBhL3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2xpYmFjcGkuaCBi L3Rvb2xzL2Zpcm13YXJlL2h2bWxvYWRlci9hY3BpL2xpYmFjcGkuaAppbmRleCA3YTE4ZDA1Li4z YmNkMjI2IDEwMDY0NAotLS0gYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvYWNwaS9saWJhY3Bp LmgKKysrIGIvdG9vbHMvZmlybXdhcmUvaHZtbG9hZGVyL2FjcGkvbGliYWNwaS5oCkBAIC00Miw2 ICs0MiwxNCBAQCBzdHJ1Y3QgYWNwaV9udW1hIHsKICAgICBjb25zdCBzdHJ1Y3QgeGVuX3ZtZW1y YW5nZSAqdm1lbXJhbmdlOwogfTsKIAorc3RydWN0IGFjcGlfY3R4dCB7CisgICAgc3RydWN0IGFj cGlfbWVtX29wcyB7CisgICAgICAgIHZvaWQgKigqYWxsb2MpKHN0cnVjdCBhY3BpX2N0eHQgKmN0 eHQsIHVpbnQzMl90IHNpemUsIHVpbnQzMl90IGFsaWduKTsKKyAgICAgICAgdm9pZCAoKmZyZWUp KHN0cnVjdCBhY3BpX2N0eHQgKmN0eHQsIHZvaWQgKnYsIHVpbnQzMl90IHNpemUpOworICAgICAg ICB1bnNpZ25lZCBsb25nICgqdjJwKShzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LCB2b2lkICp2KTsK KyAgICB9IG1lbV9vcHM7Cit9OworCiBzdHJ1Y3QgYWNwaV9jb25maWcgewogICAgIGNvbnN0IHVu c2lnbmVkIGNoYXIgKmRzZHRfYW55Y3B1OwogICAgIHVuc2lnbmVkIGludCBkc2R0X2FueWNwdV9s ZW47CkBAIC03OCw3ICs4Niw3IEBAIHN0cnVjdCBhY3BpX2NvbmZpZyB7CiAgICAgdW5zaWduZWQg aW50IHJzZHA7CiB9OwogCi12b2lkIGFjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3BpX2NvbmZp ZyAqY29uZmlnKTsKK3ZvaWQgYWNwaV9idWlsZF90YWJsZXMoc3RydWN0IGFjcGlfY3R4dCAqY3R4 dCwgc3RydWN0IGFjcGlfY29uZmlnICpjb25maWcpOwogCiAjZW5kaWYgLyogX19MSUJBQ1BJX0hf XyAqLwogCmRpZmYgLS1naXQgYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jIGIvdG9v bHMvZmlybXdhcmUvaHZtbG9hZGVyL3V0aWwuYwppbmRleCBiMzQ1NTc2Li44NzczZTY5IDEwMDY0 NAotLS0gYS90b29scy9maXJtd2FyZS9odm1sb2FkZXIvdXRpbC5jCisrKyBiL3Rvb2xzL2Zpcm13 YXJlL2h2bWxvYWRlci91dGlsLmMKQEAgLTg2NiwxMCArODY2LDI3IEBAIHN0YXRpYyB1aW50OF90 IGJhdHRlcnlfcG9ydF9leGlzdHModm9pZCkKICAgICByZXR1cm4gKGluYigweDg4KSA9PSAweDFG KTsKIH0KIAorc3RhdGljIHVuc2lnbmVkIGxvbmcgYWNwaV92MnAoc3RydWN0IGFjcGlfY3R4dCAq Y3R4dCwgdm9pZCAqdikKK3sKKyAgICByZXR1cm4gdmlydF90b19waHlzKHYpOworfQorCitzdGF0 aWMgdm9pZCAqYWNwaV9tZW1fYWxsb2Moc3RydWN0IGFjcGlfY3R4dCAqY3R4dCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBzaXplLCB1aW50MzJfdCBhbGlnbikKK3sKKyAg ICByZXR1cm4gbWVtX2FsbG9jKHNpemUsIGFsaWduKTsKK30KKworc3RhdGljIHZvaWQgYWNwaV9t ZW1fZnJlZShzdHJ1Y3QgYWNwaV9jdHh0ICpjdHh0LAorICAgICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICp2LCB1aW50MzJfdCBzaXplKQoreworfQorCiB2b2lkIGh2bWxvYWRlcl9hY3BpX2J1 aWxkX3RhYmxlcyhzdHJ1Y3QgYWNwaV9jb25maWcgKmNvbmZpZywKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBwaHlzaWNhbCkKIHsKICAgICBjb25zdCBjaGFy ICpzOworICAgIHN0cnVjdCBhY3BpX2N0eHQgY3R4dDsKIAogICAgIC8qIEFsbG9jYXRlIGFuZCBp bml0aWFsaXNlIHRoZSBhY3BpIGluZm8gYXJlYS4gKi8KICAgICBtZW1faG9sZV9wb3B1bGF0ZV9y YW0oQUNQSV9JTkZPX1BIWVNJQ0FMX0FERFJFU1MgPj4gUEFHRV9TSElGVCwgMSk7CkBAIC05MzQs NyArOTUxLDExIEBAIHZvaWQgaHZtbG9hZGVyX2FjcGlfYnVpbGRfdGFibGVzKHN0cnVjdCBhY3Bp X2NvbmZpZyAqY29uZmlnLAogICAgIGNvbmZpZy0+cnNkcCA9IHBoeXNpY2FsOwogICAgIGNvbmZp Zy0+aW5mb3AgPSBBQ1BJX0lORk9fUEhZU0lDQUxfQUREUkVTUzsKIAotICAgIGFjcGlfYnVpbGRf dGFibGVzKGNvbmZpZyk7CisgICAgY3R4dC5tZW1fb3BzLmFsbG9jID0gYWNwaV9tZW1fYWxsb2M7 CisgICAgY3R4dC5tZW1fb3BzLmZyZWUgPSBhY3BpX21lbV9mcmVlOworICAgIGN0eHQubWVtX29w cy52MnAgPSBhY3BpX3YycDsKKworICAgIGFjcGlfYnVpbGRfdGFibGVzKCZjdHh0LCBjb25maWcp OwogCiAgICAgaHZtX3BhcmFtX3NldChIVk1fUEFSQU1fVk1fR0VORVJBVElPTl9JRF9BRERSLCBj b25maWctPnZtX2dpZF9hZGRyKTsKIH0KLS0gCjEuOC4zLjEKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK