From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Garnier Subject: [PATCH v7 2/3] x86: Remap GDT tables in the Fixmap section Date: Tue, 14 Mar 2017 10:05:07 -0700 Message-ID: <20170314170508.100882-2-thgarnie__21131.803879007$1489511202$gmane$org@google.com> References: <20170314170508.100882-1-thgarnie@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cnpt8-0007Ad-Ab for xen-devel@lists.xenproject.org; Tue, 14 Mar 2017 17:05:34 +0000 Received: by mail-pf0-f174.google.com with SMTP id o126so73091325pfb.3 for ; Tue, 14 Mar 2017 10:05:32 -0700 (PDT) In-Reply-To: <20170314170508.100882-1-thgarnie@google.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Thomas Gleixner , Ingo Molnar , "H . Peter Anvin" , Jonathan Corbet , Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Thomas Garnier , Lorenzo Stoakes , Kees Cook , Juergen Gross , Andy Lutomirski , Paul Gortmaker , Andrew Morton , Michal Hocko , zijun_hu , Chris Wilson , Andy Lutomirski , "Rafael J . Wysocki" , Len Brown , Pavel Machek , Jiri Kosina , Matt Fleming , Ard Biesheuvel Cc: linux-efi@vger.kernel.org, kvm@vger.kernel.org, linux-pm@vger.kernel.org, x86@kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, lguest@lists.ozlabs.org, kernel-hardening@lists.openwall.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RWFjaCBwcm9jZXNzb3IgaG9sZHMgYSBHRFQgaW4gaXRzIHBlci1jcHUgc3RydWN0dXJlLiBUaGUg c2dkdAppbnN0cnVjdGlvbiBnaXZlcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IEdE VC4gVGhpcyBhZGRyZXNzIGNhbgpiZSB1c2VkIHRvIGJ5cGFzcyBLQVNMUiBtZW1vcnkgcmFuZG9t aXphdGlvbi4gV2l0aCBhbm90aGVyIGJ1ZywgYW4KYXR0YWNrZXIgY291bGQgdGFyZ2V0IG90aGVy IHBlci1jcHUgc3RydWN0dXJlcyBvciBkZWR1Y2UgdGhlIGJhc2Ugb2YKdGhlIG1haW4gbWVtb3J5 IHNlY3Rpb24gKFBBR0VfT0ZGU0VUKS4KClRoaXMgcGF0Y2ggcmVsb2NhdGVzIHRoZSBHRFQgdGFi bGUgZm9yIGVhY2ggcHJvY2Vzc29yIGluc2lkZSB0aGUKRml4bWFwIHNlY3Rpb24uIFRoZSBzcGFj ZSBpcyByZXNlcnZlZCBiYXNlZCBvbiBudW1iZXIgb2Ygc3VwcG9ydGVkCnByb2Nlc3NvcnMuCgpG b3IgY29uc2lzdGVuY3ksIHRoZSByZW1hcHBpbmcgaXMgZG9uZSBieSBkZWZhdWx0IG9uIDMyIGFu ZCA2NC1iaXQuCgpFYWNoIHByb2Nlc3NvciBzd2l0Y2hlcyB0byBpdHMgcmVtYXBwZWQgR0RUIGF0 IHRoZSBlbmQgb2YKaW5pdGlhbGl6YXRpb24uIEZvciBoaWJlcm5hdGlvbiwgdGhlIG1haW4gcHJv Y2Vzc29yIHJldHVybnMgd2l0aCB0aGUKb3JpZ2luYWwgR0RUIGFuZCBzd2l0Y2hlcyBiYWNrIHRv IHRoZSByZW1hcHBpbmcgYXQgY29tcGxldGlvbi4KClRoaXMgcGF0Y2ggd2FzIHRlc3RlZCBvbiBi b3RoIGFyY2hpdGVjdHVyZXMuIEhpYmVybmF0aW9uIGFuZCBLVk0gd2VyZQpib3RoIHRlc3RlZCBz cGVjaWFsbHkgZm9yIHRoZWlyIHVzYWdlIG9mIHRoZSBHRFQuCgpUaGFua3MgdG8gQm9yaXMgT3N0 cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4gZm9yIHRlc3RpbmcgYW5kCnJlY29t bWVuZGluZyBjaGFuZ2VzIGZvciBYZW4gc3VwcG9ydC4KClNpZ25lZC1vZmYtYnk6IFRob21hcyBH YXJuaWVyIDx0aGdhcm5pZUBnb29nbGUuY29tPgotLS0KQmFzZWQgb24gbmV4dC0yMDE3MDMwOAot LS0KIGFyY2gveDg2L2VudHJ5L3Zkc28vdm1hLmMgICAgICAgICAgICAgfCAgMiArLQogYXJjaC94 ODYvaW5jbHVkZS9hc20vZGVzYy5oICAgICAgICAgICB8IDU4ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9maXhtYXAuaCAgICAgICAgIHwg IDQgKysrCiBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCAgICAgIHwgIDEgKwogYXJj aC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaCB8ICAyICstCiBhcmNoL3g4Ni9rZXJu ZWwvYWNwaS9zbGVlcC5jICAgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9hcG1fMzIu YyAgICAgICAgICAgICAgfCAgNiArKy0tCiBhcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jICAg ICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKy0tCiBhcmNoL3g4Ni9rZXJuZWwvc2V0dXBfcGVy Y3B1LmMgICAgICAgIHwgIDIgKy0KIGFyY2gveDg2L2tlcm5lbC9zbXBib290LmMgICAgICAgICAg ICAgfCAgMiArLQogYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV8zMi5jICAgICAgICB8ICA0ICst LQogYXJjaC94ODYvcG93ZXIvY3B1LmMgICAgICAgICAgICAgICAgICB8ICA3ICsrKy0tCiBhcmNo L3g4Ni94ZW4vZW5saWdodGVuLmMgICAgICAgICAgICAgIHwgIDUgKystCiBhcmNoL3g4Ni94ZW4v bW11LmMgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogYXJjaC94ODYveGVuL3NtcC5jICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2xndWVzdC94ODYvY29yZS5jICAgICAgICAg ICAgIHwgIDYgKystLQogZHJpdmVycy9wbnAvcG5wYmlvcy9iaW9zY2FsbHMuYyAgICAgICB8IDEw ICsrKy0tLQogMTcgZmlsZXMgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2VudHJ5L3Zkc28vdm1hLmMgYi9hcmNoL3g4Ni9l bnRyeS92ZHNvL3ZtYS5jCmluZGV4IDIyNmNhNzBkYzZiZC4uNWM1ZDRkNzYxOGU2IDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9lbnRyeS92ZHNvL3ZtYS5jCisrKyBiL2FyY2gveDg2L2VudHJ5L3Zkc28v dm1hLmMKQEAgLTM1NCw3ICszNTQsNyBAQCBzdGF0aWMgdm9pZCB2Z2V0Y3B1X2NwdV9pbml0KHZv aWQgKmFyZykKIAlkLnAgPSAxOwkJLyogUHJlc2VudCAqLwogCWQuZCA9IDE7CQkvKiAzMi1iaXQg Ki8KIAotCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF90YWJsZShjcHUpLCBHRFRfRU5UUllf UEVSX0NQVSwgJmQsIERFU0NUWVBFX1MpOworCXdyaXRlX2dkdF9lbnRyeShnZXRfY3B1X2dkdF9y dyhjcHUpLCBHRFRfRU5UUllfUEVSX0NQVSwgJmQsIERFU0NUWVBFX1MpOwogfQogCiBzdGF0aWMg aW50IHZnZXRjcHVfb25saW5lKHVuc2lnbmVkIGludCBjcHUpCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9kZXNjLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgKaW5kZXgg MTU0OGNhOTJhZDNmLi40YjVlZjBjNjQyOTEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2luY2x1ZGUv YXNtL2Rlc2MuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgKQEAgLTQsNiArNCw3 IEBACiAjaW5jbHVkZSA8YXNtL2Rlc2NfZGVmcy5oPgogI2luY2x1ZGUgPGFzbS9sZHQuaD4KICNp bmNsdWRlIDxhc20vbW11Lmg+CisjaW5jbHVkZSA8YXNtL2ZpeG1hcC5oPgogCiAjaW5jbHVkZSA8 bGludXgvc21wLmg+CiAjaW5jbHVkZSA8bGludXgvcGVyY3B1Lmg+CkBAIC0zOCw2ICszOSw3IEBA IGV4dGVybiBzdHJ1Y3QgZGVzY19wdHIgaWR0X2Rlc2NyOwogZXh0ZXJuIGdhdGVfZGVzYyBpZHRf dGFibGVbXTsKIGV4dGVybiBjb25zdCBzdHJ1Y3QgZGVzY19wdHIgZGVidWdfaWR0X2Rlc2NyOwog ZXh0ZXJuIGdhdGVfZGVzYyBkZWJ1Z19pZHRfdGFibGVbXTsKK2V4dGVybiBwZ3Byb3RfdCBwZ19m aXhtYXBfZ2R0X2ZsYWdzOwogCiBzdHJ1Y3QgZ2R0X3BhZ2UgewogCXN0cnVjdCBkZXNjX3N0cnVj dCBnZHRbR0RUX0VOVFJJRVNdOwpAQCAtNDUsMTEgKzQ3LDU3IEBAIHN0cnVjdCBnZHRfcGFnZSB7 CiAKIERFQ0xBUkVfUEVSX0NQVV9QQUdFX0FMSUdORUQoc3RydWN0IGdkdF9wYWdlLCBnZHRfcGFn ZSk7CiAKLXN0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0ICpnZXRfY3B1X2dkdF90YWJs ZSh1bnNpZ25lZCBpbnQgY3B1KQorLyogUHJvdmlkZSB0aGUgb3JpZ2luYWwgR0RUICovCitzdGF0 aWMgaW5saW5lIHN0cnVjdCBkZXNjX3N0cnVjdCAqZ2V0X2NwdV9nZHRfcncodW5zaWduZWQgaW50 IGNwdSkKIHsKIAlyZXR1cm4gcGVyX2NwdShnZHRfcGFnZSwgY3B1KS5nZHQ7CiB9CiAKK3N0YXRp YyBpbmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfY3B1X2dkdF9yd192YWRkcih1bnNpZ25lZCBpbnQg Y3B1KQoreworCXJldHVybiAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF9ydyhjcHUpOworfQor CisvKiBQcm92aWRlIHRoZSBjdXJyZW50IG9yaWdpbmFsIEdEVCAqLworc3RhdGljIGlubGluZSBz dHJ1Y3QgZGVzY19zdHJ1Y3QgKmdldF9jdXJyZW50X2dkdF9ydyh2b2lkKQoreworCXJldHVybiB0 aGlzX2NwdV9wdHIoJmdkdF9wYWdlKS0+Z2R0OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVk IGxvbmcgZ2V0X2N1cnJlbnRfZ2R0X3J3X3ZhZGRyKHZvaWQpCit7CisJcmV0dXJuICh1bnNpZ25l ZCBsb25nKWdldF9jdXJyZW50X2dkdF9ydygpOworfQorCisvKiBHZXQgdGhlIGZpeG1hcCBpbmRl eCBmb3IgYSBzcGVjaWZpYyBwcm9jZXNzb3IgKi8KK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50 IGdldF9jcHVfZ2R0X3JvX2luZGV4KGludCBjcHUpCit7CisJcmV0dXJuIEZJWF9HRFRfUkVNQVBf QkVHSU4gKyBjcHU7Cit9CisKKy8qIFByb3ZpZGUgdGhlIGZpeG1hcCBhZGRyZXNzIG9mIHRoZSBy ZW1hcHBlZCBHRFQgKi8KK3N0YXRpYyBpbmxpbmUgc3RydWN0IGRlc2Nfc3RydWN0ICpnZXRfY3B1 X2dkdF9ybyhpbnQgY3B1KQoreworCXVuc2lnbmVkIGludCBpZHggPSBnZXRfY3B1X2dkdF9yb19p bmRleChjcHUpOworCXJldHVybiAoc3RydWN0IGRlc2Nfc3RydWN0ICopX19maXhfdG9fdmlydChp ZHgpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgZ2V0X2NwdV9nZHRfcm9fdmFk ZHIoaW50IGNwdSkKK3sKKwlyZXR1cm4gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfcm8oY3B1 KTsKK30KKworLyogUHJvdmlkZSB0aGUgY3VycmVudCByZWFkLW9ubHkgR0RUICovCitzdGF0aWMg aW5saW5lIHN0cnVjdCBkZXNjX3N0cnVjdCAqZ2V0X2N1cnJlbnRfZ2R0X3JvKHZvaWQpCit7CisJ cmV0dXJuIGdldF9jcHVfZ2R0X3JvKHNtcF9wcm9jZXNzb3JfaWQoKSk7Cit9CisKK3N0YXRpYyBp bmxpbmUgdW5zaWduZWQgbG9uZyBnZXRfY3VycmVudF9nZHRfcm9fdmFkZHIodm9pZCkKK3sKKwly ZXR1cm4gKHVuc2lnbmVkIGxvbmcpZ2V0X2N1cnJlbnRfZ2R0X3JvKCk7Cit9CisKICNpZmRlZiBD T05GSUdfWDg2XzY0CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYWNrX2dhdGUoZ2F0ZV9kZXNjICpn YXRlLCB1bnNpZ25lZCB0eXBlLCB1bnNpZ25lZCBsb25nIGZ1bmMsCkBAIC0xNzQsNyArMjIyLDcg QEAgc3RhdGljIGlubGluZSB2b2lkIHNldF90c3NsZHRfZGVzY3JpcHRvcih2b2lkICpkLCB1bnNp Z25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIHQKIAogc3RhdGljIGlubGluZSB2b2lkIF9fc2V0X3Rz c19kZXNjKHVuc2lnbmVkIGNwdSwgdW5zaWduZWQgaW50IGVudHJ5LCB2b2lkICphZGRyKQogewot CXN0cnVjdCBkZXNjX3N0cnVjdCAqZCA9IGdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJc3RydWN0 IGRlc2Nfc3RydWN0ICpkID0gZ2V0X2NwdV9nZHRfcncoY3B1KTsKIAl0c3NfZGVzYyB0c3M7CiAK IAlzZXRfdHNzbGR0X2Rlc2NyaXB0b3IoJnRzcywgKHVuc2lnbmVkIGxvbmcpYWRkciwgREVTQ19U U1MsCkBAIC0xOTQsNyArMjQyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIG5hdGl2ZV9zZXRfbGR0 KGNvbnN0IHZvaWQgKmFkZHIsIHVuc2lnbmVkIGludCBlbnRyaWVzKQogCiAJCXNldF90c3NsZHRf ZGVzY3JpcHRvcigmbGR0LCAodW5zaWduZWQgbG9uZylhZGRyLCBERVNDX0xEVCwKIAkJCQkgICAg ICBlbnRyaWVzICogTERUX0VOVFJZX1NJWkUgLSAxKTsKLQkJd3JpdGVfZ2R0X2VudHJ5KGdldF9j cHVfZ2R0X3RhYmxlKGNwdSksIEdEVF9FTlRSWV9MRFQsCisJCXdyaXRlX2dkdF9lbnRyeShnZXRf Y3B1X2dkdF9ydyhjcHUpLCBHRFRfRU5UUllfTERULAogCQkJCSZsZHQsIERFU0NfTERUKTsKIAkJ YXNtIHZvbGF0aWxlKCJsbGR0ICV3MCI6OiJxIiAoR0RUX0VOVFJZX0xEVCo4KSk7CiAJfQpAQCAt MjA5LDcgKzI1Nyw3IEBAIERFQ0xBUkVfUEVSX0NQVShib29sLCBfX3Rzc19saW1pdF9pbnZhbGlk KTsKIAogc3RhdGljIGlubGluZSB2b2lkIGZvcmNlX3JlbG9hZF9UUih2b2lkKQogewotCXN0cnVj dCBkZXNjX3N0cnVjdCAqZCA9IGdldF9jcHVfZ2R0X3RhYmxlKHNtcF9wcm9jZXNzb3JfaWQoKSk7 CisJc3RydWN0IGRlc2Nfc3RydWN0ICpkID0gZ2V0X2N1cnJlbnRfZ2R0X3J3KCk7CiAJdHNzX2Rl c2MgdHNzOwogCiAJbWVtY3B5KCZ0c3MsICZkW0dEVF9FTlRSWV9UU1NdLCBzaXplb2YodHNzX2Rl c2MpKTsKQEAgLTI4OCw3ICszMzYsNyBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbmF0 aXZlX3N0b3JlX3RyKHZvaWQpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBuYXRpdmVfbG9hZF90bHMo c3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQsIHVuc2lnbmVkIGludCBjcHUpCiB7Ci0Jc3RydWN0IGRl c2Nfc3RydWN0ICpnZHQgPSBnZXRfY3B1X2dkdF90YWJsZShjcHUpOworCXN0cnVjdCBkZXNjX3N0 cnVjdCAqZ2R0ID0gZ2V0X2NwdV9nZHRfcncoY3B1KTsKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWZv ciAoaSA9IDA7IGkgPCBHRFRfRU5UUllfVExTX0VOVFJJRVM7IGkrKykKZGlmZiAtLWdpdCBhL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1hcC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vZml4bWFw LmgKaW5kZXggODU1NGY5NjBlMjFiLi5iNjUxNTVjYzM3NjAgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2 L2luY2x1ZGUvYXNtL2ZpeG1hcC5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2ZpeG1hcC5o CkBAIC0xMDAsNiArMTAwLDEwIEBAIGVudW0gZml4ZWRfYWRkcmVzc2VzIHsKICNpZmRlZglDT05G SUdfWDg2X0lOVEVMX01JRAogCUZJWF9MTldfVlJUQywKICNlbmRpZgorCS8qIEZpeG1hcCBlbnRy aWVzIHRvIHJlbWFwIHRoZSBHRFRzLCBvbmUgcGVyIHByb2Nlc3Nvci4gKi8KKwlGSVhfR0RUX1JF TUFQX0JFR0lOLAorCUZJWF9HRFRfUkVNQVBfRU5EID0gRklYX0dEVF9SRU1BUF9CRUdJTiArIE5S X0NQVVMgLSAxLAorCiAJX19lbmRfb2ZfcGVybWFuZW50X2ZpeGVkX2FkZHJlc3NlcywKIAogCS8q CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaCBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oCmluZGV4IGYzODVlY2E1NDA3YS4uMmVjNGQyZGM1NTli IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaAorKysgYi9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9wcm9jZXNzb3IuaApAQCAtNzE2LDYgKzcxNiw3IEBAIGV4dGVybiBz dHJ1Y3QgZGVzY19wdHIJCWVhcmx5X2dkdF9kZXNjcjsKIAogZXh0ZXJuIHZvaWQgY3B1X3NldF9n ZHQoaW50KTsKIGV4dGVybiB2b2lkIHN3aXRjaF90b19uZXdfZ2R0KGludCk7CitleHRlcm4gdm9p ZCBsb2FkX2ZpeG1hcF9nZHQoaW50KTsKIGV4dGVybiB2b2lkIGxvYWRfcGVyY3B1X3NlZ21lbnQo aW50KTsKIGV4dGVybiB2b2lkIGNwdV9pbml0KHZvaWQpOwogCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9pbmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vc3Rh Y2twcm90ZWN0b3IuaAppbmRleCA1ODUwNWYwMTk2MmYuLmRjYmQ5YmNjZTcxNCAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vc3RhY2twcm90ZWN0b3IuaAorKysgYi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9zdGFja3Byb3RlY3Rvci5oCkBAIC04Nyw3ICs4Nyw3IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBzZXR1cF9zdGFja19jYW5hcnlfc2VnbWVudChpbnQgY3B1KQogewogI2lmZGVmIENP TkZJR19YODZfMzIKIAl1bnNpZ25lZCBsb25nIGNhbmFyeSA9ICh1bnNpZ25lZCBsb25nKSZwZXJf Y3B1KHN0YWNrX2NhbmFyeSwgY3B1KTsKLQlzdHJ1Y3QgZGVzY19zdHJ1Y3QgKmdkdF90YWJsZSA9 IGdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJc3RydWN0IGRlc2Nfc3RydWN0ICpnZHRfdGFibGUg PSBnZXRfY3B1X2dkdF9ydyhjcHUpOwogCXN0cnVjdCBkZXNjX3N0cnVjdCBkZXNjOwogCiAJZGVz YyA9IGdkdF90YWJsZVtHRFRfRU5UUllfU1RBQ0tfQ0FOQVJZXTsKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9zbGVlcC5jCmlu ZGV4IDQ4NTg3MzM1ZWRlOC4uZWQwMTQ4MTRlYTM1IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwvYWNwaS9zbGVlcC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9hY3BpL3NsZWVwLmMKQEAgLTEw MSw3ICsxMDEsNyBAQCBpbnQgeDg2X2FjcGlfc3VzcGVuZF9sb3dsZXZlbCh2b2lkKQogI2lmZGVm IENPTkZJR19TTVAKIAlpbml0aWFsX3N0YWNrID0gKHVuc2lnbmVkIGxvbmcpdGVtcF9zdGFjayAr IHNpemVvZih0ZW1wX3N0YWNrKTsKIAllYXJseV9nZHRfZGVzY3IuYWRkcmVzcyA9Ci0JCQkodW5z aWduZWQgbG9uZylnZXRfY3B1X2dkdF90YWJsZShzbXBfcHJvY2Vzc29yX2lkKCkpOworCQkJKHVu c2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfcncoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAlpbml0aWFs X2dzID0gcGVyX2NwdV9vZmZzZXQoc21wX3Byb2Nlc3Nvcl9pZCgpKTsKICNlbmRpZgogCWluaXRp YWxfY29kZSA9ICh1bnNpZ25lZCBsb25nKXdha2V1cF9sb25nNjQ7CmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9rZXJuZWwvYXBtXzMyLmMgYi9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMKaW5kZXggNWE0 MTQ1NDVlOGEzLi40NDZiMGQzZDQ5MzIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcG1f MzIuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXBtXzMyLmMKQEAgLTYwOSw3ICs2MDksNyBAQCBz dGF0aWMgbG9uZyBfX2FwbV9iaW9zX2NhbGwodm9pZCAqX2NhbGwpCiAKIAljcHUgPSBnZXRfY3B1 KCk7CiAJQlVHX09OKGNwdSAhPSAwKTsKLQlnZHQgPSBnZXRfY3B1X2dkdF90YWJsZShjcHUpOwor CWdkdCA9IGdldF9jcHVfZ2R0X3J3KGNwdSk7CiAJc2F2ZV9kZXNjXzQwID0gZ2R0WzB4NDAgLyA4 XTsKIAlnZHRbMHg0MCAvIDhdID0gYmFkX2Jpb3NfZGVzYzsKIApAQCAtNjg1LDcgKzY4NSw3IEBA IHN0YXRpYyBsb25nIF9fYXBtX2Jpb3NfY2FsbF9zaW1wbGUodm9pZCAqX2NhbGwpCiAKIAljcHUg PSBnZXRfY3B1KCk7CiAJQlVHX09OKGNwdSAhPSAwKTsKLQlnZHQgPSBnZXRfY3B1X2dkdF90YWJs ZShjcHUpOworCWdkdCA9IGdldF9jcHVfZ2R0X3J3KGNwdSk7CiAJc2F2ZV9kZXNjXzQwID0gZ2R0 WzB4NDAgLyA4XTsKIAlnZHRbMHg0MCAvIDhdID0gYmFkX2Jpb3NfZGVzYzsKIApAQCAtMjM1Miw3 ICsyMzUyLDcgQEAgc3RhdGljIGludCBfX2luaXQgYXBtX2luaXQodm9pZCkKIAkgKiBOb3RlIHdl IG9ubHkgc2V0IEFQTSBzZWdtZW50cyBvbiBDUFUgemVybywgc2luY2Ugd2UgcGluIHRoZSBBUE0K IAkgKiBjb2RlIHRvIHRoYXQgQ1BVLgogCSAqLwotCWdkdCA9IGdldF9jcHVfZ2R0X3RhYmxlKDAp OworCWdkdCA9IGdldF9jcHVfZ2R0X3J3KDApOwogCXNldF9kZXNjX2Jhc2UoJmdkdFtBUE1fQ1Mg Pj4gM10sCiAJCSAodW5zaWduZWQgbG9uZylfX3ZhKCh1bnNpZ25lZCBsb25nKWFwbV9pbmZvLmJp b3MuY3NlZyA8PCA0KSk7CiAJc2V0X2Rlc2NfYmFzZSgmZ2R0W0FQTV9DU18xNiA+PiAzXSwKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L2tlcm5lbC9jcHUvY29tbW9uLmMgYi9hcmNoL3g4Ni9rZXJuZWwv Y3B1L2NvbW1vbi5jCmluZGV4IDU4MDk0YTFmOWU5ZC4uM2NmMTU5MGVjOWNlIDEwMDY0NAotLS0g YS9hcmNoL3g4Ni9rZXJuZWwvY3B1L2NvbW1vbi5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9jcHUv Y29tbW9uLmMKQEAgLTQ0OCw2ICs0NDgsMjYgQEAgdm9pZCBsb2FkX3BlcmNwdV9zZWdtZW50KGlu dCBjcHUpCiAJbG9hZF9zdGFja19jYW5hcnlfc2VnbWVudCgpOwogfQogCisvKiBVc2VkIGJ5IFhF TiB0byBmb3JjZSB0aGUgR0RUIHJlYWQtb25seSB3aGVuIHJlcXVpcmVkICovCitwZ3Byb3RfdCBw Z19maXhtYXBfZ2R0X2ZsYWdzID0gUEFHRV9LRVJORUw7CisKKy8qIFNldHVwIHRoZSBmaXhtYXAg bWFwcGluZyBvbmx5IG9uY2UgcGVyLXByb2Nlc3NvciAqLworc3RhdGljIGlubGluZSB2b2lkIHNl dHVwX2ZpeG1hcF9nZHQoaW50IGNwdSkKK3sKKwlfX3NldF9maXhtYXAoZ2V0X2NwdV9nZHRfcm9f aW5kZXgoY3B1KSwKKwkJICAgICBfX3BhKGdldF9jcHVfZ2R0X3J3KGNwdSkpLCBwZ19maXhtYXBf Z2R0X2ZsYWdzKTsKK30KKworLyogTG9hZCBhIGZpeG1hcCByZW1hcHBpbmcgb2YgdGhlIHBlci1j cHUgR0RUICovCit2b2lkIGxvYWRfZml4bWFwX2dkdChpbnQgY3B1KQoreworCXN0cnVjdCBkZXNj X3B0ciBnZHRfZGVzY3I7CisKKwlnZHRfZGVzY3IuYWRkcmVzcyA9IChsb25nKWdldF9jcHVfZ2R0 X3JvKGNwdSk7CisJZ2R0X2Rlc2NyLnNpemUgPSBHRFRfU0laRSAtIDE7CisJbG9hZF9nZHQoJmdk dF9kZXNjcik7Cit9CisKIC8qCiAgKiBDdXJyZW50IGdkdCBwb2ludHMgJWZzIGF0IHRoZSAibWFz dGVyIiBwZXItY3B1IGFyZWE6IGFmdGVyIHRoaXMsCiAgKiBpdCdzIG9uIHRoZSByZWFsIG9uZS4K QEAgLTQ1NiwxMSArNDc2LDEwIEBAIHZvaWQgc3dpdGNoX3RvX25ld19nZHQoaW50IGNwdSkKIHsK IAlzdHJ1Y3QgZGVzY19wdHIgZ2R0X2Rlc2NyOwogCi0JZ2R0X2Rlc2NyLmFkZHJlc3MgPSAobG9u ZylnZXRfY3B1X2dkdF90YWJsZShjcHUpOworCWdkdF9kZXNjci5hZGRyZXNzID0gKGxvbmcpZ2V0 X2NwdV9nZHRfcncoY3B1KTsKIAlnZHRfZGVzY3Iuc2l6ZSA9IEdEVF9TSVpFIC0gMTsKIAlsb2Fk X2dkdCgmZ2R0X2Rlc2NyKTsKIAkvKiBSZWxvYWQgdGhlIHBlci1jcHUgYmFzZSAqLwotCiAJbG9h ZF9wZXJjcHVfc2VnbWVudChjcHUpOwogfQogCkBAIC0xNTI2LDYgKzE1NDUsOSBAQCB2b2lkIGNw dV9pbml0KHZvaWQpCiAKIAlpZiAoaXNfdXZfc3lzdGVtKCkpCiAJCXV2X2NwdV9pbml0KCk7CisK KwlzZXR1cF9maXhtYXBfZ2R0KGNwdSk7CisJbG9hZF9maXhtYXBfZ2R0KGNwdSk7CiB9CiAKICNl bHNlCkBAIC0xNTgxLDYgKzE2MDMsOSBAQCB2b2lkIGNwdV9pbml0KHZvaWQpCiAJZGJnX3Jlc3Rv cmVfZGVidWdfcmVncygpOwogCiAJZnB1X19pbml0X2NwdSgpOworCisJc2V0dXBfZml4bWFwX2dk dChjcHUpOworCWxvYWRfZml4bWFwX2dkdChjcHUpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9zZXR1cF9wZXJjcHUuYyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF9w ZXJjcHUuYwppbmRleCA5ODIwZDZkOTc3YzYuLjExMzM4YjBiM2FkMiAxMDA2NDQKLS0tIGEvYXJj aC94ODYva2VybmVsL3NldHVwX3BlcmNwdS5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9zZXR1cF9w ZXJjcHUuYwpAQCAtMTYwLDcgKzE2MCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXR1cF9wZXJj cHVfc2VnbWVudChpbnQgY3B1KQogCXBhY2tfZGVzY3JpcHRvcigmZ2R0LCBwZXJfY3B1X29mZnNl dChjcHUpLCAweEZGRkZGLAogCQkJMHgyIHwgREVTQ1RZUEVfUywgMHg4KTsKIAlnZHQucyA9IDE7 Ci0Jd3JpdGVfZ2R0X2VudHJ5KGdldF9jcHVfZ2R0X3RhYmxlKGNwdSksCisJd3JpdGVfZ2R0X2Vu dHJ5KGdldF9jcHVfZ2R0X3J3KGNwdSksCiAJCQlHRFRfRU5UUllfUEVSQ1BVLCAmZ2R0LCBERVND VFlQRV9TKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3NtcGJvb3Qu YyBiL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKaW5kZXggYmQxZjFhZDM1Mjg0Li5mMDQ0Nzlh OGY3NGYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9zbXBib290LmMKKysrIGIvYXJjaC94 ODYva2VybmVsL3NtcGJvb3QuYwpAQCAtOTgzLDcgKzk4Myw3IEBAIHN0YXRpYyBpbnQgZG9fYm9v dF9jcHUoaW50IGFwaWNpZCwgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQogCXVu c2lnbmVkIGxvbmcgdGltZW91dDsKIAogCWlkbGUtPnRocmVhZC5zcCA9ICh1bnNpZ25lZCBsb25n KXRhc2tfcHRfcmVncyhpZGxlKTsKLQllYXJseV9nZHRfZGVzY3IuYWRkcmVzcyA9ICh1bnNpZ25l ZCBsb25nKWdldF9jcHVfZ2R0X3RhYmxlKGNwdSk7CisJZWFybHlfZ2R0X2Rlc2NyLmFkZHJlc3Mg PSAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF9ydyhjcHUpOwogCWluaXRpYWxfY29kZSA9ICh1 bnNpZ25lZCBsb25nKXN0YXJ0X3NlY29uZGFyeTsKIAlpbml0aWFsX3N0YWNrICA9IGlkbGUtPnRo cmVhZC5zcDsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV8zMi5jIGIv YXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV8zMi5jCmluZGV4IGNlZjM5YjA5NzY0OS4uOTUwMDcx MTcxNDM2IDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9wbGF0Zm9ybS9lZmkvZWZpXzMyLmMKKysrIGIv YXJjaC94ODYvcGxhdGZvcm0vZWZpL2VmaV8zMi5jCkBAIC02OCw3ICs2OCw3IEBAIHBnZF90ICog X19pbml0IGVmaV9jYWxsX3BoeXNfcHJvbG9nKHZvaWQpCiAJbG9hZF9jcjMoaW5pdGlhbF9wYWdl X3RhYmxlKTsKIAlfX2ZsdXNoX3RsYl9hbGwoKTsKIAotCWdkdF9kZXNjci5hZGRyZXNzID0gX19w YShnZXRfY3B1X2dkdF90YWJsZSgwKSk7CisJZ2R0X2Rlc2NyLmFkZHJlc3MgPSBfX3BhKGdldF9j cHVfZ2R0X3J3KDApKTsKIAlnZHRfZGVzY3Iuc2l6ZSA9IEdEVF9TSVpFIC0gMTsKIAlsb2FkX2dk dCgmZ2R0X2Rlc2NyKTsKIApAQCAtNzksNyArNzksNyBAQCB2b2lkIF9faW5pdCBlZmlfY2FsbF9w aHlzX2VwaWxvZyhwZ2RfdCAqc2F2ZV9wZ2QpCiB7CiAJc3RydWN0IGRlc2NfcHRyIGdkdF9kZXNj cjsKIAotCWdkdF9kZXNjci5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfdGFi bGUoMCk7CisJZ2R0X2Rlc2NyLmFkZHJlc3MgPSAodW5zaWduZWQgbG9uZylnZXRfY3B1X2dkdF9y dygwKTsKIAlnZHRfZGVzY3Iuc2l6ZSA9IEdEVF9TSVpFIC0gMTsKIAlsb2FkX2dkdCgmZ2R0X2Rl c2NyKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYvcG93ZXIvY3B1LmMgYi9hcmNoL3g4Ni9wb3dl ci9jcHUuYwppbmRleCA2NmFkZTE2Yzc2OTMuLjZiMDVhOTIxOWVhMiAxMDA2NDQKLS0tIGEvYXJj aC94ODYvcG93ZXIvY3B1LmMKKysrIGIvYXJjaC94ODYvcG93ZXIvY3B1LmMKQEAgLTk1LDcgKzk1 LDcgQEAgc3RhdGljIHZvaWQgX19zYXZlX3Byb2Nlc3Nvcl9zdGF0ZShzdHJ1Y3Qgc2F2ZWRfY29u dGV4dCAqY3R4dCkKIAkgKiAncG1vZGVfZ2R0JyBpbiB3YWtldXBfc3RhcnQuCiAJICovCiAJY3R4 dC0+Z2R0X2Rlc2Muc2l6ZSA9IEdEVF9TSVpFIC0gMTsKLQljdHh0LT5nZHRfZGVzYy5hZGRyZXNz ID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfdGFibGUoc21wX3Byb2Nlc3Nvcl9pZCgpKTsK KwljdHh0LT5nZHRfZGVzYy5hZGRyZXNzID0gKHVuc2lnbmVkIGxvbmcpZ2V0X2NwdV9nZHRfcnco c21wX3Byb2Nlc3Nvcl9pZCgpKTsKIAogCXN0b3JlX3RyKGN0eHQtPnRyKTsKIApAQCAtMTYyLDcg KzE2Miw3IEBAIHN0YXRpYyB2b2lkIGZpeF9wcm9jZXNzb3JfY29udGV4dCh2b2lkKQogCWludCBj cHUgPSBzbXBfcHJvY2Vzc29yX2lkKCk7CiAJc3RydWN0IHRzc19zdHJ1Y3QgKnQgPSAmcGVyX2Nw dShjcHVfdHNzLCBjcHUpOwogI2lmZGVmIENPTkZJR19YODZfNjQKLQlzdHJ1Y3QgZGVzY19zdHJ1 Y3QgKmRlc2MgPSBnZXRfY3B1X2dkdF90YWJsZShjcHUpOworCXN0cnVjdCBkZXNjX3N0cnVjdCAq ZGVzYyA9IGdldF9jcHVfZ2R0X3J3KGNwdSk7CiAJdHNzX2Rlc2MgdHNzOwogI2VuZGlmCiAJc2V0 X3Rzc19kZXNjKGNwdSwgdCk7CS8qCkBAIC0xODMsNiArMTgzLDkgQEAgc3RhdGljIHZvaWQgZml4 X3Byb2Nlc3Nvcl9jb250ZXh0KHZvaWQpCiAJbG9hZF9tbV9sZHQoY3VycmVudC0+YWN0aXZlX21t KTsJLyogVGhpcyBkb2VzIGxsZHQgKi8KIAogCWZwdV9fcmVzdW1lX2NwdSgpOworCisJLyogVGhl IHByb2Nlc3NvciBpcyBiYWNrIG9uIHRoZSBkaXJlY3QgR0RULCBsb2FkIGJhY2sgdGhlIGZpeG1h cCAqLworCWxvYWRfZml4bWFwX2dkdChjcHUpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L3hlbi9lbmxpZ2h0ZW4uYyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYwppbmRleCBlYzFk NWM0NmU1OGYuLjA4ZmFhNjFkZTVmNyAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL2VubGlnaHRl bi5jCisrKyBiL2FyY2gveDg2L3hlbi9lbmxpZ2h0ZW4uYwpAQCAtNzEwLDcgKzcxMCw3IEBAIHN0 YXRpYyB2b2lkIGxvYWRfVExTX2Rlc2NyaXB0b3Ioc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQsCiAK IAkqc2hhZG93ID0gdC0+dGxzX2FycmF5W2ldOwogCi0JZ2R0ID0gZ2V0X2NwdV9nZHRfdGFibGUo Y3B1KTsKKwlnZHQgPSBnZXRfY3B1X2dkdF9ydyhjcHUpOwogCW1hZGRyID0gYXJiaXRyYXJ5X3Zp cnRfdG9fbWFjaGluZSgmZ2R0W0dEVF9FTlRSWV9UTFNfTUlOK2ldKTsKIAltYyA9IF9feGVuX21j X2VudHJ5KDApOwogCkBAIC0xNTQ1LDYgKzE1NDUsOSBAQCBhc21saW5rYWdlIF9fdmlzaWJsZSB2 b2lkIF9faW5pdCB4ZW5fc3RhcnRfa2VybmVsKHZvaWQpCiAJICovCiAJeGVuX2luaXRpYWxfZ2R0 ID0gJnBlcl9jcHUoZ2R0X3BhZ2UsIDApOwogCisJLyogR0RUIGNhbiBvbmx5IGJlIHJlbWFwcGVk IFJPICovCisJcGdfZml4bWFwX2dkdF9mbGFncyA9IFBBR0VfS0VSTkVMX1JPOworCiAJeGVuX3Nt cF9pbml0KCk7CiAKICNpZmRlZiBDT05GSUdfQUNQSV9OVU1BCmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni94ZW4vbW11LmMgYi9hcmNoL3g4Ni94ZW4vbW11LmMKaW5kZXggMzdjYjVhYWQ3MWRlLi5lYmJm ZTAwMTMzZjcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L3hlbi9tbXUuYworKysgYi9hcmNoL3g4Ni94 ZW4vbW11LmMKQEAgLTIzMjYsNiArMjMyNiw3IEBAIHN0YXRpYyB2b2lkIHhlbl9zZXRfZml4bWFw KHVuc2lnbmVkIGlkeCwgcGh5c19hZGRyX3QgcGh5cywgcGdwcm90X3QgcHJvdCkKICNlbmRpZgog CWNhc2UgRklYX1RFWFRfUE9LRTA6CiAJY2FzZSBGSVhfVEVYVF9QT0tFMToKKwljYXNlIEZJWF9H RFRfUkVNQVBfQkVHSU4gLi4uIEZJWF9HRFRfUkVNQVBfRU5EOgogCQkvKiBBbGwgbG9jYWwgcGFn ZSBtYXBwaW5ncyAqLwogCQlwdGUgPSBwZm5fcHRlKHBoeXMsIHByb3QpOwogCQlicmVhazsKZGlm ZiAtLWdpdCBhL2FyY2gveDg2L3hlbi9zbXAuYyBiL2FyY2gveDg2L3hlbi9zbXAuYwppbmRleCA3 ZmYyZjFiZmI3ZWMuLmVhYTM2MTYyZWQ0YSAxMDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3NtcC5j CisrKyBiL2FyY2gveDg2L3hlbi9zbXAuYwpAQCAtMzkyLDcgKzM5Miw3IEBAIGNwdV9pbml0aWFs aXplX2NvbnRleHQodW5zaWduZWQgaW50IGNwdSwgc3RydWN0IHRhc2tfc3RydWN0ICppZGxlKQog CWlmIChjdHh0ID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwogCi0JZ2R0ID0gZ2V0X2NwdV9n ZHRfdGFibGUoY3B1KTsKKwlnZHQgPSBnZXRfY3B1X2dkdF9ydyhjcHUpOwogCiAjaWZkZWYgQ09O RklHX1g4Nl8zMgogCWN0eHQtPnVzZXJfcmVncy5mcyA9IF9fS0VSTkVMX1BFUkNQVTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3JlLmMgYi9kcml2ZXJzL2xndWVzdC94ODYvY29y ZS5jCmluZGV4IGQ3MWY2MzIzYWMwMC4uYjRmNzliOTIzYWVhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2xndWVzdC94ODYvY29yZS5jCisrKyBiL2RyaXZlcnMvbGd1ZXN0L3g4Ni9jb3JlLmMKQEAgLTUw NCw3ICs1MDQsNyBAQCB2b2lkIF9faW5pdCBsZ3Vlc3RfYXJjaF9ob3N0X2luaXQodm9pZCkKIAkJ ICogYnl0ZSwgbm90IHRoZSBzaXplLCBoZW5jZSB0aGUgIi0xIikuCiAJCSAqLwogCQlzdGF0ZS0+ aG9zdF9nZHRfZGVzYy5zaXplID0gR0RUX1NJWkUtMTsKLQkJc3RhdGUtPmhvc3RfZ2R0X2Rlc2Mu YWRkcmVzcyA9IChsb25nKWdldF9jcHVfZ2R0X3RhYmxlKGkpOworCQlzdGF0ZS0+aG9zdF9nZHRf ZGVzYy5hZGRyZXNzID0gKGxvbmcpZ2V0X2NwdV9nZHRfcncoaSk7CiAKIAkJLyoKIAkJICogQWxs IENQVXMgb24gdGhlIEhvc3QgdXNlIHRoZSBzYW1lIEludGVycnVwdCBEZXNjcmlwdG9yCkBAIC01 NTQsOCArNTU0LDggQEAgdm9pZCBfX2luaXQgbGd1ZXN0X2FyY2hfaG9zdF9pbml0KHZvaWQpCiAJ CSAqIFRoZSBIb3N0IG5lZWRzIHRvIGJlIGFibGUgdG8gdXNlIHRoZSBMR1VFU1Qgc2VnbWVudHMg b24gdGhpcwogCQkgKiBDUFUsIHRvbywgc28gcHV0IHRoZW0gaW4gdGhlIEhvc3QgR0RULgogCQkg Ki8KLQkJZ2V0X2NwdV9nZHRfdGFibGUoaSlbR0RUX0VOVFJZX0xHVUVTVF9DU10gPSBGVUxMX0VY RUNfU0VHTUVOVDsKLQkJZ2V0X2NwdV9nZHRfdGFibGUoaSlbR0RUX0VOVFJZX0xHVUVTVF9EU10g PSBGVUxMX1NFR01FTlQ7CisJCWdldF9jcHVfZ2R0X3J3KGkpW0dEVF9FTlRSWV9MR1VFU1RfQ1Nd ID0gRlVMTF9FWEVDX1NFR01FTlQ7CisJCWdldF9jcHVfZ2R0X3J3KGkpW0dEVF9FTlRSWV9MR1VF U1RfRFNdID0gRlVMTF9TRUdNRU5UOwogCX0KIAogCS8qCmRpZmYgLS1naXQgYS9kcml2ZXJzL3Bu cC9wbnBiaW9zL2Jpb3NjYWxscy5jIGIvZHJpdmVycy9wbnAvcG5wYmlvcy9iaW9zY2FsbHMuYwpp bmRleCA0MzhkNGM3MmM3YjMuLmZmNTYzZGIwMjViMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbnAv cG5wYmlvcy9iaW9zY2FsbHMuYworKysgYi9kcml2ZXJzL3BucC9wbnBiaW9zL2Jpb3NjYWxscy5j CkBAIC01NCw3ICs1NCw3IEBAIF9fYXNtX18oIi50ZXh0CQkJXG4iCiAKICNkZWZpbmUgUTJfU0VU X1NFTChjcHUsIHNlbG5hbWUsIGFkZHJlc3MsIHNpemUpIFwKIGRvIHsgXAotCXN0cnVjdCBkZXNj X3N0cnVjdCAqZ2R0ID0gZ2V0X2NwdV9nZHRfdGFibGUoKGNwdSkpOyBcCisJc3RydWN0IGRlc2Nf c3RydWN0ICpnZHQgPSBnZXRfY3B1X2dkdF9ydygoY3B1KSk7IFwKIAlzZXRfZGVzY19iYXNlKCZn ZHRbKHNlbG5hbWUpID4+IDNdLCAodTMyKShhZGRyZXNzKSk7IFwKIAlzZXRfZGVzY19saW1pdCgm Z2R0WyhzZWxuYW1lKSA+PiAzXSwgKHNpemUpIC0gMSk7IFwKIH0gd2hpbGUoMCkKQEAgLTk1LDgg Kzk1LDggQEAgc3RhdGljIGlubGluZSB1MTYgY2FsbF9wbnBfYmlvcyh1MTYgZnVuYywgdTE2IGFy ZzEsIHUxNiBhcmcyLCB1MTYgYXJnMywKIAkJcmV0dXJuIFBOUF9GVU5DVElPTl9OT1RfU1VQUE9S VEVEOwogCiAJY3B1ID0gZ2V0X2NwdSgpOwotCXNhdmVfZGVzY180MCA9IGdldF9jcHVfZ2R0X3Rh YmxlKGNwdSlbMHg0MCAvIDhdOwotCWdldF9jcHVfZ2R0X3RhYmxlKGNwdSlbMHg0MCAvIDhdID0g YmFkX2Jpb3NfZGVzYzsKKwlzYXZlX2Rlc2NfNDAgPSBnZXRfY3B1X2dkdF9ydyhjcHUpWzB4NDAg LyA4XTsKKwlnZXRfY3B1X2dkdF9ydyhjcHUpWzB4NDAgLyA4XSA9IGJhZF9iaW9zX2Rlc2M7CiAK IAkvKiBPbiBzb21lIGJveGVzIElSUSdzIGR1cmluZyBQblAgQklPUyBjYWxscyBhcmUgZGVhZGx5 LiAgKi8KIAlzcGluX2xvY2tfaXJxc2F2ZSgmcG5wX2Jpb3NfbG9jaywgZmxhZ3MpOwpAQCAtMTM0 LDcgKzEzNCw3IEBAIHN0YXRpYyBpbmxpbmUgdTE2IGNhbGxfcG5wX2Jpb3ModTE2IGZ1bmMsIHUx NiBhcmcxLCB1MTYgYXJnMiwgdTE2IGFyZzMsCiAJCQkgICAgIDoibWVtb3J5Iik7CiAJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmcG5wX2Jpb3NfbG9jaywgZmxhZ3MpOwogCi0JZ2V0X2NwdV9nZHRf dGFibGUoY3B1KVsweDQwIC8gOF0gPSBzYXZlX2Rlc2NfNDA7CisJZ2V0X2NwdV9nZHRfcncoY3B1 KVsweDQwIC8gOF0gPSBzYXZlX2Rlc2NfNDA7CiAJcHV0X2NwdSgpOwogCiAJLyogSWYgd2UgZ2V0 IGhlcmUgYW5kIHRoaXMgaXMgc2V0IHRoZW4gdGhlIFBuUCBCSU9TIGZhdWx0ZWQgb24gdXMuICov CkBAIC00NzcsNyArNDc3LDcgQEAgdm9pZCBwbnBiaW9zX2NhbGxzX2luaXQodW5pb24gcG5wX2Jp b3NfaW5zdGFsbF9zdHJ1Y3QgKmhlYWRlcikKIAlwbnBfYmlvc19jYWxscG9pbnQuc2VnbWVudCA9 IFBOUF9DUzE2OwogCiAJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpIHsKLQkJc3RydWN0IGRlc2Nf c3RydWN0ICpnZHQgPSBnZXRfY3B1X2dkdF90YWJsZShpKTsKKwkJc3RydWN0IGRlc2Nfc3RydWN0 ICpnZHQgPSBnZXRfY3B1X2dkdF9ydyhpKTsKIAkJaWYgKCFnZHQpCiAJCQljb250aW51ZTsKIAkJ c2V0X2Rlc2NfYmFzZSgmZ2R0W0dEVF9FTlRSWV9QTlBCSU9TX0NTMzJdLAotLSAKMi4xMi4wLjM2 Ny5nMjNkYzJmNmQzYy1nb29nCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9y ZwpodHRwczovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==