From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751898AbcFXSLz (ORCPT ); Fri, 24 Jun 2016 14:11:55 -0400 Received: from mail-oi0-f67.google.com ([209.85.218.67]:33316 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751531AbcFXSLu (ORCPT ); Fri, 24 Jun 2016 14:11:50 -0400 MIME-Version: 1.0 In-Reply-To: References: <20160623143126.GA16664@redhat.com> <20160623170352.GA17372@redhat.com> <20160623185340.GO30154@twins.programming.kicks-ass.net> From: Linus Torvalds Date: Fri, 24 Jun 2016 11:11:47 -0700 X-Google-Sender-Auth: eoH23mjErECbQWahcWUHAbR-NEM Message-ID: Subject: Re: [PATCH v3 00/13] Virtually mapped stacks with guard pages (x86, core) To: Brian Gerst Cc: Peter Zijlstra , Oleg Nesterov , Andy Lutomirski , Andy Lutomirski , "the arch/x86 maintainers" , Linux Kernel Mailing List , "linux-arch@vger.kernel.org" , Borislav Petkov , Nadav Amit , Kees Cook , "kernel-hardening@lists.openwall.com" , Josh Poimboeuf , Jann Horn , Heiko Carstens Content-Type: multipart/mixed; boundary=001a113defaab3fe1105360a1a14 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 10:51 AM, Linus Torvalds wrote: > > And in particular, the init_task stack initialization initialized it > to the init_thread pointer. Which was definitely deadly. > > Let's see if that was it.. No, it's still broken. But it's *less* broken, so here's a new version of the patch that at least gets some of the stack setup right, in my hope that somebody will bother to look at this, and being less broken might mean that somebody sees what else I missed.. Linus --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipu1zl5y0 CiAgICBUaGlzIGlzIGEgbm9uLXdvcmtpbmcgYXR0ZW1wdCBhdCBtb3ZpbmcgdGhlIHRocmVhZF9p bmZvIGludG8gdGhlCiAgICB0YXNrX3N0cnVjdCBvbiB4ODYKCiBhcmNoL21uMTAzMDAvaW5jbHVk ZS9hc20vdGhyZWFkX2luZm8uaCB8ICAyICstCiBhcmNoL21uMTAzMDAva2VybmVsL2tnZGIuYyAg ICAgICAgICAgICB8ICAzICsrLQogYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgg ICAgfCAgMiArLQogYXJjaC90aWxlL2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAgICAgfCAgMyAr Ky0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC94 ODYvZW50cnkvY29tbW9uLmMgICAgICAgICAgICAgICAgfCAyMSArKysrKystLS0tLS0tLS0tCiBh cmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgICB8ICA5ICsrKystLS0KIGFyY2gv eDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgIHwgMTIgKysrKystLS0tLQogYXJjaC94 ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaCAgICAgfCAzNyArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBhcmNoL3g4Ni9rZXJuZWwvZHVtcHN0YWNrLmMgICAgICAgICAgICB8ICAyICstCiBhcmNo L3g4Ni9rZXJuZWwvaXJxXzMyLmMgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3g4Ni9rZXJu ZWwvaXJxXzY0LmMgICAgICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nl c3MuYyAgICAgICAgICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAg ICAgICAgICAgICAgfCAgOCArKystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAg ICAgICAgICB8IDExICsrKysrKysrLQogaW5jbHVkZS9saW51eC9zY2hlZC5oICAgICAgICAgICAg ICAgICAgfCAxNiArKysrKysrKysrKy0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzICsrKwogaW5pdC9pbml0X3Rhc2suYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArKysrLS0KIGtlcm5lbC9mb3JrLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDQg KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgOTMg aW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9tbjEwMzAwL2luY2x1ZGUvYXNtL3Ro cmVhZF9pbmZvLmgKaW5kZXggNDg2MWE3OGM3MTYwLi5mNWY5MGJiZjAxOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvbW4xMDMwMC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCisrKyBiL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQogfQogCiAjaWZu ZGVmIENPTkZJR19LR0RCCi12b2lkIGFyY2hfcmVsZWFzZV90aHJlYWRfaW5mbyhzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRpKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBs b25nICpzdGFjayk7CiAjZW5kaWYKICNkZWZpbmUgZ2V0X3RocmVhZF9pbmZvKHRpKQlnZXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKICNkZWZpbmUgcHV0X3RocmVhZF9pbmZvKHRpKQlwdXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dk Yi5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9rZ2RiLmMKaW5kZXggOTk3NzA4MjM0NTFhLi4yZDc5 ODZjMzg2ZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCisrKyBiL2Fy Y2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCkBAIC0zOTcsOCArMzk3LDkgQEAgc3RhdGljIGJvb2wg a2dkYl9hcmNoX3VuZG9fc2luZ2xlc3RlcChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICAqIHNpbmds ZS1zdGVwIHN0YXRlIGlzIGNsZWFyZWQuICBBdCB0aGlzIHBvaW50IHRoZSBicmVha3BvaW50cyBz aG91bGQgaGF2ZQogICogYmVlbiByZW1vdmVkIGJ5IF9fc3dpdGNoX3RvKCkuCiAgKi8KLXZvaWQg YXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCit2b2lkIGFy Y2hfcmVsZWFzZV90aHJlYWRfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2spCiB7CisJc3RydWN0 IHRocmVhZF9pbmZvICp0aSA9ICh2b2lkICopc3RhY2s7CiAJaWYgKGtnZGJfc3N0ZXBfdGhyZWFk ID09IHRpKSB7CiAJCWtnZGJfc3N0ZXBfdGhyZWFkID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvYXJj aC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggYi9hcmNoL3RpbGUvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAppbmRleCA0YjdjZWY5ZTk0ZTAuLmMxNDY3YWM1OWNlNiAxMDA2NDQKLS0t IGEvYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC90aWxlL2lu Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IHRocmVhZF9p bmZvIHsKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIAotdm9pZCBhcmNoX3JlbGVhc2VfdGhyZWFk X2luZm8oc3RydWN0IHRocmVhZF9pbmZvICppbmZvKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVh ZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjayk7CiAKIC8qIEhvdyB0byBnZXQgdGhlIHRocmVh ZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDLiAqLwogcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBz dGFja19wb2ludGVyIF9fYXNtX18oInNwIik7CmRpZmYgLS1naXQgYS9hcmNoL3RpbGUva2VybmVs L3Byb2Nlc3MuYyBiL2FyY2gvdGlsZS9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDZiNzA1Y2NjOWNj MS4uYTQ2NWQ4MzcyZWRkIDEwMDY0NAotLS0gYS9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwor KysgYi9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzMsOCArNzMsOSBAQCB2b2lkIGFy Y2hfY3B1X2lkbGUodm9pZCkKIC8qCiAgKiBSZWxlYXNlIGEgdGhyZWFkX2luZm8gc3RydWN0dXJl CiAgKi8KLXZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq aW5mbykKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFj aykKIHsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKmluZm8gPSAodm9pZCAqKXN0YWNrOwogCXN0cnVj dCBzaW5nbGVfc3RlcF9zdGF0ZSAqc3RlcF9zdGF0ZSA9IGluZm8tPnN0ZXBfc3RhdGU7CiAKIAlp ZiAoc3RlcF9zdGF0ZSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2 L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgwNTc3YzUgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMTU0LDYgKzE1NCw3IEBA IGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNlbGVjdCBTUkNVCiAJc2VsZWN0IFNZ U0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFEX0lORk9fSU5fVEFTSwogCXNlbGVj dCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBWSVJUX1RPX0JVUwogCXNlbGVjdCBY ODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2Nv bW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5kZXggZWMxMzhlNTM4YzQ0Li5kNWZl YWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCisrKyBiL2FyY2gv eDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBAQAogI2RlZmluZSBDUkVBVEVfVFJB Q0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5c2NhbGxzLmg+CiAKLXN0YXRpYyBz dHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFkX2luZm8oc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3RhY2sgPQotCQkodW5zaWduZWQgbG9u ZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19QQURESU5HOwotCXJldHVybiAoc3Ry dWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRIUkVBRF9TSVpFKTsKLX0KLQogI2lm ZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxsZWQgb24gZW50cnkgZnJvbSB1c2Vy IG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2b2lkIGVudGVyX2Zyb21fdXNlcl9t b2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIGRvX2F1ZGl0X3N5c2NhbGxf ZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogICovCiB1bnNpZ25lZCBsb25n IHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgYXJj aCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhy ZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwog CXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsKIApAQCAtMTU2LDcgKzE0OSw3IEBA IHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9waGFzZTEoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNlX2VudGVyX3BoYXNlMihzdHJ1Y3Qg cHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWduZWQgbG9uZyBwaGFzZTFfcmVzdWx0 KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJl Z3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJ bG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09OQ0UodGktPmZsYWdzKSAmIF9USUZf V09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgZXhp dF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdz KQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7 CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVn cyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKGN1cnJlbnRfdGhyZWFkX2lu Zm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFncyAmIEVYSVRfVE9fVVNFUk1PREVf TE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCBl eGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBjYWNoZWRfZmxh Z3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAqLwogX192aXNpYmxlIGlubGluZSB2 b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwogCXUzMiBjYWNo ZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJPVkVfTE9DS0lORykgJiYgV0FS Tl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBz eXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2Zs YWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lzY2FsbF9yZXR1cm5fc2xvd3BhdGgo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHRpLT5mbGFn cyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09OVEVYVF9LRVJORUwpOwpAQCAtMzMy LDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBzeXNjYWxsX3JldHVybl9zbG93cGF0 aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05GSUdfWDg2XzY0CiBfX3Zpc2libGUg dm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewotCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJdW5zaWduZWQgbG9uZyBuciA9 IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJfbW9kZSgpOwpAQCAtMzY1LDcgKzM1 OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBkb19zeXNjYWxsXzMyX2lycXNfb24o c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIgPSAodW5zaWduZWQgaW50KXJlZ3Mt Pm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCmluZGV4 IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9l bnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKQEAgLTE3OSw3ICsxNzks OCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9zd2FwZ3MpCiAJICogSWYgd2UgbmVl ZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdlJ2xsIG5lZWQgdG8gZG8KIAkgKiBl eGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBhdGguCiAJICovCi0JdGVzdGwJJF9U SUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8o VElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJ dGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFn cyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19wYXRoCiAKIGVudHJ5X1NZU0NBTExf NjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0 aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZG Ci0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVy c3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkxZgogCiAJTE9DS0RFUF9TWVNfRVhJ VApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xmdW5jKQogICogQSBuZXdseSBmb3Jr ZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVzIGludG8gdGhpcyBhZGRyZXNzLgog ICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZyb20KKyAqIHJzaTogdGFzayB3ZSdy ZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21fZm9yaykKLQlMT0NLIDsgYnRyICRU SUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIgJFRJRl9GT1JLLCBUSV9mbGFncygl cnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sgKi8KIAogCWNhbGwJc2NoZWR1bGVf dGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVyICovCiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaAppbmRleCA0NDIxYjVkYTQwOWQuLjFkMjk5N2U3NGIwOCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvaW5jbHVkZS9hc20va3Byb2Jlcy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaApAQCAtMzgsMTIgKzM4LDEyIEBAIHR5cGVkZWYgdTgga3Byb2JlX29wY29kZV90OwogI2Rl ZmluZSBSRUxBVElWRUNBTExfT1BDT0RFIDB4ZTgKICNkZWZpbmUgUkVMQVRJVkVfQUREUl9TSVpF IDQKICNkZWZpbmUgTUFYX1NUQUNLX1NJWkUgNjQKLSNkZWZpbmUgTUlOX1NUQUNLX1NJWkUoQURE UikJCQkJCSAgICAgICBcCi0JKCgoTUFYX1NUQUNLX1NJWkUpIDwgKCgodW5zaWduZWQgbG9uZylj dXJyZW50X3RocmVhZF9pbmZvKCkpICsgXAotCQkJICAgICAgVEhSRUFEX1NJWkUgLSAodW5zaWdu ZWQgbG9uZykoQUREUikpKSAgICBcCi0JID8gKE1BWF9TVEFDS19TSVpFKQkJCQkJICAgICAgIFwK LQkgOiAoKCh1bnNpZ25lZCBsb25nKWN1cnJlbnRfdGhyZWFkX2luZm8oKSkgKwkJICAgICAgIFwK LQkgICAgVEhSRUFEX1NJWkUgLSAodW5zaWduZWQgbG9uZykoQUREUikpKQorCisjZGVmaW5lIGN1 cnJlbnRfc3RhY2tfdG9wKCkgKCh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZShjdXJyZW50 KStUSFJFQURfU0laRSkKKyNkZWZpbmUgY3VycmVudF9zdGFja19zaXplKEFERFIpIChjdXJyZW50 X3N0YWNrX3RvcCgpIC0gKHVuc2lnbmVkIGxvbmcpKEFERFIpKQorCisjZGVmaW5lIE1JTl9TVEFD S19TSVpFKEFERFIpIFwKKwkoTUFYX1NUQUNLX1NJWkUgPCBjdXJyZW50X3N0YWNrX3NpemUoQURE UikgPyBNQVhfU1RBQ0tfU0laRSA6IGN1cnJlbnRfc3RhY2tfc2l6ZShBRERSKSkKIAogI2RlZmlu ZSBmbHVzaF9pbnNuX3Nsb3QocCkJZG8geyB9IHdoaWxlICgwKQogCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N3aXRj aF90by5oCmluZGV4IDhmMzIxYTFiMDNhMS4uYWUwYWEwNjEyYzY3IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9z d2l0Y2hfdG8uaApAQCAtMTEwLDE4ICsxMTAsMTYgQEAgZG8gewkJCQkJCQkJCVwKIAkgICAgICJj YWxsIF9fc3dpdGNoX3RvXG5cdCIJCQkJCSAgXAogCSAgICAgIm1vdnEgIl9fcGVyY3B1X2FyZyhb Y3VycmVudF90YXNrXSkiLCUlcnNpXG5cdCIJCSAgXAogCSAgICAgX19zd2l0Y2hfY2FuYXJ5CQkJ CQkJICBcCi0JICAgICAibW92cSAlUFt0aHJlYWRfaW5mb10oJSVyc2kpLCUlcjhcblx0IgkJCSAg XAogCSAgICAgIm1vdnEgJSVyYXgsJSVyZGlcblx0IiAJCQkJCSAgXAotCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcjgpXG5cdCIJCSAgXAorCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcnNpKVxuXHQiCQkgIFwKIAkgICAgICJqbnogICBy ZXRfZnJvbV9mb3JrXG5cdCIJCQkJCSAgXAogCSAgICAgUkVTVE9SRV9DT05URVhUCQkJCQkJICBc CiAJICAgICA6ICI9YSIgKGxhc3QpCQkJCQkgIAkgIFwKIAkgICAgICAgX19zd2l0Y2hfY2FuYXJ5 X29wYXJhbQkJCQkJICBcCiAJICAgICA6IFtuZXh0XSAiUyIgKG5leHQpLCBbcHJldl0gIkQiIChw cmV2KSwJCQkgIFwKIAkgICAgICAgW3RocmVhZHJzcF0gImkiIChvZmZzZXRvZihzdHJ1Y3QgdGFz a19zdHJ1Y3QsIHRocmVhZC5zcCkpLCBcCi0JICAgICAgIFt0aV9mbGFnc10gImkiIChvZmZzZXRv ZihzdHJ1Y3QgdGhyZWFkX2luZm8sIGZsYWdzKSksCSAgXAorCSAgICAgICBbdGlfZmxhZ3NdICJp IiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWRfaW5mby5mbGFncykpLAkgIFwK IAkgICAgICAgW190aWZfZm9ya10gImkiIChfVElGX0ZPUkspLAkJCSAgCSAgXAotCSAgICAgICBb dGhyZWFkX2luZm9dICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCBzdGFjaykpLCAg IFwKIAkgICAgICAgW2N1cnJlbnRfdGFza10gIm0iIChjdXJyZW50X3Rhc2spCQkJICBcCiAJICAg ICAgIF9fc3dpdGNoX2NhbmFyeV9pcGFyYW0JCQkJCSAgXAogCSAgICAgOiAibWVtb3J5IiwgImNj IiBfX0VYVFJBX0NMT0JCRVIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJl YWRfaW5mby5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAppbmRleCAzMGMx MzNhYzA1Y2QuLmQzOGViYjA4ZjRjMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBA IC01MywyNCArNTMsMjEgQEAgc3RydWN0IHRhc2tfc3RydWN0OwogI2luY2x1ZGUgPGxpbnV4L2F0 b21pYy5oPgogCiBzdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFz azsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KIAlfX3UzMgkJCWZsYWdzOwkJLyogbG93IGxl dmVsIGZsYWdzICovCiAJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxh Z3MgKi8KIAlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCi0JbW1fc2VnbWVudF90CQlh ZGRyX2xpbWl0OwogCXVuc2lnbmVkIGludAkJc2lnX29uX3VhY2Nlc3NfZXJyb3I6MTsKIAl1bnNp Z25lZCBpbnQJCXVhY2Nlc3NfZXJyOjE7CS8qIHVhY2Nlc3MgZmFpbGVkICovCisJbW1fc2VnbWVu dF90CQlhZGRyX2xpbWl0OwogfTsKIAogI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlc CiB7CQkJCQkJXAotCS50YXNrCQk9ICZ0c2ssCQkJXAogCS5mbGFncwkJPSAwLAkJCVwKIAkuY3B1 CQk9IDAsCQkJXAogCS5hZGRyX2xpbWl0CT0gS0VSTkVMX0RTLAkJXAogfQogCi0jZGVmaW5lIGlu aXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQogI2RlZmluZSBp bml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCiAKICNlbHNlIC8qICFfX0FTU0VN QkxZX18gKi8KQEAgLTE2Niw3ICsxNjMsNyBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8gewogCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQog ewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKGN1cnJlbnRfdG9wX29mX3N0YWNrKCkg LSBUSFJFQURfU0laRSk7CisJcmV0dXJuIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiljdXJyZW50Owog fQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZv aWQpCkBAIC0xODgsMzUgKzE4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjdXJy ZW50X3N0YWNrX3BvaW50ZXIodm9pZCkKIAogLyogTG9hZCB0aHJlYWRfaW5mbyBhZGRyZXNzIGlu dG8gInJlZyIgKi8KICNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPKHJlZykgXAotCV9BU01fTU9WIFBF Ul9DUFVfVkFSKGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjaykscmVnIDsgXAotCV9BU01fU1VCICQo VEhSRUFEX1NJWkUpLHJlZyA7Ci0KLS8qCi0gKiBBU00gb3BlcmFuZCB3aGljaCBldmFsdWF0ZXMg dG8gYSAndGhyZWFkX2luZm8nIGFkZHJlc3Mgb2YKLSAqIHRoZSBjdXJyZW50IHRhc2ssIGlmIGl0 IGlzIGtub3duIHRoYXQgInJlZyIgaXMgZXhhY3RseSAib2ZmIgotICogYnl0ZXMgYmVsb3cgdGhl IHRvcCBvZiB0aGUgc3RhY2sgY3VycmVudGx5LgotICoKLSAqICggVGhlIGtlcm5lbCBzdGFjaydz IHNpemUgaXMga25vd24gYXQgYnVpbGQgdGltZSwgaXQgaXMgdXN1YWxseQotICogICAyIG9yIDQg cGFnZXMsIGFuZCB0aGUgYm90dG9tICBvZiB0aGUga2VybmVsIHN0YWNrIGNvbnRhaW5zCi0gKiAg IHRoZSB0aHJlYWRfaW5mbyBzdHJ1Y3R1cmUuIFNvIHRvIGFjY2VzcyB0aGUgdGhyZWFkX2luZm8g dmVyeQotICogICBxdWlja2x5IGZyb20gYXNzZW1ibHkgY29kZSB3ZSBjYW4gY2FsY3VsYXRlIGRv d24gZnJvbSB0aGUKLSAqICAgdG9wIG9mIHRoZSBrZXJuZWwgc3RhY2sgdG8gdGhlIGJvdHRvbSwg dXNpbmcgY29uc3RhbnQsCi0gKiAgIGJ1aWxkLXRpbWUgY2FsY3VsYXRpb25zIG9ubHkuICkKLSAq Ci0gKiBGb3IgZXhhbXBsZSwgdG8gZmV0Y2ggdGhlIGN1cnJlbnQgdGhyZWFkX2luZm8tPmZsYWdz IHZhbHVlIGludG8gJWVheAotICogb24geDg2LTY0IGRlZmNvbmZpZyBrZXJuZWxzLCBpbiBzeXNj YWxsIGVudHJ5IGNvZGUgd2hlcmUgUlNQIGlzCi0gKiBjdXJyZW50bHkgYXQgZXhhY3RseSBTSVpF T0ZfUFRSRUdTIGJ5dGVzIGF3YXkgZnJvbSB0aGUgdG9wIG9mIHRoZQotICogc3RhY2s6Ci0gKgot ICogICAgICBtb3YgQVNNX1RIUkVBRF9JTkZPKFRJX2ZsYWdzLCAlcnNwLCBTSVpFT0ZfUFRSRUdT KSwgJWVheAotICoKLSAqIHdpbGwgdHJhbnNsYXRlIHRvOgotICoKLSAqICAgICAgOGIgODQgMjQg YjggYzAgZmYgZmYgICAgICBtb3YgICAgLTB4M2Y0OCglcnNwKSwgJWVheAotICoKLSAqIHdoaWNo IGlzIGJlbG93IHRoZSBjdXJyZW50IFJTUCBieSBhbG1vc3QgMTZLLgotICovCi0jZGVmaW5lIEFT TV9USFJFQURfSU5GTyhmaWVsZCwgcmVnLCBvZmYpICgoZmllbGQpKyhvZmYpLVRIUkVBRF9TSVpF KShyZWcpCisJX0FTTV9NT1YgUEVSX0NQVV9WQVIoY3VycmVudF90YXNrKSxyZWcKIAogI2VuZGlm CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9kdW1wc3RhY2suYyBiL2FyY2gveDg2L2tl cm5lbC9kdW1wc3RhY2suYwppbmRleCBkNjIwOWYzYTY5Y2IuLmVmODAxN2NhNWJhOSAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2R1bXBzdGFjay5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9k dW1wc3RhY2suYwpAQCAtODAsNyArODAsNyBAQCBwcmludF9mdHJhY2VfZ3JhcGhfYWRkcih1bnNp Z25lZCBsb25nIGFkZHIsIHZvaWQgKmRhdGEsCiBzdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFj a19wdHIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAogCQkJdm9pZCAqcCwgdW5zaWduZWQgaW50 IHNpemUsIHZvaWQgKmVuZCkKIHsKLQl2b2lkICp0ID0gdGFza190aHJlYWRfaW5mbyh0YXNrKTsK Kwl2b2lkICp0ID0gdGFza19zdGFja19wYWdlKHRhc2spOwogCWlmIChlbmQpIHsKIAkJaWYgKHAg PCBlbmQgJiYgcCA+PSAoZW5kLVRIUkVBRF9TSVpFKSkKIAkJCXJldHVybiAxOwpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva2VybmVsL2lycV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCmlu ZGV4IDM4ZGE4ZjI5YTljOC4uYzYyN2JmOGQ5OGFkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvaXJxXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCkBAIC0xMzAsMTEgKzEz MCw5IEBAIHZvaWQgaXJxX2N0eF9pbml0KGludCBjcHUpCiAKIHZvaWQgZG9fc29mdGlycV9vd25f c3RhY2sodm9pZCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnN0azsKIAlzdHJ1Y3QgaXJx X3N0YWNrICppcnFzdGs7CiAJdTMyICppc3AsICpwcmV2X2VzcDsKIAotCWN1cnN0ayA9IGN1cnJl bnRfc3RhY2soKTsKIAlpcnFzdGsgPSBfX3RoaXNfY3B1X3JlYWQoc29mdGlycV9zdGFjayk7CiAK IAkvKiBidWlsZCB0aGUgc3RhY2sgZnJhbWUgb24gdGhlIHNvZnRpcnEgc3RhY2sgKi8KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQu YwppbmRleCAyMDZkMGI5MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv a2VybmVsL2lycV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCAr NDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0 X3JlZ3MgKnJlZ3MpCiAJaWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJl Z3MtPnNwID49IGN1cmJhc2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBz aXplb2Yoc3RydWN0IHB0X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5z cCA+PSBjdXJiYXNlICsgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4g JiYKIAkgICAgcmVncy0+c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCmluZGV4IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMK QEAgLTUzNiw5ICs1MzYsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICogUEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRP UF9PRl9LRVJORUxfU1RBQ0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90 dG9tID0gc3RhcnQgKyBzaXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAt LS0tLS0tLS0tLSBzdGFydAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkg KiBUaGUgdGFza3Mgc3RhY2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRo ZQogCSAqIGZyYW1lcG9pbnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoK QEAgLTU0OSw3ICs1NDcsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICovCiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJO RUxfU1RBQ0tfUEFERElORzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQli b3R0b20gPSBzdGFydCArIHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0 YXJ0OwogCiAJc3AgPSBSRUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20g fHwgc3AgPiB0b3ApCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gv eDg2L3VtL3B0cmFjZV8zMi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2Vf MzIuYwpAQCAtMTkxLDcgKzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0 ICpjaGlsZCwgbG9uZyBhZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhz dHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpj aGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGls ZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGls ZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZl X2kzODdfcmVnaXN0ZXJzKHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBz dGF0aWMgaW50IGdldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYs IHN0cnVjdCB0YXNrX3N0cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVz ZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7 Ci0JaW50IG4sIGNwdSA9ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNw dTsKKwlpbnQgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3Qg dXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywg YnVmLCBzaXplb2YoZnByZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRf ZnByZWdzKHN0cnVjdCB1c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmMKIAogc3RhdGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVj dCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNl cl9meHNyX3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNw YWNlX3BpZFtjcHVdLCAodW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcs NyBAQCBzdGF0aWMgaW50IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNl ciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0 cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNo aWxkKQogewotCWludCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3Rh Y2spLT5jcHU7CisJaW50IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJ c3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZm cHJlZ3MsIGJ1Ziwgc2l6ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9p bml0X3Rhc2suaCBiL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjJjYjhkNDU1MTNk Li45YzA0ZDQ0ZWViM2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysr IGIvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUg PG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2lu Y2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUg SU5JVF9QVVNIQUJMRV9UQVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1Rf Tk9ERV9JTklUKHRzay5wdXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDE0ICsxODUs MjEgQEAgZXh0ZXJuIHN0cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5l IElOSVRfS0FTQU4odHNrKQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5f VEFTSworIyBkZWZpbmUgSU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJF QURfSU5GTyh0c2spLAorI2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYK KwogLyoKICAqICBJTklUX1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFi bGUsIHRvdWNoIGF0CiAgKiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAo PTJNQikKICAqLwogI2RlZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRf VEFTS19USSh0c2spCQkJCQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKLQkuc3RhY2sJCT0gJmlu aXRfdGhyZWFkX2luZm8sCQkJCVwKKwkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwKIAkudXNh Z2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKIAkuZmxhZ3MJCT0gUEZfS1RIUkVBRCwJCQkJCVwK IAkucHJpbwkJPSBNQVhfUFJJTy0yMCwJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv c2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCA2ZTQyYWRhMjYzNDUuLjA0YWVi MGM3YjU2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUv bGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91bm1h cF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19USFJF QURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2VuZGlm CiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwgPjAg c3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0b21p Y190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3MsIGRl ZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQyLDkg QEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5kZWYg Q09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFkX2lu Zm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihsb25n KV07CiB9OwogCkBAIC0yOTY3LDcgKzI5NzIsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHRocmVh ZGdyb3VwX2NoYW5nZV9lbmQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiAJY2dyb3VwX3RocmVh ZGdyb3VwX2NoYW5nZV9lbmQodHNrKTsKIH0KIAotI2lmbmRlZiBfX0hBVkVfVEhSRUFEX0ZVTkNU SU9OUworI2lmZGVmIENPTkZJR19USFJFQURfSU5GT19JTl9UQVNLCisKKyNkZWZpbmUgdGFza190 aHJlYWRfaW5mbyh0YXNrKQkJKCYodGFzayktPnRocmVhZF9pbmZvKQorI2RlZmluZSB0YXNrX3N0 YWNrX3BhZ2UodGFzaykJCSgodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1cF90aHJlYWRfc3Rh Y2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9zdGFjayh0YXNrKQkJ KCh1bnNpZ25lZCBsb25nICopdGFza19zdGFja19wYWdlKHRhc2spKQorCisjZWxpZiAhZGVmaW5l ZChfX0hBVkVfVEhSRUFEX0ZVTkNUSU9OUykKIAogI2RlZmluZSB0YXNrX3RocmVhZF9pbmZvKHRh c2spCSgoc3RydWN0IHRocmVhZF9pbmZvICopKHRhc2spLT5zdGFjaykKICNkZWZpbmUgdGFza19z dGFja19wYWdlKHRhc2spCSgodGFzayktPnN0YWNrKQpkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmln IGIvaW5pdC9LY29uZmlnCmluZGV4IGY3NTVhNjAyZDRhMS4uMGM4M2FmNmQzNzUzIDEwMDY0NAot LS0gYS9pbml0L0tjb25maWcKKysrIGIvaW5pdC9LY29uZmlnCkBAIC0yNiw2ICsyNiw5IEBAIGNv bmZpZyBJUlFfV09SSwogY29uZmlnIEJVSUxEVElNRV9FWFRBQkxFX1NPUlQKIAlib29sCiAKK2Nv bmZpZyBUSFJFQURfSU5GT19JTl9UQVNLCisJYm9vbAorCiBtZW51ICJHZW5lcmFsIHNldHVwIgog CiBjb25maWcgQlJPS0VOCmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIvaW5pdC9pbml0 X3Rhc2suYwppbmRleCBiYTBhN2YzNjJkOWUuLjExZjgzYmUxZmE3OSAxMDA2NDQKLS0tIGEvaW5p dC9pbml0X3Rhc2suYworKysgYi9pbml0L2luaXRfdGFzay5jCkBAIC0yMiw1ICsyMiw4IEBAIEVY UE9SVF9TWU1CT0woaW5pdF90YXNrKTsKICAqIEluaXRpYWwgdGhyZWFkIHN0cnVjdHVyZS4gQWxp Z25tZW50IG9mIHRoaXMgaXMgaGFuZGxlZCBieSBhIHNwZWNpYWwKICAqIGxpbmtlciBtYXAgZW50 cnkuCiAgKi8KLXVuaW9uIHRocmVhZF91bmlvbiBpbml0X3RocmVhZF91bmlvbiBfX2luaXRfdGFz a19kYXRhID0KLQl7IElOSVRfVEhSRUFEX0lORk8oaW5pdF90YXNrKSB9OwordW5pb24gdGhyZWFk X3VuaW9uIGluaXRfdGhyZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPSB7CisjaWZuZGVmIENP TkZJR19USFJFQURfSU5GT19JTl9UQVNLCisJSU5JVF9USFJFQURfSU5GTyhpbml0X3Rhc2spCisj ZW5kaWYKK307CmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuYwppbmRl eCA1YzJjMzU1YWE5N2YuLjlmMjkwMjI2ZDlkNSAxMDA2NDQKLS0tIGEva2VybmVsL2ZvcmsuYwor KysgYi9rZXJuZWwvZm9yay5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIGlubGluZSB2b2lk IGZyZWVfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB9CiAjZW5kaWYKIAot dm9pZCBfX3dlYWsgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq dGkpCit2b2lkIF9fd2VhayBhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHVuc2lnbmVkIGxvbmcg KnN0YWNrKQogewogfQogCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBfX3dlYWsgYXJjaF9yZWxl YXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCiAgKiBrbWVtY2FjaGUgYmFz ZWQgYWxsb2NhdG9yLgogICovCiAjIGlmIFRIUkVBRF9TSVpFID49IFBBR0VfU0laRQotc3RhdGlj IHN0cnVjdCB0aHJlYWRfaW5mbyAqYWxsb2NfdGhyZWFkX2luZm9fbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKK3N0YXRpYyB1bnNpZ25lZCBsb25nICphbGxvY190aHJlYWRfc3RhY2tfbm9k ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7CiAJc3RydWN0 IHBhZ2UgKnBhZ2UgPSBhbGxvY19rbWVtX3BhZ2VzX25vZGUobm9kZSwgVEhSRUFESU5GT19HRlAs CkBAIC0xNzIsMzEgKzE3MiwzMSBAQCBzdGF0aWMgc3RydWN0IHRocmVhZF9pbmZvICphbGxvY190 aHJlYWRfaW5mb19ub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCXJldHVybiBwYWdlID8g cGFnZV9hZGRyZXNzKHBhZ2UpIDogTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGZyZWVf dGhyZWFkX2luZm8oc3RydWN0IHRocmVhZF9pbmZvICp0aSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBm cmVlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjaykKIHsKLQlzdHJ1Y3QgcGFnZSAq cGFnZSA9IHZpcnRfdG9fcGFnZSh0aSk7CisJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3Bh Z2Uoc3RhY2spOwogCiAJbWVtY2dfa21lbV91cGRhdGVfcGFnZV9zdGF0KHBhZ2UsIE1FTUNHX0tF Uk5FTF9TVEFDSywKIAkJCQkgICAgLSgxIDw8IFRIUkVBRF9TSVpFX09SREVSKSk7CiAJX19mcmVl X2ttZW1fcGFnZXMocGFnZSwgVEhSRUFEX1NJWkVfT1JERVIpOwogfQogIyBlbHNlCi1zdGF0aWMg c3RydWN0IGttZW1fY2FjaGUgKnRocmVhZF9pbmZvX2NhY2hlOworc3RhdGljIHN0cnVjdCBrbWVt X2NhY2hlICp0aHJlYWRfc3RhY2tfY2FjaGU7CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8g KmFsbG9jX3RocmVhZF9pbmZvX25vZGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCitzdGF0aWMg c3RydWN0IHRocmVhZF9pbmZvICphbGxvY190aHJlYWRfc3RhY2tfbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxs b2Nfbm9kZSh0aHJlYWRfaW5mb19jYWNoZSwgVEhSRUFESU5GT19HRlAsIG5vZGUpOworCXJldHVy biBrbWVtX2NhY2hlX2FsbG9jX25vZGUodGhyZWFkX3N0YWNrX2NhY2hlLCBUSFJFQURJTkZPX0dG UCwgbm9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZyZWVfdGhyZWFkX2luZm8oc3RydWN0IHRocmVh ZF9pbmZvICp0aSkKK3N0YXRpYyB2b2lkIGZyZWVfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2sp CiB7Ci0Ja21lbV9jYWNoZV9mcmVlKHRocmVhZF9pbmZvX2NhY2hlLCB0aSk7CisJa21lbV9jYWNo ZV9mcmVlKHRocmVhZF9zdGFja19jYWNoZSwgc3RhY2spOwogfQogCiB2b2lkIHRocmVhZF9pbmZv X2NhY2hlX2luaXQodm9pZCkKIHsKLQl0aHJlYWRfaW5mb19jYWNoZSA9IGttZW1fY2FjaGVfY3Jl YXRlKCJ0aHJlYWRfaW5mbyIsIFRIUkVBRF9TSVpFLAorCXRocmVhZF9zdGFja19jYWNoZSA9IGtt ZW1fY2FjaGVfY3JlYXRlKCJ0aHJlYWRfc3RhY2siLCBUSFJFQURfU0laRSwKIAkJCQkJICAgICAg VEhSRUFEX1NJWkUsIDAsIE5VTEwpOwogCUJVR19PTih0aHJlYWRfaW5mb19jYWNoZSA9PSBOVUxM KTsKIH0KQEAgLTIyMSw5ICsyMjEsOSBAQCBzdHJ1Y3Qga21lbV9jYWNoZSAqdm1fYXJlYV9jYWNo ZXA7CiAvKiBTTEFCIGNhY2hlIGZvciBtbV9zdHJ1Y3Qgc3RydWN0dXJlcyAodHNrLT5tbSkgKi8K IHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqbW1fY2FjaGVwOwogCi1zdGF0aWMgdm9pZCBhY2Nv dW50X2tlcm5lbF9zdGFjayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKK3N0 YXRpYyB2b2lkIGFjY291bnRfa2VybmVsX3N0YWNrKHVuc2lnbmVkIGxvbmcgKnN0YWNrLCBpbnQg YWNjb3VudCkKIHsKLQlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uo dGkpKTsKKwlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uoc3RhY2sp KTsKIAogCW1vZF96b25lX3BhZ2Vfc3RhdGUoem9uZSwgTlJfS0VSTkVMX1NUQUNLLCBhY2NvdW50 KTsKIH0KQEAgLTIzMSw4ICsyMzEsOCBAQCBzdGF0aWMgdm9pZCBhY2NvdW50X2tlcm5lbF9zdGFj ayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKIHZvaWQgZnJlZV90YXNrKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogCWFjY291bnRfa2VybmVsX3N0YWNrKHRzay0+c3Rh Y2ssIC0xKTsKLQlhcmNoX3JlbGVhc2VfdGhyZWFkX2luZm8odHNrLT5zdGFjayk7Ci0JZnJlZV90 aHJlYWRfaW5mbyh0c2stPnN0YWNrKTsKKwlhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHRzay0+ c3RhY2spOworCWZyZWVfdGhyZWFkX3N0YWNrKHRzay0+c3RhY2spOwogCXJ0X211dGV4X2RlYnVn X3Rhc2tfZnJlZSh0c2spOwogCWZ0cmFjZV9ncmFwaF9leGl0X3Rhc2sodHNrKTsKIAlwdXRfc2Vj Y29tcF9maWx0ZXIodHNrKTsKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIHNldF90YXNrX3N0YWNr X2VuZF9tYWdpYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKIHN0YXRpYyBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2Rl KQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7 CisJdW5zaWduZWQgbG9uZyAqc3RhY2s7CiAJaW50IGVycjsKIAogCWlmIChub2RlID09IE5VTUFf Tk9fTk9ERSkKQEAgLTM1MiwxNSArMzUyLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2RlKQogCWlm ICghdHNrKQogCQlyZXR1cm4gTlVMTDsKIAotCXRpID0gYWxsb2NfdGhyZWFkX2luZm9fbm9kZSh0 c2ssIG5vZGUpOwotCWlmICghdGkpCisJc3RhY2sgPSBhbGxvY190aHJlYWRfc3RhY2tfbm9kZSh0 c2ssIG5vZGUpOworCWlmICghc3RhY2spCiAJCWdvdG8gZnJlZV90c2s7CiAKIAllcnIgPSBhcmNo X2R1cF90YXNrX3N0cnVjdCh0c2ssIG9yaWcpOwogCWlmIChlcnIpCi0JCWdvdG8gZnJlZV90aTsK KwkJZ290byBmcmVlX3N0YWNrOwogCi0JdHNrLT5zdGFjayA9IHRpOworCXRzay0+c3RhY2sgPSBz dGFjazsKICNpZmRlZiBDT05GSUdfU0VDQ09NUAogCS8qCiAJICogV2UgbXVzdCBoYW5kbGUgc2V0 dGluZyB1cCBzZWNjb21wIGZpbHRlcnMgb25jZSB3ZSdyZSB1bmRlcgpAQCAtMzkyLDE0ICszOTIs MTQgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqZHVwX3Rhc2tfc3RydWN0KHN0cnVjdCB0 YXNrX3N0cnVjdCAqb3JpZywgaW50IG5vZGUpCiAJdHNrLT50YXNrX2ZyYWcucGFnZSA9IE5VTEw7 CiAJdHNrLT53YWtlX3EubmV4dCA9IE5VTEw7CiAKLQlhY2NvdW50X2tlcm5lbF9zdGFjayh0aSwg MSk7CisJYWNjb3VudF9rZXJuZWxfc3RhY2soc3RhY2ssIDEpOwogCiAJa2Nvdl90YXNrX2luaXQo dHNrKTsKIAogCXJldHVybiB0c2s7CiAKLWZyZWVfdGk6Ci0JZnJlZV90aHJlYWRfaW5mbyh0aSk7 CitmcmVlX3N0YWNrOgorCWZyZWVfdGhyZWFkX3N0YWNrKHN0YWNrKTsKIGZyZWVfdHNrOgogCWZy ZWVfdGFza19zdHJ1Y3QodHNrKTsKIAlyZXR1cm4gTlVMTDsK --001a113defaab3fe1105360a1a14-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: Linus Torvalds Subject: Re: [PATCH v3 00/13] Virtually mapped stacks with guard pages (x86, core) Date: Fri, 24 Jun 2016 11:11:47 -0700 Message-ID: References: <20160623143126.GA16664@redhat.com> <20160623170352.GA17372@redhat.com> <20160623185340.GO30154@twins.programming.kicks-ass.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113defaab3fe1105360a1a14 Return-path: Received: from mail-oi0-f67.google.com ([209.85.218.67]:33316 "EHLO mail-oi0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751531AbcFXSLu (ORCPT ); Fri, 24 Jun 2016 14:11:50 -0400 In-Reply-To: Sender: linux-arch-owner@vger.kernel.org List-ID: To: Brian Gerst Cc: Peter Zijlstra , Oleg Nesterov , Andy Lutomirski , Andy Lutomirski , the arch/x86 maintainers , Linux Kernel Mailing List , "linux-arch@vger.kernel.org" , Borislav Petkov , Nadav Amit , Kees Cook , "kernel-hardening@lists.openwall.com" , Josh Poimboeuf , Jann Horn , Heiko Carstens --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 10:51 AM, Linus Torvalds wrote: > > And in particular, the init_task stack initialization initialized it > to the init_thread pointer. Which was definitely deadly. > > Let's see if that was it.. No, it's still broken. But it's *less* broken, so here's a new version of the patch that at least gets some of the stack setup right, in my hope that somebody will bother to look at this, and being less broken might mean that somebody sees what else I missed.. Linus --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipu1zl5y0 CiAgICBUaGlzIGlzIGEgbm9uLXdvcmtpbmcgYXR0ZW1wdCBhdCBtb3ZpbmcgdGhlIHRocmVhZF9p bmZvIGludG8gdGhlCiAgICB0YXNrX3N0cnVjdCBvbiB4ODYKCiBhcmNoL21uMTAzMDAvaW5jbHVk ZS9hc20vdGhyZWFkX2luZm8uaCB8ICAyICstCiBhcmNoL21uMTAzMDAva2VybmVsL2tnZGIuYyAg ICAgICAgICAgICB8ICAzICsrLQogYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgg ICAgfCAgMiArLQogYXJjaC90aWxlL2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAgICAgfCAgMyAr Ky0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC94 ODYvZW50cnkvY29tbW9uLmMgICAgICAgICAgICAgICAgfCAyMSArKysrKystLS0tLS0tLS0tCiBh cmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgICB8ICA5ICsrKystLS0KIGFyY2gv eDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgIHwgMTIgKysrKystLS0tLQogYXJjaC94 ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaCAgICAgfCAzNyArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBhcmNoL3g4Ni9rZXJuZWwvZHVtcHN0YWNrLmMgICAgICAgICAgICB8ICAyICstCiBhcmNo L3g4Ni9rZXJuZWwvaXJxXzMyLmMgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3g4Ni9rZXJu ZWwvaXJxXzY0LmMgICAgICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nl c3MuYyAgICAgICAgICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAg ICAgICAgICAgICAgfCAgOCArKystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAg ICAgICAgICB8IDExICsrKysrKysrLQogaW5jbHVkZS9saW51eC9zY2hlZC5oICAgICAgICAgICAg ICAgICAgfCAxNiArKysrKysrKysrKy0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzICsrKwogaW5pdC9pbml0X3Rhc2suYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArKysrLS0KIGtlcm5lbC9mb3JrLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDQg KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgOTMg aW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9tbjEwMzAwL2luY2x1ZGUvYXNtL3Ro cmVhZF9pbmZvLmgKaW5kZXggNDg2MWE3OGM3MTYwLi5mNWY5MGJiZjAxOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvbW4xMDMwMC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCisrKyBiL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQogfQogCiAjaWZu ZGVmIENPTkZJR19LR0RCCi12b2lkIGFyY2hfcmVsZWFzZV90aHJlYWRfaW5mbyhzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRpKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBs b25nICpzdGFjayk7CiAjZW5kaWYKICNkZWZpbmUgZ2V0X3RocmVhZF9pbmZvKHRpKQlnZXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKICNkZWZpbmUgcHV0X3RocmVhZF9pbmZvKHRpKQlwdXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dk Yi5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9rZ2RiLmMKaW5kZXggOTk3NzA4MjM0NTFhLi4yZDc5 ODZjMzg2ZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCisrKyBiL2Fy Y2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCkBAIC0zOTcsOCArMzk3LDkgQEAgc3RhdGljIGJvb2wg a2dkYl9hcmNoX3VuZG9fc2luZ2xlc3RlcChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICAqIHNpbmds ZS1zdGVwIHN0YXRlIGlzIGNsZWFyZWQuICBBdCB0aGlzIHBvaW50IHRoZSBicmVha3BvaW50cyBz aG91bGQgaGF2ZQogICogYmVlbiByZW1vdmVkIGJ5IF9fc3dpdGNoX3RvKCkuCiAgKi8KLXZvaWQg YXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCit2b2lkIGFy Y2hfcmVsZWFzZV90aHJlYWRfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2spCiB7CisJc3RydWN0 IHRocmVhZF9pbmZvICp0aSA9ICh2b2lkICopc3RhY2s7CiAJaWYgKGtnZGJfc3N0ZXBfdGhyZWFk ID09IHRpKSB7CiAJCWtnZGJfc3N0ZXBfdGhyZWFkID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvYXJj aC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggYi9hcmNoL3RpbGUvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAppbmRleCA0YjdjZWY5ZTk0ZTAuLmMxNDY3YWM1OWNlNiAxMDA2NDQKLS0t IGEvYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC90aWxlL2lu Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IHRocmVhZF9p bmZvIHsKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIAotdm9pZCBhcmNoX3JlbGVhc2VfdGhyZWFk X2luZm8oc3RydWN0IHRocmVhZF9pbmZvICppbmZvKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVh ZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjayk7CiAKIC8qIEhvdyB0byBnZXQgdGhlIHRocmVh ZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDLiAqLwogcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBz dGFja19wb2ludGVyIF9fYXNtX18oInNwIik7CmRpZmYgLS1naXQgYS9hcmNoL3RpbGUva2VybmVs L3Byb2Nlc3MuYyBiL2FyY2gvdGlsZS9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDZiNzA1Y2NjOWNj MS4uYTQ2NWQ4MzcyZWRkIDEwMDY0NAotLS0gYS9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwor KysgYi9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzMsOCArNzMsOSBAQCB2b2lkIGFy Y2hfY3B1X2lkbGUodm9pZCkKIC8qCiAgKiBSZWxlYXNlIGEgdGhyZWFkX2luZm8gc3RydWN0dXJl CiAgKi8KLXZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq aW5mbykKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFj aykKIHsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKmluZm8gPSAodm9pZCAqKXN0YWNrOwogCXN0cnVj dCBzaW5nbGVfc3RlcF9zdGF0ZSAqc3RlcF9zdGF0ZSA9IGluZm8tPnN0ZXBfc3RhdGU7CiAKIAlp ZiAoc3RlcF9zdGF0ZSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2 L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgwNTc3YzUgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMTU0LDYgKzE1NCw3IEBA IGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNlbGVjdCBTUkNVCiAJc2VsZWN0IFNZ U0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFEX0lORk9fSU5fVEFTSwogCXNlbGVj dCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBWSVJUX1RPX0JVUwogCXNlbGVjdCBY ODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2Nv bW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5kZXggZWMxMzhlNTM4YzQ0Li5kNWZl YWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCisrKyBiL2FyY2gv eDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBAQAogI2RlZmluZSBDUkVBVEVfVFJB Q0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5c2NhbGxzLmg+CiAKLXN0YXRpYyBz dHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFkX2luZm8oc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3RhY2sgPQotCQkodW5zaWduZWQgbG9u ZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19QQURESU5HOwotCXJldHVybiAoc3Ry dWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRIUkVBRF9TSVpFKTsKLX0KLQogI2lm ZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxsZWQgb24gZW50cnkgZnJvbSB1c2Vy IG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2b2lkIGVudGVyX2Zyb21fdXNlcl9t b2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIGRvX2F1ZGl0X3N5c2NhbGxf ZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogICovCiB1bnNpZ25lZCBsb25n IHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgYXJj aCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhy ZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwog CXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsKIApAQCAtMTU2LDcgKzE0OSw3IEBA IHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9waGFzZTEoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNlX2VudGVyX3BoYXNlMihzdHJ1Y3Qg cHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWduZWQgbG9uZyBwaGFzZTFfcmVzdWx0 KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJl Z3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJ bG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09OQ0UodGktPmZsYWdzKSAmIF9USUZf V09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgZXhp dF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdz KQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7 CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVn cyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKGN1cnJlbnRfdGhyZWFkX2lu Zm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFncyAmIEVYSVRfVE9fVVNFUk1PREVf TE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCBl eGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBjYWNoZWRfZmxh Z3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAqLwogX192aXNpYmxlIGlubGluZSB2 b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwogCXUzMiBjYWNo ZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJPVkVfTE9DS0lORykgJiYgV0FS Tl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBz eXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2Zs YWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lzY2FsbF9yZXR1cm5fc2xvd3BhdGgo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHRpLT5mbGFn cyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09OVEVYVF9LRVJORUwpOwpAQCAtMzMy LDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBzeXNjYWxsX3JldHVybl9zbG93cGF0 aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05GSUdfWDg2XzY0CiBfX3Zpc2libGUg dm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewotCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJdW5zaWduZWQgbG9uZyBuciA9 IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJfbW9kZSgpOwpAQCAtMzY1LDcgKzM1 OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBkb19zeXNjYWxsXzMyX2lycXNfb24o c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIgPSAodW5zaWduZWQgaW50KXJlZ3Mt Pm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCmluZGV4 IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9l bnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKQEAgLTE3OSw3ICsxNzks OCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9zd2FwZ3MpCiAJICogSWYgd2UgbmVl ZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdlJ2xsIG5lZWQgdG8gZG8KIAkgKiBl eGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBhdGguCiAJICovCi0JdGVzdGwJJF9U SUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8o VElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJ dGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFn cyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19wYXRoCiAKIGVudHJ5X1NZU0NBTExf NjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0 aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZG Ci0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVy c3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkxZgogCiAJTE9DS0RFUF9TWVNfRVhJ VApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xmdW5jKQogICogQSBuZXdseSBmb3Jr ZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVzIGludG8gdGhpcyBhZGRyZXNzLgog ICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZyb20KKyAqIHJzaTogdGFzayB3ZSdy ZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21fZm9yaykKLQlMT0NLIDsgYnRyICRU SUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIgJFRJRl9GT1JLLCBUSV9mbGFncygl cnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sgKi8KIAogCWNhbGwJc2NoZWR1bGVf dGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVyICovCiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaAppbmRleCA0NDIxYjVkYTQwOWQuLjFkMjk5N2U3NGIwOCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvaW5jbHVkZS9hc20va3Byb2Jlcy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaApAQCAtMzgsMTIgKzM4LDEyIEBAIHR5cGVkZWYgdTgga3Byb2JlX29wY29kZV90OwogI2Rl ZmluZSBSRUxBVElWRUNBTExfT1BDT0RFIDB4ZTgKICNkZWZpbmUgUkVMQVRJVkVfQUREUl9TSVpF IDQKICNkZWZpbmUgTUFYX1NUQUNLX1NJWkUgNjQKLSNkZWZpbmUgTUlOX1NUQUNLX1NJWkUoQURE UikJCQkJCSAgICAgICBcCi0JKCgoTUFYX1NUQUNLX1NJWkUpIDwgKCgodW5zaWduZWQgbG9uZylj dXJyZW50X3RocmVhZF9pbmZvKCkpICsgXAotCQkJICAgICAgVEhSRUFEX1NJWkUgLSAodW5zaWdu ZWQgbG9uZykoQUREUikpKSAgICBcCi0JID8gKE1BWF9TVEFDS19TSVpFKQkJCQkJICAgICAgIFwK LQkgOiAoKCh1bnNpZ25lZCBsb25nKWN1cnJlbnRfdGhyZWFkX2luZm8oKSkgKwkJICAgICAgIFwK LQkgICAgVEhSRUFEX1NJWkUgLSAodW5zaWduZWQgbG9uZykoQUREUikpKQorCisjZGVmaW5lIGN1 cnJlbnRfc3RhY2tfdG9wKCkgKCh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZShjdXJyZW50 KStUSFJFQURfU0laRSkKKyNkZWZpbmUgY3VycmVudF9zdGFja19zaXplKEFERFIpIChjdXJyZW50 X3N0YWNrX3RvcCgpIC0gKHVuc2lnbmVkIGxvbmcpKEFERFIpKQorCisjZGVmaW5lIE1JTl9TVEFD S19TSVpFKEFERFIpIFwKKwkoTUFYX1NUQUNLX1NJWkUgPCBjdXJyZW50X3N0YWNrX3NpemUoQURE UikgPyBNQVhfU1RBQ0tfU0laRSA6IGN1cnJlbnRfc3RhY2tfc2l6ZShBRERSKSkKIAogI2RlZmlu ZSBmbHVzaF9pbnNuX3Nsb3QocCkJZG8geyB9IHdoaWxlICgwKQogCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N3aXRj aF90by5oCmluZGV4IDhmMzIxYTFiMDNhMS4uYWUwYWEwNjEyYzY3IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9z d2l0Y2hfdG8uaApAQCAtMTEwLDE4ICsxMTAsMTYgQEAgZG8gewkJCQkJCQkJCVwKIAkgICAgICJj YWxsIF9fc3dpdGNoX3RvXG5cdCIJCQkJCSAgXAogCSAgICAgIm1vdnEgIl9fcGVyY3B1X2FyZyhb Y3VycmVudF90YXNrXSkiLCUlcnNpXG5cdCIJCSAgXAogCSAgICAgX19zd2l0Y2hfY2FuYXJ5CQkJ CQkJICBcCi0JICAgICAibW92cSAlUFt0aHJlYWRfaW5mb10oJSVyc2kpLCUlcjhcblx0IgkJCSAg XAogCSAgICAgIm1vdnEgJSVyYXgsJSVyZGlcblx0IiAJCQkJCSAgXAotCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcjgpXG5cdCIJCSAgXAorCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcnNpKVxuXHQiCQkgIFwKIAkgICAgICJqbnogICBy ZXRfZnJvbV9mb3JrXG5cdCIJCQkJCSAgXAogCSAgICAgUkVTVE9SRV9DT05URVhUCQkJCQkJICBc CiAJICAgICA6ICI9YSIgKGxhc3QpCQkJCQkgIAkgIFwKIAkgICAgICAgX19zd2l0Y2hfY2FuYXJ5 X29wYXJhbQkJCQkJICBcCiAJICAgICA6IFtuZXh0XSAiUyIgKG5leHQpLCBbcHJldl0gIkQiIChw cmV2KSwJCQkgIFwKIAkgICAgICAgW3RocmVhZHJzcF0gImkiIChvZmZzZXRvZihzdHJ1Y3QgdGFz a19zdHJ1Y3QsIHRocmVhZC5zcCkpLCBcCi0JICAgICAgIFt0aV9mbGFnc10gImkiIChvZmZzZXRv ZihzdHJ1Y3QgdGhyZWFkX2luZm8sIGZsYWdzKSksCSAgXAorCSAgICAgICBbdGlfZmxhZ3NdICJp IiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWRfaW5mby5mbGFncykpLAkgIFwK IAkgICAgICAgW190aWZfZm9ya10gImkiIChfVElGX0ZPUkspLAkJCSAgCSAgXAotCSAgICAgICBb dGhyZWFkX2luZm9dICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCBzdGFjaykpLCAg IFwKIAkgICAgICAgW2N1cnJlbnRfdGFza10gIm0iIChjdXJyZW50X3Rhc2spCQkJICBcCiAJICAg ICAgIF9fc3dpdGNoX2NhbmFyeV9pcGFyYW0JCQkJCSAgXAogCSAgICAgOiAibWVtb3J5IiwgImNj IiBfX0VYVFJBX0NMT0JCRVIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJl YWRfaW5mby5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAppbmRleCAzMGMx MzNhYzA1Y2QuLmQzOGViYjA4ZjRjMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBA IC01MywyNCArNTMsMjEgQEAgc3RydWN0IHRhc2tfc3RydWN0OwogI2luY2x1ZGUgPGxpbnV4L2F0 b21pYy5oPgogCiBzdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFz azsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KIAlfX3UzMgkJCWZsYWdzOwkJLyogbG93IGxl dmVsIGZsYWdzICovCiAJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxh Z3MgKi8KIAlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCi0JbW1fc2VnbWVudF90CQlh ZGRyX2xpbWl0OwogCXVuc2lnbmVkIGludAkJc2lnX29uX3VhY2Nlc3NfZXJyb3I6MTsKIAl1bnNp Z25lZCBpbnQJCXVhY2Nlc3NfZXJyOjE7CS8qIHVhY2Nlc3MgZmFpbGVkICovCisJbW1fc2VnbWVu dF90CQlhZGRyX2xpbWl0OwogfTsKIAogI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlc CiB7CQkJCQkJXAotCS50YXNrCQk9ICZ0c2ssCQkJXAogCS5mbGFncwkJPSAwLAkJCVwKIAkuY3B1 CQk9IDAsCQkJXAogCS5hZGRyX2xpbWl0CT0gS0VSTkVMX0RTLAkJXAogfQogCi0jZGVmaW5lIGlu aXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQogI2RlZmluZSBp bml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCiAKICNlbHNlIC8qICFfX0FTU0VN QkxZX18gKi8KQEAgLTE2Niw3ICsxNjMsNyBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8gewogCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQog ewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKGN1cnJlbnRfdG9wX29mX3N0YWNrKCkg LSBUSFJFQURfU0laRSk7CisJcmV0dXJuIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiljdXJyZW50Owog fQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZv aWQpCkBAIC0xODgsMzUgKzE4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjdXJy ZW50X3N0YWNrX3BvaW50ZXIodm9pZCkKIAogLyogTG9hZCB0aHJlYWRfaW5mbyBhZGRyZXNzIGlu dG8gInJlZyIgKi8KICNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPKHJlZykgXAotCV9BU01fTU9WIFBF Ul9DUFVfVkFSKGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjaykscmVnIDsgXAotCV9BU01fU1VCICQo VEhSRUFEX1NJWkUpLHJlZyA7Ci0KLS8qCi0gKiBBU00gb3BlcmFuZCB3aGljaCBldmFsdWF0ZXMg dG8gYSAndGhyZWFkX2luZm8nIGFkZHJlc3Mgb2YKLSAqIHRoZSBjdXJyZW50IHRhc2ssIGlmIGl0 IGlzIGtub3duIHRoYXQgInJlZyIgaXMgZXhhY3RseSAib2ZmIgotICogYnl0ZXMgYmVsb3cgdGhl IHRvcCBvZiB0aGUgc3RhY2sgY3VycmVudGx5LgotICoKLSAqICggVGhlIGtlcm5lbCBzdGFjaydz IHNpemUgaXMga25vd24gYXQgYnVpbGQgdGltZSwgaXQgaXMgdXN1YWxseQotICogICAyIG9yIDQg cGFnZXMsIGFuZCB0aGUgYm90dG9tICBvZiB0aGUga2VybmVsIHN0YWNrIGNvbnRhaW5zCi0gKiAg IHRoZSB0aHJlYWRfaW5mbyBzdHJ1Y3R1cmUuIFNvIHRvIGFjY2VzcyB0aGUgdGhyZWFkX2luZm8g dmVyeQotICogICBxdWlja2x5IGZyb20gYXNzZW1ibHkgY29kZSB3ZSBjYW4gY2FsY3VsYXRlIGRv d24gZnJvbSB0aGUKLSAqICAgdG9wIG9mIHRoZSBrZXJuZWwgc3RhY2sgdG8gdGhlIGJvdHRvbSwg dXNpbmcgY29uc3RhbnQsCi0gKiAgIGJ1aWxkLXRpbWUgY2FsY3VsYXRpb25zIG9ubHkuICkKLSAq Ci0gKiBGb3IgZXhhbXBsZSwgdG8gZmV0Y2ggdGhlIGN1cnJlbnQgdGhyZWFkX2luZm8tPmZsYWdz IHZhbHVlIGludG8gJWVheAotICogb24geDg2LTY0IGRlZmNvbmZpZyBrZXJuZWxzLCBpbiBzeXNj YWxsIGVudHJ5IGNvZGUgd2hlcmUgUlNQIGlzCi0gKiBjdXJyZW50bHkgYXQgZXhhY3RseSBTSVpF T0ZfUFRSRUdTIGJ5dGVzIGF3YXkgZnJvbSB0aGUgdG9wIG9mIHRoZQotICogc3RhY2s6Ci0gKgot ICogICAgICBtb3YgQVNNX1RIUkVBRF9JTkZPKFRJX2ZsYWdzLCAlcnNwLCBTSVpFT0ZfUFRSRUdT KSwgJWVheAotICoKLSAqIHdpbGwgdHJhbnNsYXRlIHRvOgotICoKLSAqICAgICAgOGIgODQgMjQg YjggYzAgZmYgZmYgICAgICBtb3YgICAgLTB4M2Y0OCglcnNwKSwgJWVheAotICoKLSAqIHdoaWNo IGlzIGJlbG93IHRoZSBjdXJyZW50IFJTUCBieSBhbG1vc3QgMTZLLgotICovCi0jZGVmaW5lIEFT TV9USFJFQURfSU5GTyhmaWVsZCwgcmVnLCBvZmYpICgoZmllbGQpKyhvZmYpLVRIUkVBRF9TSVpF KShyZWcpCisJX0FTTV9NT1YgUEVSX0NQVV9WQVIoY3VycmVudF90YXNrKSxyZWcKIAogI2VuZGlm CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9kdW1wc3RhY2suYyBiL2FyY2gveDg2L2tl cm5lbC9kdW1wc3RhY2suYwppbmRleCBkNjIwOWYzYTY5Y2IuLmVmODAxN2NhNWJhOSAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2R1bXBzdGFjay5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9k dW1wc3RhY2suYwpAQCAtODAsNyArODAsNyBAQCBwcmludF9mdHJhY2VfZ3JhcGhfYWRkcih1bnNp Z25lZCBsb25nIGFkZHIsIHZvaWQgKmRhdGEsCiBzdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFj a19wdHIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAogCQkJdm9pZCAqcCwgdW5zaWduZWQgaW50 IHNpemUsIHZvaWQgKmVuZCkKIHsKLQl2b2lkICp0ID0gdGFza190aHJlYWRfaW5mbyh0YXNrKTsK Kwl2b2lkICp0ID0gdGFza19zdGFja19wYWdlKHRhc2spOwogCWlmIChlbmQpIHsKIAkJaWYgKHAg PCBlbmQgJiYgcCA+PSAoZW5kLVRIUkVBRF9TSVpFKSkKIAkJCXJldHVybiAxOwpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva2VybmVsL2lycV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCmlu ZGV4IDM4ZGE4ZjI5YTljOC4uYzYyN2JmOGQ5OGFkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvaXJxXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCkBAIC0xMzAsMTEgKzEz MCw5IEBAIHZvaWQgaXJxX2N0eF9pbml0KGludCBjcHUpCiAKIHZvaWQgZG9fc29mdGlycV9vd25f c3RhY2sodm9pZCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnN0azsKIAlzdHJ1Y3QgaXJx X3N0YWNrICppcnFzdGs7CiAJdTMyICppc3AsICpwcmV2X2VzcDsKIAotCWN1cnN0ayA9IGN1cnJl bnRfc3RhY2soKTsKIAlpcnFzdGsgPSBfX3RoaXNfY3B1X3JlYWQoc29mdGlycV9zdGFjayk7CiAK IAkvKiBidWlsZCB0aGUgc3RhY2sgZnJhbWUgb24gdGhlIHNvZnRpcnEgc3RhY2sgKi8KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQu YwppbmRleCAyMDZkMGI5MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv a2VybmVsL2lycV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCAr NDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0 X3JlZ3MgKnJlZ3MpCiAJaWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJl Z3MtPnNwID49IGN1cmJhc2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBz aXplb2Yoc3RydWN0IHB0X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5z cCA+PSBjdXJiYXNlICsgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4g JiYKIAkgICAgcmVncy0+c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCmluZGV4IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMK QEAgLTUzNiw5ICs1MzYsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICogUEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRP UF9PRl9LRVJORUxfU1RBQ0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90 dG9tID0gc3RhcnQgKyBzaXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAt LS0tLS0tLS0tLSBzdGFydAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkg KiBUaGUgdGFza3Mgc3RhY2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRo ZQogCSAqIGZyYW1lcG9pbnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoK QEAgLTU0OSw3ICs1NDcsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICovCiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJO RUxfU1RBQ0tfUEFERElORzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQli b3R0b20gPSBzdGFydCArIHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0 YXJ0OwogCiAJc3AgPSBSRUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20g fHwgc3AgPiB0b3ApCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gv eDg2L3VtL3B0cmFjZV8zMi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2Vf MzIuYwpAQCAtMTkxLDcgKzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0 ICpjaGlsZCwgbG9uZyBhZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhz dHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpj aGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGls ZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGls ZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZl X2kzODdfcmVnaXN0ZXJzKHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBz dGF0aWMgaW50IGdldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYs IHN0cnVjdCB0YXNrX3N0cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVz ZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7 Ci0JaW50IG4sIGNwdSA9ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNw dTsKKwlpbnQgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3Qg dXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywg YnVmLCBzaXplb2YoZnByZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRf ZnByZWdzKHN0cnVjdCB1c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmMKIAogc3RhdGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVj dCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNl cl9meHNyX3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNw YWNlX3BpZFtjcHVdLCAodW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcs NyBAQCBzdGF0aWMgaW50IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNl ciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0 cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNo aWxkKQogewotCWludCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3Rh Y2spLT5jcHU7CisJaW50IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJ c3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZm cHJlZ3MsIGJ1Ziwgc2l6ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9p bml0X3Rhc2suaCBiL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjJjYjhkNDU1MTNk Li45YzA0ZDQ0ZWViM2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysr IGIvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUg PG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2lu Y2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUg SU5JVF9QVVNIQUJMRV9UQVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1Rf Tk9ERV9JTklUKHRzay5wdXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDE0ICsxODUs MjEgQEAgZXh0ZXJuIHN0cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5l IElOSVRfS0FTQU4odHNrKQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5f VEFTSworIyBkZWZpbmUgSU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJF QURfSU5GTyh0c2spLAorI2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYK KwogLyoKICAqICBJTklUX1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFi bGUsIHRvdWNoIGF0CiAgKiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAo PTJNQikKICAqLwogI2RlZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRf VEFTS19USSh0c2spCQkJCQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKLQkuc3RhY2sJCT0gJmlu aXRfdGhyZWFkX2luZm8sCQkJCVwKKwkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwKIAkudXNh Z2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKIAkuZmxhZ3MJCT0gUEZfS1RIUkVBRCwJCQkJCVwK IAkucHJpbwkJPSBNQVhfUFJJTy0yMCwJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv c2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCA2ZTQyYWRhMjYzNDUuLjA0YWVi MGM3YjU2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUv bGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91bm1h cF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19USFJF QURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2VuZGlm CiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwgPjAg c3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0b21p Y190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3MsIGRl ZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQyLDkg QEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5kZWYg Q09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFkX2lu Zm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihsb25n KV07CiB9OwogCkBAIC0yOTY3LDcgKzI5NzIsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHRocmVh ZGdyb3VwX2NoYW5nZV9lbmQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiAJY2dyb3VwX3RocmVh ZGdyb3VwX2NoYW5nZV9lbmQodHNrKTsKIH0KIAotI2lmbmRlZiBfX0hBVkVfVEhSRUFEX0ZVTkNU SU9OUworI2lmZGVmIENPTkZJR19USFJFQURfSU5GT19JTl9UQVNLCisKKyNkZWZpbmUgdGFza190 aHJlYWRfaW5mbyh0YXNrKQkJKCYodGFzayktPnRocmVhZF9pbmZvKQorI2RlZmluZSB0YXNrX3N0 YWNrX3BhZ2UodGFzaykJCSgodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1cF90aHJlYWRfc3Rh Y2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9zdGFjayh0YXNrKQkJ KCh1bnNpZ25lZCBsb25nICopdGFza19zdGFja19wYWdlKHRhc2spKQorCisjZWxpZiAhZGVmaW5l ZChfX0hBVkVfVEhSRUFEX0ZVTkNUSU9OUykKIAogI2RlZmluZSB0YXNrX3RocmVhZF9pbmZvKHRh c2spCSgoc3RydWN0IHRocmVhZF9pbmZvICopKHRhc2spLT5zdGFjaykKICNkZWZpbmUgdGFza19z dGFja19wYWdlKHRhc2spCSgodGFzayktPnN0YWNrKQpkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmln IGIvaW5pdC9LY29uZmlnCmluZGV4IGY3NTVhNjAyZDRhMS4uMGM4M2FmNmQzNzUzIDEwMDY0NAot LS0gYS9pbml0L0tjb25maWcKKysrIGIvaW5pdC9LY29uZmlnCkBAIC0yNiw2ICsyNiw5IEBAIGNv bmZpZyBJUlFfV09SSwogY29uZmlnIEJVSUxEVElNRV9FWFRBQkxFX1NPUlQKIAlib29sCiAKK2Nv bmZpZyBUSFJFQURfSU5GT19JTl9UQVNLCisJYm9vbAorCiBtZW51ICJHZW5lcmFsIHNldHVwIgog CiBjb25maWcgQlJPS0VOCmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIvaW5pdC9pbml0 X3Rhc2suYwppbmRleCBiYTBhN2YzNjJkOWUuLjExZjgzYmUxZmE3OSAxMDA2NDQKLS0tIGEvaW5p dC9pbml0X3Rhc2suYworKysgYi9pbml0L2luaXRfdGFzay5jCkBAIC0yMiw1ICsyMiw4IEBAIEVY UE9SVF9TWU1CT0woaW5pdF90YXNrKTsKICAqIEluaXRpYWwgdGhyZWFkIHN0cnVjdHVyZS4gQWxp Z25tZW50IG9mIHRoaXMgaXMgaGFuZGxlZCBieSBhIHNwZWNpYWwKICAqIGxpbmtlciBtYXAgZW50 cnkuCiAgKi8KLXVuaW9uIHRocmVhZF91bmlvbiBpbml0X3RocmVhZF91bmlvbiBfX2luaXRfdGFz a19kYXRhID0KLQl7IElOSVRfVEhSRUFEX0lORk8oaW5pdF90YXNrKSB9OwordW5pb24gdGhyZWFk X3VuaW9uIGluaXRfdGhyZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPSB7CisjaWZuZGVmIENP TkZJR19USFJFQURfSU5GT19JTl9UQVNLCisJSU5JVF9USFJFQURfSU5GTyhpbml0X3Rhc2spCisj ZW5kaWYKK307CmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuYwppbmRl eCA1YzJjMzU1YWE5N2YuLjlmMjkwMjI2ZDlkNSAxMDA2NDQKLS0tIGEva2VybmVsL2ZvcmsuYwor KysgYi9rZXJuZWwvZm9yay5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIGlubGluZSB2b2lk IGZyZWVfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB9CiAjZW5kaWYKIAot dm9pZCBfX3dlYWsgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq dGkpCit2b2lkIF9fd2VhayBhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHVuc2lnbmVkIGxvbmcg KnN0YWNrKQogewogfQogCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBfX3dlYWsgYXJjaF9yZWxl YXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCiAgKiBrbWVtY2FjaGUgYmFz ZWQgYWxsb2NhdG9yLgogICovCiAjIGlmIFRIUkVBRF9TSVpFID49IFBBR0VfU0laRQotc3RhdGlj IHN0cnVjdCB0aHJlYWRfaW5mbyAqYWxsb2NfdGhyZWFkX2luZm9fbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKK3N0YXRpYyB1bnNpZ25lZCBsb25nICphbGxvY190aHJlYWRfc3RhY2tfbm9k ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7CiAJc3RydWN0 IHBhZ2UgKnBhZ2UgPSBhbGxvY19rbWVtX3BhZ2VzX25vZGUobm9kZSwgVEhSRUFESU5GT19HRlAs CkBAIC0xNzIsMzEgKzE3MiwzMSBAQCBzdGF0aWMgc3RydWN0IHRocmVhZF9pbmZvICphbGxvY190 aHJlYWRfaW5mb19ub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCXJldHVybiBwYWdlID8g cGFnZV9hZGRyZXNzKHBhZ2UpIDogTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGZyZWVf dGhyZWFkX2luZm8oc3RydWN0IHRocmVhZF9pbmZvICp0aSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBm cmVlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjaykKIHsKLQlzdHJ1Y3QgcGFnZSAq cGFnZSA9IHZpcnRfdG9fcGFnZSh0aSk7CisJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3Bh Z2Uoc3RhY2spOwogCiAJbWVtY2dfa21lbV91cGRhdGVfcGFnZV9zdGF0KHBhZ2UsIE1FTUNHX0tF Uk5FTF9TVEFDSywKIAkJCQkgICAgLSgxIDw8IFRIUkVBRF9TSVpFX09SREVSKSk7CiAJX19mcmVl X2ttZW1fcGFnZXMocGFnZSwgVEhSRUFEX1NJWkVfT1JERVIpOwogfQogIyBlbHNlCi1zdGF0aWMg c3RydWN0IGttZW1fY2FjaGUgKnRocmVhZF9pbmZvX2NhY2hlOworc3RhdGljIHN0cnVjdCBrbWVt X2NhY2hlICp0aHJlYWRfc3RhY2tfY2FjaGU7CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8g KmFsbG9jX3RocmVhZF9pbmZvX25vZGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCitzdGF0aWMg c3RydWN0IHRocmVhZF9pbmZvICphbGxvY190aHJlYWRfc3RhY2tfbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxs b2Nfbm9kZSh0aHJlYWRfaW5mb19jYWNoZSwgVEhSRUFESU5GT19HRlAsIG5vZGUpOworCXJldHVy biBrbWVtX2NhY2hlX2FsbG9jX25vZGUodGhyZWFkX3N0YWNrX2NhY2hlLCBUSFJFQURJTkZPX0dG UCwgbm9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZyZWVfdGhyZWFkX2luZm8oc3RydWN0IHRocmVh ZF9pbmZvICp0aSkKK3N0YXRpYyB2b2lkIGZyZWVfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2sp CiB7Ci0Ja21lbV9jYWNoZV9mcmVlKHRocmVhZF9pbmZvX2NhY2hlLCB0aSk7CisJa21lbV9jYWNo ZV9mcmVlKHRocmVhZF9zdGFja19jYWNoZSwgc3RhY2spOwogfQogCiB2b2lkIHRocmVhZF9pbmZv X2NhY2hlX2luaXQodm9pZCkKIHsKLQl0aHJlYWRfaW5mb19jYWNoZSA9IGttZW1fY2FjaGVfY3Jl YXRlKCJ0aHJlYWRfaW5mbyIsIFRIUkVBRF9TSVpFLAorCXRocmVhZF9zdGFja19jYWNoZSA9IGtt ZW1fY2FjaGVfY3JlYXRlKCJ0aHJlYWRfc3RhY2siLCBUSFJFQURfU0laRSwKIAkJCQkJICAgICAg VEhSRUFEX1NJWkUsIDAsIE5VTEwpOwogCUJVR19PTih0aHJlYWRfaW5mb19jYWNoZSA9PSBOVUxM KTsKIH0KQEAgLTIyMSw5ICsyMjEsOSBAQCBzdHJ1Y3Qga21lbV9jYWNoZSAqdm1fYXJlYV9jYWNo ZXA7CiAvKiBTTEFCIGNhY2hlIGZvciBtbV9zdHJ1Y3Qgc3RydWN0dXJlcyAodHNrLT5tbSkgKi8K IHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqbW1fY2FjaGVwOwogCi1zdGF0aWMgdm9pZCBhY2Nv dW50X2tlcm5lbF9zdGFjayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKK3N0 YXRpYyB2b2lkIGFjY291bnRfa2VybmVsX3N0YWNrKHVuc2lnbmVkIGxvbmcgKnN0YWNrLCBpbnQg YWNjb3VudCkKIHsKLQlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uo dGkpKTsKKwlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uoc3RhY2sp KTsKIAogCW1vZF96b25lX3BhZ2Vfc3RhdGUoem9uZSwgTlJfS0VSTkVMX1NUQUNLLCBhY2NvdW50 KTsKIH0KQEAgLTIzMSw4ICsyMzEsOCBAQCBzdGF0aWMgdm9pZCBhY2NvdW50X2tlcm5lbF9zdGFj ayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKIHZvaWQgZnJlZV90YXNrKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogCWFjY291bnRfa2VybmVsX3N0YWNrKHRzay0+c3Rh Y2ssIC0xKTsKLQlhcmNoX3JlbGVhc2VfdGhyZWFkX2luZm8odHNrLT5zdGFjayk7Ci0JZnJlZV90 aHJlYWRfaW5mbyh0c2stPnN0YWNrKTsKKwlhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHRzay0+ c3RhY2spOworCWZyZWVfdGhyZWFkX3N0YWNrKHRzay0+c3RhY2spOwogCXJ0X211dGV4X2RlYnVn X3Rhc2tfZnJlZSh0c2spOwogCWZ0cmFjZV9ncmFwaF9leGl0X3Rhc2sodHNrKTsKIAlwdXRfc2Vj Y29tcF9maWx0ZXIodHNrKTsKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIHNldF90YXNrX3N0YWNr X2VuZF9tYWdpYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKIHN0YXRpYyBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2Rl KQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7 CisJdW5zaWduZWQgbG9uZyAqc3RhY2s7CiAJaW50IGVycjsKIAogCWlmIChub2RlID09IE5VTUFf Tk9fTk9ERSkKQEAgLTM1MiwxNSArMzUyLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2RlKQogCWlm ICghdHNrKQogCQlyZXR1cm4gTlVMTDsKIAotCXRpID0gYWxsb2NfdGhyZWFkX2luZm9fbm9kZSh0 c2ssIG5vZGUpOwotCWlmICghdGkpCisJc3RhY2sgPSBhbGxvY190aHJlYWRfc3RhY2tfbm9kZSh0 c2ssIG5vZGUpOworCWlmICghc3RhY2spCiAJCWdvdG8gZnJlZV90c2s7CiAKIAllcnIgPSBhcmNo X2R1cF90YXNrX3N0cnVjdCh0c2ssIG9yaWcpOwogCWlmIChlcnIpCi0JCWdvdG8gZnJlZV90aTsK KwkJZ290byBmcmVlX3N0YWNrOwogCi0JdHNrLT5zdGFjayA9IHRpOworCXRzay0+c3RhY2sgPSBz dGFjazsKICNpZmRlZiBDT05GSUdfU0VDQ09NUAogCS8qCiAJICogV2UgbXVzdCBoYW5kbGUgc2V0 dGluZyB1cCBzZWNjb21wIGZpbHRlcnMgb25jZSB3ZSdyZSB1bmRlcgpAQCAtMzkyLDE0ICszOTIs MTQgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqZHVwX3Rhc2tfc3RydWN0KHN0cnVjdCB0 YXNrX3N0cnVjdCAqb3JpZywgaW50IG5vZGUpCiAJdHNrLT50YXNrX2ZyYWcucGFnZSA9IE5VTEw7 CiAJdHNrLT53YWtlX3EubmV4dCA9IE5VTEw7CiAKLQlhY2NvdW50X2tlcm5lbF9zdGFjayh0aSwg MSk7CisJYWNjb3VudF9rZXJuZWxfc3RhY2soc3RhY2ssIDEpOwogCiAJa2Nvdl90YXNrX2luaXQo dHNrKTsKIAogCXJldHVybiB0c2s7CiAKLWZyZWVfdGk6Ci0JZnJlZV90aHJlYWRfaW5mbyh0aSk7 CitmcmVlX3N0YWNrOgorCWZyZWVfdGhyZWFkX3N0YWNrKHN0YWNrKTsKIGZyZWVfdHNrOgogCWZy ZWVfdGFza19zdHJ1Y3QodHNrKTsKIAlyZXR1cm4gTlVMTDsK --001a113defaab3fe1105360a1a14-- From mboxrd@z Thu Jan 1 00:00:00 1970 Reply-To: kernel-hardening@lists.openwall.com MIME-Version: 1.0 Sender: linus971@gmail.com In-Reply-To: References: <20160623143126.GA16664@redhat.com> <20160623170352.GA17372@redhat.com> <20160623185340.GO30154@twins.programming.kicks-ass.net> From: Linus Torvalds Date: Fri, 24 Jun 2016 11:11:47 -0700 Message-ID: Content-Type: multipart/mixed; boundary=001a113defaab3fe1105360a1a14 Subject: [kernel-hardening] Re: [PATCH v3 00/13] Virtually mapped stacks with guard pages (x86, core) To: Brian Gerst Cc: Peter Zijlstra , Oleg Nesterov , Andy Lutomirski , Andy Lutomirski , the arch/x86 maintainers , Linux Kernel Mailing List , "linux-arch@vger.kernel.org" , Borislav Petkov , Nadav Amit , Kees Cook , "kernel-hardening@lists.openwall.com" , Josh Poimboeuf , Jann Horn , Heiko Carstens List-ID: --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 10:51 AM, Linus Torvalds wrote: > > And in particular, the init_task stack initialization initialized it > to the init_thread pointer. Which was definitely deadly. > > Let's see if that was it.. No, it's still broken. But it's *less* broken, so here's a new version of the patch that at least gets some of the stack setup right, in my hope that somebody will bother to look at this, and being less broken might mean that somebody sees what else I missed.. Linus --001a113defaab3fe1105360a1a14 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipu1zl5y0 CiAgICBUaGlzIGlzIGEgbm9uLXdvcmtpbmcgYXR0ZW1wdCBhdCBtb3ZpbmcgdGhlIHRocmVhZF9p bmZvIGludG8gdGhlCiAgICB0YXNrX3N0cnVjdCBvbiB4ODYKCiBhcmNoL21uMTAzMDAvaW5jbHVk ZS9hc20vdGhyZWFkX2luZm8uaCB8ICAyICstCiBhcmNoL21uMTAzMDAva2VybmVsL2tnZGIuYyAg ICAgICAgICAgICB8ICAzICsrLQogYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgg ICAgfCAgMiArLQogYXJjaC90aWxlL2tlcm5lbC9wcm9jZXNzLmMgICAgICAgICAgICAgfCAgMyAr Ky0KIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC94 ODYvZW50cnkvY29tbW9uLmMgICAgICAgICAgICAgICAgfCAyMSArKysrKystLS0tLS0tLS0tCiBh cmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgICAgICB8ICA5ICsrKystLS0KIGFyY2gv eDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCAgICAgICAgIHwgMTIgKysrKystLS0tLQogYXJjaC94 ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaCAgICAgfCAzNyArKystLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiBhcmNoL3g4Ni9rZXJuZWwvZHVtcHN0YWNrLmMgICAgICAgICAgICB8ICAyICstCiBhcmNo L3g4Ni9rZXJuZWwvaXJxXzMyLmMgICAgICAgICAgICAgICB8ICAyIC0tCiBhcmNoL3g4Ni9rZXJu ZWwvaXJxXzY0LmMgICAgICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nl c3MuYyAgICAgICAgICAgICAgfCAgNiArKy0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAg ICAgICAgICAgICAgfCAgOCArKystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAg ICAgICAgICB8IDExICsrKysrKysrLQogaW5jbHVkZS9saW51eC9zY2hlZC5oICAgICAgICAgICAg ICAgICAgfCAxNiArKysrKysrKysrKy0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAzICsrKwogaW5pdC9pbml0X3Rhc2suYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArKysrLS0KIGtlcm5lbC9mb3JrLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNDQg KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogMjAgZmlsZXMgY2hhbmdlZCwgOTMg aW5zZXJ0aW9ucygrKSwgMTA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oIGIvYXJjaC9tbjEwMzAwL2luY2x1ZGUvYXNtL3Ro cmVhZF9pbmZvLmgKaW5kZXggNDg2MWE3OGM3MTYwLi5mNWY5MGJiZjAxOWQgMTAwNjQ0Ci0tLSBh L2FyY2gvbW4xMDMwMC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCisrKyBiL2FyY2gvbW4xMDMw MC9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBAIC0xMTUsNyArMTE1LDcgQEAgc3RhdGljIGlu bGluZSB1bnNpZ25lZCBsb25nIGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQogfQogCiAjaWZu ZGVmIENPTkZJR19LR0RCCi12b2lkIGFyY2hfcmVsZWFzZV90aHJlYWRfaW5mbyhzdHJ1Y3QgdGhy ZWFkX2luZm8gKnRpKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBs b25nICpzdGFjayk7CiAjZW5kaWYKICNkZWZpbmUgZ2V0X3RocmVhZF9pbmZvKHRpKQlnZXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKICNkZWZpbmUgcHV0X3RocmVhZF9pbmZvKHRpKQlwdXRfdGFz a19zdHJ1Y3QoKHRpKS0+dGFzaykKZGlmZiAtLWdpdCBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dk Yi5jIGIvYXJjaC9tbjEwMzAwL2tlcm5lbC9rZ2RiLmMKaW5kZXggOTk3NzA4MjM0NTFhLi4yZDc5 ODZjMzg2ZmUgMTAwNjQ0Ci0tLSBhL2FyY2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCisrKyBiL2Fy Y2gvbW4xMDMwMC9rZXJuZWwva2dkYi5jCkBAIC0zOTcsOCArMzk3LDkgQEAgc3RhdGljIGJvb2wg a2dkYl9hcmNoX3VuZG9fc2luZ2xlc3RlcChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICAqIHNpbmds ZS1zdGVwIHN0YXRlIGlzIGNsZWFyZWQuICBBdCB0aGlzIHBvaW50IHRoZSBicmVha3BvaW50cyBz aG91bGQgaGF2ZQogICogYmVlbiByZW1vdmVkIGJ5IF9fc3dpdGNoX3RvKCkuCiAgKi8KLXZvaWQg YXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCit2b2lkIGFy Y2hfcmVsZWFzZV90aHJlYWRfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2spCiB7CisJc3RydWN0 IHRocmVhZF9pbmZvICp0aSA9ICh2b2lkICopc3RhY2s7CiAJaWYgKGtnZGJfc3N0ZXBfdGhyZWFk ID09IHRpKSB7CiAJCWtnZGJfc3N0ZXBfdGhyZWFkID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvYXJj aC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggYi9hcmNoL3RpbGUvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAppbmRleCA0YjdjZWY5ZTk0ZTAuLmMxNDY3YWM1OWNlNiAxMDA2NDQKLS0t IGEvYXJjaC90aWxlL2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC90aWxlL2lu Y2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IHRocmVhZF9p bmZvIHsKIAogI2lmbmRlZiBfX0FTU0VNQkxZX18KIAotdm9pZCBhcmNoX3JlbGVhc2VfdGhyZWFk X2luZm8oc3RydWN0IHRocmVhZF9pbmZvICppbmZvKTsKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVh ZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjayk7CiAKIC8qIEhvdyB0byBnZXQgdGhlIHRocmVh ZCBpbmZvcm1hdGlvbiBzdHJ1Y3QgZnJvbSBDLiAqLwogcmVnaXN0ZXIgdW5zaWduZWQgbG9uZyBz dGFja19wb2ludGVyIF9fYXNtX18oInNwIik7CmRpZmYgLS1naXQgYS9hcmNoL3RpbGUva2VybmVs L3Byb2Nlc3MuYyBiL2FyY2gvdGlsZS9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4IDZiNzA1Y2NjOWNj MS4uYTQ2NWQ4MzcyZWRkIDEwMDY0NAotLS0gYS9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwor KysgYi9hcmNoL3RpbGUva2VybmVsL3Byb2Nlc3MuYwpAQCAtNzMsOCArNzMsOSBAQCB2b2lkIGFy Y2hfY3B1X2lkbGUodm9pZCkKIC8qCiAgKiBSZWxlYXNlIGEgdGhyZWFkX2luZm8gc3RydWN0dXJl CiAgKi8KLXZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq aW5mbykKK3ZvaWQgYXJjaF9yZWxlYXNlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFj aykKIHsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKmluZm8gPSAodm9pZCAqKXN0YWNrOwogCXN0cnVj dCBzaW5nbGVfc3RlcF9zdGF0ZSAqc3RlcF9zdGF0ZSA9IGluZm8tPnN0ZXBfc3RhdGU7CiAKIAlp ZiAoc3RlcF9zdGF0ZSkgewpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvS2NvbmZpZyBiL2FyY2gveDg2 L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgwNTc3YzUgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZpZwpAQCAtMTU0LDYgKzE1NCw3IEBA IGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNlbGVjdCBTUkNVCiAJc2VsZWN0IFNZ U0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFEX0lORk9fSU5fVEFTSwogCXNlbGVj dCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBWSVJUX1RPX0JVUwogCXNlbGVjdCBY ODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2Nv bW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5kZXggZWMxMzhlNTM4YzQ0Li5kNWZl YWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCisrKyBiL2FyY2gv eDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBAQAogI2RlZmluZSBDUkVBVEVfVFJB Q0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5c2NhbGxzLmg+CiAKLXN0YXRpYyBz dHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFkX2luZm8oc3RydWN0IHB0X3JlZ3Mg KnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3RhY2sgPQotCQkodW5zaWduZWQgbG9u ZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19QQURESU5HOwotCXJldHVybiAoc3Ry dWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRIUkVBRF9TSVpFKTsKLX0KLQogI2lm ZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxsZWQgb24gZW50cnkgZnJvbSB1c2Vy IG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2b2lkIGVudGVyX2Zyb21fdXNlcl9t b2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2b2lkIGRvX2F1ZGl0X3N5c2NhbGxf ZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogICovCiB1bnNpZ25lZCBsb25n IHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgYXJj aCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhy ZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwog CXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsKIApAQCAtMTU2LDcgKzE0OSw3IEBA IHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9waGFzZTEoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNlX2VudGVyX3BoYXNlMihzdHJ1Y3Qg cHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWduZWQgbG9uZyBwaGFzZTFfcmVzdWx0 KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJl Z3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJ bG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09OQ0UodGktPmZsYWdzKSAmIF9USUZf V09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMyLDcgQEAgc3RhdGljIHZvaWQgZXhp dF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdz KQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJCWxvY2FsX2lycV9kaXNhYmxlKCk7 CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVn cyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKGN1cnJlbnRfdGhyZWFkX2lu Zm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFncyAmIEVYSVRfVE9fVVNFUk1PREVf TE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCBl eGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBjYWNoZWRfZmxh Z3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAqLwogX192aXNpYmxlIGlubGluZSB2 b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3QgcHRfcmVncyAqcmVncykKIHsKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJlYWRfaW5mbygpOwogCXUzMiBjYWNo ZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJPVkVfTE9DS0lORykgJiYgV0FS Tl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICszMDIsNyBAQCBzdGF0aWMgdm9pZCBz eXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1MzIgY2FjaGVkX2Zs YWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lzY2FsbF9yZXR1cm5fc2xvd3BhdGgo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHRpLT5mbGFn cyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09OVEVYVF9LRVJORUwpOwpAQCAtMzMy LDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBzeXNjYWxsX3JldHVybl9zbG93cGF0 aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05GSUdfWDg2XzY0CiBfX3Zpc2libGUg dm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpyZWdzKQogewotCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJl YWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7CiAJdW5zaWduZWQgbG9uZyBuciA9 IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJfbW9kZSgpOwpAQCAtMzY1LDcgKzM1 OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQoc3RydWN0IHB0X3JlZ3MgKnJlZ3Mp CiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBkb19zeXNjYWxsXzMyX2lycXNfb24o c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRocmVhZF9pbmZvICp0aSA9IGN1cnJl bnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIgPSAodW5zaWduZWQgaW50KXJlZ3Mt Pm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVMQVRJT04KZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCmluZGV4 IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9lbnRyeS9l bnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMKQEAgLTE3OSw3ICsxNzks OCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9zd2FwZ3MpCiAJICogSWYgd2UgbmVl ZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdlJ2xsIG5lZWQgdG8gZG8KIAkgKiBl eGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBhdGguCiAJICovCi0JdGVzdGwJJF9U SUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8o VElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJ dGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFn cyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19wYXRoCiAKIGVudHJ5X1NZU0NBTExf NjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0 aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9OT05FKQogCVRSQUNFX0lSUVNfT0ZG Ci0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVy c3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkxZgogCiAJTE9DS0RFUF9TWVNfRVhJ VApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xmdW5jKQogICogQSBuZXdseSBmb3Jr ZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVzIGludG8gdGhpcyBhZGRyZXNzLgog ICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZyb20KKyAqIHJzaTogdGFzayB3ZSdy ZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21fZm9yaykKLQlMT0NLIDsgYnRyICRU SUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIgJFRJRl9GT1JLLCBUSV9mbGFncygl cnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sgKi8KIAogCWNhbGwJc2NoZWR1bGVf dGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVyICovCiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2twcm9iZXMuaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaAppbmRleCA0NDIxYjVkYTQwOWQuLjFkMjk5N2U3NGIwOCAxMDA2NDQKLS0tIGEvYXJjaC94 ODYvaW5jbHVkZS9hc20va3Byb2Jlcy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2twcm9i ZXMuaApAQCAtMzgsMTIgKzM4LDEyIEBAIHR5cGVkZWYgdTgga3Byb2JlX29wY29kZV90OwogI2Rl ZmluZSBSRUxBVElWRUNBTExfT1BDT0RFIDB4ZTgKICNkZWZpbmUgUkVMQVRJVkVfQUREUl9TSVpF IDQKICNkZWZpbmUgTUFYX1NUQUNLX1NJWkUgNjQKLSNkZWZpbmUgTUlOX1NUQUNLX1NJWkUoQURE UikJCQkJCSAgICAgICBcCi0JKCgoTUFYX1NUQUNLX1NJWkUpIDwgKCgodW5zaWduZWQgbG9uZylj dXJyZW50X3RocmVhZF9pbmZvKCkpICsgXAotCQkJICAgICAgVEhSRUFEX1NJWkUgLSAodW5zaWdu ZWQgbG9uZykoQUREUikpKSAgICBcCi0JID8gKE1BWF9TVEFDS19TSVpFKQkJCQkJICAgICAgIFwK LQkgOiAoKCh1bnNpZ25lZCBsb25nKWN1cnJlbnRfdGhyZWFkX2luZm8oKSkgKwkJICAgICAgIFwK LQkgICAgVEhSRUFEX1NJWkUgLSAodW5zaWduZWQgbG9uZykoQUREUikpKQorCisjZGVmaW5lIGN1 cnJlbnRfc3RhY2tfdG9wKCkgKCh1bnNpZ25lZCBsb25nKXRhc2tfc3RhY2tfcGFnZShjdXJyZW50 KStUSFJFQURfU0laRSkKKyNkZWZpbmUgY3VycmVudF9zdGFja19zaXplKEFERFIpIChjdXJyZW50 X3N0YWNrX3RvcCgpIC0gKHVuc2lnbmVkIGxvbmcpKEFERFIpKQorCisjZGVmaW5lIE1JTl9TVEFD S19TSVpFKEFERFIpIFwKKwkoTUFYX1NUQUNLX1NJWkUgPCBjdXJyZW50X3N0YWNrX3NpemUoQURE UikgPyBNQVhfU1RBQ0tfU0laRSA6IGN1cnJlbnRfc3RhY2tfc2l6ZShBRERSKSkKIAogI2RlZmlu ZSBmbHVzaF9pbnNuX3Nsb3QocCkJZG8geyB9IHdoaWxlICgwKQogCmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL3N3aXRj aF90by5oCmluZGV4IDhmMzIxYTFiMDNhMS4uYWUwYWEwNjEyYzY3IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9z d2l0Y2hfdG8uaApAQCAtMTEwLDE4ICsxMTAsMTYgQEAgZG8gewkJCQkJCQkJCVwKIAkgICAgICJj YWxsIF9fc3dpdGNoX3RvXG5cdCIJCQkJCSAgXAogCSAgICAgIm1vdnEgIl9fcGVyY3B1X2FyZyhb Y3VycmVudF90YXNrXSkiLCUlcnNpXG5cdCIJCSAgXAogCSAgICAgX19zd2l0Y2hfY2FuYXJ5CQkJ CQkJICBcCi0JICAgICAibW92cSAlUFt0aHJlYWRfaW5mb10oJSVyc2kpLCUlcjhcblx0IgkJCSAg XAogCSAgICAgIm1vdnEgJSVyYXgsJSVyZGlcblx0IiAJCQkJCSAgXAotCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcjgpXG5cdCIJCSAgXAorCSAgICAgInRlc3RsICAl W190aWZfZm9ya10sJVBbdGlfZmxhZ3NdKCUlcnNpKVxuXHQiCQkgIFwKIAkgICAgICJqbnogICBy ZXRfZnJvbV9mb3JrXG5cdCIJCQkJCSAgXAogCSAgICAgUkVTVE9SRV9DT05URVhUCQkJCQkJICBc CiAJICAgICA6ICI9YSIgKGxhc3QpCQkJCQkgIAkgIFwKIAkgICAgICAgX19zd2l0Y2hfY2FuYXJ5 X29wYXJhbQkJCQkJICBcCiAJICAgICA6IFtuZXh0XSAiUyIgKG5leHQpLCBbcHJldl0gIkQiIChw cmV2KSwJCQkgIFwKIAkgICAgICAgW3RocmVhZHJzcF0gImkiIChvZmZzZXRvZihzdHJ1Y3QgdGFz a19zdHJ1Y3QsIHRocmVhZC5zcCkpLCBcCi0JICAgICAgIFt0aV9mbGFnc10gImkiIChvZmZzZXRv ZihzdHJ1Y3QgdGhyZWFkX2luZm8sIGZsYWdzKSksCSAgXAorCSAgICAgICBbdGlfZmxhZ3NdICJp IiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWRfaW5mby5mbGFncykpLAkgIFwK IAkgICAgICAgW190aWZfZm9ya10gImkiIChfVElGX0ZPUkspLAkJCSAgCSAgXAotCSAgICAgICBb dGhyZWFkX2luZm9dICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCBzdGFjaykpLCAg IFwKIAkgICAgICAgW2N1cnJlbnRfdGFza10gIm0iIChjdXJyZW50X3Rhc2spCQkJICBcCiAJICAg ICAgIF9fc3dpdGNoX2NhbmFyeV9pcGFyYW0JCQkJCSAgXAogCSAgICAgOiAibWVtb3J5IiwgImNj IiBfX0VYVFJBX0NMT0JCRVIpCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJl YWRfaW5mby5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaAppbmRleCAzMGMx MzNhYzA1Y2QuLmQzOGViYjA4ZjRjMSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20v dGhyZWFkX2luZm8uaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90aHJlYWRfaW5mby5oCkBA IC01MywyNCArNTMsMjEgQEAgc3RydWN0IHRhc2tfc3RydWN0OwogI2luY2x1ZGUgPGxpbnV4L2F0 b21pYy5oPgogCiBzdHJ1Y3QgdGhyZWFkX2luZm8gewotCXN0cnVjdCB0YXNrX3N0cnVjdAkqdGFz azsJCS8qIG1haW4gdGFzayBzdHJ1Y3R1cmUgKi8KIAlfX3UzMgkJCWZsYWdzOwkJLyogbG93IGxl dmVsIGZsYWdzICovCiAJX191MzIJCQlzdGF0dXM7CQkvKiB0aHJlYWQgc3luY2hyb25vdXMgZmxh Z3MgKi8KIAlfX3UzMgkJCWNwdTsJCS8qIGN1cnJlbnQgQ1BVICovCi0JbW1fc2VnbWVudF90CQlh ZGRyX2xpbWl0OwogCXVuc2lnbmVkIGludAkJc2lnX29uX3VhY2Nlc3NfZXJyb3I6MTsKIAl1bnNp Z25lZCBpbnQJCXVhY2Nlc3NfZXJyOjE7CS8qIHVhY2Nlc3MgZmFpbGVkICovCisJbW1fc2VnbWVu dF90CQlhZGRyX2xpbWl0OwogfTsKIAogI2RlZmluZSBJTklUX1RIUkVBRF9JTkZPKHRzaykJCQlc CiB7CQkJCQkJXAotCS50YXNrCQk9ICZ0c2ssCQkJXAogCS5mbGFncwkJPSAwLAkJCVwKIAkuY3B1 CQk9IDAsCQkJXAogCS5hZGRyX2xpbWl0CT0gS0VSTkVMX0RTLAkJXAogfQogCi0jZGVmaW5lIGlu aXRfdGhyZWFkX2luZm8JKGluaXRfdGhyZWFkX3VuaW9uLnRocmVhZF9pbmZvKQogI2RlZmluZSBp bml0X3N0YWNrCQkoaW5pdF90aHJlYWRfdW5pb24uc3RhY2spCiAKICNlbHNlIC8qICFfX0FTU0VN QkxZX18gKi8KQEAgLTE2Niw3ICsxNjMsNyBAQCBzdHJ1Y3QgdGhyZWFkX2luZm8gewogCiBzdGF0 aWMgaW5saW5lIHN0cnVjdCB0aHJlYWRfaW5mbyAqY3VycmVudF90aHJlYWRfaW5mbyh2b2lkKQog ewotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKGN1cnJlbnRfdG9wX29mX3N0YWNrKCkg LSBUSFJFQURfU0laRSk7CisJcmV0dXJuIChzdHJ1Y3QgdGhyZWFkX2luZm8gKiljdXJyZW50Owog fQogCiBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZv aWQpCkBAIC0xODgsMzUgKzE4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgbG9uZyBjdXJy ZW50X3N0YWNrX3BvaW50ZXIodm9pZCkKIAogLyogTG9hZCB0aHJlYWRfaW5mbyBhZGRyZXNzIGlu dG8gInJlZyIgKi8KICNkZWZpbmUgR0VUX1RIUkVBRF9JTkZPKHJlZykgXAotCV9BU01fTU9WIFBF Ul9DUFVfVkFSKGNwdV9jdXJyZW50X3RvcF9vZl9zdGFjaykscmVnIDsgXAotCV9BU01fU1VCICQo VEhSRUFEX1NJWkUpLHJlZyA7Ci0KLS8qCi0gKiBBU00gb3BlcmFuZCB3aGljaCBldmFsdWF0ZXMg dG8gYSAndGhyZWFkX2luZm8nIGFkZHJlc3Mgb2YKLSAqIHRoZSBjdXJyZW50IHRhc2ssIGlmIGl0 IGlzIGtub3duIHRoYXQgInJlZyIgaXMgZXhhY3RseSAib2ZmIgotICogYnl0ZXMgYmVsb3cgdGhl IHRvcCBvZiB0aGUgc3RhY2sgY3VycmVudGx5LgotICoKLSAqICggVGhlIGtlcm5lbCBzdGFjaydz IHNpemUgaXMga25vd24gYXQgYnVpbGQgdGltZSwgaXQgaXMgdXN1YWxseQotICogICAyIG9yIDQg cGFnZXMsIGFuZCB0aGUgYm90dG9tICBvZiB0aGUga2VybmVsIHN0YWNrIGNvbnRhaW5zCi0gKiAg IHRoZSB0aHJlYWRfaW5mbyBzdHJ1Y3R1cmUuIFNvIHRvIGFjY2VzcyB0aGUgdGhyZWFkX2luZm8g dmVyeQotICogICBxdWlja2x5IGZyb20gYXNzZW1ibHkgY29kZSB3ZSBjYW4gY2FsY3VsYXRlIGRv d24gZnJvbSB0aGUKLSAqICAgdG9wIG9mIHRoZSBrZXJuZWwgc3RhY2sgdG8gdGhlIGJvdHRvbSwg dXNpbmcgY29uc3RhbnQsCi0gKiAgIGJ1aWxkLXRpbWUgY2FsY3VsYXRpb25zIG9ubHkuICkKLSAq Ci0gKiBGb3IgZXhhbXBsZSwgdG8gZmV0Y2ggdGhlIGN1cnJlbnQgdGhyZWFkX2luZm8tPmZsYWdz IHZhbHVlIGludG8gJWVheAotICogb24geDg2LTY0IGRlZmNvbmZpZyBrZXJuZWxzLCBpbiBzeXNj YWxsIGVudHJ5IGNvZGUgd2hlcmUgUlNQIGlzCi0gKiBjdXJyZW50bHkgYXQgZXhhY3RseSBTSVpF T0ZfUFRSRUdTIGJ5dGVzIGF3YXkgZnJvbSB0aGUgdG9wIG9mIHRoZQotICogc3RhY2s6Ci0gKgot ICogICAgICBtb3YgQVNNX1RIUkVBRF9JTkZPKFRJX2ZsYWdzLCAlcnNwLCBTSVpFT0ZfUFRSRUdT KSwgJWVheAotICoKLSAqIHdpbGwgdHJhbnNsYXRlIHRvOgotICoKLSAqICAgICAgOGIgODQgMjQg YjggYzAgZmYgZmYgICAgICBtb3YgICAgLTB4M2Y0OCglcnNwKSwgJWVheAotICoKLSAqIHdoaWNo IGlzIGJlbG93IHRoZSBjdXJyZW50IFJTUCBieSBhbG1vc3QgMTZLLgotICovCi0jZGVmaW5lIEFT TV9USFJFQURfSU5GTyhmaWVsZCwgcmVnLCBvZmYpICgoZmllbGQpKyhvZmYpLVRIUkVBRF9TSVpF KShyZWcpCisJX0FTTV9NT1YgUEVSX0NQVV9WQVIoY3VycmVudF90YXNrKSxyZWcKIAogI2VuZGlm CiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9kdW1wc3RhY2suYyBiL2FyY2gveDg2L2tl cm5lbC9kdW1wc3RhY2suYwppbmRleCBkNjIwOWYzYTY5Y2IuLmVmODAxN2NhNWJhOSAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL2R1bXBzdGFjay5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9k dW1wc3RhY2suYwpAQCAtODAsNyArODAsNyBAQCBwcmludF9mdHJhY2VfZ3JhcGhfYWRkcih1bnNp Z25lZCBsb25nIGFkZHIsIHZvaWQgKmRhdGEsCiBzdGF0aWMgaW5saW5lIGludCB2YWxpZF9zdGFj a19wdHIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLAogCQkJdm9pZCAqcCwgdW5zaWduZWQgaW50 IHNpemUsIHZvaWQgKmVuZCkKIHsKLQl2b2lkICp0ID0gdGFza190aHJlYWRfaW5mbyh0YXNrKTsK Kwl2b2lkICp0ID0gdGFza19zdGFja19wYWdlKHRhc2spOwogCWlmIChlbmQpIHsKIAkJaWYgKHAg PCBlbmQgJiYgcCA+PSAoZW5kLVRIUkVBRF9TSVpFKSkKIAkJCXJldHVybiAxOwpkaWZmIC0tZ2l0 IGEvYXJjaC94ODYva2VybmVsL2lycV8zMi5jIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCmlu ZGV4IDM4ZGE4ZjI5YTljOC4uYzYyN2JmOGQ5OGFkIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvaXJxXzMyLmMKKysrIGIvYXJjaC94ODYva2VybmVsL2lycV8zMi5jCkBAIC0xMzAsMTEgKzEz MCw5IEBAIHZvaWQgaXJxX2N0eF9pbml0KGludCBjcHUpCiAKIHZvaWQgZG9fc29mdGlycV9vd25f c3RhY2sodm9pZCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1cnN0azsKIAlzdHJ1Y3QgaXJx X3N0YWNrICppcnFzdGs7CiAJdTMyICppc3AsICpwcmV2X2VzcDsKIAotCWN1cnN0ayA9IGN1cnJl bnRfc3RhY2soKTsKIAlpcnFzdGsgPSBfX3RoaXNfY3B1X3JlYWQoc29mdGlycV9zdGFjayk7CiAK IAkvKiBidWlsZCB0aGUgc3RhY2sgZnJhbWUgb24gdGhlIHNvZnRpcnEgc3RhY2sgKi8KZGlmZiAt LWdpdCBhL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQu YwppbmRleCAyMDZkMGI5MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv a2VybmVsL2lycV82NC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCAr NDEsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0 X3JlZ3MgKnJlZ3MpCiAJaWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJl Z3MtPnNwID49IGN1cmJhc2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBz aXplb2Yoc3RydWN0IHB0X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5z cCA+PSBjdXJiYXNlICsgc2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4g JiYKIAkgICAgcmVncy0+c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAK ZGlmZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCmluZGV4IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMK QEAgLTUzNiw5ICs1MzYsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICogUEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRP UF9PRl9LRVJORUxfU1RBQ0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90 dG9tID0gc3RhcnQgKyBzaXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAt LS0tLS0tLS0tLSBzdGFydAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkg KiBUaGUgdGFza3Mgc3RhY2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRo ZQogCSAqIGZyYW1lcG9pbnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoK QEAgLTU0OSw3ICs1NDcsNyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19z dHJ1Y3QgKnApCiAJICovCiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJO RUxfU1RBQ0tfUEFERElORzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQli b3R0b20gPSBzdGFydCArIHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0 YXJ0OwogCiAJc3AgPSBSRUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20g fHwgc3AgPiB0b3ApCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gv eDg2L3VtL3B0cmFjZV8zMi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0 NAotLS0gYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2Vf MzIuYwpAQCAtMTkxLDcgKzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0 ICpjaGlsZCwgbG9uZyBhZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhz dHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpj aGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGls ZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGls ZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZl X2kzODdfcmVnaXN0ZXJzKHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBz dGF0aWMgaW50IGdldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYs IHN0cnVjdCB0YXNrX3N0cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVz ZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7 Ci0JaW50IG4sIGNwdSA9ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNw dTsKKwlpbnQgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3Qg dXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywg YnVmLCBzaXplb2YoZnByZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRf ZnByZWdzKHN0cnVjdCB1c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmMKIAogc3RhdGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVj dCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNl cl9meHNyX3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNw YWNlX3BpZFtjcHVdLCAodW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcs NyBAQCBzdGF0aWMgaW50IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNl ciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0 cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNo aWxkKQogewotCWludCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3Rh Y2spLT5jcHU7CisJaW50IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJ c3RydWN0IHVzZXJfZnhzcl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZm cHJlZ3MsIGJ1Ziwgc2l6ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9p bml0X3Rhc2suaCBiL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjJjYjhkNDU1MTNk Li45YzA0ZDQ0ZWViM2MgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysr IGIvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUg PG5ldC9uZXRfbmFtZXNwYWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2lu Y2x1ZGUgPGFzbS90aHJlYWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUg SU5JVF9QVVNIQUJMRV9UQVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1Rf Tk9ERV9JTklUKHRzay5wdXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDE0ICsxODUs MjEgQEAgZXh0ZXJuIHN0cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5l IElOSVRfS0FTQU4odHNrKQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5f VEFTSworIyBkZWZpbmUgSU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJF QURfSU5GTyh0c2spLAorI2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYK KwogLyoKICAqICBJTklUX1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFi bGUsIHRvdWNoIGF0CiAgKiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAo PTJNQikKICAqLwogI2RlZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRf VEFTS19USSh0c2spCQkJCQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKLQkuc3RhY2sJCT0gJmlu aXRfdGhyZWFkX2luZm8sCQkJCVwKKwkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwKIAkudXNh Z2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKIAkuZmxhZ3MJCT0gUEZfS1RIUkVBRCwJCQkJCVwK IAkucHJpbwkJPSBNQVhfUFJJTy0yMCwJCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgv c2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCA2ZTQyYWRhMjYzNDUuLjA0YWVi MGM3YjU2NCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1ZGUv bGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91bm1h cF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19USFJF QURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2VuZGlm CiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwgPjAg c3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0b21p Y190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3MsIGRl ZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQyLDkg QEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5kZWYg Q09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFkX2lu Zm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihsb25n KV07CiB9OwogCkBAIC0yOTY3LDcgKzI5NzIsMTQgQEAgc3RhdGljIGlubGluZSB2b2lkIHRocmVh ZGdyb3VwX2NoYW5nZV9lbmQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiAJY2dyb3VwX3RocmVh ZGdyb3VwX2NoYW5nZV9lbmQodHNrKTsKIH0KIAotI2lmbmRlZiBfX0hBVkVfVEhSRUFEX0ZVTkNU SU9OUworI2lmZGVmIENPTkZJR19USFJFQURfSU5GT19JTl9UQVNLCisKKyNkZWZpbmUgdGFza190 aHJlYWRfaW5mbyh0YXNrKQkJKCYodGFzayktPnRocmVhZF9pbmZvKQorI2RlZmluZSB0YXNrX3N0 YWNrX3BhZ2UodGFzaykJCSgodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1cF90aHJlYWRfc3Rh Y2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9zdGFjayh0YXNrKQkJ KCh1bnNpZ25lZCBsb25nICopdGFza19zdGFja19wYWdlKHRhc2spKQorCisjZWxpZiAhZGVmaW5l ZChfX0hBVkVfVEhSRUFEX0ZVTkNUSU9OUykKIAogI2RlZmluZSB0YXNrX3RocmVhZF9pbmZvKHRh c2spCSgoc3RydWN0IHRocmVhZF9pbmZvICopKHRhc2spLT5zdGFjaykKICNkZWZpbmUgdGFza19z dGFja19wYWdlKHRhc2spCSgodGFzayktPnN0YWNrKQpkaWZmIC0tZ2l0IGEvaW5pdC9LY29uZmln IGIvaW5pdC9LY29uZmlnCmluZGV4IGY3NTVhNjAyZDRhMS4uMGM4M2FmNmQzNzUzIDEwMDY0NAot LS0gYS9pbml0L0tjb25maWcKKysrIGIvaW5pdC9LY29uZmlnCkBAIC0yNiw2ICsyNiw5IEBAIGNv bmZpZyBJUlFfV09SSwogY29uZmlnIEJVSUxEVElNRV9FWFRBQkxFX1NPUlQKIAlib29sCiAKK2Nv bmZpZyBUSFJFQURfSU5GT19JTl9UQVNLCisJYm9vbAorCiBtZW51ICJHZW5lcmFsIHNldHVwIgog CiBjb25maWcgQlJPS0VOCmRpZmYgLS1naXQgYS9pbml0L2luaXRfdGFzay5jIGIvaW5pdC9pbml0 X3Rhc2suYwppbmRleCBiYTBhN2YzNjJkOWUuLjExZjgzYmUxZmE3OSAxMDA2NDQKLS0tIGEvaW5p dC9pbml0X3Rhc2suYworKysgYi9pbml0L2luaXRfdGFzay5jCkBAIC0yMiw1ICsyMiw4IEBAIEVY UE9SVF9TWU1CT0woaW5pdF90YXNrKTsKICAqIEluaXRpYWwgdGhyZWFkIHN0cnVjdHVyZS4gQWxp Z25tZW50IG9mIHRoaXMgaXMgaGFuZGxlZCBieSBhIHNwZWNpYWwKICAqIGxpbmtlciBtYXAgZW50 cnkuCiAgKi8KLXVuaW9uIHRocmVhZF91bmlvbiBpbml0X3RocmVhZF91bmlvbiBfX2luaXRfdGFz a19kYXRhID0KLQl7IElOSVRfVEhSRUFEX0lORk8oaW5pdF90YXNrKSB9OwordW5pb24gdGhyZWFk X3VuaW9uIGluaXRfdGhyZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPSB7CisjaWZuZGVmIENP TkZJR19USFJFQURfSU5GT19JTl9UQVNLCisJSU5JVF9USFJFQURfSU5GTyhpbml0X3Rhc2spCisj ZW5kaWYKK307CmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuYwppbmRl eCA1YzJjMzU1YWE5N2YuLjlmMjkwMjI2ZDlkNSAxMDA2NDQKLS0tIGEva2VybmVsL2ZvcmsuYwor KysgYi9rZXJuZWwvZm9yay5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIGlubGluZSB2b2lk IGZyZWVfdGFza19zdHJ1Y3Qoc3RydWN0IHRhc2tfc3RydWN0ICp0c2spCiB9CiAjZW5kaWYKIAot dm9pZCBfX3dlYWsgYXJjaF9yZWxlYXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAq dGkpCit2b2lkIF9fd2VhayBhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHVuc2lnbmVkIGxvbmcg KnN0YWNrKQogewogfQogCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBfX3dlYWsgYXJjaF9yZWxl YXNlX3RocmVhZF9pbmZvKHN0cnVjdCB0aHJlYWRfaW5mbyAqdGkpCiAgKiBrbWVtY2FjaGUgYmFz ZWQgYWxsb2NhdG9yLgogICovCiAjIGlmIFRIUkVBRF9TSVpFID49IFBBR0VfU0laRQotc3RhdGlj IHN0cnVjdCB0aHJlYWRfaW5mbyAqYWxsb2NfdGhyZWFkX2luZm9fbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKK3N0YXRpYyB1bnNpZ25lZCBsb25nICphbGxvY190aHJlYWRfc3RhY2tfbm9k ZShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7CiAJc3RydWN0 IHBhZ2UgKnBhZ2UgPSBhbGxvY19rbWVtX3BhZ2VzX25vZGUobm9kZSwgVEhSRUFESU5GT19HRlAs CkBAIC0xNzIsMzEgKzE3MiwzMSBAQCBzdGF0aWMgc3RydWN0IHRocmVhZF9pbmZvICphbGxvY190 aHJlYWRfaW5mb19ub2RlKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrLAogCXJldHVybiBwYWdlID8g cGFnZV9hZGRyZXNzKHBhZ2UpIDogTlVMTDsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGZyZWVf dGhyZWFkX2luZm8oc3RydWN0IHRocmVhZF9pbmZvICp0aSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBm cmVlX3RocmVhZF9zdGFjayh1bnNpZ25lZCBsb25nICpzdGFjaykKIHsKLQlzdHJ1Y3QgcGFnZSAq cGFnZSA9IHZpcnRfdG9fcGFnZSh0aSk7CisJc3RydWN0IHBhZ2UgKnBhZ2UgPSB2aXJ0X3RvX3Bh Z2Uoc3RhY2spOwogCiAJbWVtY2dfa21lbV91cGRhdGVfcGFnZV9zdGF0KHBhZ2UsIE1FTUNHX0tF Uk5FTF9TVEFDSywKIAkJCQkgICAgLSgxIDw8IFRIUkVBRF9TSVpFX09SREVSKSk7CiAJX19mcmVl X2ttZW1fcGFnZXMocGFnZSwgVEhSRUFEX1NJWkVfT1JERVIpOwogfQogIyBlbHNlCi1zdGF0aWMg c3RydWN0IGttZW1fY2FjaGUgKnRocmVhZF9pbmZvX2NhY2hlOworc3RhdGljIHN0cnVjdCBrbWVt X2NhY2hlICp0aHJlYWRfc3RhY2tfY2FjaGU7CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8g KmFsbG9jX3RocmVhZF9pbmZvX25vZGUoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssCitzdGF0aWMg c3RydWN0IHRocmVhZF9pbmZvICphbGxvY190aHJlYWRfc3RhY2tfbm9kZShzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRzaywKIAkJCQkJCSAgaW50IG5vZGUpCiB7Ci0JcmV0dXJuIGttZW1fY2FjaGVfYWxs b2Nfbm9kZSh0aHJlYWRfaW5mb19jYWNoZSwgVEhSRUFESU5GT19HRlAsIG5vZGUpOworCXJldHVy biBrbWVtX2NhY2hlX2FsbG9jX25vZGUodGhyZWFkX3N0YWNrX2NhY2hlLCBUSFJFQURJTkZPX0dG UCwgbm9kZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGZyZWVfdGhyZWFkX2luZm8oc3RydWN0IHRocmVh ZF9pbmZvICp0aSkKK3N0YXRpYyB2b2lkIGZyZWVfc3RhY2sodW5zaWduZWQgbG9uZyAqc3RhY2sp CiB7Ci0Ja21lbV9jYWNoZV9mcmVlKHRocmVhZF9pbmZvX2NhY2hlLCB0aSk7CisJa21lbV9jYWNo ZV9mcmVlKHRocmVhZF9zdGFja19jYWNoZSwgc3RhY2spOwogfQogCiB2b2lkIHRocmVhZF9pbmZv X2NhY2hlX2luaXQodm9pZCkKIHsKLQl0aHJlYWRfaW5mb19jYWNoZSA9IGttZW1fY2FjaGVfY3Jl YXRlKCJ0aHJlYWRfaW5mbyIsIFRIUkVBRF9TSVpFLAorCXRocmVhZF9zdGFja19jYWNoZSA9IGtt ZW1fY2FjaGVfY3JlYXRlKCJ0aHJlYWRfc3RhY2siLCBUSFJFQURfU0laRSwKIAkJCQkJICAgICAg VEhSRUFEX1NJWkUsIDAsIE5VTEwpOwogCUJVR19PTih0aHJlYWRfaW5mb19jYWNoZSA9PSBOVUxM KTsKIH0KQEAgLTIyMSw5ICsyMjEsOSBAQCBzdHJ1Y3Qga21lbV9jYWNoZSAqdm1fYXJlYV9jYWNo ZXA7CiAvKiBTTEFCIGNhY2hlIGZvciBtbV9zdHJ1Y3Qgc3RydWN0dXJlcyAodHNrLT5tbSkgKi8K IHN0YXRpYyBzdHJ1Y3Qga21lbV9jYWNoZSAqbW1fY2FjaGVwOwogCi1zdGF0aWMgdm9pZCBhY2Nv dW50X2tlcm5lbF9zdGFjayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKK3N0 YXRpYyB2b2lkIGFjY291bnRfa2VybmVsX3N0YWNrKHVuc2lnbmVkIGxvbmcgKnN0YWNrLCBpbnQg YWNjb3VudCkKIHsKLQlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uo dGkpKTsKKwlzdHJ1Y3Qgem9uZSAqem9uZSA9IHBhZ2Vfem9uZSh2aXJ0X3RvX3BhZ2Uoc3RhY2sp KTsKIAogCW1vZF96b25lX3BhZ2Vfc3RhdGUoem9uZSwgTlJfS0VSTkVMX1NUQUNLLCBhY2NvdW50 KTsKIH0KQEAgLTIzMSw4ICsyMzEsOCBAQCBzdGF0aWMgdm9pZCBhY2NvdW50X2tlcm5lbF9zdGFj ayhzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpLCBpbnQgYWNjb3VudCkKIHZvaWQgZnJlZV90YXNrKHN0 cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogewogCWFjY291bnRfa2VybmVsX3N0YWNrKHRzay0+c3Rh Y2ssIC0xKTsKLQlhcmNoX3JlbGVhc2VfdGhyZWFkX2luZm8odHNrLT5zdGFjayk7Ci0JZnJlZV90 aHJlYWRfaW5mbyh0c2stPnN0YWNrKTsKKwlhcmNoX3JlbGVhc2VfdGhyZWFkX3N0YWNrKHRzay0+ c3RhY2spOworCWZyZWVfdGhyZWFkX3N0YWNrKHRzay0+c3RhY2spOwogCXJ0X211dGV4X2RlYnVn X3Rhc2tfZnJlZSh0c2spOwogCWZ0cmFjZV9ncmFwaF9leGl0X3Rhc2sodHNrKTsKIAlwdXRfc2Vj Y29tcF9maWx0ZXIodHNrKTsKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkIHNldF90YXNrX3N0YWNr X2VuZF9tYWdpYyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaykKIHN0YXRpYyBzdHJ1Y3QgdGFza19z dHJ1Y3QgKmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2Rl KQogewogCXN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrOwotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGk7 CisJdW5zaWduZWQgbG9uZyAqc3RhY2s7CiAJaW50IGVycjsKIAogCWlmIChub2RlID09IE5VTUFf Tk9fTk9ERSkKQEAgLTM1MiwxNSArMzUyLDE1IEBAIHN0YXRpYyBzdHJ1Y3QgdGFza19zdHJ1Y3Qg KmR1cF90YXNrX3N0cnVjdChzdHJ1Y3QgdGFza19zdHJ1Y3QgKm9yaWcsIGludCBub2RlKQogCWlm ICghdHNrKQogCQlyZXR1cm4gTlVMTDsKIAotCXRpID0gYWxsb2NfdGhyZWFkX2luZm9fbm9kZSh0 c2ssIG5vZGUpOwotCWlmICghdGkpCisJc3RhY2sgPSBhbGxvY190aHJlYWRfc3RhY2tfbm9kZSh0 c2ssIG5vZGUpOworCWlmICghc3RhY2spCiAJCWdvdG8gZnJlZV90c2s7CiAKIAllcnIgPSBhcmNo X2R1cF90YXNrX3N0cnVjdCh0c2ssIG9yaWcpOwogCWlmIChlcnIpCi0JCWdvdG8gZnJlZV90aTsK KwkJZ290byBmcmVlX3N0YWNrOwogCi0JdHNrLT5zdGFjayA9IHRpOworCXRzay0+c3RhY2sgPSBz dGFjazsKICNpZmRlZiBDT05GSUdfU0VDQ09NUAogCS8qCiAJICogV2UgbXVzdCBoYW5kbGUgc2V0 dGluZyB1cCBzZWNjb21wIGZpbHRlcnMgb25jZSB3ZSdyZSB1bmRlcgpAQCAtMzkyLDE0ICszOTIs MTQgQEAgc3RhdGljIHN0cnVjdCB0YXNrX3N0cnVjdCAqZHVwX3Rhc2tfc3RydWN0KHN0cnVjdCB0 YXNrX3N0cnVjdCAqb3JpZywgaW50IG5vZGUpCiAJdHNrLT50YXNrX2ZyYWcucGFnZSA9IE5VTEw7 CiAJdHNrLT53YWtlX3EubmV4dCA9IE5VTEw7CiAKLQlhY2NvdW50X2tlcm5lbF9zdGFjayh0aSwg MSk7CisJYWNjb3VudF9rZXJuZWxfc3RhY2soc3RhY2ssIDEpOwogCiAJa2Nvdl90YXNrX2luaXQo dHNrKTsKIAogCXJldHVybiB0c2s7CiAKLWZyZWVfdGk6Ci0JZnJlZV90aHJlYWRfaW5mbyh0aSk7 CitmcmVlX3N0YWNrOgorCWZyZWVfdGhyZWFkX3N0YWNrKHN0YWNrKTsKIGZyZWVfdHNrOgogCWZy ZWVfdGFza19zdHJ1Y3QodHNrKTsKIAlyZXR1cm4gTlVMTDsK --001a113defaab3fe1105360a1a14--