From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 3/4] xen/x86: Replace incorrect mandatory barriers with SMP barriers Date: Mon, 5 Dec 2016 10:05:16 +0000 Message-ID: <1480932317-22962-4-git-send-email-andrew.cooper3@citrix.com> References: <1480932317-22962-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1480932317-22962-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Jan Beulich List-Id: xen-devel@lists.xenproject.org TWFuZGF0b3J5IGJhcnJpZXJzIGFyZSBvbmx5IGZvciB1c2Ugd2l0aCByZWR1Y2VkLWNhY2hlYWJp bGl0eSBtZW1vcnkgbWFwcGluZ3MuCgpBbGwgb2YgdGhlc2UgdXNlcyBhcmUganVzdCB0byBkZWFs IHdpdGggc2hhcmVkIG1lbW9yeSBiZXR3ZWVuIG11bHRpcGxlCnByb2Nlc3NvcnMsIHNvIHVzZSB0 aGUgc21wXyooKSB3aGljaCBhcmUgdGhlIGNvcnJlY3QgYmFycmllcnMgZm9yIHRoZSBwdXJwb3Nl LgoKVGhpcyBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZSwgYmVjYXVzZSBYZW4gY3VycmVudGx5IGFz c2lnbnMgdGhlIHNtcF8qIG1lYW5pbmcKdG8gbm9uLXNtcF8qIGJhcnJpZXJzLiAgVGhpcyB3aWxs IGJlIGZpeGVkIGluIHRoZSBmb2xsb3dpbmcgcGF0Y2guCgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxK QmV1bGljaEBzdXNlLmNvbT4KClJlc3RyaWN0aW5nIHRvIGp1c3QgdGhlICRBUkNIIG1haW50YWlu ZXJzLCBhcyB0aGlzIGlzIGEgcHJvamVjdC13aWRlIHN3ZWVwCi0tLQogeGVuL2FyY2gveDg2L2Fj cGkvY3B1X2lkbGUuYyAgICAgICAgICAgICB8ICA4ICsrKystLS0tCiB4ZW4vYXJjaC94ODYvY3B1 L21jaGVjay9hbWRfbm9uZmF0YWwuYyAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L2NwdS9tY2hl Y2svYmFycmllci5jICAgICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9jcHUvbWNo ZWNrL21jZS5jICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gveDg2L2NwdS9tY2hlY2svbWN0 ZWxlbS5jICAgICAgICB8IDEwICsrKysrLS0tLS0KIHhlbi9hcmNoL3g4Ni9nZW5hcGljL3gyYXBp Yy5jICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9ocGV0LmMgICAgICAgICAg ICAgICAgICAgICAgfCAgNiArKystLS0KIHhlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYyAgICAgICAg ICAgICAgICAgfCAgNCArKy0tCiB4ZW4vYXJjaC94ODYvaW9fYXBpYy5jICAgICAgICAgICAgICAg ICAgIHwgIDQgKystLQogeGVuL2FyY2gveDg2L2lycS5jICAgICAgICAgICAgICAgICAgICAgICB8 ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCAr KysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRpLmMgICAgICAgICAgIHwgIDIg Ky0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKyst LS0tLS0KIHhlbi9hcmNoL3g4Ni90aW1lLmMgICAgICAgICAgICAgICAgICAgICAgfCAgOCArKysr LS0tLQogeGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQuYyB8ICA0ICsrLS0K IHhlbi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oICAgICAgICAgICAgICAgfCAgOCArKysrLS0tLQog eGVuL2luY2x1ZGUvYXNtLXg4Ni9zeXN0ZW0uaCAgICAgICAgICAgICB8ICAyICstCiAxNyBmaWxl cyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25zKCspLCA1MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS94ZW4vYXJjaC94ODYvYWNwaS9jcHVfaWRsZS5jIGIveGVuL2FyY2gveDg2L2FjcGkvY3B1X2lk bGUuYwppbmRleCAwOWM4ODQ4Li5iNDgxMDU5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYWNw aS9jcHVfaWRsZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9hY3BpL2NwdV9pZGxlLmMKQEAgLTM5MSw5 ICszOTEsOSBAQCB2b2lkIG13YWl0X2lkbGVfd2l0aF9oaW50cyh1bnNpZ25lZCBpbnQgZWF4LCB1 bnNpZ25lZCBpbnQgZWN4KQogCiAgICAgaWYgKCBib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVfQ0xG TFVTSF9NT05JVE9SKSApCiAgICAgewotICAgICAgICBtYigpOworICAgICAgICBzbXBfbWIoKTsK ICAgICAgICAgY2xmbHVzaCgodm9pZCAqKSZtd2FpdF93YWtldXAoY3B1KSk7Ci0gICAgICAgIG1i KCk7CisgICAgICAgIHNtcF9tYigpOwogICAgIH0KIAogICAgIF9fbW9uaXRvcigodm9pZCAqKSZt d2FpdF93YWtldXAoY3B1KSwgMCwgMCk7CkBAIC03NTYsMTAgKzc1NiwxMCBAQCB2b2lkIGFjcGlf ZGVhZF9pZGxlKHZvaWQpCiAgICAgICAgICAgICAgKiBpbnN0cnVjdGlvbiwgaGVuY2UgbWVtb3J5 IGZlbmNlIGlzIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgYWxsIAogICAgICAgICAgICAgICogbG9h ZC9zdG9yZSB2aXNpYmxlIGJlZm9yZSBmbHVzaCBjYWNoZSBsaW5lLgogICAgICAgICAgICAgICov Ci0gICAgICAgICAgICBtYigpOworICAgICAgICAgICAgc21wX21iKCk7CiAgICAgICAgICAgICBj bGZsdXNoKG13YWl0X3B0cik7CiAgICAgICAgICAgICBfX21vbml0b3IobXdhaXRfcHRyLCAwLCAw KTsKLSAgICAgICAgICAgIG1iKCk7CisgICAgICAgICAgICBzbXBfbWIoKTsKICAgICAgICAgICAg IF9fbXdhaXQoY3gtPmFkZHJlc3MsIDApOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svYW1kX25vbmZhdGFsLmMgYi94ZW4vYXJjaC94ODYvY3B1 L21jaGVjay9hbWRfbm9uZmF0YWwuYwppbmRleCA4YTgwYTlmLi5mYjFkNDFkIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9hbWRfbm9uZmF0YWwuYworKysgYi94ZW4vYXJjaC94 ODYvY3B1L21jaGVjay9hbWRfbm9uZmF0YWwuYwpAQCAtMTc1LDcgKzE3NSw3IEBAIHN0YXRpYyB2 b2lkIG1jZV9hbWRfd29ya19mbih2b2lkICpkYXRhKQogCQkJLyogQ291bnRlciBlbmFibGUgKi8K IAkJCXZhbHVlIHw9ICgxVUxMIDw8IDUxKTsKIAkJCW1jYV93cm1zcihNU1JfSUEzMl9NQ3hfTUlT Qyg0KSwgdmFsdWUpOwotCQkJd21iKCk7CisJCQlzbXBfd21iKCk7CiAJCX0KIAl9CiAKQEAgLTI0 MCw3ICsyNDAsNyBAQCB2b2lkIGFtZF9ub25mYXRhbF9tY2hlY2tfaW5pdChzdHJ1Y3QgY3B1aW5m b194ODYgKmMpCiAJCQl2YWx1ZSB8PSAoMVVMTCA8PCA1MSk7CiAJCQl3cm1zcmwoTVNSX0lBMzJf TUN4X01JU0MoNCksIHZhbHVlKTsKIAkJCS8qIHNlcmlhbGl6ZSAqLwotCQkJd21iKCk7CisJCQlz bXBfd21iKCk7CiAJCQlwcmludGsoWEVOTE9HX0lORk8gIk1DQTogVXNlIGh3IHRocmVzaG9sZGlu ZyB0byBhZGp1c3QgcG9sbGluZyBmcmVxdWVuY3lcbiIpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2NwdS9tY2hlY2svYmFycmllci5jIGIveGVuL2FyY2gveDg2L2NwdS9tY2hl Y2svYmFycmllci5jCmluZGV4IDVkY2UxZmIuLjFhMjE0OWYgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9jcHUvbWNoZWNrL2JhcnJpZXIuYworKysgYi94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9i YXJyaWVyLmMKQEAgLTEyLDcgKzEyLDcgQEAgdm9pZCBtY2VfYmFycmllcl9pbml0KHN0cnVjdCBt Y2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCiB2b2lkIG1jZV9iYXJyaWVyX2RlYyhzdHJ1Y3QgbWNl X3NvZnRpcnFfYmFycmllciAqYmFyKQogewogICAgIGF0b21pY19pbmMoJmJhci0+b3V0Z2VuKTsK LSAgICB3bWIoKTsKKyAgICBzbXBfd21iKCk7CiAgICAgYXRvbWljX2RlYygmYmFyLT52YWwpOwog fQogCkBAIC0yNCwxMiArMjQsMTIgQEAgdm9pZCBtY2VfYmFycmllcl9lbnRlcihzdHJ1Y3QgbWNl X3NvZnRpcnFfYmFycmllciAqYmFyKQogICAgICAgICByZXR1cm47CiAgICAgYXRvbWljX2luYygm YmFyLT5pbmdlbik7CiAgICAgZ2VuID0gYXRvbWljX3JlYWQoJmJhci0+b3V0Z2VuKTsKLSAgICBt YigpOworICAgIHNtcF9tYigpOwogICAgIGF0b21pY19pbmMoJmJhci0+dmFsKTsKICAgICB3aGls ZSAoIGF0b21pY19yZWFkKCZiYXItPnZhbCkgIT0gbnVtX29ubGluZV9jcHVzKCkgJiYKICAgICAg ICAgICAgIGF0b21pY19yZWFkKCZiYXItPm91dGdlbikgPT0gZ2VuICkKICAgICB7Ci0gICAgICAg ICAgICBtYigpOworICAgICAgICAgICAgc21wX21iKCk7CiAgICAgICAgICAgICBtY2VfcGFuaWNf Y2hlY2soKTsKICAgICB9CiB9CkBAIC00MiwxMiArNDIsMTIgQEAgdm9pZCBtY2VfYmFycmllcl9l eGl0KHN0cnVjdCBtY2Vfc29mdGlycV9iYXJyaWVyICpiYXIpCiAgICAgICAgIHJldHVybjsKICAg ICBhdG9taWNfaW5jKCZiYXItPm91dGdlbik7CiAgICAgZ2VuID0gYXRvbWljX3JlYWQoJmJhci0+ aW5nZW4pOwotICAgIG1iKCk7CisgICAgc21wX21iKCk7CiAgICAgYXRvbWljX2RlYygmYmFyLT52 YWwpOwogICAgIHdoaWxlICggYXRvbWljX3JlYWQoJmJhci0+dmFsKSAhPSAwICYmCiAgICAgICAg ICAgICBhdG9taWNfcmVhZCgmYmFyLT5pbmdlbikgPT0gZ2VuICkKICAgICB7Ci0gICAgICAgICAg ICBtYigpOworICAgICAgICAgICAgc21wX21iKCk7CiAgICAgICAgICAgICBtY2VfcGFuaWNfY2hl Y2soKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY2Uu YyBiL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCmluZGV4IDQ2MGUzMzYuLjAyODgzZmMg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jZS5jCisrKyBiL3hlbi9hcmNo L3g4Ni9jcHUvbWNoZWNrL21jZS5jCkBAIC0zODgsNyArMzg4LDcgQEAgbWNoZWNrX21jYV9sb2dv dXQoZW51bSBtY2Ffc291cmNlIHdobywgc3RydWN0IG1jYV9iYW5rcyAqYmFua21hc2ssCiAgICAg ICAgIGVsc2UgaWYgKCB3aG8gPT0gTUNBX01DRV9TQ0FOICYmIG5lZWRfY2xlYXIpCiAgICAgICAg ICAgICBtY2FiYW5rc19zZXQoaSwgY2xlYXJfYmFuayk7CiAKLSAgICAgICAgd21iKCk7CisgICAg ICAgIHNtcF93bWIoKTsKICAgICB9CiAKICAgICBpZiAobWlnICYmIGVycmNudCA+IDApIHsKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbWNoZWNrL21jdGVsZW0uYyBiL3hlbi9hcmNoL3g4 Ni9jcHUvbWNoZWNrL21jdGVsZW0uYwppbmRleCA5NWU4M2M1Li4wMTA3N2ZlIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvY3B1L21jaGVjay9tY3RlbGVtLmMKKysrIGIveGVuL2FyY2gveDg2L2Nw dS9tY2hlY2svbWN0ZWxlbS5jCkBAIC00MTQsOSArNDE0LDkgQEAgc3RhdGljIHZvaWQgbWN0ZWxl bV9hcHBlbmRfcHJvY2Vzc2luZyhtY3RlbGVtX2NsYXNzX3Qgd2hpY2gpCiAJCWx0ZXAtPm1jdGVf cHJldiA9ICpwcm9jbHRwOwogCQkqcHJvY2x0cCA9IGRhbmdsaW5nW3RhcmdldF07CiAJfQotCXdt YigpOworCXNtcF93bWIoKTsKIAlkYW5nbGluZ1t0YXJnZXRdID0gTlVMTDsKLQl3bWIoKTsKKwlz bXBfd21iKCk7CiB9CiAKIG1jdGVsZW1fY29va2llX3QgbWN0ZWxlbV9jb25zdW1lX29sZGVzdF9i ZWdpbihtY3RlbGVtX2NsYXNzX3Qgd2hpY2gpCkBAIC00MzMsNyArNDMzLDcgQEAgbWN0ZWxlbV9j b29raWVfdCBtY3RlbGVtX2NvbnN1bWVfb2xkZXN0X2JlZ2luKG1jdGVsZW1fY2xhc3NfdCB3aGlj aCkKIAl9CiAKIAltY3RlbGVtX3Byb2Nlc3NpbmdfaG9sZCh0ZXApOwotCXdtYigpOworCXNtcF93 bWIoKTsKIAlzcGluX3VubG9jaygmcHJvY2Vzc2luZ19sb2NrKTsKIAlyZXR1cm4gTUNURTJDT09L SUUodGVwKTsKIH0KQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIG1jdGVsZW1fY29uc3VtZV9vbGRl c3RfZW5kKG1jdGVsZW1fY29va2llX3QgY29va2llKQogCiAJc3Bpbl9sb2NrKCZwcm9jZXNzaW5n X2xvY2spOwogCW1jdGVsZW1fcHJvY2Vzc2luZ19yZWxlYXNlKHRlcCk7Ci0Jd21iKCk7CisJc21w X3dtYigpOwogCXNwaW5fdW5sb2NrKCZwcm9jZXNzaW5nX2xvY2spOwogfQogCkBAIC00NjAsNiAr NDYwLDYgQEAgdm9pZCBtY3RlbGVtX2FjayhtY3RlbGVtX2NsYXNzX3Qgd2hpY2gsIG1jdGVsZW1f Y29va2llX3QgY29va2llKQogCXNwaW5fbG9jaygmcHJvY2Vzc2luZ19sb2NrKTsKIAlpZiAodGVw ID09IG1jdGN0bC5tY3RjX3Byb2Nlc3NpbmdfaGVhZFt0YXJnZXRdKQogCQltY3RlbGVtX3Byb2Nl c3NpbmdfcmVsZWFzZSh0ZXApOwotCXdtYigpOworCXNtcF93bWIoKTsKIAlzcGluX3VubG9jaygm cHJvY2Vzc2luZ19sb2NrKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9nZW5hcGljL3gy YXBpYy5jIGIveGVuL2FyY2gveDg2L2dlbmFwaWMveDJhcGljLmMKaW5kZXggZDg5NGE5OC4uYzYz YWYwYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2dlbmFwaWMveDJhcGljLmMKKysrIGIveGVu L2FyY2gveDg2L2dlbmFwaWMveDJhcGljLmMKQEAgLTEwNywxMiArMTA3LDEyIEBAIHN0YXRpYyB2 b2lkIHNlbmRfSVBJX21hc2tfeDJhcGljX3BoeXMoY29uc3QgY3B1bWFza190ICpjcHVtYXNrLCBp bnQgdmVjdG9yKQogICAgICAqIENQVSBpcyBzZWVuIGJ5IG5vdGlmaWVkIHJlbW90ZSBDUFVzLiBU aGUgV1JNU1IgY29udGFpbmVkIHdpdGhpbgogICAgICAqIGFwaWNfaWNyX3dyaXRlKCkgY2FuIG90 aGVyd2lzZSBiZSBleGVjdXRlZCBlYXJseS4KICAgICAgKiAKLSAgICAgKiBUaGUgcmVhc29uIG1i KCkgaXMgc3VmZmljaWVudCBoZXJlIGlzIHN1YnRsZTogdGhlIHJlZ2lzdGVyIGFyZ3VtZW50cwor ICAgICAqIFRoZSByZWFzb24gc21wX21iKCkgaXMgc3VmZmljaWVudCBoZXJlIGlzIHN1YnRsZTog dGhlIHJlZ2lzdGVyIGFyZ3VtZW50cwogICAgICAqIHRvIFdSTVNSIG11c3QgZGVwZW5kIG9uIGEg bWVtb3J5IHJlYWQgZXhlY3V0ZWQgYWZ0ZXIgdGhlIGJhcnJpZXIuIFRoaXMKICAgICAgKiBpcyBn dWFyYW50ZWVkIGJ5IGNwdV9waHlzaWNhbF9pZCgpLCB3aGljaCByZWFkcyBmcm9tIGEgZ2xvYmFs IGFycmF5IChhbmQKICAgICAgKiBzbyBjYW5ub3QgYmUgaG9pc3RlZCBhYm92ZSB0aGUgYmFycmll ciBldmVuIGJ5IGEgY2xldmVyIGNvbXBpbGVyKS4KICAgICAgKi8KLSAgICBtYigpOworICAgIHNt cF9tYigpOwogCiAgICAgbG9jYWxfaXJxX3NhdmUoZmxhZ3MpOwogCkBAIC0xMzYsNyArMTM2LDcg QEAgc3RhdGljIHZvaWQgc2VuZF9JUElfbWFza194MmFwaWNfY2x1c3Rlcihjb25zdCBjcHVtYXNr X3QgKmNwdW1hc2ssIGludCB2ZWN0b3IpCiAgICAgY29uc3QgY3B1bWFza190ICpjbHVzdGVyX2Nw dXM7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKIAotICAgIG1iKCk7IC8qIFNlZSBhYm92ZSBm b3IgYW4gZXhwbGFuYXRpb24uICovCisgICAgc21wX21iKCk7IC8qIFNlZSBhYm92ZSBmb3IgYW4g ZXhwbGFuYXRpb24uICovCiAKICAgICBsb2NhbF9pcnFfc2F2ZShmbGFncyk7CiAKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9ocGV0LmMgYi94ZW4vYXJjaC94ODYvaHBldC5jCmluZGV4IGY3ODA1 NGQuLmM1ZWY1MzQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ocGV0LmMKKysrIGIveGVuL2Fy Y2gveDg2L2hwZXQuYwpAQCAtMTkwLDkgKzE5MCw5IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9ocGV0 X2Jyb2FkY2FzdChzdHJ1Y3QgaHBldF9ldmVudF9jaGFubmVsICpjaCkKICAgICB7CiAgICAgICAg IHNfdGltZV90IGRlYWRsaW5lOwogCi0gICAgICAgIHJtYigpOworICAgICAgICBzbXBfcm1iKCk7 CiAgICAgICAgIGRlYWRsaW5lID0gcGVyX2NwdSh0aW1lcl9kZWFkbGluZSwgY3B1KTsKLSAgICAg ICAgcm1iKCk7CisgICAgICAgIHNtcF9ybWIoKTsKICAgICAgICAgaWYgKCAhY3B1bWFza190ZXN0 X2NwdShjcHUsIGNoLT5jcHVtYXNrKSApCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtNjEw LDcgKzYxMCw3IEBAIHZvaWQgX19pbml0IGhwZXRfYnJvYWRjYXN0X2luaXQodm9pZCkKICAgICAg ICAgaHBldF9ldmVudHNbaV0uc2hpZnQgPSAzMjsKICAgICAgICAgaHBldF9ldmVudHNbaV0ubmV4 dF9ldmVudCA9IFNUSU1FX01BWDsKICAgICAgICAgc3Bpbl9sb2NrX2luaXQoJmhwZXRfZXZlbnRz W2ldLmxvY2spOwotICAgICAgICB3bWIoKTsKKyAgICAgICAgc21wX3dtYigpOwogICAgICAgICBo cGV0X2V2ZW50c1tpXS5ldmVudF9oYW5kbGVyID0gaGFuZGxlX2hwZXRfYnJvYWRjYXN0OwogCiAg ICAgICAgIGhwZXRfZXZlbnRzW2ldLm1zaS5tc2lfYXR0cmliLm1hc2tiaXQgPSAxOwpkaWZmIC0t Z2l0IGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jIGIveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5j CmluZGV4IDg4MDcxYWIuLjZjMDBjMGIgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vaW9y ZXEuYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKQEAgLTkyLDcgKzkyLDcgQEAgc3Rh dGljIGJvb2xfdCBodm1fd2FpdF9mb3JfaW8oc3RydWN0IGh2bV9pb3JlcV92Y3B1ICpzdiwgaW9y ZXFfdCAqcCkKICAgICB7CiAgICAgICAgIHVuc2lnbmVkIGludCBzdGF0ZSA9IHAtPnN0YXRlOwog Ci0gICAgICAgIHJtYigpOworICAgICAgICBzbXBfcm1iKCk7CiAgICAgICAgIHN3aXRjaCAoIHN0 YXRlICkKICAgICAgICAgewogICAgICAgICBjYXNlIFNUQVRFX0lPUkVRX05PTkU6CkBAIC0xMjcy LDcgKzEyNzIsNyBAQCBzdGF0aWMgaW50IGh2bV9zZW5kX2J1ZmZlcmVkX2lvcmVxKHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzLCBpb3JlcV90ICpwKQogICAgIH0KIAogICAgIC8qIE1ha2UgdGhl IGlvcmVxX3QgdmlzaWJsZSAvYmVmb3JlLyB3cml0ZV9wb2ludGVyLiAqLwotICAgIHdtYigpOwor ICAgIHNtcF93bWIoKTsKICAgICBwZy0+cHRycy53cml0ZV9wb2ludGVyICs9IHF3ID8gMiA6IDE7 CiAKICAgICAvKiBDYW5vbmljYWxpemUgcmVhZC93cml0ZSBwb2ludGVycyB0byBwcmV2ZW50IHRo ZWlyIG92ZXJmbG93LiAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2lvX2FwaWMuYyBiL3hl bi9hcmNoL3g4Ni9pb19hcGljLmMKaW5kZXggMzNlNTkyNy4uMTg1Yjk1NiAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2lvX2FwaWMuYworKysgYi94ZW4vYXJjaC94ODYvaW9fYXBpYy5jCkBAIC0x NDg2LDcgKzE0ODYsNyBAQCBzdGF0aWMgaW50IF9faW5pdCB0aW1lcl9pcnFfd29ya3Modm9pZCkK ICAgICB1bnNpZ25lZCBsb25nIHQxLCBmbGFnczsKIAogICAgIHQxID0gcGl0MF90aWNrczsKLSAg ICBtYigpOworICAgIHNtcF9tYigpOwogCiAgICAgbG9jYWxfc2F2ZV9mbGFncyhmbGFncyk7CiAg ICAgbG9jYWxfaXJxX2VuYWJsZSgpOwpAQCAtMTUwMSw3ICsxNTAxLDcgQEAgc3RhdGljIGludCBf X2luaXQgdGltZXJfaXJxX3dvcmtzKHZvaWQpCiAgICAgICogbWlnaHQgaGF2ZSBjYWNoZWQgb25l IEV4dElOVCBpbnRlcnJ1cHQuICBGaW5hbGx5LCBhdAogICAgICAqIGxlYXN0IG9uZSB0aWNrIG1h eSBiZSBsb3N0IGR1ZSB0byBkZWxheXMuCiAgICAgICovCi0gICAgbWIoKTsKKyAgICBzbXBfbWIo KTsKICAgICBpZiAocGl0MF90aWNrcyAtIHQxID4gNCkKICAgICAgICAgcmV0dXJuIDE7CiAKZGlm ZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pcnEuYyBiL3hlbi9hcmNoL3g4Ni9pcnEuYwppbmRleCA4 YzE1NDVhLi5kZTcyYjBkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaXJxLmMKKysrIGIveGVu L2FyY2gveDg2L2lycS5jCkBAIC03NTcsOSArNzU3LDkgQEAgdm9pZCBpcnFfc2V0X2FmZmluaXR5 KHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgY29uc3QgY3B1bWFza190ICptYXNrKQogICAgIAogICAg IEFTU0VSVChzcGluX2lzX2xvY2tlZCgmZGVzYy0+bG9jaykpOwogICAgIGRlc2MtPnN0YXR1cyAm PSB+SVJRX01PVkVfUEVORElORzsKLSAgICB3bWIoKTsKKyAgICBzbXBfd21iKCk7CiAgICAgY3B1 bWFza19jb3B5KGRlc2MtPmFyY2gucGVuZGluZ19tYXNrLCBtYXNrKTsKLSAgICB3bWIoKTsKKyAg ICBzbXBfd21iKCk7CiAgICAgZGVzYy0+c3RhdHVzIHw9IElSUV9NT1ZFX1BFTkRJTkc7CiB9CiAK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMKaW5kZXgg MTQ1NTJhMS4uYTI2NzJiMSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21tLmMKKysrIGIveGVu L2FyY2gveDg2L21tLmMKQEAgLTQ2MCw3ICs0NjAsNyBAQCB2b2lkIHNoYXJlX3hlbl9wYWdlX3dp dGhfZ3Vlc3QoCiAgICAgcGFnZS0+dS5pbnVzZS50eXBlX2luZm8gfD0gUEdUX3ZhbGlkYXRlZCB8 IDE7CiAKICAgICBwYWdlX3NldF9vd25lcihwYWdlLCBkKTsKLSAgICB3bWIoKTsgLyogaW5zdGFs bCB2YWxpZCBkb21haW4gcHRyIGJlZm9yZSB1cGRhdGluZyByZWZjbnQuICovCisgICAgc21wX3dt YigpOyAvKiBpbnN0YWxsIHZhbGlkIGRvbWFpbiBwdHIgYmVmb3JlIHVwZGF0aW5nIHJlZmNudC4g Ki8KICAgICBBU1NFUlQoKHBhZ2UtPmNvdW50X2luZm8gJiB+UEdDX3hlbl9oZWFwKSA9PSAwKTsK IAogICAgIC8qIE9ubHkgYWRkIHRvIHRoZSBhbGxvY2F0aW9uIGxpc3QgaWYgdGhlIGRvbWFpbiBp c24ndCBkeWluZy4gKi8KQEAgLTIyODEsNyArMjI4MSw3IEBAIHN0YXRpYyBpbnQgYWxsb2NfcGFn ZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwKICAgICB9 CiAKICAgICAvKiBObyBuZWVkIGZvciBhdG9taWMgdXBkYXRlIG9mIHR5cGVfaW5mbyBoZXJlOiBu b29uZSBlbHNlIHVwZGF0ZXMgaXQuICovCi0gICAgd21iKCk7CisgICAgc21wX3dtYigpOwogICAg IHN3aXRjaCAoIHJjICkKICAgICB7CiAgICAgY2FzZSAwOgpAQCAtMjM4OCw3ICsyMzg4LDcgQEAg c3RhdGljIGludCBfX3B1dF9maW5hbF9wYWdlX3R5cGUoCiAgICAgICAgIGlmICggIShzaGFkb3df bW9kZV9lbmFibGVkKHBhZ2VfZ2V0X293bmVyKHBhZ2UpKSAmJgogICAgICAgICAgICAgICAgKHBh Z2UtPmNvdW50X2luZm8gJiBQR0NfcGFnZV90YWJsZSkpICkKICAgICAgICAgICAgIHBhZ2UtPnRs YmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJlbnRfdGltZSgpOwotICAgICAgICB3bWIo KTsKKyAgICAgICAgc21wX3dtYigpOwogICAgICAgICBwYWdlLT51LmludXNlLnR5cGVfaW5mby0t OwogICAgIH0KICAgICBlbHNlIGlmICggcmMgPT0gLUVJTlRSICkKQEAgLTIzOTgsMTMgKzIzOTgs MTMgQEAgc3RhdGljIGludCBfX3B1dF9maW5hbF9wYWdlX3R5cGUoCiAgICAgICAgIGlmICggIShz aGFkb3dfbW9kZV9lbmFibGVkKHBhZ2VfZ2V0X293bmVyKHBhZ2UpKSAmJgogICAgICAgICAgICAg ICAgKHBhZ2UtPmNvdW50X2luZm8gJiBQR0NfcGFnZV90YWJsZSkpICkKICAgICAgICAgICAgIHBh Z2UtPnRsYmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJlbnRfdGltZSgpOwotICAgICAg ICB3bWIoKTsKKyAgICAgICAgc21wX3dtYigpOwogICAgICAgICBwYWdlLT51LmludXNlLnR5cGVf aW5mbyB8PSBQR1RfdmFsaWRhdGVkOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICAgICBC VUdfT04ocmMgIT0gLUVSRVNUQVJUKTsKLSAgICAgICAgd21iKCk7CisgICAgICAgIHNtcF93bWIo KTsKICAgICAgICAgZ2V0X3BhZ2VfbGlnaHQocGFnZSk7CiAgICAgICAgIHBhZ2UtPnUuaW51c2Uu dHlwZV9pbmZvIHw9IFBHVF9wYXJ0aWFsOwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9tbS9zaGFkb3cvbXVsdGkuYyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYwppbmRl eCAyNjk2Mzk2Li43MjY4MzAwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211 bHRpLmMKKysrIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jCkBAIC0zMDIxLDcgKzMw MjEsNyBAQCBzdGF0aWMgaW50IHNoX3BhZ2VfZmF1bHQoc3RydWN0IHZjcHUgKnYsCiAgICAgICog d2lsbCBtYWtlIHN1cmUgbm8gaW5jb25zaXN0ZW50IG1hcHBpbmcgYmVpbmcgdHJhbnNsYXRlZCBp bnRvCiAgICAgICogc2hhZG93IHBhZ2UgdGFibGUuICovCiAgICAgdmVyc2lvbiA9IGF0b21pY19y ZWFkKCZkLT5hcmNoLnBhZ2luZy5zaGFkb3cuZ3RhYmxlX2RpcnR5X3ZlcnNpb24pOwotICAgIHJt YigpOworICAgIHNtcF9ybWIoKTsKICAgICByYyA9IHNoX3dhbGtfZ3Vlc3RfdGFibGVzKHYsIHZh LCAmZ3csIHJlZ3MtPmVycm9yX2NvZGUpOwogCiAjaWYgKFNIQURPV19PUFRJTUlaQVRJT05TICYg U0hPUFRfT1VUX09GX1NZTkMpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc21wYm9vdC5jIGIv eGVuL2FyY2gveDg2L3NtcGJvb3QuYwppbmRleCAwYWEzNzdhLi5iYTBmZmZlIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvc21wYm9vdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKQEAg LTc3LDcgKzc3LDcgQEAgc3RhdGljIGVudW0gY3B1X3N0YXRlIHsKICAgICBDUFVfU1RBVEVfQ0FM TElOLCAgIC8qIHNsYXZlIC0+IG1hc3RlcjogQ29tcGxldGVkIHBoYXNlIDIgKi8KICAgICBDUFVf U1RBVEVfT05MSU5FICAgIC8qIG1hc3RlciAtPiBzbGF2ZTogR28gZnVsbHkgb25saW5lIG5vdy4g Ki8KIH0gY3B1X3N0YXRlOwotI2RlZmluZSBzZXRfY3B1X3N0YXRlKHN0YXRlKSBkbyB7IG1iKCk7 IGNwdV9zdGF0ZSA9IChzdGF0ZSk7IH0gd2hpbGUgKDApCisjZGVmaW5lIHNldF9jcHVfc3RhdGUo c3RhdGUpIGRvIHsgc21wX21iKCk7IGNwdV9zdGF0ZSA9IChzdGF0ZSk7IH0gd2hpbGUgKDApCiAK IHZvaWQgKnN0YWNrX2Jhc2VbTlJfQ1BVU107CiAKQEAgLTEyNCw3ICsxMjQsNyBAQCBzdGF0aWMg dm9pZCBzeW5jaHJvbml6ZV90c2NfbWFzdGVyKHVuc2lnbmVkIGludCBzbGF2ZSkKICAgICBmb3Ig KCBpID0gMTsgaSA8PSA1OyBpKysgKQogICAgIHsKICAgICAgICAgdHNjX3ZhbHVlID0gcmR0c2Nf b3JkZXJlZCgpOwotICAgICAgICB3bWIoKTsKKyAgICAgICAgc21wX3dtYigpOwogICAgICAgICBh dG9taWNfaW5jKCZ0c2NfY291bnQpOwogICAgICAgICB3aGlsZSAoIGF0b21pY19yZWFkKCZ0c2Nf Y291bnQpICE9IChpPDwxKSApCiAgICAgICAgICAgICBjcHVfcmVsYXgoKTsKQEAgLTE0OSw3ICsx NDksNyBAQCBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZV90c2Nfc2xhdmUodW5zaWduZWQgaW50IHNs YXZlKQogICAgIHsKICAgICAgICAgd2hpbGUgKCBhdG9taWNfcmVhZCgmdHNjX2NvdW50KSAhPSAo KGk8PDEpLTEpICkKICAgICAgICAgICAgIGNwdV9yZWxheCgpOwotICAgICAgICBybWIoKTsKKyAg ICAgICAgc21wX3JtYigpOwogICAgICAgICAvKgogICAgICAgICAgKiBJZiBhIENQVSBoYXMgYmVl biBwaHlzaWNhbGx5IGhvdHBsdWdnZWQsIHdlIG1heSBhcyB3ZWxsIHdyaXRlCiAgICAgICAgICAq IHRvIGl0cyBUU0MgaW4gc3BpdGUgb2YgWDg2X0ZFQVRVUkVfVFNDX1JFTElBQkxFLiBUaGUgcGxh dGZvcm0gZG9lcwpAQCAtNTUyLDEzICs1NTIsMTMgQEAgc3RhdGljIGludCBkb19ib290X2NwdShp bnQgYXBpY2lkLCBpbnQgY3B1KQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKCBjcHVfc3Rh dGUgPT0gQ1BVX1NUQVRFX0RFQUQgKQogICAgICAgICB7Ci0gICAgICAgICAgICBybWIoKTsKKyAg ICAgICAgICAgIHNtcF9ybWIoKTsKICAgICAgICAgICAgIHJjID0gY3B1X2Vycm9yOwogICAgICAg ICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewogICAgICAgICAgICAgYm9vdF9lcnJvciA9IDE7 Ci0gICAgICAgICAgICBtYigpOworICAgICAgICAgICAgc21wX21iKCk7CiAgICAgICAgICAgICBp ZiAoIGJvb3RzeW0odHJhbXBvbGluZV9jcHVfc3RhcnRlZCkgPT0gMHhBNSApCiAgICAgICAgICAg ICAgICAgLyogdHJhbXBvbGluZSBzdGFydGVkIGJ1dC4uLj8gKi8KICAgICAgICAgICAgICAgICBw cmludGsoIlN0dWNrID8/XG4iKTsKQEAgLTU3Niw3ICs1NzYsNyBAQCBzdGF0aWMgaW50IGRvX2Jv b3RfY3B1KGludCBhcGljaWQsIGludCBjcHUpCiAKICAgICAvKiBtYXJrICJzdHVjayIgYXJlYSBh cyBub3Qgc3R1Y2sgKi8KICAgICBib290c3ltKHRyYW1wb2xpbmVfY3B1X3N0YXJ0ZWQpID0gMDsK LSAgICBtYigpOworICAgIHNtcF9tYigpOwogCiAgICAgc21wYm9vdF9yZXN0b3JlX3dhcm1fcmVz ZXRfdmVjdG9yKCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90aW1lLmMgYi94ZW4vYXJj aC94ODYvdGltZS5jCmluZGV4IGRkYTg5ZDguLjAwMzllMjMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni90aW1lLmMKKysrIGIveGVuL2FyY2gveDg2L3RpbWUuYwpAQCAtOTc3LDEwICs5NzcsMTAg QEAgc3RhdGljIHZvaWQgX191cGRhdGVfdmNwdV9zeXN0ZW1fdGltZShzdHJ1Y3QgdmNwdSAqdiwg aW50IGZvcmNlKQogCiAgICAgLyogMS4gVXBkYXRlIGd1ZXN0IGtlcm5lbCB2ZXJzaW9uLiAqLwog ICAgIF91LnZlcnNpb24gPSB1LT52ZXJzaW9uID0gdmVyc2lvbl91cGRhdGVfYmVnaW4odS0+dmVy c2lvbik7Ci0gICAgd21iKCk7CisgICAgc21wX3dtYigpOwogICAgIC8qIDIuIFVwZGF0ZSBhbGwg b3RoZXIgZ3Vlc3Qga2VybmVsIGZpZWxkcy4gKi8KICAgICAqdSA9IF91OwotICAgIHdtYigpOwor ICAgIHNtcF93bWIoKTsKICAgICAvKiAzLiBVcGRhdGUgZ3Vlc3Qga2VybmVsIHZlcnNpb24uICov CiAgICAgdS0+dmVyc2lvbiA9IHZlcnNpb25fdXBkYXRlX2VuZCh1LT52ZXJzaW9uKTsKIApAQCAt MTAwNiwxMCArMTAwNiwxMCBAQCBib29sX3QgdXBkYXRlX3NlY29uZGFyeV9zeXN0ZW1fdGltZShz dHJ1Y3QgdmNwdSAqdiwKICAgICAgICAgc21hcF9wb2xpY3lfY2hhbmdlKHYsIHNhdmVkX3BvbGlj eSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICB3bWIoKTsKKyAgICBzbXBfd21iKCk7 CiAgICAgLyogMi4gVXBkYXRlIGFsbCBvdGhlciB1c2Vyc3BhY2UgZmllbGRzLiAqLwogICAgIF9f Y29weV90b19ndWVzdCh1c2VyX3UsIHUsIDEpOwotICAgIHdtYigpOworICAgIHNtcF93bWIoKTsK ICAgICAvKiAzLiBVcGRhdGUgdXNlcnNwYWNlIHZlcnNpb24uICovCiAgICAgdS0+dmVyc2lvbiA9 IHZlcnNpb25fdXBkYXRlX2VuZCh1LT52ZXJzaW9uKTsKICAgICBfX2NvcHlfZmllbGRfdG9fZ3Vl c3QodXNlcl91LCB1LCB2ZXJzaW9uKTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9pb21tdV9pbml0LmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVf aW5pdC5jCmluZGV4IGVhOWY3ZTcuLjRmY2Y2ZmEgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdV9pbml0LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL2lvbW11X2luaXQuYwpAQCAtNTU5LDcgKzU1OSw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlX2V2 ZW50X2xvZ19lbnRyeShzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwgdTMyIGVudHJ5W10pCiAgICAg ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgdWRlbGF5KDEpOwotICAgICAgICBy bWIoKTsKKyAgICAgICAgc21wX3JtYigpOwogICAgICAgICBjb2RlID0gZ2V0X2ZpZWxkX2Zyb21f cmVnX3UzMihlbnRyeVsxXSwgSU9NTVVfRVZFTlRfQ09ERV9NQVNLLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9FVkVOVF9DT0RFX1NISUZUKTsKICAgICB9CkBA IC02NjQsNyArNjY0LDcgQEAgdm9pZCBwYXJzZV9wcHJfbG9nX2VudHJ5KHN0cnVjdCBhbWRfaW9t bXUgKmlvbW11LCB1MzIgZW50cnlbXSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog ICAgICAgICB1ZGVsYXkoMSk7Ci0gICAgICAgIHJtYigpOworICAgICAgICBzbXBfcm1iKCk7CiAg ICAgICAgIGNvZGUgPSBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGVudHJ5WzFdLCBJT01NVV9QUFJf TE9HX0NPREVfTUFTSywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9N TVVfUFBSX0xPR19DT0RFX1NISUZUKTsKICAgICB9CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9h c20teDg2L2Rlc2MuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCmluZGV4IGRhOTI0YmYu Ljk5NTZhYWUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCisrKyBiL3hl bi9pbmNsdWRlL2FzbS14ODYvZGVzYy5oCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgX3dyaXRlX2dhdGVfbG93ZXIodm9sYXRpbGUgaWR0X2VudHJ5X3QgKmdhdGUsCiAj ZGVmaW5lIF9zZXRfZ2F0ZShnYXRlX2FkZHIsdHlwZSxkcGwsYWRkcikgICAgICAgICAgICAgICBc CiBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCiAgICAgKGdhdGVfYWRkciktPmEgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0gICAgd21iKCk7IC8qIGRpc2FibGUgZ2F0ZSAvdGhlbi8gcmV3cml0ZSAqLyAgICAg ICAgICAgICBcCisgICAgc21wX3dtYigpOyAvKiBkaXNhYmxlIGdhdGUgL3RoZW4vIHJld3JpdGUg Ki8gICAgICAgICBcCiAgICAgKGdhdGVfYWRkciktPmIgPSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCiAgICAgICAgICgodW5zaWduZWQgbG9uZykoYWRkcikgPj4gMzIpOyAg ICAgICAgICAgICAgICAgICBcCi0gICAgd21iKCk7IC8qIHJld3JpdGUgL3RoZW4vIGVuYWJsZSBn YXRlICovICAgICAgICAgICAgICBcCisgICAgc21wX3dtYigpOyAvKiByZXdyaXRlIC90aGVuLyBl bmFibGUgZ2F0ZSAqLyAgICAgICAgICBcCiAgICAgKGdhdGVfYWRkciktPmEgPSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICgoKHVuc2lnbmVkIGxvbmcpKGFk ZHIpICYgMHhGRkZGMDAwMFVMKSA8PCAzMikgfCBcCiAgICAgICAgICgodW5zaWduZWQgbG9uZyko ZHBsKSA8PCA0NSkgfCAgICAgICAgICAgICAgICAgICBcCkBAIC0xNzQsMTEgKzE3NCwxMSBAQCBz dGF0aWMgaW5saW5lIHZvaWQgX3VwZGF0ZV9nYXRlX2FkZHJfbG93ZXIoaWR0X2VudHJ5X3QgKmdh dGUsIHZvaWQgKmFkZHIpCiAjZGVmaW5lIF9zZXRfdHNzbGR0X2Rlc2MoZGVzYyxhZGRyLGxpbWl0 LHR5cGUpICAgICAgICAgICBcCiBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCiAgICAgKGRlc2MpWzBdLmIgPSAoZGVzYylbMV0uYiA9IDA7 ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgd21iKCk7IC8qIGRpc2FibGUgZW50cnkgL3Ro ZW4vIHJld3JpdGUgKi8gICAgICAgICAgICBcCisgICAgc21wX3dtYigpOyAvKiBkaXNhYmxlIGVu dHJ5IC90aGVuLyByZXdyaXRlICovICAgICAgICBcCiAgICAgKGRlc2MpWzBdLmEgPSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICgodTMyKShhZGRyKSA8 PCAxNikgfCAoKHUzMikobGltaXQpICYgMHhGRkZGKTsgICBcCiAgICAgKGRlc2MpWzFdLmEgPSAo dTMyKSgoKHVuc2lnbmVkIGxvbmcpKGFkZHIpKSA+PiAzMik7ICBcCi0gICAgd21iKCk7IC8qIHJl d3JpdGUgL3RoZW4vIGVuYWJsZSBlbnRyeSAqLyAgICAgICAgICAgICBcCisgICAgc21wX3dtYigp OyAvKiByZXdyaXRlIC90aGVuLyBlbmFibGUgZW50cnkgKi8gICAgICAgICBcCiAgICAgKGRlc2Mp WzBdLmIgPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAg ICgodTMyKShhZGRyKSAmIDB4RkYwMDAwMDBVKSB8ICAgICAgICAgICAgICAgICAgICBcCiAgICAg ICAgICgodTMyKSh0eXBlKSA8PCA4KSB8IDB4ODAwMFUgfCAgICAgICAgICAgICAgICAgICBcCmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L3N5c3RlbS5oIGIveGVuL2luY2x1ZGUvYXNt LXg4Ni9zeXN0ZW0uaAppbmRleCBlYjQ5OGY1Li45Y2I2ZmQ3IDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L3N5c3RlbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc3lzdGVtLmgK QEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgYWx3YXlzX2lubGluZSB1bnNpZ25lZCBsb25nIF9f eGFkZCgKICNkZWZpbmUgc21wX3dtYigpICAgICAgIHdtYigpCiAKICNkZWZpbmUgc2V0X21iKHZh ciwgdmFsdWUpIGRvIHsgeGNoZygmdmFyLCB2YWx1ZSk7IH0gd2hpbGUgKDApCi0jZGVmaW5lIHNl dF93bWIodmFyLCB2YWx1ZSkgZG8geyB2YXIgPSB2YWx1ZTsgd21iKCk7IH0gd2hpbGUgKDApCisj ZGVmaW5lIHNldF93bWIodmFyLCB2YWx1ZSkgZG8geyB2YXIgPSB2YWx1ZTsgc21wX3dtYigpOyB9 IHdoaWxlICgwKQogCiAjZGVmaW5lIGxvY2FsX2lycV9kaXNhYmxlKCkgICAgIGFzbSB2b2xhdGls ZSAoICJjbGkiIDogOiA6ICJtZW1vcnkiICkKICNkZWZpbmUgbG9jYWxfaXJxX2VuYWJsZSgpICAg ICAgYXNtIHZvbGF0aWxlICggInN0aSIgOiA6IDogIm1lbW9yeSIgKQotLSAKMi4xLjQKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94 ZW4tZGV2ZWwK