From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751854AbcFYClL (ORCPT ); Fri, 24 Jun 2016 22:41:11 -0400 Received: from mail-oi0-f47.google.com ([209.85.218.47]:33343 "EHLO mail-oi0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751463AbcFYClG (ORCPT ); Fri, 24 Jun 2016 22:41:06 -0400 MIME-Version: 1.0 In-Reply-To: References: <20160623185340.GO30154@twins.programming.kicks-ass.net> <20160624202530.unmidps4kpebo2na@treble> <20160624205116.4hbnurrnan4afq2t@treble> From: Linus Torvalds Date: Fri, 24 Jun 2016 19:41:03 -0700 X-Google-Sender-Auth: Y3ATlfJM49KpKeTQdIy2cEhrw_Y Message-ID: Subject: Re: [PATCH v3 00/13] Virtually mapped stacks with guard pages (x86, core) To: Andy Lutomirski Cc: Josh Poimboeuf , Brian Gerst , Peter Zijlstra , Oleg Nesterov , 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" , Jann Horn , Heiko Carstens Content-Type: multipart/mixed; boundary=001a1136e636f1116b05361137f0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 2:34 PM, Andy Lutomirski wrote: >> >> So let me get the pure semantic patches done, and then for 4.8 when we >> do the things that actually change real meaning we'll have a sane >> base. Ok? > > Works for me. I'll see whether my vmap patches still apply and, if > needed, rebase and send a v5. Ok, I'e pushed out the cleanups (and all the pulls that always come in on Friday afternoon - gaah, I shouldn't have tried doing this on a Friday). I'm attaching the current left-over patch that actually changes things. It's obviously a composite, and includes your "remove stack_smp_processor_id()" thing etc, so it's not meant to be used as-is, but it does seem to work. Interestingly, it seems pretty clean too, removing more lines than it adds (despite the fact that it adds a new config option), and generally making things prettier rather than the reverse. That's always a good sign. Linus --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipuk7qx40 CiAgICBUaGlzIGlzIGFuIGF0dGVtcHQgYXQgbW92aW5nIHRoZSB0aHJlYWRfaW5mbyBpbnRvIHRo ZSB0YXNrX3N0cnVjdAoKIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgfCAgMSAr CiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYyAgICAgICAgICAgIHwgMjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgIHwgIDkgKysrKysrLS0t CiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHUuaCAgICAgICAgIHwgIDEgLQogYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmggICAgICAgICB8ICA2IC0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20v c3dpdGNoX3RvLmggICB8ICA2ICsrLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2lu Zm8uaCB8IDM3ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gveDg2 L2tlcm5lbC9jcHUvY29tbW9uLmMgICAgICAgfCAgMiArLQogYXJjaC94ODYva2VybmVsL2lycV82 NC5jICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyAgICAgICAg ICB8ICA2ICsrLS0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAgICAgICAgICB8ICA4ICsr KystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAgICAgIHwgIDkgKysrKysrKysr CiBpbmNsdWRlL2xpbnV4L3NjaGVkLmggICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKysr LS0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBpbml0L2lu aXRfdGFzay5jICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKystLQogMTUgZmlsZXMgY2hhbmdl ZCwgNTkgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgw NTc3YzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZp ZwpAQCAtMTU0LDYgKzE1NCw3IEBAIGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNl bGVjdCBTUkNVCiAJc2VsZWN0IFNZU0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFE X0lORk9fSU5fVEFTSwogCXNlbGVjdCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBW SVJUX1RPX0JVUwogCXNlbGVjdCBYODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5k ZXggZWMxMzhlNTM4YzQ0Li5kNWZlYWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5 L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBA QAogI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5 c2NhbGxzLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFk X2luZm8oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3Rh Y2sgPQotCQkodW5zaWduZWQgbG9uZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19Q QURESU5HOwotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRI UkVBRF9TSVpFKTsKLX0KLQogI2lmZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxs ZWQgb24gZW50cnkgZnJvbSB1c2VyIG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2 b2lkIGVudGVyX2Zyb21fdXNlcl9tb2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2 b2lkIGRvX2F1ZGl0X3N5c2NhbGxfZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNo KQogICovCiB1bnNpZ25lZCBsb25nIHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBw dF9yZWdzICpyZWdzLCB1MzIgYXJjaCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRf cmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3Vy cmVudF90aHJlYWRfaW5mbygpOwogCXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsK IApAQCAtMTU2LDcgKzE0OSw3IEBAIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9w aGFzZTEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNl X2VudGVyX3BoYXNlMihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWdu ZWQgbG9uZyBwaGFzZTFfcmVzdWx0KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9y ZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJy ZW50X3RocmVhZF9pbmZvKCk7CiAJbG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09O Q0UodGktPmZsYWdzKSAmIF9USUZfV09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMy LDcgQEAgc3RhdGljIHZvaWQgZXhpdF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpy ZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJ CWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9P TkNFKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFn cyAmIEVYSVRfVE9fVVNFUk1PREVfTE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsy NDMsNyBAQCBzdGF0aWMgdm9pZCBleGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBjYWNoZWRfZmxhZ3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAq LwogX192aXNpYmxlIGlubGluZSB2b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190 aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJl YWRfaW5mbygpOwogCXUzMiBjYWNoZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf UFJPVkVfTE9DS0lORykgJiYgV0FSTl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICsz MDIsNyBAQCBzdGF0aWMgdm9pZCBzeXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lz Y2FsbF9yZXR1cm5fc2xvd3BhdGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdz ID0gUkVBRF9PTkNFKHRpLT5mbGFncyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09O VEVYVF9LRVJORUwpOwpAQCAtMzMyLDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBz eXNjYWxsX3JldHVybl9zbG93cGF0aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05G SUdfWDg2XzY0CiBfX3Zpc2libGUgdm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpy ZWdzKQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZv KHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7 CiAJdW5zaWduZWQgbG9uZyBuciA9IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJf bW9kZSgpOwpAQCAtMzY1LDcgKzM1OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBk b19zeXNjYWxsXzMyX2lycXNfb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIg PSAodW5zaWduZWQgaW50KXJlZ3MtPm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVM QVRJT04KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TCmluZGV4IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5 XzY0LlMKQEAgLTE3OSw3ICsxNzksOCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9z d2FwZ3MpCiAJICogSWYgd2UgbmVlZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdl J2xsIG5lZWQgdG8gZG8KIAkgKiBleGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBh dGguCiAJICovCi0JdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19N QVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VU X1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19w YXRoCiAKIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50 cnlfU1lTQ0FMTF82NF9mYXN0cGF0aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9O T05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhS RUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZP KCVyMTEpCisJdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkx ZgogCiAJTE9DS0RFUF9TWVNfRVhJVApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xm dW5jKQogICogQSBuZXdseSBmb3JrZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVz IGludG8gdGhpcyBhZGRyZXNzLgogICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZy b20KKyAqIHJzaTogdGFzayB3ZSdyZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21f Zm9yaykKLQlMT0NLIDsgYnRyICRUSUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIg JFRJRl9GT1JLLCBUSV9mbGFncyglcnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sg Ki8KIAogCWNhbGwJc2NoZWR1bGVfdGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVy ICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vY3B1LmgKaW5kZXggNjc4NjM3YWQ3NDc2Li41OWQzNGM1MjFkOTYgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NwdS5oCkBAIC0xNyw3ICsxNyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcmVmaWxsX3Bv c3NpYmxlX21hcCh2b2lkKSB7fQogCiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCQkJYm9v dF9jcHVfcGh5c2ljYWxfYXBpY2lkCiAjZGVmaW5lIHNhZmVfc21wX3Byb2Nlc3Nvcl9pZCgpCQkJ MAotI2RlZmluZSBzdGFja19zbXBfcHJvY2Vzc29yX2lkKCkJCTAKIAogI2VuZGlmIC8qIENPTkZJ R19TTVAgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zbXAuaAppbmRleCA2NmIwNTczMDZmNDAuLjA1NzZiNjE1N2YzYSAx MDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmgKQEAgLTE3MiwxMiArMTcyLDYgQEAgZXh0ZXJuIGludCBzYWZlX3NtcF9w cm9jZXNzb3JfaWQodm9pZCk7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19YODZfNjRfU01QKQogI2Rl ZmluZSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICh0aGlzX2NwdV9yZWFkKGNwdV9udW1iZXIpKQog Ci0jZGVmaW5lIHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKQkJCQkJXAotKHsJCQkJCQkJCVwKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwkJCQkJCVwKLQlfX2FzbV9fKCJhbmRxICUlcnNwLCUwOyAi OiI9ciIgKHRpKSA6ICIwIiAoQ1VSUkVOVF9NQVNLKSk7CVwKLQl0aS0+Y3B1OwkJCQkJCQlcCi19 KQogI2RlZmluZSBzYWZlX3NtcF9wcm9jZXNzb3JfaWQoKQkJc21wX3Byb2Nlc3Nvcl9pZCgpCiAK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAppbmRleCA4ZjMyMWExYjAzYTEuLmFlMGFh MDYxMmM2NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKKysr IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKQEAgLTExMCwxOCArMTEwLDE2IEBA IGRvIHsJCQkJCQkJCQlcCiAJICAgICAiY2FsbCBfX3N3aXRjaF90b1xuXHQiCQkJCQkgIFwKIAkg ICAgICJtb3ZxICJfX3BlcmNwdV9hcmcoW2N1cnJlbnRfdGFza10pIiwlJXJzaVxuXHQiCQkgIFwK IAkgICAgIF9fc3dpdGNoX2NhbmFyeQkJCQkJCSAgXAotCSAgICAgIm1vdnEgJVBbdGhyZWFkX2lu Zm9dKCUlcnNpKSwlJXI4XG5cdCIJCQkgIFwKIAkgICAgICJtb3ZxICUlcmF4LCUlcmRpXG5cdCIg CQkJCQkgIFwKLQkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXI4KVxu XHQiCQkgIFwKKwkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXJzaSlc blx0IgkJICBcCiAJICAgICAiam56ICAgcmV0X2Zyb21fZm9ya1xuXHQiCQkJCQkgIFwKIAkgICAg IFJFU1RPUkVfQ09OVEVYVAkJCQkJCSAgXAogCSAgICAgOiAiPWEiIChsYXN0KQkJCQkJICAJICBc CiAJICAgICAgIF9fc3dpdGNoX2NhbmFyeV9vcGFyYW0JCQkJCSAgXAogCSAgICAgOiBbbmV4dF0g IlMiIChuZXh0KSwgW3ByZXZdICJEIiAocHJldiksCQkJICBcCiAJICAgICAgIFt0aHJlYWRyc3Bd ICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWQuc3ApKSwgXAotCSAgICAg ICBbdGlfZmxhZ3NdICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBmbGFncykpLAkg IFwKKwkgICAgICAgW3RpX2ZsYWdzXSAiaSIgKG9mZnNldG9mKHN0cnVjdCB0YXNrX3N0cnVjdCwg dGhyZWFkX2luZm8uZmxhZ3MpKSwJICBcCiAJICAgICAgIFtfdGlmX2ZvcmtdICJpIiAoX1RJRl9G T1JLKSwJCQkgIAkgIFwKLQkgICAgICAgW3RocmVhZF9pbmZvXSAiaSIgKG9mZnNldG9mKHN0cnVj dCB0YXNrX3N0cnVjdCwgc3RhY2spKSwgICBcCiAJICAgICAgIFtjdXJyZW50X3Rhc2tdICJtIiAo Y3VycmVudF90YXNrKQkJCSAgXAogCSAgICAgICBfX3N3aXRjaF9jYW5hcnlfaXBhcmFtCQkJCQkg IFwKIAkgICAgIDogIm1lbW9yeSIsICJjYyIgX19FWFRSQV9DTE9CQkVSKQpkaWZmIC0tZ2l0IGEv YXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L3RocmVhZF9pbmZvLmgKaW5kZXggMzBjMTMzYWMwNWNkLi5kMzhlYmIwOGY0YzEgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaApAQCAtNTMsMjQgKzUzLDIxIEBAIHN0cnVjdCB0YXNrX3N0 cnVjdDsKICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KIAogc3RydWN0IHRocmVhZF9pbmZvIHsK LQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCiAJ X191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwogCV9fdTMyCQkJc3RhdHVzOwkJ LyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCiAJX191MzIJCQljcHU7CQkvKiBjdXJyZW50 IENQVSAqLwotCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIAl1bnNpZ25lZCBpbnQJCXNpZ19v bl91YWNjZXNzX2Vycm9yOjE7CiAJdW5zaWduZWQgaW50CQl1YWNjZXNzX2VycjoxOwkvKiB1YWNj ZXNzIGZhaWxlZCAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIH07CiAKICNkZWZpbmUg SU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAogewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwK IAkuZmxhZ3MJCT0gMCwJCQlcCiAJLmNwdQkJPSAwLAkJCVwKIAkuYWRkcl9saW1pdAk9IEtFUk5F TF9EUywJCVwKIH0KIAotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlv bi50aHJlYWRfaW5mbykKICNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0 YWNrKQogCiAjZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCkBAIC0xNjYsNyArMTYzLDcgQEAgc3Ry dWN0IHRocmVhZF9pbmZvIHsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1 cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKIHsKLQlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAq KShjdXJyZW50X3RvcF9vZl9zdGFjaygpIC0gVEhSRUFEX1NJWkUpOworCXJldHVybiAoc3RydWN0 IHRocmVhZF9pbmZvICopY3VycmVudDsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQpAQCAtMTg4LDM1ICsxODUsNyBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZvaWQpCiAKIC8qIExv YWQgdGhyZWFkX2luZm8gYWRkcmVzcyBpbnRvICJyZWciICovCiAjZGVmaW5lIEdFVF9USFJFQURf SU5GTyhyZWcpIFwKLQlfQVNNX01PViBQRVJfQ1BVX1ZBUihjcHVfY3VycmVudF90b3Bfb2Zfc3Rh Y2spLHJlZyA7IFwKLQlfQVNNX1NVQiAkKFRIUkVBRF9TSVpFKSxyZWcgOwotCi0vKgotICogQVNN IG9wZXJhbmQgd2hpY2ggZXZhbHVhdGVzIHRvIGEgJ3RocmVhZF9pbmZvJyBhZGRyZXNzIG9mCi0g KiB0aGUgY3VycmVudCB0YXNrLCBpZiBpdCBpcyBrbm93biB0aGF0ICJyZWciIGlzIGV4YWN0bHkg Im9mZiIKLSAqIGJ5dGVzIGJlbG93IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGN1cnJlbnRseS4KLSAq Ci0gKiAoIFRoZSBrZXJuZWwgc3RhY2sncyBzaXplIGlzIGtub3duIGF0IGJ1aWxkIHRpbWUsIGl0 IGlzIHVzdWFsbHkKLSAqICAgMiBvciA0IHBhZ2VzLCBhbmQgdGhlIGJvdHRvbSAgb2YgdGhlIGtl cm5lbCBzdGFjayBjb250YWlucwotICogICB0aGUgdGhyZWFkX2luZm8gc3RydWN0dXJlLiBTbyB0 byBhY2Nlc3MgdGhlIHRocmVhZF9pbmZvIHZlcnkKLSAqICAgcXVpY2tseSBmcm9tIGFzc2VtYmx5 IGNvZGUgd2UgY2FuIGNhbGN1bGF0ZSBkb3duIGZyb20gdGhlCi0gKiAgIHRvcCBvZiB0aGUga2Vy bmVsIHN0YWNrIHRvIHRoZSBib3R0b20sIHVzaW5nIGNvbnN0YW50LAotICogICBidWlsZC10aW1l IGNhbGN1bGF0aW9ucyBvbmx5LiApCi0gKgotICogRm9yIGV4YW1wbGUsIHRvIGZldGNoIHRoZSBj dXJyZW50IHRocmVhZF9pbmZvLT5mbGFncyB2YWx1ZSBpbnRvICVlYXgKLSAqIG9uIHg4Ni02NCBk ZWZjb25maWcga2VybmVscywgaW4gc3lzY2FsbCBlbnRyeSBjb2RlIHdoZXJlIFJTUCBpcwotICog Y3VycmVudGx5IGF0IGV4YWN0bHkgU0laRU9GX1BUUkVHUyBieXRlcyBhd2F5IGZyb20gdGhlIHRv cCBvZiB0aGUKLSAqIHN0YWNrOgotICoKLSAqICAgICAgbW92IEFTTV9USFJFQURfSU5GTyhUSV9m bGFncywgJXJzcCwgU0laRU9GX1BUUkVHUyksICVlYXgKLSAqCi0gKiB3aWxsIHRyYW5zbGF0ZSB0 bzoKLSAqCi0gKiAgICAgIDhiIDg0IDI0IGI4IGMwIGZmIGZmICAgICAgbW92ICAgIC0weDNmNDgo JXJzcCksICVlYXgKLSAqCi0gKiB3aGljaCBpcyBiZWxvdyB0aGUgY3VycmVudCBSU1AgYnkgYWxt b3N0IDE2Sy4KLSAqLwotI2RlZmluZSBBU01fVEhSRUFEX0lORk8oZmllbGQsIHJlZywgb2ZmKSAo KGZpZWxkKSsob2ZmKS1USFJFQURfU0laRSkocmVnKQorCV9BU01fTU9WIFBFUl9DUFVfVkFSKGN1 cnJlbnRfdGFzaykscmVnCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv Y3B1L2NvbW1vbi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwppbmRleCAwZmU2OTUz ZjQyMWMuLmQyMmE3YjljNGYwZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21t b24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC0xNDUyLDcgKzE0NTIs NyBAQCB2b2lkIGNwdV9pbml0KHZvaWQpCiAJc3RydWN0IHRhc2tfc3RydWN0ICptZTsKIAlzdHJ1 Y3QgdHNzX3N0cnVjdCAqdDsKIAl1bnNpZ25lZCBsb25nIHY7Ci0JaW50IGNwdSA9IHN0YWNrX3Nt cF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAlp bnQgaTsKIAogCXdhaXRfZm9yX21hc3Rlcl9jcHUoY3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwppbmRleCAyMDZkMGI5 MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lycV82NC5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJ aWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJlZ3MtPnNwID49IGN1cmJh c2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBzaXplb2Yoc3RydWN0IHB0 X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5zcCA+PSBjdXJiYXNlICsg c2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4gJiYKIAkgICAgcmVncy0+ c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4 IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKQEAgLTUzNiw5ICs1MzYs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICog UEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRPUF9PRl9LRVJORUxfU1RB Q0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90dG9tID0gc3RhcnQgKyBz aXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAtLS0tLS0tLS0tLSBzdGFy dAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkgKiBUaGUgdGFza3Mgc3Rh Y2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRoZQogCSAqIGZyYW1lcG9p bnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoKQEAgLTU0OSw3ICs1NDcs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICov CiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJORUxfU1RBQ0tfUEFERElO RzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQlib3R0b20gPSBzdGFydCAr IHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0YXJ0OwogCiAJc3AgPSBS RUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20gfHwgc3AgPiB0b3ApCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gveDg2L3VtL3B0cmFjZV8z Mi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYwpAQCAtMTkxLDcg KzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgbG9uZyBh ZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhzdHJ1Y3QgdXNlcl9pMzg3 X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQg ZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7 CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1 Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2kzODdfcmVnaXN0ZXJz KHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IGdldF9m cHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3Qg X191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7Ci0JaW50IG4sIGNwdSA9 ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNwdTsKKwlpbnQgbiwgY3B1 ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVj dCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywgYnVmLCBzaXplb2YoZnBy ZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRfZnByZWdzKHN0cnVjdCB1 c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmMKIAogc3Rh dGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBfX3VzZXIgKmJ1Ziwg c3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVj dCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0g dGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBm cHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNwYWNlX3BpZFtjcHVdLCAo dW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgaW50 IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jf c3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQogewotCWludCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJc3RydWN0IHVzZXJfZnhz cl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZmcHJlZ3MsIGJ1Ziwgc2l6 ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaCBiL2lu Y2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjg4MzRmODIwZWMyLi45YzA0ZDQ0ZWViM2Mg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysrIGIvaW5jbHVkZS9saW51 eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNw YWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2luY2x1ZGUgPGFzbS90aHJl YWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUgSU5JVF9QVVNIQUJMRV9U QVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1RfTk9ERV9JTklUKHRzay5w dXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDEyICsxODUsMTkgQEAgZXh0ZXJuIHN0 cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5lIElOSVRfS0FTQU4odHNr KQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworIyBkZWZpbmUg SU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJFQURfSU5GTyh0c2spLAor I2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYKKwogLyoKICAqICBJTklU X1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFibGUsIHRvdWNoIGF0CiAg KiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAoPTJNQikKICAqLwogI2Rl ZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRfVEFTS19USSh0c2spCQkJ CQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKIAkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwK IAkudXNhZ2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCAyNTM1MzhmMjlhZGUuLmUz NGNmMjE0YWNmZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1 ZGUvbGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91 bm1hcF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19U SFJFQURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2Vu ZGlmCiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwg PjAgc3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0 b21pY190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3Ms IGRlZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQy LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5k ZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFk X2luZm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihs b25nKV07CiB9OwogCkBAIC0yOTY3LDEwICsyOTcyLDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogCWNncm91cF90 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHRzayk7CiB9CiAKLSNpZm5kZWYgX19IQVZFX1RIUkVBRF9G VU5DVElPTlMKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworCisjZGVmaW5lIHRh c2tfdGhyZWFkX2luZm8odGFzaykJCSgmKHRhc2spLT50aHJlYWRfaW5mbykKKyNkZWZpbmUgdGFz a19zdGFja19wYWdlKHRhc2spCQkoKHZvaWQgKikodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1 cF90aHJlYWRfc3RhY2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9z dGFjayh0YXNrKQkJKCh0YXNrKS0+c3RhY2spCisKKyNlbGlmICFkZWZpbmVkKF9fSEFWRV9USFJF QURfRlVOQ1RJT05TKQogCiAjZGVmaW5lIHRhc2tfdGhyZWFkX2luZm8odGFzaykJKChzdHJ1Y3Qg dGhyZWFkX2luZm8gKikodGFzayktPnN0YWNrKQotI2RlZmluZSB0YXNrX3N0YWNrX3BhZ2UodGFz aykJKCh0YXNrKS0+c3RhY2spCisjZGVmaW5lIHRhc2tfc3RhY2tfcGFnZSh0YXNrKQkoKHZvaWQg KikodGFzayktPnN0YWNrKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfdGhyZWFkX3N0YWNr KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHRhc2tfc3RydWN0ICpvcmcpCiB7CmRpZmYg LS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcKaW5kZXggZjc1NWE2MDJkNGExLi4w YzgzYWY2ZDM3NTMgMTAwNjQ0Ci0tLSBhL2luaXQvS2NvbmZpZworKysgYi9pbml0L0tjb25maWcK QEAgLTI2LDYgKzI2LDkgQEAgY29uZmlnIElSUV9XT1JLCiBjb25maWcgQlVJTERUSU1FX0VYVEFC TEVfU09SVAogCWJvb2wKIAorY29uZmlnIFRIUkVBRF9JTkZPX0lOX1RBU0sKKwlib29sCisKIG1l bnUgIkdlbmVyYWwgc2V0dXAiCiAKIGNvbmZpZyBCUk9LRU4KZGlmZiAtLWdpdCBhL2luaXQvaW5p dF90YXNrLmMgYi9pbml0L2luaXRfdGFzay5jCmluZGV4IGJhMGE3ZjM2MmQ5ZS4uMTFmODNiZTFm YTc5IDEwMDY0NAotLS0gYS9pbml0L2luaXRfdGFzay5jCisrKyBiL2luaXQvaW5pdF90YXNrLmMK QEAgLTIyLDUgKzIyLDggQEAgRVhQT1JUX1NZTUJPTChpbml0X3Rhc2spOwogICogSW5pdGlhbCB0 aHJlYWQgc3RydWN0dXJlLiBBbGlnbm1lbnQgb2YgdGhpcyBpcyBoYW5kbGVkIGJ5IGEgc3BlY2lh bAogICogbGlua2VyIG1hcCBlbnRyeS4KICAqLwotdW5pb24gdGhyZWFkX3VuaW9uIGluaXRfdGhy ZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPQotCXsgSU5JVF9USFJFQURfSU5GTyhpbml0X3Rh c2spIH07Cit1bmlvbiB0aHJlYWRfdW5pb24gaW5pdF90aHJlYWRfdW5pb24gX19pbml0X3Rhc2tf ZGF0YSA9IHsKKyNpZm5kZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKKwlJTklUX1RIUkVB RF9JTkZPKGluaXRfdGFzaykKKyNlbmRpZgorfTsK --001a1136e636f1116b05361137f0-- 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 19:41:03 -0700 Message-ID: References: <20160623185340.GO30154@twins.programming.kicks-ass.net> <20160624202530.unmidps4kpebo2na@treble> <20160624205116.4hbnurrnan4afq2t@treble> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a1136e636f1116b05361137f0 Return-path: Received: from mail-oi0-f47.google.com ([209.85.218.47]:33343 "EHLO mail-oi0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751463AbcFYClG (ORCPT ); Fri, 24 Jun 2016 22:41:06 -0400 In-Reply-To: Sender: linux-arch-owner@vger.kernel.org List-ID: To: Andy Lutomirski Cc: Josh Poimboeuf , Brian Gerst , Peter Zijlstra , Oleg Nesterov , 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" , Jann Horn , Heiko Carstens --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 2:34 PM, Andy Lutomirski wrote: >> >> So let me get the pure semantic patches done, and then for 4.8 when we >> do the things that actually change real meaning we'll have a sane >> base. Ok? > > Works for me. I'll see whether my vmap patches still apply and, if > needed, rebase and send a v5. Ok, I'e pushed out the cleanups (and all the pulls that always come in on Friday afternoon - gaah, I shouldn't have tried doing this on a Friday). I'm attaching the current left-over patch that actually changes things. It's obviously a composite, and includes your "remove stack_smp_processor_id()" thing etc, so it's not meant to be used as-is, but it does seem to work. Interestingly, it seems pretty clean too, removing more lines than it adds (despite the fact that it adds a new config option), and generally making things prettier rather than the reverse. That's always a good sign. Linus --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipuk7qx40 CiAgICBUaGlzIGlzIGFuIGF0dGVtcHQgYXQgbW92aW5nIHRoZSB0aHJlYWRfaW5mbyBpbnRvIHRo ZSB0YXNrX3N0cnVjdAoKIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgfCAgMSAr CiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYyAgICAgICAgICAgIHwgMjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgIHwgIDkgKysrKysrLS0t CiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHUuaCAgICAgICAgIHwgIDEgLQogYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmggICAgICAgICB8ICA2IC0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20v c3dpdGNoX3RvLmggICB8ICA2ICsrLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2lu Zm8uaCB8IDM3ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gveDg2 L2tlcm5lbC9jcHUvY29tbW9uLmMgICAgICAgfCAgMiArLQogYXJjaC94ODYva2VybmVsL2lycV82 NC5jICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyAgICAgICAg ICB8ICA2ICsrLS0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAgICAgICAgICB8ICA4ICsr KystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAgICAgIHwgIDkgKysrKysrKysr CiBpbmNsdWRlL2xpbnV4L3NjaGVkLmggICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKysr LS0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBpbml0L2lu aXRfdGFzay5jICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKystLQogMTUgZmlsZXMgY2hhbmdl ZCwgNTkgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgw NTc3YzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZp ZwpAQCAtMTU0LDYgKzE1NCw3IEBAIGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNl bGVjdCBTUkNVCiAJc2VsZWN0IFNZU0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFE X0lORk9fSU5fVEFTSwogCXNlbGVjdCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBW SVJUX1RPX0JVUwogCXNlbGVjdCBYODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5k ZXggZWMxMzhlNTM4YzQ0Li5kNWZlYWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5 L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBA QAogI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5 c2NhbGxzLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFk X2luZm8oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3Rh Y2sgPQotCQkodW5zaWduZWQgbG9uZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19Q QURESU5HOwotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRI UkVBRF9TSVpFKTsKLX0KLQogI2lmZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxs ZWQgb24gZW50cnkgZnJvbSB1c2VyIG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2 b2lkIGVudGVyX2Zyb21fdXNlcl9tb2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2 b2lkIGRvX2F1ZGl0X3N5c2NhbGxfZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNo KQogICovCiB1bnNpZ25lZCBsb25nIHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBw dF9yZWdzICpyZWdzLCB1MzIgYXJjaCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRf cmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3Vy cmVudF90aHJlYWRfaW5mbygpOwogCXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsK IApAQCAtMTU2LDcgKzE0OSw3IEBAIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9w aGFzZTEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNl X2VudGVyX3BoYXNlMihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWdu ZWQgbG9uZyBwaGFzZTFfcmVzdWx0KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9y ZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJy ZW50X3RocmVhZF9pbmZvKCk7CiAJbG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09O Q0UodGktPmZsYWdzKSAmIF9USUZfV09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMy LDcgQEAgc3RhdGljIHZvaWQgZXhpdF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpy ZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJ CWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9P TkNFKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFn cyAmIEVYSVRfVE9fVVNFUk1PREVfTE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsy NDMsNyBAQCBzdGF0aWMgdm9pZCBleGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBjYWNoZWRfZmxhZ3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAq LwogX192aXNpYmxlIGlubGluZSB2b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190 aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJl YWRfaW5mbygpOwogCXUzMiBjYWNoZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf UFJPVkVfTE9DS0lORykgJiYgV0FSTl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICsz MDIsNyBAQCBzdGF0aWMgdm9pZCBzeXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lz Y2FsbF9yZXR1cm5fc2xvd3BhdGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdz ID0gUkVBRF9PTkNFKHRpLT5mbGFncyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09O VEVYVF9LRVJORUwpOwpAQCAtMzMyLDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBz eXNjYWxsX3JldHVybl9zbG93cGF0aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05G SUdfWDg2XzY0CiBfX3Zpc2libGUgdm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpy ZWdzKQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZv KHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7 CiAJdW5zaWduZWQgbG9uZyBuciA9IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJf bW9kZSgpOwpAQCAtMzY1LDcgKzM1OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBk b19zeXNjYWxsXzMyX2lycXNfb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIg PSAodW5zaWduZWQgaW50KXJlZ3MtPm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVM QVRJT04KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TCmluZGV4IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5 XzY0LlMKQEAgLTE3OSw3ICsxNzksOCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9z d2FwZ3MpCiAJICogSWYgd2UgbmVlZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdl J2xsIG5lZWQgdG8gZG8KIAkgKiBleGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBh dGguCiAJICovCi0JdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19N QVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VU X1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19w YXRoCiAKIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50 cnlfU1lTQ0FMTF82NF9mYXN0cGF0aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9O T05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhS RUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZP KCVyMTEpCisJdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkx ZgogCiAJTE9DS0RFUF9TWVNfRVhJVApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xm dW5jKQogICogQSBuZXdseSBmb3JrZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVz IGludG8gdGhpcyBhZGRyZXNzLgogICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZy b20KKyAqIHJzaTogdGFzayB3ZSdyZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21f Zm9yaykKLQlMT0NLIDsgYnRyICRUSUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIg JFRJRl9GT1JLLCBUSV9mbGFncyglcnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sg Ki8KIAogCWNhbGwJc2NoZWR1bGVfdGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVy ICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vY3B1LmgKaW5kZXggNjc4NjM3YWQ3NDc2Li41OWQzNGM1MjFkOTYgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NwdS5oCkBAIC0xNyw3ICsxNyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcmVmaWxsX3Bv c3NpYmxlX21hcCh2b2lkKSB7fQogCiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCQkJYm9v dF9jcHVfcGh5c2ljYWxfYXBpY2lkCiAjZGVmaW5lIHNhZmVfc21wX3Byb2Nlc3Nvcl9pZCgpCQkJ MAotI2RlZmluZSBzdGFja19zbXBfcHJvY2Vzc29yX2lkKCkJCTAKIAogI2VuZGlmIC8qIENPTkZJ R19TTVAgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zbXAuaAppbmRleCA2NmIwNTczMDZmNDAuLjA1NzZiNjE1N2YzYSAx MDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmgKQEAgLTE3MiwxMiArMTcyLDYgQEAgZXh0ZXJuIGludCBzYWZlX3NtcF9w cm9jZXNzb3JfaWQodm9pZCk7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19YODZfNjRfU01QKQogI2Rl ZmluZSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICh0aGlzX2NwdV9yZWFkKGNwdV9udW1iZXIpKQog Ci0jZGVmaW5lIHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKQkJCQkJXAotKHsJCQkJCQkJCVwKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwkJCQkJCVwKLQlfX2FzbV9fKCJhbmRxICUlcnNwLCUwOyAi OiI9ciIgKHRpKSA6ICIwIiAoQ1VSUkVOVF9NQVNLKSk7CVwKLQl0aS0+Y3B1OwkJCQkJCQlcCi19 KQogI2RlZmluZSBzYWZlX3NtcF9wcm9jZXNzb3JfaWQoKQkJc21wX3Byb2Nlc3Nvcl9pZCgpCiAK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAppbmRleCA4ZjMyMWExYjAzYTEuLmFlMGFh MDYxMmM2NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKKysr IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKQEAgLTExMCwxOCArMTEwLDE2IEBA IGRvIHsJCQkJCQkJCQlcCiAJICAgICAiY2FsbCBfX3N3aXRjaF90b1xuXHQiCQkJCQkgIFwKIAkg ICAgICJtb3ZxICJfX3BlcmNwdV9hcmcoW2N1cnJlbnRfdGFza10pIiwlJXJzaVxuXHQiCQkgIFwK IAkgICAgIF9fc3dpdGNoX2NhbmFyeQkJCQkJCSAgXAotCSAgICAgIm1vdnEgJVBbdGhyZWFkX2lu Zm9dKCUlcnNpKSwlJXI4XG5cdCIJCQkgIFwKIAkgICAgICJtb3ZxICUlcmF4LCUlcmRpXG5cdCIg CQkJCQkgIFwKLQkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXI4KVxu XHQiCQkgIFwKKwkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXJzaSlc blx0IgkJICBcCiAJICAgICAiam56ICAgcmV0X2Zyb21fZm9ya1xuXHQiCQkJCQkgIFwKIAkgICAg IFJFU1RPUkVfQ09OVEVYVAkJCQkJCSAgXAogCSAgICAgOiAiPWEiIChsYXN0KQkJCQkJICAJICBc CiAJICAgICAgIF9fc3dpdGNoX2NhbmFyeV9vcGFyYW0JCQkJCSAgXAogCSAgICAgOiBbbmV4dF0g IlMiIChuZXh0KSwgW3ByZXZdICJEIiAocHJldiksCQkJICBcCiAJICAgICAgIFt0aHJlYWRyc3Bd ICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWQuc3ApKSwgXAotCSAgICAg ICBbdGlfZmxhZ3NdICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBmbGFncykpLAkg IFwKKwkgICAgICAgW3RpX2ZsYWdzXSAiaSIgKG9mZnNldG9mKHN0cnVjdCB0YXNrX3N0cnVjdCwg dGhyZWFkX2luZm8uZmxhZ3MpKSwJICBcCiAJICAgICAgIFtfdGlmX2ZvcmtdICJpIiAoX1RJRl9G T1JLKSwJCQkgIAkgIFwKLQkgICAgICAgW3RocmVhZF9pbmZvXSAiaSIgKG9mZnNldG9mKHN0cnVj dCB0YXNrX3N0cnVjdCwgc3RhY2spKSwgICBcCiAJICAgICAgIFtjdXJyZW50X3Rhc2tdICJtIiAo Y3VycmVudF90YXNrKQkJCSAgXAogCSAgICAgICBfX3N3aXRjaF9jYW5hcnlfaXBhcmFtCQkJCQkg IFwKIAkgICAgIDogIm1lbW9yeSIsICJjYyIgX19FWFRSQV9DTE9CQkVSKQpkaWZmIC0tZ2l0IGEv YXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L3RocmVhZF9pbmZvLmgKaW5kZXggMzBjMTMzYWMwNWNkLi5kMzhlYmIwOGY0YzEgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaApAQCAtNTMsMjQgKzUzLDIxIEBAIHN0cnVjdCB0YXNrX3N0 cnVjdDsKICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KIAogc3RydWN0IHRocmVhZF9pbmZvIHsK LQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCiAJ X191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwogCV9fdTMyCQkJc3RhdHVzOwkJ LyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCiAJX191MzIJCQljcHU7CQkvKiBjdXJyZW50 IENQVSAqLwotCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIAl1bnNpZ25lZCBpbnQJCXNpZ19v bl91YWNjZXNzX2Vycm9yOjE7CiAJdW5zaWduZWQgaW50CQl1YWNjZXNzX2VycjoxOwkvKiB1YWNj ZXNzIGZhaWxlZCAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIH07CiAKICNkZWZpbmUg SU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAogewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwK IAkuZmxhZ3MJCT0gMCwJCQlcCiAJLmNwdQkJPSAwLAkJCVwKIAkuYWRkcl9saW1pdAk9IEtFUk5F TF9EUywJCVwKIH0KIAotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlv bi50aHJlYWRfaW5mbykKICNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0 YWNrKQogCiAjZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCkBAIC0xNjYsNyArMTYzLDcgQEAgc3Ry dWN0IHRocmVhZF9pbmZvIHsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1 cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKIHsKLQlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAq KShjdXJyZW50X3RvcF9vZl9zdGFjaygpIC0gVEhSRUFEX1NJWkUpOworCXJldHVybiAoc3RydWN0 IHRocmVhZF9pbmZvICopY3VycmVudDsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQpAQCAtMTg4LDM1ICsxODUsNyBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZvaWQpCiAKIC8qIExv YWQgdGhyZWFkX2luZm8gYWRkcmVzcyBpbnRvICJyZWciICovCiAjZGVmaW5lIEdFVF9USFJFQURf SU5GTyhyZWcpIFwKLQlfQVNNX01PViBQRVJfQ1BVX1ZBUihjcHVfY3VycmVudF90b3Bfb2Zfc3Rh Y2spLHJlZyA7IFwKLQlfQVNNX1NVQiAkKFRIUkVBRF9TSVpFKSxyZWcgOwotCi0vKgotICogQVNN IG9wZXJhbmQgd2hpY2ggZXZhbHVhdGVzIHRvIGEgJ3RocmVhZF9pbmZvJyBhZGRyZXNzIG9mCi0g KiB0aGUgY3VycmVudCB0YXNrLCBpZiBpdCBpcyBrbm93biB0aGF0ICJyZWciIGlzIGV4YWN0bHkg Im9mZiIKLSAqIGJ5dGVzIGJlbG93IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGN1cnJlbnRseS4KLSAq Ci0gKiAoIFRoZSBrZXJuZWwgc3RhY2sncyBzaXplIGlzIGtub3duIGF0IGJ1aWxkIHRpbWUsIGl0 IGlzIHVzdWFsbHkKLSAqICAgMiBvciA0IHBhZ2VzLCBhbmQgdGhlIGJvdHRvbSAgb2YgdGhlIGtl cm5lbCBzdGFjayBjb250YWlucwotICogICB0aGUgdGhyZWFkX2luZm8gc3RydWN0dXJlLiBTbyB0 byBhY2Nlc3MgdGhlIHRocmVhZF9pbmZvIHZlcnkKLSAqICAgcXVpY2tseSBmcm9tIGFzc2VtYmx5 IGNvZGUgd2UgY2FuIGNhbGN1bGF0ZSBkb3duIGZyb20gdGhlCi0gKiAgIHRvcCBvZiB0aGUga2Vy bmVsIHN0YWNrIHRvIHRoZSBib3R0b20sIHVzaW5nIGNvbnN0YW50LAotICogICBidWlsZC10aW1l IGNhbGN1bGF0aW9ucyBvbmx5LiApCi0gKgotICogRm9yIGV4YW1wbGUsIHRvIGZldGNoIHRoZSBj dXJyZW50IHRocmVhZF9pbmZvLT5mbGFncyB2YWx1ZSBpbnRvICVlYXgKLSAqIG9uIHg4Ni02NCBk ZWZjb25maWcga2VybmVscywgaW4gc3lzY2FsbCBlbnRyeSBjb2RlIHdoZXJlIFJTUCBpcwotICog Y3VycmVudGx5IGF0IGV4YWN0bHkgU0laRU9GX1BUUkVHUyBieXRlcyBhd2F5IGZyb20gdGhlIHRv cCBvZiB0aGUKLSAqIHN0YWNrOgotICoKLSAqICAgICAgbW92IEFTTV9USFJFQURfSU5GTyhUSV9m bGFncywgJXJzcCwgU0laRU9GX1BUUkVHUyksICVlYXgKLSAqCi0gKiB3aWxsIHRyYW5zbGF0ZSB0 bzoKLSAqCi0gKiAgICAgIDhiIDg0IDI0IGI4IGMwIGZmIGZmICAgICAgbW92ICAgIC0weDNmNDgo JXJzcCksICVlYXgKLSAqCi0gKiB3aGljaCBpcyBiZWxvdyB0aGUgY3VycmVudCBSU1AgYnkgYWxt b3N0IDE2Sy4KLSAqLwotI2RlZmluZSBBU01fVEhSRUFEX0lORk8oZmllbGQsIHJlZywgb2ZmKSAo KGZpZWxkKSsob2ZmKS1USFJFQURfU0laRSkocmVnKQorCV9BU01fTU9WIFBFUl9DUFVfVkFSKGN1 cnJlbnRfdGFzaykscmVnCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv Y3B1L2NvbW1vbi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwppbmRleCAwZmU2OTUz ZjQyMWMuLmQyMmE3YjljNGYwZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21t b24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC0xNDUyLDcgKzE0NTIs NyBAQCB2b2lkIGNwdV9pbml0KHZvaWQpCiAJc3RydWN0IHRhc2tfc3RydWN0ICptZTsKIAlzdHJ1 Y3QgdHNzX3N0cnVjdCAqdDsKIAl1bnNpZ25lZCBsb25nIHY7Ci0JaW50IGNwdSA9IHN0YWNrX3Nt cF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAlp bnQgaTsKIAogCXdhaXRfZm9yX21hc3Rlcl9jcHUoY3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwppbmRleCAyMDZkMGI5 MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lycV82NC5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJ aWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJlZ3MtPnNwID49IGN1cmJh c2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBzaXplb2Yoc3RydWN0IHB0 X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5zcCA+PSBjdXJiYXNlICsg c2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4gJiYKIAkgICAgcmVncy0+ c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4 IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKQEAgLTUzNiw5ICs1MzYs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICog UEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRPUF9PRl9LRVJORUxfU1RB Q0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90dG9tID0gc3RhcnQgKyBz aXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAtLS0tLS0tLS0tLSBzdGFy dAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkgKiBUaGUgdGFza3Mgc3Rh Y2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRoZQogCSAqIGZyYW1lcG9p bnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoKQEAgLTU0OSw3ICs1NDcs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICov CiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJORUxfU1RBQ0tfUEFERElO RzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQlib3R0b20gPSBzdGFydCAr IHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0YXJ0OwogCiAJc3AgPSBS RUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20gfHwgc3AgPiB0b3ApCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gveDg2L3VtL3B0cmFjZV8z Mi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYwpAQCAtMTkxLDcg KzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgbG9uZyBh ZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhzdHJ1Y3QgdXNlcl9pMzg3 X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQg ZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7 CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1 Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2kzODdfcmVnaXN0ZXJz KHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IGdldF9m cHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3Qg X191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7Ci0JaW50IG4sIGNwdSA9 ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNwdTsKKwlpbnQgbiwgY3B1 ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVj dCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywgYnVmLCBzaXplb2YoZnBy ZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRfZnByZWdzKHN0cnVjdCB1 c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmMKIAogc3Rh dGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBfX3VzZXIgKmJ1Ziwg c3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVj dCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0g dGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBm cHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNwYWNlX3BpZFtjcHVdLCAo dW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgaW50 IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jf c3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQogewotCWludCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJc3RydWN0IHVzZXJfZnhz cl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZmcHJlZ3MsIGJ1Ziwgc2l6 ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaCBiL2lu Y2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjg4MzRmODIwZWMyLi45YzA0ZDQ0ZWViM2Mg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysrIGIvaW5jbHVkZS9saW51 eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNw YWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2luY2x1ZGUgPGFzbS90aHJl YWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUgSU5JVF9QVVNIQUJMRV9U QVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1RfTk9ERV9JTklUKHRzay5w dXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDEyICsxODUsMTkgQEAgZXh0ZXJuIHN0 cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5lIElOSVRfS0FTQU4odHNr KQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworIyBkZWZpbmUg SU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJFQURfSU5GTyh0c2spLAor I2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYKKwogLyoKICAqICBJTklU X1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFibGUsIHRvdWNoIGF0CiAg KiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAoPTJNQikKICAqLwogI2Rl ZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRfVEFTS19USSh0c2spCQkJ CQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKIAkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwK IAkudXNhZ2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCAyNTM1MzhmMjlhZGUuLmUz NGNmMjE0YWNmZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1 ZGUvbGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91 bm1hcF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19U SFJFQURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2Vu ZGlmCiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwg PjAgc3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0 b21pY190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3Ms IGRlZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQy LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5k ZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFk X2luZm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihs b25nKV07CiB9OwogCkBAIC0yOTY3LDEwICsyOTcyLDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogCWNncm91cF90 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHRzayk7CiB9CiAKLSNpZm5kZWYgX19IQVZFX1RIUkVBRF9G VU5DVElPTlMKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworCisjZGVmaW5lIHRh c2tfdGhyZWFkX2luZm8odGFzaykJCSgmKHRhc2spLT50aHJlYWRfaW5mbykKKyNkZWZpbmUgdGFz a19zdGFja19wYWdlKHRhc2spCQkoKHZvaWQgKikodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1 cF90aHJlYWRfc3RhY2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9z dGFjayh0YXNrKQkJKCh0YXNrKS0+c3RhY2spCisKKyNlbGlmICFkZWZpbmVkKF9fSEFWRV9USFJF QURfRlVOQ1RJT05TKQogCiAjZGVmaW5lIHRhc2tfdGhyZWFkX2luZm8odGFzaykJKChzdHJ1Y3Qg dGhyZWFkX2luZm8gKikodGFzayktPnN0YWNrKQotI2RlZmluZSB0YXNrX3N0YWNrX3BhZ2UodGFz aykJKCh0YXNrKS0+c3RhY2spCisjZGVmaW5lIHRhc2tfc3RhY2tfcGFnZSh0YXNrKQkoKHZvaWQg KikodGFzayktPnN0YWNrKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfdGhyZWFkX3N0YWNr KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHRhc2tfc3RydWN0ICpvcmcpCiB7CmRpZmYg LS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcKaW5kZXggZjc1NWE2MDJkNGExLi4w YzgzYWY2ZDM3NTMgMTAwNjQ0Ci0tLSBhL2luaXQvS2NvbmZpZworKysgYi9pbml0L0tjb25maWcK QEAgLTI2LDYgKzI2LDkgQEAgY29uZmlnIElSUV9XT1JLCiBjb25maWcgQlVJTERUSU1FX0VYVEFC TEVfU09SVAogCWJvb2wKIAorY29uZmlnIFRIUkVBRF9JTkZPX0lOX1RBU0sKKwlib29sCisKIG1l bnUgIkdlbmVyYWwgc2V0dXAiCiAKIGNvbmZpZyBCUk9LRU4KZGlmZiAtLWdpdCBhL2luaXQvaW5p dF90YXNrLmMgYi9pbml0L2luaXRfdGFzay5jCmluZGV4IGJhMGE3ZjM2MmQ5ZS4uMTFmODNiZTFm YTc5IDEwMDY0NAotLS0gYS9pbml0L2luaXRfdGFzay5jCisrKyBiL2luaXQvaW5pdF90YXNrLmMK QEAgLTIyLDUgKzIyLDggQEAgRVhQT1JUX1NZTUJPTChpbml0X3Rhc2spOwogICogSW5pdGlhbCB0 aHJlYWQgc3RydWN0dXJlLiBBbGlnbm1lbnQgb2YgdGhpcyBpcyBoYW5kbGVkIGJ5IGEgc3BlY2lh bAogICogbGlua2VyIG1hcCBlbnRyeS4KICAqLwotdW5pb24gdGhyZWFkX3VuaW9uIGluaXRfdGhy ZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPQotCXsgSU5JVF9USFJFQURfSU5GTyhpbml0X3Rh c2spIH07Cit1bmlvbiB0aHJlYWRfdW5pb24gaW5pdF90aHJlYWRfdW5pb24gX19pbml0X3Rhc2tf ZGF0YSA9IHsKKyNpZm5kZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKKwlJTklUX1RIUkVB RF9JTkZPKGluaXRfdGFzaykKKyNlbmRpZgorfTsK --001a1136e636f1116b05361137f0-- 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: <20160623185340.GO30154@twins.programming.kicks-ass.net> <20160624202530.unmidps4kpebo2na@treble> <20160624205116.4hbnurrnan4afq2t@treble> From: Linus Torvalds Date: Fri, 24 Jun 2016 19:41:03 -0700 Message-ID: Content-Type: multipart/mixed; boundary=001a1136e636f1116b05361137f0 Subject: [kernel-hardening] Re: [PATCH v3 00/13] Virtually mapped stacks with guard pages (x86, core) To: Andy Lutomirski Cc: Josh Poimboeuf , Brian Gerst , Peter Zijlstra , Oleg Nesterov , 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" , Jann Horn , Heiko Carstens List-ID: --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=UTF-8 On Fri, Jun 24, 2016 at 2:34 PM, Andy Lutomirski wrote: >> >> So let me get the pure semantic patches done, and then for 4.8 when we >> do the things that actually change real meaning we'll have a sane >> base. Ok? > > Works for me. I'll see whether my vmap patches still apply and, if > needed, rebase and send a v5. Ok, I'e pushed out the cleanups (and all the pulls that always come in on Friday afternoon - gaah, I shouldn't have tried doing this on a Friday). I'm attaching the current left-over patch that actually changes things. It's obviously a composite, and includes your "remove stack_smp_processor_id()" thing etc, so it's not meant to be used as-is, but it does seem to work. Interestingly, it seems pretty clean too, removing more lines than it adds (despite the fact that it adds a new config option), and generally making things prettier rather than the reverse. That's always a good sign. Linus --001a1136e636f1116b05361137f0 Content-Type: text/plain; charset=US-ASCII; name="patch.diff" Content-Disposition: attachment; filename="patch.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ipuk7qx40 CiAgICBUaGlzIGlzIGFuIGF0dGVtcHQgYXQgbW92aW5nIHRoZSB0aHJlYWRfaW5mbyBpbnRvIHRo ZSB0YXNrX3N0cnVjdAoKIGFyY2gveDg2L0tjb25maWcgICAgICAgICAgICAgICAgICAgfCAgMSAr CiBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYyAgICAgICAgICAgIHwgMjEgKysrKysrKy0tLS0tLS0t LS0tLS0tCiBhcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TICAgICAgICAgIHwgIDkgKysrKysrLS0t CiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9jcHUuaCAgICAgICAgIHwgIDEgLQogYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmggICAgICAgICB8ICA2IC0tLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20v c3dpdGNoX3RvLmggICB8ICA2ICsrLS0tLQogYXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2lu Zm8uaCB8IDM3ICsrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGFyY2gveDg2 L2tlcm5lbC9jcHUvY29tbW9uLmMgICAgICAgfCAgMiArLQogYXJjaC94ODYva2VybmVsL2lycV82 NC5jICAgICAgICAgICB8ICAzICstLQogYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYyAgICAgICAg ICB8ICA2ICsrLS0tLQogYXJjaC94ODYvdW0vcHRyYWNlXzMyLmMgICAgICAgICAgICB8ICA4ICsr KystLS0tCiBpbmNsdWRlL2xpbnV4L2luaXRfdGFzay5oICAgICAgICAgIHwgIDkgKysrKysrKysr CiBpbmNsdWRlL2xpbnV4L3NjaGVkLmggICAgICAgICAgICAgIHwgMTggKysrKysrKysrKysrKysr LS0tCiBpbml0L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBpbml0L2lu aXRfdGFzay5jICAgICAgICAgICAgICAgICAgIHwgIDcgKysrKystLQogMTUgZmlsZXMgY2hhbmdl ZCwgNTkgaW5zZXJ0aW9ucygrKSwgNzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYvS2NvbmZpZyBiL2FyY2gveDg2L0tjb25maWcKaW5kZXggZDlhOTRkYTBjMjlmLi5mMzNiYzgw NTc3YzUgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L0tjb25maWcKKysrIGIvYXJjaC94ODYvS2NvbmZp ZwpAQCAtMTU0LDYgKzE1NCw3IEBAIGNvbmZpZyBYODYKIAlzZWxlY3QgU1BBUlNFX0lSUQogCXNl bGVjdCBTUkNVCiAJc2VsZWN0IFNZU0NUTF9FWENFUFRJT05fVFJBQ0UKKwlzZWxlY3QgVEhSRUFE X0lORk9fSU5fVEFTSwogCXNlbGVjdCBVU0VSX1NUQUNLVFJBQ0VfU1VQUE9SVAogCXNlbGVjdCBW SVJUX1RPX0JVUwogCXNlbGVjdCBYODZfREVWX0RNQV9PUFMJCQlpZiBYODZfNjQKZGlmZiAtLWdp dCBhL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jIGIvYXJjaC94ODYvZW50cnkvY29tbW9uLmMKaW5k ZXggZWMxMzhlNTM4YzQ0Li5kNWZlYWM1ZjI1MmQgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2VudHJ5 L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2VudHJ5L2NvbW1vbi5jCkBAIC0zMSwxMyArMzEsNiBA QAogI2RlZmluZSBDUkVBVEVfVFJBQ0VfUE9JTlRTCiAjaW5jbHVkZSA8dHJhY2UvZXZlbnRzL3N5 c2NhbGxzLmg+CiAKLXN0YXRpYyBzdHJ1Y3QgdGhyZWFkX2luZm8gKnB0X3JlZ3NfdG9fdGhyZWFk X2luZm8oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCi17Ci0JdW5zaWduZWQgbG9uZyB0b3Bfb2Zfc3Rh Y2sgPQotCQkodW5zaWduZWQgbG9uZykocmVncyArIDEpICsgVE9QX09GX0tFUk5FTF9TVEFDS19Q QURESU5HOwotCXJldHVybiAoc3RydWN0IHRocmVhZF9pbmZvICopKHRvcF9vZl9zdGFjayAtIFRI UkVBRF9TSVpFKTsKLX0KLQogI2lmZGVmIENPTkZJR19DT05URVhUX1RSQUNLSU5HCiAvKiBDYWxs ZWQgb24gZW50cnkgZnJvbSB1c2VyIG1vZGUgd2l0aCBJUlFzIG9mZi4gKi8KIF9fdmlzaWJsZSB2 b2lkIGVudGVyX2Zyb21fdXNlcl9tb2RlKHZvaWQpCkBAIC03OCw3ICs3MSw3IEBAIHN0YXRpYyB2 b2lkIGRvX2F1ZGl0X3N5c2NhbGxfZW50cnkoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNo KQogICovCiB1bnNpZ25lZCBsb25nIHN5c2NhbGxfdHJhY2VfZW50ZXJfcGhhc2UxKHN0cnVjdCBw dF9yZWdzICpyZWdzLCB1MzIgYXJjaCkKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRf cmVnc190b190aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3Vy cmVudF90aHJlYWRfaW5mbygpOwogCXVuc2lnbmVkIGxvbmcgcmV0ID0gMDsKIAl1MzIgd29yazsK IApAQCAtMTU2LDcgKzE0OSw3IEBAIHVuc2lnbmVkIGxvbmcgc3lzY2FsbF90cmFjZV9lbnRlcl9w aGFzZTEoc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHUzMiBhcmNoKQogbG9uZyBzeXNjYWxsX3RyYWNl X2VudGVyX3BoYXNlMihzdHJ1Y3QgcHRfcmVncyAqcmVncywgdTMyIGFyY2gsCiAJCQkJdW5zaWdu ZWQgbG9uZyBwaGFzZTFfcmVzdWx0KQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9y ZWdzX3RvX3RocmVhZF9pbmZvKHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJy ZW50X3RocmVhZF9pbmZvKCk7CiAJbG9uZyByZXQgPSAwOwogCXUzMiB3b3JrID0gQUNDRVNTX09O Q0UodGktPmZsYWdzKSAmIF9USUZfV09SS19TWVNDQUxMX0VOVFJZOwogCkBAIC0yMzksNyArMjMy LDcgQEAgc3RhdGljIHZvaWQgZXhpdF90b191c2VybW9kZV9sb29wKHN0cnVjdCBwdF9yZWdzICpy ZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogCQkvKiBEaXNhYmxlIElSUXMgYW5kIHJldHJ5ICovCiAJ CWxvY2FsX2lycV9kaXNhYmxlKCk7CiAKLQkJY2FjaGVkX2ZsYWdzID0gUkVBRF9PTkNFKHB0X3Jl Z3NfdG9fdGhyZWFkX2luZm8ocmVncyktPmZsYWdzKTsKKwkJY2FjaGVkX2ZsYWdzID0gUkVBRF9P TkNFKGN1cnJlbnRfdGhyZWFkX2luZm8oKS0+ZmxhZ3MpOwogCiAJCWlmICghKGNhY2hlZF9mbGFn cyAmIEVYSVRfVE9fVVNFUk1PREVfTE9PUF9GTEFHUykpCiAJCQlicmVhazsKQEAgLTI1MCw3ICsy NDMsNyBAQCBzdGF0aWMgdm9pZCBleGl0X3RvX3VzZXJtb2RlX2xvb3Aoc3RydWN0IHB0X3JlZ3Mg KnJlZ3MsIHUzMiBjYWNoZWRfZmxhZ3MpCiAvKiBDYWxsZWQgd2l0aCBJUlFzIGRpc2FibGVkLiAq LwogX192aXNpYmxlIGlubGluZSB2b2lkIHByZXBhcmVfZXhpdF90b191c2VybW9kZShzdHJ1Y3Qg cHRfcmVncyAqcmVncykKIHsKLQlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gcHRfcmVnc190b190 aHJlYWRfaW5mbyhyZWdzKTsKKwlzdHJ1Y3QgdGhyZWFkX2luZm8gKnRpID0gY3VycmVudF90aHJl YWRfaW5mbygpOwogCXUzMiBjYWNoZWRfZmxhZ3M7CiAKIAlpZiAoSVNfRU5BQkxFRChDT05GSUdf UFJPVkVfTE9DS0lORykgJiYgV0FSTl9PTighaXJxc19kaXNhYmxlZCgpKSkKQEAgLTMwOSw3ICsz MDIsNyBAQCBzdGF0aWMgdm9pZCBzeXNjYWxsX3Nsb3dfZXhpdF93b3JrKHN0cnVjdCBwdF9yZWdz ICpyZWdzLCB1MzIgY2FjaGVkX2ZsYWdzKQogICovCiBfX3Zpc2libGUgaW5saW5lIHZvaWQgc3lz Y2FsbF9yZXR1cm5fc2xvd3BhdGgoc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1MzIgY2FjaGVkX2ZsYWdz ID0gUkVBRF9PTkNFKHRpLT5mbGFncyk7CiAKIAlDVF9XQVJOX09OKGN0X3N0YXRlKCkgIT0gQ09O VEVYVF9LRVJORUwpOwpAQCAtMzMyLDcgKzMyNSw3IEBAIF9fdmlzaWJsZSBpbmxpbmUgdm9pZCBz eXNjYWxsX3JldHVybl9zbG93cGF0aChzdHJ1Y3QgcHRfcmVncyAqcmVncykKICNpZmRlZiBDT05G SUdfWDg2XzY0CiBfX3Zpc2libGUgdm9pZCBkb19zeXNjYWxsXzY0KHN0cnVjdCBwdF9yZWdzICpy ZWdzKQogewotCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBwdF9yZWdzX3RvX3RocmVhZF9pbmZv KHJlZ3MpOworCXN0cnVjdCB0aHJlYWRfaW5mbyAqdGkgPSBjdXJyZW50X3RocmVhZF9pbmZvKCk7 CiAJdW5zaWduZWQgbG9uZyBuciA9IHJlZ3MtPm9yaWdfYXg7CiAKIAllbnRlcl9mcm9tX3VzZXJf bW9kZSgpOwpAQCAtMzY1LDcgKzM1OCw3IEBAIF9fdmlzaWJsZSB2b2lkIGRvX3N5c2NhbGxfNjQo c3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAgKi8KIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBk b19zeXNjYWxsXzMyX2lycXNfb24oc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiB7Ci0Jc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IHB0X3JlZ3NfdG9fdGhyZWFkX2luZm8ocmVncyk7CisJc3RydWN0IHRo cmVhZF9pbmZvICp0aSA9IGN1cnJlbnRfdGhyZWFkX2luZm8oKTsKIAl1bnNpZ25lZCBpbnQgbnIg PSAodW5zaWduZWQgaW50KXJlZ3MtPm9yaWdfYXg7CiAKICNpZmRlZiBDT05GSUdfSUEzMl9FTVVM QVRJT04KZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlMgYi9hcmNoL3g4Ni9l bnRyeS9lbnRyeV82NC5TCmluZGV4IDllZTBkYTE4MDdlZC4uZjQ5NzQyZGUyYzY1IDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9lbnRyeS9lbnRyeV82NC5TCisrKyBiL2FyY2gveDg2L2VudHJ5L2VudHJ5 XzY0LlMKQEAgLTE3OSw3ICsxNzksOCBAQCBHTE9CQUwoZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9z d2FwZ3MpCiAJICogSWYgd2UgbmVlZCB0byBkbyBlbnRyeSB3b3JrIG9yIGlmIHdlIGd1ZXNzIHdl J2xsIG5lZWQgdG8gZG8KIAkgKiBleGl0IHdvcmssIGdvIHN0cmFpZ2h0IHRvIHRoZSBzbG93IHBh dGguCiAJICovCi0JdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZfQUxMV09SS19N QVNLLCBBU01fVEhSRUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VU X1RIUkVBRF9JTkZPKCVyMTEpCisJdGVzdGwJJF9USUZfV09SS19TWVNDQUxMX0VOVFJZfF9USUZf QUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegllbnRyeV9TWVNDQUxMNjRfc2xvd19w YXRoCiAKIGVudHJ5X1NZU0NBTExfNjRfZmFzdHBhdGg6CkBAIC0yMTcsNyArMjE4LDggQEAgZW50 cnlfU1lTQ0FMTF82NF9mYXN0cGF0aDoKIAkgKi8KIAlESVNBQkxFX0lOVEVSUlVQVFMoQ0xCUl9O T05FKQogCVRSQUNFX0lSUVNfT0ZGCi0JdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBBU01fVEhS RUFEX0lORk8oVElfZmxhZ3MsICVyc3AsIFNJWkVPRl9QVFJFR1MpCisJR0VUX1RIUkVBRF9JTkZP KCVyMTEpCisJdGVzdGwJJF9USUZfQUxMV09SS19NQVNLLCBUSV9mbGFncyglcjExKQogCWpuegkx ZgogCiAJTE9DS0RFUF9TWVNfRVhJVApAQCAtMzY4LDkgKzM3MCwxMCBAQCBFTkQocHRyZWdzX1xm dW5jKQogICogQSBuZXdseSBmb3JrZWQgcHJvY2VzcyBkaXJlY3RseSBjb250ZXh0IHN3aXRjaGVz IGludG8gdGhpcyBhZGRyZXNzLgogICoKICAqIHJkaTogcHJldiB0YXNrIHdlIHN3aXRjaGVkIGZy b20KKyAqIHJzaTogdGFzayB3ZSdyZSBzd2l0Y2hpbmcgdG8KICAqLwogRU5UUlkocmV0X2Zyb21f Zm9yaykKLQlMT0NLIDsgYnRyICRUSUZfRk9SSywgVElfZmxhZ3MoJXI4KQorCUxPQ0sgOyBidHIg JFRJRl9GT1JLLCBUSV9mbGFncyglcnNpKQkvKiByc2k6IHRoaXMgbmV3bHkgZm9ya2VkIHRhc2sg Ki8KIAogCWNhbGwJc2NoZWR1bGVfdGFpbAkJCS8qIHJkaTogJ3ByZXYnIHRhc2sgcGFyYW1ldGVy ICovCiAKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oIGIvYXJjaC94ODYv aW5jbHVkZS9hc20vY3B1LmgKaW5kZXggNjc4NjM3YWQ3NDc2Li41OWQzNGM1MjFkOTYgMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2NwdS5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUv YXNtL2NwdS5oCkBAIC0xNyw3ICsxNyw2IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwcmVmaWxsX3Bv c3NpYmxlX21hcCh2b2lkKSB7fQogCiAjZGVmaW5lIGNwdV9waHlzaWNhbF9pZChjcHUpCQkJYm9v dF9jcHVfcGh5c2ljYWxfYXBpY2lkCiAjZGVmaW5lIHNhZmVfc21wX3Byb2Nlc3Nvcl9pZCgpCQkJ MAotI2RlZmluZSBzdGFja19zbXBfcHJvY2Vzc29yX2lkKCkJCTAKIAogI2VuZGlmIC8qIENPTkZJ R19TTVAgKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmggYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9zbXAuaAppbmRleCA2NmIwNTczMDZmNDAuLjA1NzZiNjE1N2YzYSAx MDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc21wLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vc21wLmgKQEAgLTE3MiwxMiArMTcyLDYgQEAgZXh0ZXJuIGludCBzYWZlX3NtcF9w cm9jZXNzb3JfaWQodm9pZCk7CiAjZWxpZiBkZWZpbmVkKENPTkZJR19YODZfNjRfU01QKQogI2Rl ZmluZSByYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICh0aGlzX2NwdV9yZWFkKGNwdV9udW1iZXIpKQog Ci0jZGVmaW5lIHN0YWNrX3NtcF9wcm9jZXNzb3JfaWQoKQkJCQkJXAotKHsJCQkJCQkJCVwKLQlz dHJ1Y3QgdGhyZWFkX2luZm8gKnRpOwkJCQkJCVwKLQlfX2FzbV9fKCJhbmRxICUlcnNwLCUwOyAi OiI9ciIgKHRpKSA6ICIwIiAoQ1VSUkVOVF9NQVNLKSk7CVwKLQl0aS0+Y3B1OwkJCQkJCQlcCi19 KQogI2RlZmluZSBzYWZlX3NtcF9wcm9jZXNzb3JfaWQoKQkJc21wX3Byb2Nlc3Nvcl9pZCgpCiAK ICNlbmRpZgpkaWZmIC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmggYi9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9zd2l0Y2hfdG8uaAppbmRleCA4ZjMyMWExYjAzYTEuLmFlMGFh MDYxMmM2NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKKysr IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3dpdGNoX3RvLmgKQEAgLTExMCwxOCArMTEwLDE2IEBA IGRvIHsJCQkJCQkJCQlcCiAJICAgICAiY2FsbCBfX3N3aXRjaF90b1xuXHQiCQkJCQkgIFwKIAkg ICAgICJtb3ZxICJfX3BlcmNwdV9hcmcoW2N1cnJlbnRfdGFza10pIiwlJXJzaVxuXHQiCQkgIFwK IAkgICAgIF9fc3dpdGNoX2NhbmFyeQkJCQkJCSAgXAotCSAgICAgIm1vdnEgJVBbdGhyZWFkX2lu Zm9dKCUlcnNpKSwlJXI4XG5cdCIJCQkgIFwKIAkgICAgICJtb3ZxICUlcmF4LCUlcmRpXG5cdCIg CQkJCQkgIFwKLQkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXI4KVxu XHQiCQkgIFwKKwkgICAgICJ0ZXN0bCAgJVtfdGlmX2ZvcmtdLCVQW3RpX2ZsYWdzXSglJXJzaSlc blx0IgkJICBcCiAJICAgICAiam56ICAgcmV0X2Zyb21fZm9ya1xuXHQiCQkJCQkgIFwKIAkgICAg IFJFU1RPUkVfQ09OVEVYVAkJCQkJCSAgXAogCSAgICAgOiAiPWEiIChsYXN0KQkJCQkJICAJICBc CiAJICAgICAgIF9fc3dpdGNoX2NhbmFyeV9vcGFyYW0JCQkJCSAgXAogCSAgICAgOiBbbmV4dF0g IlMiIChuZXh0KSwgW3ByZXZdICJEIiAocHJldiksCQkJICBcCiAJICAgICAgIFt0aHJlYWRyc3Bd ICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRhc2tfc3RydWN0LCB0aHJlYWQuc3ApKSwgXAotCSAgICAg ICBbdGlfZmxhZ3NdICJpIiAob2Zmc2V0b2Yoc3RydWN0IHRocmVhZF9pbmZvLCBmbGFncykpLAkg IFwKKwkgICAgICAgW3RpX2ZsYWdzXSAiaSIgKG9mZnNldG9mKHN0cnVjdCB0YXNrX3N0cnVjdCwg dGhyZWFkX2luZm8uZmxhZ3MpKSwJICBcCiAJICAgICAgIFtfdGlmX2ZvcmtdICJpIiAoX1RJRl9G T1JLKSwJCQkgIAkgIFwKLQkgICAgICAgW3RocmVhZF9pbmZvXSAiaSIgKG9mZnNldG9mKHN0cnVj dCB0YXNrX3N0cnVjdCwgc3RhY2spKSwgICBcCiAJICAgICAgIFtjdXJyZW50X3Rhc2tdICJtIiAo Y3VycmVudF90YXNrKQkJCSAgXAogCSAgICAgICBfX3N3aXRjaF9jYW5hcnlfaXBhcmFtCQkJCQkg IFwKIAkgICAgIDogIm1lbW9yeSIsICJjYyIgX19FWFRSQV9DTE9CQkVSKQpkaWZmIC0tZ2l0IGEv YXJjaC94ODYvaW5jbHVkZS9hc20vdGhyZWFkX2luZm8uaCBiL2FyY2gveDg2L2luY2x1ZGUvYXNt L3RocmVhZF9pbmZvLmgKaW5kZXggMzBjMTMzYWMwNWNkLi5kMzhlYmIwOGY0YzEgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmgKKysrIGIvYXJjaC94ODYvaW5j bHVkZS9hc20vdGhyZWFkX2luZm8uaApAQCAtNTMsMjQgKzUzLDIxIEBAIHN0cnVjdCB0YXNrX3N0 cnVjdDsKICNpbmNsdWRlIDxsaW51eC9hdG9taWMuaD4KIAogc3RydWN0IHRocmVhZF9pbmZvIHsK LQlzdHJ1Y3QgdGFza19zdHJ1Y3QJKnRhc2s7CQkvKiBtYWluIHRhc2sgc3RydWN0dXJlICovCiAJ X191MzIJCQlmbGFnczsJCS8qIGxvdyBsZXZlbCBmbGFncyAqLwogCV9fdTMyCQkJc3RhdHVzOwkJ LyogdGhyZWFkIHN5bmNocm9ub3VzIGZsYWdzICovCiAJX191MzIJCQljcHU7CQkvKiBjdXJyZW50 IENQVSAqLwotCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIAl1bnNpZ25lZCBpbnQJCXNpZ19v bl91YWNjZXNzX2Vycm9yOjE7CiAJdW5zaWduZWQgaW50CQl1YWNjZXNzX2VycjoxOwkvKiB1YWNj ZXNzIGZhaWxlZCAqLworCW1tX3NlZ21lbnRfdAkJYWRkcl9saW1pdDsKIH07CiAKICNkZWZpbmUg SU5JVF9USFJFQURfSU5GTyh0c2spCQkJXAogewkJCQkJCVwKLQkudGFzawkJPSAmdHNrLAkJCVwK IAkuZmxhZ3MJCT0gMCwJCQlcCiAJLmNwdQkJPSAwLAkJCVwKIAkuYWRkcl9saW1pdAk9IEtFUk5F TF9EUywJCVwKIH0KIAotI2RlZmluZSBpbml0X3RocmVhZF9pbmZvCShpbml0X3RocmVhZF91bmlv bi50aHJlYWRfaW5mbykKICNkZWZpbmUgaW5pdF9zdGFjawkJKGluaXRfdGhyZWFkX3VuaW9uLnN0 YWNrKQogCiAjZWxzZSAvKiAhX19BU1NFTUJMWV9fICovCkBAIC0xNjYsNyArMTYzLDcgQEAgc3Ry dWN0IHRocmVhZF9pbmZvIHsKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdGhyZWFkX2luZm8gKmN1 cnJlbnRfdGhyZWFkX2luZm8odm9pZCkKIHsKLQlyZXR1cm4gKHN0cnVjdCB0aHJlYWRfaW5mbyAq KShjdXJyZW50X3RvcF9vZl9zdGFjaygpIC0gVEhSRUFEX1NJWkUpOworCXJldHVybiAoc3RydWN0 IHRocmVhZF9pbmZvICopY3VycmVudDsKIH0KIAogc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25n IGN1cnJlbnRfc3RhY2tfcG9pbnRlcih2b2lkKQpAQCAtMTg4LDM1ICsxODUsNyBAQCBzdGF0aWMg aW5saW5lIHVuc2lnbmVkIGxvbmcgY3VycmVudF9zdGFja19wb2ludGVyKHZvaWQpCiAKIC8qIExv YWQgdGhyZWFkX2luZm8gYWRkcmVzcyBpbnRvICJyZWciICovCiAjZGVmaW5lIEdFVF9USFJFQURf SU5GTyhyZWcpIFwKLQlfQVNNX01PViBQRVJfQ1BVX1ZBUihjcHVfY3VycmVudF90b3Bfb2Zfc3Rh Y2spLHJlZyA7IFwKLQlfQVNNX1NVQiAkKFRIUkVBRF9TSVpFKSxyZWcgOwotCi0vKgotICogQVNN IG9wZXJhbmQgd2hpY2ggZXZhbHVhdGVzIHRvIGEgJ3RocmVhZF9pbmZvJyBhZGRyZXNzIG9mCi0g KiB0aGUgY3VycmVudCB0YXNrLCBpZiBpdCBpcyBrbm93biB0aGF0ICJyZWciIGlzIGV4YWN0bHkg Im9mZiIKLSAqIGJ5dGVzIGJlbG93IHRoZSB0b3Agb2YgdGhlIHN0YWNrIGN1cnJlbnRseS4KLSAq Ci0gKiAoIFRoZSBrZXJuZWwgc3RhY2sncyBzaXplIGlzIGtub3duIGF0IGJ1aWxkIHRpbWUsIGl0 IGlzIHVzdWFsbHkKLSAqICAgMiBvciA0IHBhZ2VzLCBhbmQgdGhlIGJvdHRvbSAgb2YgdGhlIGtl cm5lbCBzdGFjayBjb250YWlucwotICogICB0aGUgdGhyZWFkX2luZm8gc3RydWN0dXJlLiBTbyB0 byBhY2Nlc3MgdGhlIHRocmVhZF9pbmZvIHZlcnkKLSAqICAgcXVpY2tseSBmcm9tIGFzc2VtYmx5 IGNvZGUgd2UgY2FuIGNhbGN1bGF0ZSBkb3duIGZyb20gdGhlCi0gKiAgIHRvcCBvZiB0aGUga2Vy bmVsIHN0YWNrIHRvIHRoZSBib3R0b20sIHVzaW5nIGNvbnN0YW50LAotICogICBidWlsZC10aW1l IGNhbGN1bGF0aW9ucyBvbmx5LiApCi0gKgotICogRm9yIGV4YW1wbGUsIHRvIGZldGNoIHRoZSBj dXJyZW50IHRocmVhZF9pbmZvLT5mbGFncyB2YWx1ZSBpbnRvICVlYXgKLSAqIG9uIHg4Ni02NCBk ZWZjb25maWcga2VybmVscywgaW4gc3lzY2FsbCBlbnRyeSBjb2RlIHdoZXJlIFJTUCBpcwotICog Y3VycmVudGx5IGF0IGV4YWN0bHkgU0laRU9GX1BUUkVHUyBieXRlcyBhd2F5IGZyb20gdGhlIHRv cCBvZiB0aGUKLSAqIHN0YWNrOgotICoKLSAqICAgICAgbW92IEFTTV9USFJFQURfSU5GTyhUSV9m bGFncywgJXJzcCwgU0laRU9GX1BUUkVHUyksICVlYXgKLSAqCi0gKiB3aWxsIHRyYW5zbGF0ZSB0 bzoKLSAqCi0gKiAgICAgIDhiIDg0IDI0IGI4IGMwIGZmIGZmICAgICAgbW92ICAgIC0weDNmNDgo JXJzcCksICVlYXgKLSAqCi0gKiB3aGljaCBpcyBiZWxvdyB0aGUgY3VycmVudCBSU1AgYnkgYWxt b3N0IDE2Sy4KLSAqLwotI2RlZmluZSBBU01fVEhSRUFEX0lORk8oZmllbGQsIHJlZywgb2ZmKSAo KGZpZWxkKSsob2ZmKS1USFJFQURfU0laRSkocmVnKQorCV9BU01fTU9WIFBFUl9DUFVfVkFSKGN1 cnJlbnRfdGFzaykscmVnCiAKICNlbmRpZgogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwv Y3B1L2NvbW1vbi5jIGIvYXJjaC94ODYva2VybmVsL2NwdS9jb21tb24uYwppbmRleCAwZmU2OTUz ZjQyMWMuLmQyMmE3YjljNGYwZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2NwdS9jb21t b24uYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCkBAIC0xNDUyLDcgKzE0NTIs NyBAQCB2b2lkIGNwdV9pbml0KHZvaWQpCiAJc3RydWN0IHRhc2tfc3RydWN0ICptZTsKIAlzdHJ1 Y3QgdHNzX3N0cnVjdCAqdDsKIAl1bnNpZ25lZCBsb25nIHY7Ci0JaW50IGNwdSA9IHN0YWNrX3Nt cF9wcm9jZXNzb3JfaWQoKTsKKwlpbnQgY3B1ID0gcmF3X3NtcF9wcm9jZXNzb3JfaWQoKTsKIAlp bnQgaTsKIAogCXdhaXRfZm9yX21hc3Rlcl9jcHUoY3B1KTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2 L2tlcm5lbC9pcnFfNjQuYyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwppbmRleCAyMDZkMGI5 MGEzYWIuLjM4ZjlmNTY3OGRjOCAxMDA2NDQKLS0tIGEvYXJjaC94ODYva2VybmVsL2lycV82NC5j CisrKyBiL2FyY2gveDg2L2tlcm5lbC9pcnFfNjQuYwpAQCAtNDEsOCArNDEsNyBAQCBzdGF0aWMg aW5saW5lIHZvaWQgc3RhY2tfb3ZlcmZsb3dfY2hlY2soc3RydWN0IHB0X3JlZ3MgKnJlZ3MpCiAJ aWYgKHVzZXJfbW9kZShyZWdzKSkKIAkJcmV0dXJuOwogCi0JaWYgKHJlZ3MtPnNwID49IGN1cmJh c2UgKyBzaXplb2Yoc3RydWN0IHRocmVhZF9pbmZvKSArCi0JCQkJICBzaXplb2Yoc3RydWN0IHB0 X3JlZ3MpICsgU1RBQ0tfVE9QX01BUkdJTiAmJgorCWlmIChyZWdzLT5zcCA+PSBjdXJiYXNlICsg c2l6ZW9mKHN0cnVjdCBwdF9yZWdzKSArIFNUQUNLX1RPUF9NQVJHSU4gJiYKIAkgICAgcmVncy0+ c3AgPD0gY3VyYmFzZSArIFRIUkVBRF9TSVpFKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2tlcm5lbC9wcm9jZXNzLmMgYi9hcmNoL3g4Ni9rZXJuZWwvcHJvY2Vzcy5jCmluZGV4 IDk2YmVjYmJiNTJlMC4uOGY2MGY4MTBhOWU3IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9wcm9jZXNzLmMKQEAgLTUzNiw5ICs1MzYs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICog UEFERElORwogCSAqIC0tLS0tLS0tLS0tIHRvcCA9IHRvcG1heCAtIFRPUF9PRl9LRVJORUxfU1RB Q0tfUEFERElORwogCSAqIHN0YWNrCi0JICogLS0tLS0tLS0tLS0gYm90dG9tID0gc3RhcnQgKyBz aXplb2YodGhyZWFkX2luZm8pCi0JICogdGhyZWFkX2luZm8KLQkgKiAtLS0tLS0tLS0tLSBzdGFy dAorCSAqIC0tLS0tLS0tLS0tIGJvdHRvbSA9IHN0YXJ0CiAJICoKIAkgKiBUaGUgdGFza3Mgc3Rh Y2sgcG9pbnRlciBwb2ludHMgYXQgdGhlIGxvY2F0aW9uIHdoZXJlIHRoZQogCSAqIGZyYW1lcG9p bnRlciBpcyBzdG9yZWQuIFRoZSBkYXRhIG9uIHRoZSBzdGFjayBpczoKQEAgLTU0OSw3ICs1NDcs NyBAQCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApCiAJICov CiAJdG9wID0gc3RhcnQgKyBUSFJFQURfU0laRSAtIFRPUF9PRl9LRVJORUxfU1RBQ0tfUEFERElO RzsKIAl0b3AgLT0gMiAqIHNpemVvZih1bnNpZ25lZCBsb25nKTsKLQlib3R0b20gPSBzdGFydCAr IHNpemVvZihzdHJ1Y3QgdGhyZWFkX2luZm8pOworCWJvdHRvbSA9IHN0YXJ0OwogCiAJc3AgPSBS RUFEX09OQ0UocC0+dGhyZWFkLnNwKTsKIAlpZiAoc3AgPCBib3R0b20gfHwgc3AgPiB0b3ApCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYyBiL2FyY2gveDg2L3VtL3B0cmFjZV8z Mi5jCmluZGV4IGViZDRkZDZlZjczYi4uMTRlOGY2YTYyOGMyIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni91bS9wdHJhY2VfMzIuYworKysgYi9hcmNoL3g4Ni91bS9wdHJhY2VfMzIuYwpAQCAtMTkxLDcg KzE5MSw3IEBAIGludCBwZWVrX3VzZXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgbG9uZyBh ZGRyLCBsb25nIGRhdGEpCiAKIHN0YXRpYyBpbnQgZ2V0X2ZwcmVncyhzdHJ1Y3QgdXNlcl9pMzg3 X3N0cnVjdCBfX3VzZXIgKmJ1Ziwgc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQg ZXJyLCBuLCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7 CisJaW50IGVyciwgbiwgY3B1ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1 Y3QgdXNlcl9pMzg3X3N0cnVjdCBmcHJlZ3M7CiAKIAllcnIgPSBzYXZlX2kzODdfcmVnaXN0ZXJz KHVzZXJzcGFjZV9waWRbY3B1XSwKQEAgLTIwOCw3ICsyMDgsNyBAQCBzdGF0aWMgaW50IGdldF9m cHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3QgX191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0 cnVjdCAqYwogCiBzdGF0aWMgaW50IHNldF9mcHJlZ3Moc3RydWN0IHVzZXJfaTM4N19zdHJ1Y3Qg X191c2VyICpidWYsIHN0cnVjdCB0YXNrX3N0cnVjdCAqY2hpbGQpCiB7Ci0JaW50IG4sIGNwdSA9 ICgoc3RydWN0IHRocmVhZF9pbmZvICopIGNoaWxkLT5zdGFjayktPmNwdTsKKwlpbnQgbiwgY3B1 ID0gdGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9pMzg3X3N0cnVj dCBmcHJlZ3M7CiAKIAluID0gY29weV9mcm9tX3VzZXIoJmZwcmVncywgYnVmLCBzaXplb2YoZnBy ZWdzKSk7CkBAIC0yMjEsNyArMjIxLDcgQEAgc3RhdGljIGludCBzZXRfZnByZWdzKHN0cnVjdCB1 c2VyX2kzODdfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmMKIAogc3Rh dGljIGludCBnZXRfZnB4cmVncyhzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBfX3VzZXIgKmJ1Ziwg c3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkKIHsKLQlpbnQgZXJyLCBuLCBjcHUgPSAoKHN0cnVj dCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50IGVyciwgbiwgY3B1ID0g dGFza190aHJlYWRfaW5mbyhjaGlsZCktPmNwdTsKIAlzdHJ1Y3QgdXNlcl9meHNyX3N0cnVjdCBm cHJlZ3M7CiAKIAllcnIgPSBzYXZlX2ZweF9yZWdpc3RlcnModXNlcnNwYWNlX3BpZFtjcHVdLCAo dW5zaWduZWQgbG9uZyAqKSAmZnByZWdzKTsKQEAgLTIzNyw3ICsyMzcsNyBAQCBzdGF0aWMgaW50 IGdldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jfc3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3Qg dGFza19zdHJ1Y3QgKgogCiBzdGF0aWMgaW50IHNldF9mcHhyZWdzKHN0cnVjdCB1c2VyX2Z4c3Jf c3RydWN0IF9fdXNlciAqYnVmLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQogewotCWludCBu LCBjcHUgPSAoKHN0cnVjdCB0aHJlYWRfaW5mbyAqKSBjaGlsZC0+c3RhY2spLT5jcHU7CisJaW50 IG4sIGNwdSA9IHRhc2tfdGhyZWFkX2luZm8oY2hpbGQpLT5jcHU7CiAJc3RydWN0IHVzZXJfZnhz cl9zdHJ1Y3QgZnByZWdzOwogCiAJbiA9IGNvcHlfZnJvbV91c2VyKCZmcHJlZ3MsIGJ1Ziwgc2l6 ZW9mKGZwcmVncykpOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pbml0X3Rhc2suaCBiL2lu Y2x1ZGUvbGludXgvaW5pdF90YXNrLmgKaW5kZXggZjg4MzRmODIwZWMyLi45YzA0ZDQ0ZWViM2Mg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvaW5pdF90YXNrLmgKKysrIGIvaW5jbHVkZS9saW51 eC9pbml0X3Rhc2suaApAQCAtMTUsNiArMTUsOCBAQAogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNw YWNlLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQvcnQuaD4KIAorI2luY2x1ZGUgPGFzbS90aHJl YWRfaW5mby5oPgorCiAjaWZkZWYgQ09ORklHX1NNUAogIyBkZWZpbmUgSU5JVF9QVVNIQUJMRV9U QVNLUyh0c2spCQkJCQlcCiAJLnB1c2hhYmxlX3Rhc2tzID0gUExJU1RfTk9ERV9JTklUKHRzay5w dXNoYWJsZV90YXNrcywgTUFYX1BSSU8pLApAQCAtMTgzLDEyICsxODUsMTkgQEAgZXh0ZXJuIHN0 cnVjdCB0YXNrX2dyb3VwIHJvb3RfdGFza19ncm91cDsKICMgZGVmaW5lIElOSVRfS0FTQU4odHNr KQogI2VuZGlmCiAKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworIyBkZWZpbmUg SU5JVF9UQVNLX1RJKHRzaykgLnRocmVhZF9pbmZvID0gSU5JVF9USFJFQURfSU5GTyh0c2spLAor I2Vsc2UKKyMgZGVmaW5lIElOSVRfVEFTS19USSh0c2spCisjZW5kaWYKKwogLyoKICAqICBJTklU X1RBU0sgaXMgdXNlZCB0byBzZXQgdXAgdGhlIGZpcnN0IHRhc2sgdGFibGUsIHRvdWNoIGF0CiAg KiB5b3VyIG93biByaXNrIS4gQmFzZT0wLCBsaW1pdD0weDFmZmZmZiAoPTJNQikKICAqLwogI2Rl ZmluZSBJTklUX1RBU0sodHNrKQlcCiB7CQkJCQkJCQkJXAorCUlOSVRfVEFTS19USSh0c2spCQkJ CQkJXAogCS5zdGF0ZQkJPSAwLAkJCQkJCVwKIAkuc3RhY2sJCT0gaW5pdF9zdGFjaywJCQkJCVwK IAkudXNhZ2UJCT0gQVRPTUlDX0lOSVQoMiksCQkJCVwKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc2NoZWQuaCBiL2luY2x1ZGUvbGludXgvc2NoZWQuaAppbmRleCAyNTM1MzhmMjlhZGUuLmUz NGNmMjE0YWNmZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oCisrKyBiL2luY2x1 ZGUvbGludXgvc2NoZWQuaApAQCAtMTQ1Niw4ICsxNDU2LDExIEBAIHN0cnVjdCB0bGJmbHVzaF91 bm1hcF9iYXRjaCB7CiB9OwogCiBzdHJ1Y3QgdGFza19zdHJ1Y3QgeworI2lmZGVmIENPTkZJR19U SFJFQURfSU5GT19JTl9UQVNLCisJc3RydWN0IHRocmVhZF9pbmZvIHRocmVhZF9pbmZvOworI2Vu ZGlmCiAJdm9sYXRpbGUgbG9uZyBzdGF0ZTsJLyogLTEgdW5ydW5uYWJsZSwgMCBydW5uYWJsZSwg PjAgc3RvcHBlZCAqLwotCXZvaWQgKnN0YWNrOworCXVuc2lnbmVkIGxvbmcgKnN0YWNrOwogCWF0 b21pY190IHVzYWdlOwogCXVuc2lnbmVkIGludCBmbGFnczsJLyogcGVyIHByb2Nlc3MgZmxhZ3Ms IGRlZmluZWQgYmVsb3cgKi8KIAl1bnNpZ25lZCBpbnQgcHRyYWNlOwpAQCAtMjUzOSw3ICsyNTQy LDkgQEAgZXh0ZXJuIHZvaWQgc2V0X2N1cnJfdGFzayhpbnQgY3B1LCBzdHJ1Y3QgdGFza19zdHJ1 Y3QgKnApOwogdm9pZCB5aWVsZCh2b2lkKTsKIAogdW5pb24gdGhyZWFkX3VuaW9uIHsKKyNpZm5k ZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKIAlzdHJ1Y3QgdGhyZWFkX2luZm8gdGhyZWFk X2luZm87CisjZW5kaWYKIAl1bnNpZ25lZCBsb25nIHN0YWNrW1RIUkVBRF9TSVpFL3NpemVvZihs b25nKV07CiB9OwogCkBAIC0yOTY3LDEwICsyOTcyLDE3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCB0 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNrKQogCWNncm91cF90 aHJlYWRncm91cF9jaGFuZ2VfZW5kKHRzayk7CiB9CiAKLSNpZm5kZWYgX19IQVZFX1RIUkVBRF9G VU5DVElPTlMKKyNpZmRlZiBDT05GSUdfVEhSRUFEX0lORk9fSU5fVEFTSworCisjZGVmaW5lIHRh c2tfdGhyZWFkX2luZm8odGFzaykJCSgmKHRhc2spLT50aHJlYWRfaW5mbykKKyNkZWZpbmUgdGFz a19zdGFja19wYWdlKHRhc2spCQkoKHZvaWQgKikodGFzayktPnN0YWNrKQorI2RlZmluZSBzZXR1 cF90aHJlYWRfc3RhY2sobmV3LG9sZCkJZG8geyB9IHdoaWxlKDApCisjZGVmaW5lIGVuZF9vZl9z dGFjayh0YXNrKQkJKCh0YXNrKS0+c3RhY2spCisKKyNlbGlmICFkZWZpbmVkKF9fSEFWRV9USFJF QURfRlVOQ1RJT05TKQogCiAjZGVmaW5lIHRhc2tfdGhyZWFkX2luZm8odGFzaykJKChzdHJ1Y3Qg dGhyZWFkX2luZm8gKikodGFzayktPnN0YWNrKQotI2RlZmluZSB0YXNrX3N0YWNrX3BhZ2UodGFz aykJKCh0YXNrKS0+c3RhY2spCisjZGVmaW5lIHRhc2tfc3RhY2tfcGFnZSh0YXNrKQkoKHZvaWQg KikodGFzayktPnN0YWNrKQogCiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0dXBfdGhyZWFkX3N0YWNr KHN0cnVjdCB0YXNrX3N0cnVjdCAqcCwgc3RydWN0IHRhc2tfc3RydWN0ICpvcmcpCiB7CmRpZmYg LS1naXQgYS9pbml0L0tjb25maWcgYi9pbml0L0tjb25maWcKaW5kZXggZjc1NWE2MDJkNGExLi4w YzgzYWY2ZDM3NTMgMTAwNjQ0Ci0tLSBhL2luaXQvS2NvbmZpZworKysgYi9pbml0L0tjb25maWcK QEAgLTI2LDYgKzI2LDkgQEAgY29uZmlnIElSUV9XT1JLCiBjb25maWcgQlVJTERUSU1FX0VYVEFC TEVfU09SVAogCWJvb2wKIAorY29uZmlnIFRIUkVBRF9JTkZPX0lOX1RBU0sKKwlib29sCisKIG1l bnUgIkdlbmVyYWwgc2V0dXAiCiAKIGNvbmZpZyBCUk9LRU4KZGlmZiAtLWdpdCBhL2luaXQvaW5p dF90YXNrLmMgYi9pbml0L2luaXRfdGFzay5jCmluZGV4IGJhMGE3ZjM2MmQ5ZS4uMTFmODNiZTFm YTc5IDEwMDY0NAotLS0gYS9pbml0L2luaXRfdGFzay5jCisrKyBiL2luaXQvaW5pdF90YXNrLmMK QEAgLTIyLDUgKzIyLDggQEAgRVhQT1JUX1NZTUJPTChpbml0X3Rhc2spOwogICogSW5pdGlhbCB0 aHJlYWQgc3RydWN0dXJlLiBBbGlnbm1lbnQgb2YgdGhpcyBpcyBoYW5kbGVkIGJ5IGEgc3BlY2lh bAogICogbGlua2VyIG1hcCBlbnRyeS4KICAqLwotdW5pb24gdGhyZWFkX3VuaW9uIGluaXRfdGhy ZWFkX3VuaW9uIF9faW5pdF90YXNrX2RhdGEgPQotCXsgSU5JVF9USFJFQURfSU5GTyhpbml0X3Rh c2spIH07Cit1bmlvbiB0aHJlYWRfdW5pb24gaW5pdF90aHJlYWRfdW5pb24gX19pbml0X3Rhc2tf ZGF0YSA9IHsKKyNpZm5kZWYgQ09ORklHX1RIUkVBRF9JTkZPX0lOX1RBU0sKKwlJTklUX1RIUkVB RF9JTkZPKGluaXRfdGFzaykKKyNlbmRpZgorfTsK --001a1136e636f1116b05361137f0--