From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 11/14] xen/mm: Switch mfn_to_virt()/virt_to_mfn() to using mfn_t Date: Wed, 21 Nov 2018 13:21:19 +0000 Message-ID: <1542806482-24030-12-git-send-email-andrew.cooper3@citrix.com> References: <1542806482-24030-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: <1542806482-24030-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org U2VlbWluZ2x5LCBhIG1ham9yaXR5IG9mIHVzZXJzIGVpdGhlciBvdmVycmlkZSB0aGUgaGVscGVy cyBhbnl3YXksIG9yIGhhdmUgYW4KbWZuX3QgaW4gdGhlaXIgaGFuZHMuCgpVcGRhdGUgdGhlIEFQ SSwgYW5kIGFkanVzdCBhbGwgdXNlcnMgdG8gbWF0Y2guICBJbiBzb21lIHBsYWNlcywgdXNlIHRo ZQp1bnNpZ25lZCBsb25nIHZhcmlhbnQgaW4gcGxhY2VzIHdoZXJlIHdlIGFyZSBpbnRlcmFjdGlu ZyB3aXRoIGFuIGV4dGVybmFsCnN0cnVjdCBhbmQgdGhlcmUgaXMgbm8gY2hhbmNlIG9mIHRoZW0g c3dpdGNoaW5nIHRvIG1mbl90LgoKU2lnbmVkLW9mZi1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3 LmNvb3BlcjNAY2l0cml4LmNvbT4KLS0tCkNDOiBKYW4gQmV1bGljaCA8SkJldWxpY2hAc3VzZS5j b20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7D qSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBTdGVmYW5vIFN0YWJlbGxpbmkgPHNzdGFiZWxs aW5pQGtlcm5lbC5vcmc+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgot LS0KIHhlbi9hcmNoL2FybS9hbHRlcm5hdGl2ZS5jICAgICAgICAgIHwgIDQgLS0tLQogeGVuL2Fy Y2gvYXJtL2NwdWVycmF0YS5jICAgICAgICAgICAgfCAgNCAtLS0tCiB4ZW4vYXJjaC9hcm0vZG9t YWluX2J1aWxkLmMgICAgICAgICB8ICA0IC0tLS0KIHhlbi9hcmNoL2FybS9saXZlcGF0Y2guYyAg ICAgICAgICAgIHwgIDQgLS0tLQogeGVuL2FyY2gvYXJtL21tLmMgICAgICAgICAgICAgICAgICAg fCAgNiAtLS0tLS0KIHhlbi9hcmNoL2FybS9zZXR1cC5jICAgICAgICAgICAgICAgIHwgIDQgKyst LQogeGVuL2FyY2gveDg2L2RvbWFpbi5jICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2FyY2gv eDg2L2RvbWFpbl9wYWdlLmMgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYv Z3Vlc3QveGVuLmMgICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvaHZtL2RvbTBfYnVp bGQuYyAgICAgICB8ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni9tbS5jICAgICAgICAgICAgICAgICAg IHwgMTUgKysrKysrLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbnVtYS5jICAgICAgICAgICAgICAg ICB8ICAyICstCiB4ZW4vYXJjaC94ODYvcHYvZGVzY3JpcHRvci10YWJsZXMuYyB8ICAyICstCiB4 ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jICAgICAgICB8ICA1ICsrLS0tCiB4ZW4vYXJjaC94 ODYvcHYvc2hpbS5jICAgICAgICAgICAgICB8ICAzIC0tLQogeGVuL2FyY2gveDg2L3NldHVwLmMg ICAgICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvc3JhdC5jICAgICAg ICAgICAgICAgICB8ICAyICstCiB4ZW4vYXJjaC94ODYvdGJvb3QuYyAgICAgICAgICAgICAgICB8 ICA0ICsrLS0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYyAgICAgICAgICAgIHwgMTAgKysrKyst LS0tLQogeGVuL2NvbW1vbi9kb21jdGwuYyAgICAgICAgICAgICAgICAgfCAgMiArLQogeGVuL2Nv bW1vbi9lZmkvYm9vdC5jICAgICAgICAgICAgICAgfCAgNyArKysrLS0tCiB4ZW4vY29tbW9uL2dy YW50X3RhYmxlLmMgICAgICAgICAgICB8ICA0ICsrLS0KIHhlbi9jb21tb24vcGFnZV9hbGxvYy5j ICAgICAgICAgICAgIHwgMTAgKysrKystLS0tLQogeGVuL2NvbW1vbi90bWVtLmMgICAgICAgICAg ICAgICAgICAgfCAgMiArLQogeGVuL2NvbW1vbi90cmFjZS5jICAgICAgICAgICAgICAgICAgfCAy MCArKysrKysrKysrKy0tLS0tLS0tLQogeGVuL2NvbW1vbi94ZW5vcHJvZi5jICAgICAgICAgICAg ICAgfCAgNCAtLS0tCiB4ZW4vZHJpdmVycy9hY3BpL29zbC5jICAgICAgICAgICAgICB8ICAyICst CiB4ZW4vaW5jbHVkZS9hc20tYXJtL21tLmggICAgICAgICAgICB8ICA2ICsrKy0tLQogeGVuL2lu Y2x1ZGUvYXNtLXg4Ni9tbS5oICAgICAgICAgICAgfCAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4 Ni9wYWdlLmggICAgICAgICAgfCAgNCArKy0tCiB4ZW4vaW5jbHVkZS94ZW4vZG9tYWluX3BhZ2Uu aCAgICAgICB8ICA2ICsrKy0tLQogMzEgZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwg OTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL2FsdGVybmF0aXZlLmMg Yi94ZW4vYXJjaC9hcm0vYWx0ZXJuYXRpdmUuYwppbmRleCA1MmVkN2VkLi4yMmFiNGUyIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC9hcm0vYWx0ZXJuYXRpdmUuYworKysgYi94ZW4vYXJjaC9hcm0vYWx0 ZXJuYXRpdmUuYwpAQCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlIDxhc20vbGl2ZXBhdGNoLmg+ CiAjaW5jbHVkZSA8YXNtL3BhZ2UuaD4KIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20gYXNtL3Bh Z2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgdmlydF90b19tZm4K LSNkZWZpbmUgdmlydF90b19tZm4odmEpIF9tZm4oX192aXJ0X3RvX21mbih2YSkpCi0KIGV4dGVy biBjb25zdCBzdHJ1Y3QgYWx0X2luc3RyIF9fYWx0X2luc3RydWN0aW9uc1tdLCBfX2FsdF9pbnN0 cnVjdGlvbnNfZW5kW107CiAKIHN0cnVjdCBhbHRfcmVnaW9uIHsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9jcHVlcnJhdGEuYyBiL3hlbi9hcmNoL2FybS9jcHVlcnJhdGEuYwppbmRleCBhZGY4 OGU3Li45OTJjM2E3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vY3B1ZXJyYXRhLmMKKysrIGIv eGVuL2FyY2gvYXJtL2NwdWVycmF0YS5jCkBAIC0xMywxMCArMTMsNiBAQAogI2luY2x1ZGUgPGFz bS9pbnNuLmg+CiAjaW5jbHVkZSA8YXNtL3BzY2kuaD4KIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZy b20gYXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgdmly dF90b19tZm4KLSNkZWZpbmUgdmlydF90b19tZm4odmEpIF9tZm4oX192aXJ0X3RvX21mbih2YSkp Ci0KIC8qIEhhcmRlbmluZyBCcmFuY2ggcHJlZGljdG9yIGNvZGUgZm9yIEFybTY0ICovCiAjaWZk ZWYgQ09ORklHX0FSTTY0X0hBUkRFTl9CUkFOQ0hfUFJFRElDVE9SCiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL2FybS9kb21haW5fYnVpbGQuYyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVpbGQuYwpp bmRleCBiMGVjM2YwLi5lMjAxNzg3IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1 aWxkLmMKKysrIGIveGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCkBAIC00NywxMCArNDcsNiBA QCBzdHJ1Y3QgbWFwX3JhbmdlX2RhdGEKICAgICBwMm1fdHlwZV90IHAybXQ7CiB9OwogCi0vKiBP dmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZu X3QgKi8KLSN1bmRlZiB2aXJ0X3RvX21mbgotI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgX21mbihf X3ZpcnRfdG9fbWZuKHZhKSkKLQogLy8jZGVmaW5lIERFQlVHXzExX0FMTE9DQVRJT04KICNpZmRl ZiBERUJVR18xMV9BTExPQ0FUSU9OCiAjIGRlZmluZSBEMTFQUklOVChmbXQsIGFyZ3MuLi4pIHBy aW50ayhYRU5MT0dfREVCVUcgZm10LCAjI2FyZ3MpCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0v bGl2ZXBhdGNoLmMgYi94ZW4vYXJjaC9hcm0vbGl2ZXBhdGNoLmMKaW5kZXggMjc5ZDUyYy4uYThj NmUyNCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL2xpdmVwYXRjaC5jCisrKyBiL3hlbi9hcmNo L2FybS9saXZlcGF0Y2guYwpAQCAtMTIsMTAgKzEyLDYgQEAKICNpbmNsdWRlIDxhc20vbGl2ZXBh dGNoLmg+CiAjaW5jbHVkZSA8YXNtL21tLmg+CiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFz bS9wYWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIHZpcnRfdG9f bWZuCi0jZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSBfbWZuKF9fdmlydF90b19tZm4odmEpKQotCiB2 b2lkICp2bWFwX29mX3hlbl90ZXh0OwogCiBpbnQgYXJjaF9saXZlcGF0Y2hfcXVpZXNjZSh2b2lk KQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL21tLmMgYi94ZW4vYXJjaC9hcm0vbW0uYwppbmRl eCA3YTA2YTMzLi45ZGI2OWU2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vbW0uYworKysgYi94 ZW4vYXJjaC9hcm0vbW0uYwpAQCAtNDQsMTIgKzQ0LDYgQEAKIAogc3RydWN0IGRvbWFpbiAqZG9t X3hlbiwgKmRvbV9pbywgKmRvbV9jb3c7CiAKLS8qIE92ZXJyaWRlIG1hY3JvcyBmcm9tIGFzbS9w YWdlLmggdG8gbWFrZSB0aGVtIHdvcmsgd2l0aCBtZm5fdCAqLwotI3VuZGVmIHZpcnRfdG9fbWZu Ci0jZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSBfbWZuKF9fdmlydF90b19tZm4odmEpKQotI3VuZGVm IG1mbl90b192aXJ0Ci0jZGVmaW5lIG1mbl90b192aXJ0KG1mbikgX19tZm5fdG9fdmlydChtZm5f eChtZm4pKQotCiAvKiBTdGF0aWMgc3RhcnQtb2YtZGF5IHBhZ2V0YWJsZXMgdGhhdCB3ZSB1c2Ug YmVmb3JlIHRoZSBhbGxvY2F0b3JzCiAgKiBhcmUgdXAuIFRoZXNlIGFyZSB1c2VkIGJ5IGFsbCBD UFVzIGR1cmluZyBicmluZ3VwIGJlZm9yZSBzd2l0Y2hpbmcKICAqIHRvIHRoZSBDUFVzIG93biBw YWdldGFibGVzLgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3NldHVwLmMgYi94ZW4vYXJjaC9h cm0vc2V0dXAuYwppbmRleCBlODMyMjFhLi43N2QxOWE4IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9h cm0vc2V0dXAuYworKysgYi94ZW4vYXJjaC9hcm0vc2V0dXAuYwpAQCAtNjU1LDcgKzY1NSw3IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9tbSh1bnNpZ25lZCBsb25nIGR0Yl9wYWRkciwgc2l6 ZV90IGR0Yl9zaXplKQogICAgIGluaXRfYm9vdF9wYWdlcyhwZm5fdG9fcGFkZHIoYm9vdF9tZm5f c3RhcnQpLCBwZm5fdG9fcGFkZHIoYm9vdF9tZm5fZW5kKSk7CiAKICAgICAvKiBDb3B5IHRoZSBE VEIuICovCi0gICAgZmR0ID0gbWZuX3RvX3ZpcnQobWZuX3goYWxsb2NfYm9vdF9wYWdlcyhkdGJf cGFnZXMsIDEpKSk7CisgICAgZmR0ID0gbWZuX3RvX3ZpcnQoYWxsb2NfYm9vdF9wYWdlcyhkdGJf cGFnZXMsIDEpKTsKICAgICBjb3B5X2Zyb21fcGFkZHIoZmR0LCBkdGJfcGFkZHIsIGR0Yl9zaXpl KTsKICAgICBkZXZpY2VfdHJlZV9mbGF0dGVuZWQgPSBmZHQ7CiAKQEAgLTc2NSw3ICs3NjUsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfbW0odW5zaWduZWQgbG9uZyBkdGJfcGFkZHIsIHNp emVfdCBkdGJfc2l6ZSkKICAgICBkdGJfcGFnZXMgPSAoZHRiX3NpemUgKyBQQUdFX1NJWkUtMSkg Pj4gUEFHRV9TSElGVDsKIAogICAgIC8qIENvcHkgdGhlIERUQi4gKi8KLSAgICBmZHQgPSBtZm5f dG9fdmlydChtZm5feChhbGxvY19ib290X3BhZ2VzKGR0Yl9wYWdlcywgMSkpKTsKKyAgICBmZHQg PSBtZm5fdG9fdmlydChhbGxvY19ib290X3BhZ2VzKGR0Yl9wYWdlcywgMSkpOwogICAgIGNvcHlf ZnJvbV9wYWRkcihmZHQsIGR0Yl9wYWRkciwgZHRiX3NpemUpOwogICAgIGRldmljZV90cmVlX2Zs YXR0ZW5lZCA9IGZkdDsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVu L2FyY2gveDg2L2RvbWFpbi5jCmluZGV4IDMyN2M5NjEuLjE0OTAyZmUgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKQEAgLTE3MDks NyArMTcwOSw3IEBAIHN0YXRpYyB2b2lkIF9fY29udGV4dF9zd2l0Y2godm9pZCkKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcl9jcHUoY29tcGF0X2dkdF90YWJsZSwgY3B1 KTsKICAgICBpZiAoIG5lZWRfZnVsbF9nZHQobmQpICkKICAgICB7Ci0gICAgICAgIHVuc2lnbmVk IGxvbmcgbWZuID0gdmlydF90b19tZm4oZ2R0KTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBtZm4g PSBtZm5feCh2aXJ0X3RvX21mbihnZHQpKTsKICAgICAgICAgbDFfcGdlbnRyeV90ICpwbDFlID0g cHZfZ2R0X3B0ZXMobik7CiAgICAgICAgIHVuc2lnbmVkIGludCBpOwogCmRpZmYgLS1naXQgYS94 ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCmlu ZGV4IDRhMDdjZmIuLjBkN2NhZmMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFn ZS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jCkBAIC03OCwxNyArNzgsMTcgQEAg dm9pZCAqbWFwX2RvbWFpbl9wYWdlKG1mbl90IG1mbikKIAogI2lmZGVmIE5ERUJVRwogICAgIGlm ICggbWZuX3gobWZuKSA8PSBQRk5fRE9XTihfX3BhKEhZUEVSVklTT1JfVklSVF9FTkQgLSAxKSkg KQotICAgICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7CisgICAgICAgIHJldHVy biBtZm5fdG9fdmlydChtZm4pOwogI2VuZGlmCiAKICAgICB2ID0gbWFwY2FjaGVfY3VycmVudF92 Y3B1KCk7CiAgICAgaWYgKCAhdiB8fCAhaXNfcHZfdmNwdSh2KSApCi0gICAgICAgIHJldHVybiBt Zm5fdG9fdmlydChtZm5feChtZm4pKTsKKyAgICAgICAgcmV0dXJuIG1mbl90b192aXJ0KG1mbik7 CiAKICAgICBkY2FjaGUgPSAmdi0+ZG9tYWluLT5hcmNoLnB2Lm1hcGNhY2hlOwogICAgIHZjYWNo ZSA9ICZ2LT5hcmNoLnB2Lm1hcGNhY2hlOwogICAgIGlmICggIWRjYWNoZS0+aW51c2UgKQotICAg ICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7CisgICAgICAgIHJldHVybiBtZm5f dG9fdmlydChtZm4pOwogCiAgICAgcGVyZmNfaW5jcihtYXBfZG9tYWluX3BhZ2VfY291bnQpOwog CkBAIC0zMTEsNyArMzExLDcgQEAgdm9pZCAqbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChtZm5fdCBt Zm4pCiAKICNpZmRlZiBOREVCVUcKICAgICBpZiAoIG1mbl94KG1mbikgPD0gUEZOX0RPV04oX19w YShIWVBFUlZJU09SX1ZJUlRfRU5EIC0gMSkpICkKLSAgICAgICAgcmV0dXJuIG1mbl90b192aXJ0 KG1mbl94KG1mbikpOworICAgICAgICByZXR1cm4gbWZuX3RvX3ZpcnQobWZuKTsKICNlbmRpZgog CiAgICAgcmV0dXJuIHZtYXAoJm1mbiwgMSk7CkBAIC0zMzYsNyArMzM2LDcgQEAgbWZuX3QgZG9t YWluX3BhZ2VfbWFwX3RvX21mbihjb25zdCB2b2lkICpwdHIpCiAgICAgY29uc3QgbDFfcGdlbnRy eV90ICpwbDFlOwogCiAgICAgaWYgKCB2YSA+PSBESVJFQ1RNQVBfVklSVF9TVEFSVCApCi0gICAg ICAgIHJldHVybiBfbWZuKHZpcnRfdG9fbWZuKHB0cikpOworICAgICAgICByZXR1cm4gdmlydF90 b19tZm4ocHRyKTsKIAogICAgIGlmICggdmEgPj0gVk1BUF9WSVJUX1NUQVJUICYmIHZhIDwgVk1B UF9WSVJUX0VORCApCiAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2d1ZXN0L3hlbi5j IGIveGVuL2FyY2gveDg2L2d1ZXN0L3hlbi5jCmluZGV4IDhjZWU4ODAuLmIyYzczMDYgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9ndWVzdC94ZW4uYworKysgYi94ZW4vYXJjaC94ODYvZ3Vlc3Qv eGVuLmMKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdGF0aWMgaW50IG1hcF92Y3B1aW5mbyh2b2lkKQog ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBpbmZvLm1mbiA9IHZpcnRfdG9fbWZuKCZ2 Y3B1X2luZm9bdmNwdV0pOworICAgIGluZm8ubWZuID0gX192aXJ0X3RvX21mbigmdmNwdV9pbmZv W3ZjcHVdKTsKICAgICBpbmZvLm9mZnNldCA9ICh1bnNpZ25lZCBsb25nKSZ2Y3B1X2luZm9bdmNw dV0gJiB+UEFHRV9NQVNLOwogICAgIHJjID0geGVuX2h5cGVyY2FsbF92Y3B1X29wKFZDUFVPUF9y ZWdpc3Rlcl92Y3B1X2luZm8sIHZjcHUsICZpbmZvKTsKICAgICBpZiAoIHJjICkKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9odm0vZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L2h2bS9kb20w X2J1aWxkLmMKaW5kZXggM2UyOWNkMy4uODhiYjRjYSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L2h2bS9kb20wX2J1aWxkLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9kb20wX2J1aWxkLmMKQEAg LTQwMyw3ICs0MDMsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBwdmhfc2V0dXBfcDJtKHN0cnVjdCBk b21haW4gKmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmU4MjBb aV0uYWRkciArIGQtPmFyY2guZTgyMFtpXS5zaXplKTsKICAgICAgICAgICAgIGVudW0gaHZtX3Ry YW5zbGF0aW9uX3Jlc3VsdCByZXMgPQogICAgICAgICAgICAgICAgICBodm1fY29weV90b19ndWVz dF9waHlzKG1mbl90b19tYWRkcihfbWZuKGFkZHIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZm5fdG9fdmlydChhZGRyKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtZm5fdG9fdmlydChfbWZuKGFkZHIpKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLT5hcmNoLmU4MjBbaV0uYWRkciAtIGVuZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2KTsKIApAQCAtNDg5LDcg KzQ4OSw3IEBAIHN0YXRpYyBpbnQgX19pbml0IHB2aF9sb2FkX2tlcm5lbChzdHJ1Y3QgZG9tYWlu ICpkLCBjb25zdCBtb2R1bGVfdCAqaW1hZ2UsCiAKICAgICBpZiAoIGluaXRyZCAhPSBOVUxMICkK ICAgICB7Ci0gICAgICAgIHJjID0gaHZtX2NvcHlfdG9fZ3Vlc3RfcGh5cyhsYXN0X2FkZHIsIG1m bl90b192aXJ0KGluaXRyZC0+bW9kX3N0YXJ0KSwKKyAgICAgICAgcmMgPSBodm1fY29weV90b19n dWVzdF9waHlzKGxhc3RfYWRkciwgX19tZm5fdG9fdmlydChpbml0cmQtPm1vZF9zdGFydCksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0cmQtPm1vZF9lbmQsIHYpOwog ICAgICAgICBpZiAoIHJjICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21t LmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjM2M3NjI4Li45MDFjNTZmIDEwMDY0NAotLS0g YS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0uYwpAQCAtMTMyLDEwICsx MzIsNiBAQAogCiAjaW5jbHVkZSAicHYvbW0uaCIKIAotLyogT3ZlcnJpZGUgbWFjcm9zIGZyb20g YXNtL3BhZ2UuaCB0byBtYWtlIHRoZW0gd29yayB3aXRoIG1mbl90ICovCi0jdW5kZWYgdmlydF90 b19tZm4KLSNkZWZpbmUgdmlydF90b19tZm4odikgX21mbihfX3ZpcnRfdG9fbWZuKHYpKQotCiAv KiBNYXBwaW5nIG9mIHRoZSBmaXhtYXAgc3BhY2UgbmVlZGVkIGVhcmx5LiAqLwogbDFfcGdlbnRy eV90IF9fc2VjdGlvbigiLmJzcy5wYWdlX2FsaWduZWQiKSBfX2FsaWduZWQoUEFHRV9TSVpFKQog ICAgIGwxX2ZpeG1hcFtMMV9QQUdFVEFCTEVfRU5UUklFU107CkBAIC0zMzAsOCArMzI2LDggQEAg dm9pZCBfX2luaXQgYXJjaF9pbml0X21lbW9yeSh2b2lkKQogICAgICAgICBpb3N0YXJ0X3BmbiA9 IG1heF90KHVuc2lnbmVkIGxvbmcsIHBmbiwgMVVMIDw8ICgyMCAtIFBBR0VfU0hJRlQpKTsKICAg ICAgICAgaW9lbmRfcGZuID0gbWluKHJzdGFydF9wZm4sIDE2VUwgPDwgKDIwIC0gUEFHRV9TSElG VCkpOwogICAgICAgICBpZiAoIGlvc3RhcnRfcGZuIDwgaW9lbmRfcGZuICkKLSAgICAgICAgICAg IGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKW1mbl90b192aXJ0KGlvc3RhcnRf cGZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKW1m bl90b192aXJ0KGlvZW5kX3BmbikpOworICAgICAgICAgICAgZGVzdHJveV94ZW5fbWFwcGluZ3Mo KHVuc2lnbmVkIGxvbmcpbWZuX3RvX3ZpcnQoX21mbihpb3N0YXJ0X3BmbikpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGxvbmcpbWZuX3RvX3ZpcnQoX21mbihp b2VuZF9wZm4pKSk7CiAKICAgICAgICAgLyogTWFyayBhcyBJL08gdXAgdG8gbmV4dCBSQU0gcmVn aW9uLiAqLwogICAgICAgICBmb3IgKCA7IHBmbiA8IHJzdGFydF9wZm47IHBmbisrICkKQEAgLTgz Myw4ICs4MjksOSBAQCBzdGF0aWMgaW50IHVwZGF0ZV94ZW5fbWFwcGluZ3ModW5zaWduZWQgbG9u ZyBtZm4sIHVuc2lnbmVkIGludCBjYWNoZWF0dHIpCiAgICAgaWYgKCB1bmxpa2VseShhbGlhcykg JiYgY2FjaGVhdHRyICkKICAgICAgICAgZXJyID0gbWFwX3BhZ2VzX3RvX3hlbih4ZW5fdmEsIF9t Zm4obWZuKSwgMSwgMCk7CiAgICAgaWYgKCAhZXJyICkKLSAgICAgICAgZXJyID0gbWFwX3BhZ2Vz X3RvX3hlbigodW5zaWduZWQgbG9uZyltZm5fdG9fdmlydChtZm4pLCBfbWZuKG1mbiksIDEsCi0g ICAgICAgICAgICAgICAgICAgICBQQUdFX0hZUEVSVklTT1IgfCBjYWNoZWF0dHJfdG9fcHRlX2Zs YWdzKGNhY2hlYXR0cikpOworICAgICAgICBlcnIgPSBtYXBfcGFnZXNfdG9feGVuKAorICAgICAg ICAgICAgKHVuc2lnbmVkIGxvbmcpbWZuX3RvX3ZpcnQoX21mbihtZm4pKSwgX21mbihtZm4pLCAx LAorICAgICAgICAgICAgUEFHRV9IWVBFUlZJU09SIHwgY2FjaGVhdHRyX3RvX3B0ZV9mbGFncyhj YWNoZWF0dHIpKTsKICAgICBpZiAoIHVubGlrZWx5KGFsaWFzKSAmJiAhY2FjaGVhdHRyICYmICFl cnIgKQogICAgICAgICBlcnIgPSBtYXBfcGFnZXNfdG9feGVuKHhlbl92YSwgX21mbihtZm4pLCAx LCBQQUdFX0hZUEVSVklTT1IpOwogICAgIHJldHVybiBlcnI7CkBAIC00NzY5LDcgKzQ3NjYsNyBA QCB2b2lkICphbGxvY194ZW5fcGFnZXRhYmxlKHZvaWQpCiAgICAgICAgIHJldHVybiBwdHI7CiAg ICAgfQogCi0gICAgcmV0dXJuIG1mbl90b192aXJ0KG1mbl94KGFsbG9jX2Jvb3RfcGFnZXMoMSwg MSkpKTsKKyAgICByZXR1cm4gbWZuX3RvX3ZpcnQoYWxsb2NfYm9vdF9wYWdlcygxLCAxKSk7CiB9 CiAKIHZvaWQgZnJlZV94ZW5fcGFnZXRhYmxlKHZvaWQgKnYpCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbnVtYS5jIGIveGVuL2FyY2gveDg2L251bWEuYwppbmRleCBiM2M5YzEyLi5kMTgxNjRi IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbnVtYS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9udW1h LmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhbGxvY2F0ZV9jYWNoZWFs aWduZWRfbWVtbm9kZW1hcCh2b2lkKQogICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSA9IFBGTl9VUCht ZW1ub2RlbWFwc2l6ZSAqIHNpemVvZigqbWVtbm9kZW1hcCkpOwogICAgIHVuc2lnbmVkIGxvbmcg bWZuID0gbWZuX3goYWxsb2NfYm9vdF9wYWdlcyhzaXplLCAxKSk7CiAKLSAgICBtZW1ub2RlbWFw ID0gbWZuX3RvX3ZpcnQobWZuKTsKKyAgICBtZW1ub2RlbWFwID0gbWZuX3RvX3ZpcnQoX21mbiht Zm4pKTsKICAgICBtZm4gPDw9IFBBR0VfU0hJRlQ7CiAgICAgc2l6ZSA8PD0gUEFHRV9TSElGVDsK ICAgICBwcmludGsoS0VSTl9ERUJVRyAiTlVNQTogQWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAl bHggLSAlbHhcbiIsCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZGVzY3JpcHRvci10YWJs ZXMuYyBiL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jCmluZGV4IDhiMmQ1NWYu LjE5NTBjMzkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5j CisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kZXNjcmlwdG9yLXRhYmxlcy5jCkBAIC03Niw3ICs3Niw3 IEBAIGJvb2wgcHZfZGVzdHJveV9sZHQoc3RydWN0IHZjcHUgKnYpCiB2b2lkIHB2X2Rlc3Ryb3lf Z2R0KHN0cnVjdCB2Y3B1ICp2KQogewogICAgIGwxX3BnZW50cnlfdCAqcGwxZSA9IHB2X2dkdF9w dGVzKHYpOwotICAgIG1mbl90IHplcm9fbWZuID0gX21mbih2aXJ0X3RvX21mbih6ZXJvX3BhZ2Up KTsKKyAgICBtZm5fdCB6ZXJvX21mbiA9IHZpcnRfdG9fbWZuKHplcm9fcGFnZSk7CiAgICAgbDFf cGdlbnRyeV90IHplcm9fbDFlID0gbDFlX2Zyb21fbWZuKHplcm9fbWZuLCBfX1BBR0VfSFlQRVJW SVNPUl9STyk7CiAgICAgdW5zaWduZWQgaW50IGk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni9wdi9kb20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCmluZGV4IGRj M2MxZTEuLjE0NTQ4OGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMK KysrIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwpAQCAtNTI4LDcgKzUyOCw3IEBAIGlu dCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAg ICAgICAgICAgZnJlZV9kb21oZWFwX3BhZ2VzKHBhZ2UsIG9yZGVyKTsKICAgICAgICAgICAgICAg ICAgICAgcGFnZSArPSAxVUwgPDwgb3JkZXI7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAg ICAgbWVtY3B5KHBhZ2VfdG9fdmlydChwYWdlKSwgbWZuX3RvX3ZpcnQoaW5pdHJkLT5tb2Rfc3Rh cnQpLAorICAgICAgICAgICAgbWVtY3B5KHBhZ2VfdG9fdmlydChwYWdlKSwgX19tZm5fdG9fdmly dChpbml0cmQtPm1vZF9zdGFydCksCiAgICAgICAgICAgICAgICAgICAgaW5pdHJkX2xlbik7CiAg ICAgICAgICAgICBtcHRfYWxsb2MgPSAocGFkZHJfdClpbml0cmQtPm1vZF9zdGFydCA8PCBQQUdF X1NISUZUOwogICAgICAgICAgICAgaW5pdF9kb21oZWFwX3BhZ2VzKG1wdF9hbGxvYywKQEAgLTYx Nyw4ICs2MTcsNyBAQCBpbnQgX19pbml0IGRvbTBfY29uc3RydWN0X3B2KHN0cnVjdCBkb21haW4g KmQsCiAgICAgICAgIGwzc3RhcnQgPSBfX3ZhKG1wdF9hbGxvYyk7IG1wdF9hbGxvYyArPSBQQUdF X1NJWkU7CiAgICAgfQogICAgIGNsZWFyX3BhZ2UobDR0YWIpOwotICAgIGluaXRfeGVuX2w0X3Ns b3RzKGw0dGFiLCBfbWZuKHZpcnRfdG9fbWZuKGw0c3RhcnQpKSwKLSAgICAgICAgICAgICAgICAg ICAgICBkLCBJTlZBTElEX01GTiwgdHJ1ZSk7CisgICAgaW5pdF94ZW5fbDRfc2xvdHMobDR0YWIs IHZpcnRfdG9fbWZuKGw0c3RhcnQpLCBkLCBJTlZBTElEX01GTiwgdHJ1ZSk7CiAgICAgdi0+YXJj aC5ndWVzdF90YWJsZSA9IHBhZ2V0YWJsZV9mcm9tX3BhZGRyKF9fcGEobDRzdGFydCkpOwogICAg IGlmICggaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKICAgICAgICAgdi0+YXJjaC5ndWVzdF90YWJs ZV91c2VyID0gdi0+YXJjaC5ndWVzdF90YWJsZTsKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9w di9zaGltLmMgYi94ZW4vYXJjaC94ODYvcHYvc2hpbS5jCmluZGV4IGNkYzcyZjcuLmI4OWZhNDYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9zaGltLmMKKysrIGIveGVuL2FyY2gveDg2L3B2 L3NoaW0uYwpAQCAtMzcsOSArMzcsNiBAQAogCiAjaW5jbHVkZSA8Y29tcGF0L2dyYW50X3RhYmxl Lmg+CiAKLSN1bmRlZiB2aXJ0X3RvX21mbgotI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgX21mbihf X3ZpcnRfdG9fbWZuKHZhKSkKLQogI2lmbmRlZiBDT05GSUdfUFZfU0hJTV9FWENMVVNJVkUKIGJv b2wgcHZfc2hpbTsKIGJvb2xlYW5fcGFyYW0oInB2LXNoaW0iLCBwdl9zaGltKTsKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggOWNi ZmYyMi4uZjMzNDVkMCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVu L2FyY2gveDg2L3NldHVwLmMKQEAgLTM0Myw3ICszNDMsNyBAQCB2b2lkICpfX2luaXQgYm9vdHN0 cmFwX21hcChjb25zdCBtb2R1bGVfdCAqbW9kKQogICAgIHZvaWQgKnJldDsKIAogICAgIGlmICgg c3lzdGVtX3N0YXRlICE9IFNZU19TVEFURV9lYXJseV9ib290ICkKLSAgICAgICAgcmV0dXJuIG1v ZCA/IG1mbl90b192aXJ0KG1vZC0+bW9kX3N0YXJ0KSA6IE5VTEw7CisgICAgICAgIHJldHVybiBt b2QgPyBfX21mbl90b192aXJ0KG1vZC0+bW9kX3N0YXJ0KSA6IE5VTEw7CiAKICAgICBpZiAoICFt b2QgKQogICAgIHsKQEAgLTk3MCw3ICs5NzAsNyBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0 YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgICAgICAgKiBUaGlzIG5lZWRzIHRvIHJl bWFpbiBpbiBzeW5jIHdpdGggeGVuX2luX3JhbmdlKCkgYW5kIHRoZQogICAgICAgICAgKiByZXNw ZWN0aXZlIHJlc2VydmVfZTgyMF9yYW0oKSBpbnZvY2F0aW9uIGJlbG93LgogICAgICAgICAgKi8K LSAgICAgICAgbW9kW21iaS0+bW9kc19jb3VudF0ubW9kX3N0YXJ0ID0gdmlydF90b19tZm4oX3N0 ZXh0KTsKKyAgICAgICAgbW9kW21iaS0+bW9kc19jb3VudF0ubW9kX3N0YXJ0ID0gX192aXJ0X3Rv X21mbihfc3RleHQpOwogICAgICAgICBtb2RbbWJpLT5tb2RzX2NvdW50XS5tb2RfZW5kID0gX18y TV9yd2RhdGFfZW5kIC0gX3N0ZXh0OwogICAgIH0KIApAQCAtMTM2Myw3ICsxMzYzLDcgQEAgdm9p ZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKICAgICB7 CiAgICAgICAgIHNldF9wZHhfcmFuZ2UobW9kW2ldLm1vZF9zdGFydCwKICAgICAgICAgICAgICAg ICAgICAgICBtb2RbaV0ubW9kX3N0YXJ0ICsgUEZOX1VQKG1vZFtpXS5tb2RfZW5kKSk7Ci0gICAg ICAgIG1hcF9wYWdlc190b194ZW4oKHVuc2lnbmVkIGxvbmcpbWZuX3RvX3ZpcnQobW9kW2ldLm1v ZF9zdGFydCksCisgICAgICAgIG1hcF9wYWdlc190b194ZW4oKHVuc2lnbmVkIGxvbmcpX19tZm5f dG9fdmlydChtb2RbaV0ubW9kX3N0YXJ0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfbWZu KG1vZFtpXS5tb2Rfc3RhcnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFBGTl9VUChtb2Rb aV0ubW9kX2VuZCksIFBBR0VfSFlQRVJWSVNPUik7CiAgICAgfQpAQCAtMTQ1Myw5ICsxNDUzLDkg QEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFydF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkK IAogICAgIG51bWFfaW5pdG1lbV9pbml0KDAsIHJhd19tYXhfcGFnZSk7CiAKLSAgICBpZiAoIG1h eF9wYWdlIC0gMSA+IHZpcnRfdG9fbWZuKEhZUEVSVklTT1JfVklSVF9FTkQgLSAxKSApCisgICAg aWYgKCBtYXhfcGFnZSAtIDEgPiBfX3ZpcnRfdG9fbWZuKEhZUEVSVklTT1JfVklSVF9FTkQgLSAx KSApCiAgICAgewotICAgICAgICB1bnNpZ25lZCBsb25nIGxpbWl0ID0gdmlydF90b19tZm4oSFlQ RVJWSVNPUl9WSVJUX0VORCAtIDEpOworICAgICAgICB1bnNpZ25lZCBsb25nIGxpbWl0ID0gX192 aXJ0X3RvX21mbihIWVBFUlZJU09SX1ZJUlRfRU5EIC0gMSk7CiAgICAgICAgIHVpbnQ2NF90IG1h c2sgPSBQQUdFX1NJWkUgLSAxOwogCiAgICAgICAgIGlmICggIWhpZ2htZW1fc3RhcnQgKQpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3NyYXQuYyBiL3hlbi9hcmNoL3g4Ni9zcmF0LmMKaW5kZXgg MmQ3MGI0NS4uOGNhMWI2NSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NyYXQuYworKysgYi94 ZW4vYXJjaC94ODYvc3JhdC5jCkBAIC0xOTYsNyArMTk2LDcgQEAgdm9pZCBfX2luaXQgYWNwaV9u dW1hX3NsaXRfaW5pdChzdHJ1Y3QgYWNwaV90YWJsZV9zbGl0ICpzbGl0KQogCQlyZXR1cm47CiAJ fQogCW1mbiA9IGFsbG9jX2Jvb3RfcGFnZXMoUEZOX1VQKHNsaXQtPmhlYWRlci5sZW5ndGgpLCAx KTsKLQlhY3BpX3NsaXQgPSBtZm5fdG9fdmlydChtZm5feChtZm4pKTsKKwlhY3BpX3NsaXQgPSBt Zm5fdG9fdmlydChtZm4pOwogCW1lbWNweShhY3BpX3NsaXQsIHNsaXQsIHNsaXQtPmhlYWRlci5s ZW5ndGgpOwogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdGJvb3QuYyBiL3hlbi9hcmNo L3g4Ni90Ym9vdC5jCmluZGV4IGYzZmRlZTQuLjIyMWJlMWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni90Ym9vdC5jCisrKyBiL3hlbi9hcmNoL3g4Ni90Ym9vdC5jCkBAIC0yNTksNyArMjU5LDcg QEAgc3RhdGljIGludCBtZm5faW5fZ3VhcmRlZF9zdGFjayh1bnNpZ25lZCBsb25nIG1mbikKICAg ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBwID0gKHZvaWQgKikoKHVuc2lnbmVkIGxvbmcp c3RhY2tfYmFzZVtpXSArIFNUQUNLX1NJWkUgLQogICAgICAgICAgICAgICAgICAgICAgUFJJTUFS WV9TVEFDS19TSVpFIC0gUEFHRV9TSVpFKTsKLSAgICAgICAgaWYgKCBtZm4gPT0gdmlydF90b19t Zm4ocCkgKQorICAgICAgICBpZiAoIG1mbiA9PSBtZm5feCh2aXJ0X3RvX21mbihwKSkgKQogICAg ICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIApAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyB2 b2lkIHRib290X2dlbl94ZW5oZWFwX2ludGVncml0eShjb25zdCB1aW50OF90IGtleVtUQl9LRVlf U0laRV0sCiAgICAgICAgICAgICBpZiAoIG1mbl9pbl9ndWFyZGVkX3N0YWNrKG1mbikgKQogICAg ICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBza2lwIGd1YXJkIHN0YWNrLCBzZWUgbWVtZ3VhcmRf Z3VhcmRfc3RhY2soKSBpbiBtbS5jICovCiAKLSAgICAgICAgICAgIHBnID0gbWZuX3RvX3ZpcnQo bWZuKTsKKyAgICAgICAgICAgIHBnID0gbWZuX3RvX3ZpcnQoX21mbihtZm4pKTsKICAgICAgICAg ICAgIHZtYWNfdXBkYXRlKCh1aW50OF90ICopcGcsIFBBR0VfU0laRSwgJmN0eCk7CiAgICAgICAg IH0KICAgICB9CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0L21tLmMgYi94ZW4vYXJj aC94ODYveDg2XzY0L21tLmMKaW5kZXggMTE5NzdmMi4uODYzYzQ5YSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3g4Nl82NC9tbS5jCisrKyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvbW0uYwpAQCAt MTM2NiwxMCArMTM2NiwxMCBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25nIHNwZm4sIHVu c2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CiAgICAgfQogCi0gICAgaSA9IHZpcnRfdG9fbWZuKEhZUEVSVklTT1JfVklSVF9FTkQgLSAx KSArIDE7CisgICAgaSA9IG1mbl94KHZpcnRfdG9fbWZuKEhZUEVSVklTT1JfVklSVF9FTkQgLSAx KSkgKyAxOwogICAgIGlmICggc3BmbiA8IGkgKQogICAgIHsKLSAgICAgICAgcmV0ID0gbWFwX3Bh Z2VzX3RvX3hlbigodW5zaWduZWQgbG9uZyltZm5fdG9fdmlydChzcGZuKSwgX21mbihzcGZuKSwK KyAgICAgICAgcmV0ID0gbWFwX3BhZ2VzX3RvX3hlbigodW5zaWduZWQgbG9uZyltZm5fdG9fdmly dChfbWZuKHNwZm4pKSwgX21mbihzcGZuKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtaW4oZXBmbiwgaSkgLSBzcGZuLCBQQUdFX0hZUEVSVklTT1IpOwogICAgICAgICBpZiAoIHJl dCApCiAgICAgICAgICAgICBnb3RvIGRlc3Ryb3lfZGlyZWN0bWFwOwpAQCAtMTM3OCw3ICsxMzc4 LDcgQEAgaW50IG1lbW9yeV9hZGQodW5zaWduZWQgbG9uZyBzcGZuLCB1bnNpZ25lZCBsb25nIGVw Zm4sIHVuc2lnbmVkIGludCBweG0pCiAgICAgewogICAgICAgICBpZiAoIGkgPCBzcGZuICkKICAg ICAgICAgICAgIGkgPSBzcGZuOwotICAgICAgICByZXQgPSBtYXBfcGFnZXNfdG9feGVuKCh1bnNp Z25lZCBsb25nKW1mbl90b192aXJ0KGkpLCBfbWZuKGkpLAorICAgICAgICByZXQgPSBtYXBfcGFn ZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKW1mbl90b192aXJ0KF9tZm4oaSkpLCBfbWZuKGkpLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVwZm4gLSBpLCBfX1BBR0VfSFlQRVJWSVNP Ul9SVyk7CiAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIGdvdG8gZGVzdHJveV9kaXJl Y3RtYXA7CkBAIC0xNDY5LDggKzE0NjksOCBAQCBpbnQgbWVtb3J5X2FkZCh1bnNpZ25lZCBsb25n IHNwZm4sIHVuc2lnbmVkIGxvbmcgZXBmbiwgdW5zaWduZWQgaW50IHB4bSkKICAgICBOT0RFX0RB VEEobm9kZSktPm5vZGVfc3RhcnRfcGZuID0gb2xkX25vZGVfc3RhcnQ7CiAgICAgTk9ERV9EQVRB KG5vZGUpLT5ub2RlX3NwYW5uZWRfcGFnZXMgPSBvbGRfbm9kZV9zcGFuOwogIGRlc3Ryb3lfZGly ZWN0bWFwOgotICAgIGRlc3Ryb3lfeGVuX21hcHBpbmdzKCh1bnNpZ25lZCBsb25nKW1mbl90b192 aXJ0KHNwZm4pLAotICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBsb25nKW1mbl90 b192aXJ0KGVwZm4pKTsKKyAgICBkZXN0cm95X3hlbl9tYXBwaW5ncygodW5zaWduZWQgbG9uZylt Zm5fdG9fdmlydChfbWZuKHNwZm4pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAodW5zaWdu ZWQgbG9uZyltZm5fdG9fdmlydChfbWZuKGVwZm4pKSk7CiAKICAgICByZXR1cm4gcmV0OwogfQpk aWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9kb21jdGwuYyBiL3hlbi9jb21tb24vZG9tY3RsLmMKaW5k ZXggZDA4YjYyNy4uNTUwMGRmYiAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9kb21jdGwuYworKysg Yi94ZW4vY29tbW9uL2RvbWN0bC5jCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBnZXRkb21haW5p bmZvKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCB4ZW5fZG9tY3RsX2dldGRvbWFpbmluZm8gKmlu Zm8pCiAgICAgaW5mby0+b3V0c3RhbmRpbmdfcGFnZXMgPSBkLT5vdXRzdGFuZGluZ19wYWdlczsK ICAgICBpbmZvLT5zaHJfcGFnZXMgICAgICAgICA9IGF0b21pY19yZWFkKCZkLT5zaHJfcGFnZXMp OwogICAgIGluZm8tPnBhZ2VkX3BhZ2VzICAgICAgID0gYXRvbWljX3JlYWQoJmQtPnBhZ2VkX3Bh Z2VzKTsKLSAgICBpbmZvLT5zaGFyZWRfaW5mb19mcmFtZSA9IG1mbl90b19nbWZuKGQsIHZpcnRf dG9fbWZuKGQtPnNoYXJlZF9pbmZvKSk7CisgICAgaW5mby0+c2hhcmVkX2luZm9fZnJhbWUgPSBt Zm5fdG9fZ21mbihkLCBtZm5feCh2aXJ0X3RvX21mbihkLT5zaGFyZWRfaW5mbykpKTsKICAgICBC VUdfT04oU0hBUkVEX00yUChpbmZvLT5zaGFyZWRfaW5mb19mcmFtZSkpOwogCiAgICAgaW5mby0+ Y3B1cG9vbCA9IGQtPmNwdXBvb2wgPyBkLT5jcHVwb29sLT5jcHVwb29sX2lkIDogQ1BVUE9PTElE X05PTkU7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL2VmaS9ib290LmMgYi94ZW4vY29tbW9uL2Vm aS9ib290LmMKaW5kZXggMmVkNTQwMy4uMDdmZTc3NSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi9l ZmkvYm9vdC5jCisrKyBiL3hlbi9jb21tb24vZWZpL2Jvb3QuYwpAQCAtMTQzMSw3ICsxNDMxLDcg QEAgc3RhdGljIF9faW5pdCB2b2lkIGNvcHlfbWFwcGluZyh1bnNpZ25lZCBsb25nIG1mbiwgdW5z aWduZWQgbG9uZyBlbmQsCiAgICAgewogICAgICAgICBsNF9wZ2VudHJ5X3QgbDRlID0gZWZpX2w0 X3BndGFibGVbbDRfdGFibGVfb2Zmc2V0KG1mbiA8PCBQQUdFX1NISUZUKV07CiAgICAgICAgIGwz X3BnZW50cnlfdCAqbDNzcmMsICpsM2RzdDsKLSAgICAgICAgdW5zaWduZWQgbG9uZyB2YSA9ICh1 bnNpZ25lZCBsb25nKW1mbl90b192aXJ0KG1mbik7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgdmEg PSAodW5zaWduZWQgbG9uZyltZm5fdG9fdmlydChfbWZuKG1mbikpOwogCiAgICAgICAgIG5leHQg PSBtZm4gKyAoMVVMIDw8IChMM19QQUdFVEFCTEVfU0hJRlQgLSBQQUdFX1NISUZUKSk7CiAgICAg ICAgIGlmICggIWlzX3ZhbGlkKG1mbiwgbWluKG5leHQsIGVuZCkpICkKQEAgLTE1NTEsOSArMTU1 MSwxMCBAQCB2b2lkIF9faW5pdCBlZmlfaW5pdF9tZW1vcnkodm9pZCkKICAgICAgICAgICAgICAh KHNtZm4gJiBwZm5faG9sZV9tYXNrKSAmJgogICAgICAgICAgICAgICEoKHNtZm4gXiAoZW1mbiAt IDEpKSAmIH5wZm5fcGR4X2JvdHRvbV9tYXNrKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGlm ICggKHVuc2lnbmVkIGxvbmcpbWZuX3RvX3ZpcnQoZW1mbiAtIDEpID49IEhZUEVSVklTT1JfVklS VF9FTkQgKQorICAgICAgICAgICAgaWYgKCAodW5zaWduZWQgbG9uZyltZm5fdG9fdmlydChfbWZu KGVtZm4gLSAxKSkgPj0KKyAgICAgICAgICAgICAgICAgSFlQRVJWSVNPUl9WSVJUX0VORCApCiAg ICAgICAgICAgICAgICAgcHJvdCAmPSB+X1BBR0VfR0xPQkFMOwotICAgICAgICAgICAgaWYgKCBt YXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKW1mbl90b192aXJ0KHNtZm4pLAorICAgICAg ICAgICAgaWYgKCBtYXBfcGFnZXNfdG9feGVuKCh1bnNpZ25lZCBsb25nKW1mbl90b192aXJ0KF9t Zm4oc21mbikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9tZm4oc21mbiks IGVtZm4gLSBzbWZuLCBwcm90KSA9PSAwICkKICAgICAgICAgICAgICAgICBkZXNjLT5WaXJ0dWFs U3RhcnQgPQogICAgICAgICAgICAgICAgICAgICAodW5zaWduZWQgbG9uZyltYWRkcl90b192aXJ0 KGRlc2MtPlBoeXNpY2FsU3RhcnQpOwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFudF90YWJs ZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jCmluZGV4IDU0ZjkwOWYuLjZmYzI2Y2YgMTAw NjQ0Ci0tLSBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYworKysgYi94ZW4vY29tbW9uL2dyYW50 X3RhYmxlLmMKQEAgLTM4MzUsNyArMzgzNSw3IEBAIHN0YXRpYyBpbnQgZ250dGFiX2dldF9zdGF0 dXNfZnJhbWVfbWZuKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICByZXR1cm4gLUVJTlZB TDsKICAgICB9CiAKLSAgICAqbWZuID0gX21mbih2aXJ0X3RvX21mbihndC0+c3RhdHVzW2lkeF0p KTsKKyAgICAqbWZuID0gdmlydF90b19tZm4oZ3QtPnN0YXR1c1tpZHhdKTsKICAgICByZXR1cm4g MDsKIH0KIApAQCAtMzg2NCw3ICszODY0LDcgQEAgc3RhdGljIGludCBnbnR0YWJfZ2V0X3NoYXJl ZF9mcmFtZV9tZm4oc3RydWN0IGRvbWFpbiAqZCwKICAgICAgICAgICAgIHJldHVybiAtRUlOVkFM OwogICAgIH0KIAotICAgICptZm4gPSBfbWZuKHZpcnRfdG9fbWZuKGd0LT5zaGFyZWRfcmF3W2lk eF0pKTsKKyAgICAqbWZuID0gdmlydF90b19tZm4oZ3QtPnNoYXJlZF9yYXdbaWR4XSk7CiAgICAg cmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVu L2NvbW1vbi9wYWdlX2FsbG9jLmMKaW5kZXggMDhlZThjZi4uOTJlMWE2NSAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMKQEAg LTI1Myw3ICsyNTMsNyBAQCBzdGF0aWMgdm9pZCBfX2luaXQgYm9vdG1lbV9yZWdpb25fYWRkKHVu c2lnbmVkIGxvbmcgcywgdW5zaWduZWQgbG9uZyBlKQogICAgIHVuc2lnbmVkIGludCBpOwogCiAg ICAgaWYgKCAoYm9vdG1lbV9yZWdpb25fbGlzdCA9PSBOVUxMKSAmJiAocyA8IGUpICkKLSAgICAg ICAgYm9vdG1lbV9yZWdpb25fbGlzdCA9IG1mbl90b192aXJ0KHMrKyk7CisgICAgICAgIGJvb3Rt ZW1fcmVnaW9uX2xpc3QgPSBtZm5fdG9fdmlydChfbWZuKHMrKykpOwogCiAgICAgaWYgKCBzID49 IGUgKQogICAgICAgICByZXR1cm47CkBAIC01OTAsOCArNTkwLDggQEAgc3RhdGljIHVuc2lnbmVk IGxvbmcgaW5pdF9ub2RlX2hlYXAoaW50IG5vZGUsIHVuc2lnbmVkIGxvbmcgbWZuLAogICAgICAg ICAgICAgICAoIXhlbmhlYXBfYml0cyB8fAogICAgICAgICAgICAgICAgISgobWZuICsgbnIgLSAx KSA+PiAoeGVuaGVhcF9iaXRzIC0gUEFHRV9TSElGVCkpKSApCiAgICAgewotICAgICAgICBfaGVh cFtub2RlXSA9IG1mbl90b192aXJ0KG1mbiArIG5yIC0gbmVlZGVkKTsKLSAgICAgICAgYXZhaWxb bm9kZV0gPSBtZm5fdG9fdmlydChtZm4gKyBuciAtIDEpICsKKyAgICAgICAgX2hlYXBbbm9kZV0g PSBtZm5fdG9fdmlydChfbWZuKG1mbiArIG5yIC0gbmVlZGVkKSk7CisgICAgICAgIGF2YWlsW25v ZGVdID0gbWZuX3RvX3ZpcnQoX21mbihtZm4gKyBuciAtIDEpKSArCiAgICAgICAgICAgICAgICAg ICAgICAgUEFHRV9TSVpFIC0gc2l6ZW9mKCoqYXZhaWwpICogTlJfWk9ORVM7CiAgICAgfQogICAg IGVsc2UgaWYgKCBuciA+PSBuZWVkZWQgJiYKQEAgLTU5OSw4ICs1OTksOCBAQCBzdGF0aWMgdW5z aWduZWQgbG9uZyBpbml0X25vZGVfaGVhcChpbnQgbm9kZSwgdW5zaWduZWQgbG9uZyBtZm4sCiAg ICAgICAgICAgICAgICgheGVuaGVhcF9iaXRzIHx8CiAgICAgICAgICAgICAgICAhKChtZm4gKyBu ZWVkZWQgLSAxKSA+PiAoeGVuaGVhcF9iaXRzIC0gUEFHRV9TSElGVCkpKSApCiAgICAgewotICAg ICAgICBfaGVhcFtub2RlXSA9IG1mbl90b192aXJ0KG1mbik7Ci0gICAgICAgIGF2YWlsW25vZGVd ID0gbWZuX3RvX3ZpcnQobWZuICsgbmVlZGVkIC0gMSkgKworICAgICAgICBfaGVhcFtub2RlXSA9 IG1mbl90b192aXJ0KF9tZm4obWZuKSk7CisgICAgICAgIGF2YWlsW25vZGVdID0gbWZuX3RvX3Zp cnQoX21mbihtZm4gKyBuZWVkZWQgLSAxKSkgKwogICAgICAgICAgICAgICAgICAgICAgIFBBR0Vf U0laRSAtIHNpemVvZigqKmF2YWlsKSAqIE5SX1pPTkVTOwogICAgICAgICAqdXNlX3RhaWwgPSAw OwogICAgIH0KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdG1lbS5jIGIveGVuL2NvbW1vbi90bWVt LmMKaW5kZXggYzA3N2Y4Ny4uZTc0OWNiYSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi90bWVtLmMK KysrIGIveGVuL2NvbW1vbi90bWVtLmMKQEAgLTI0Myw3ICsyNDMsNyBAQCBzdGF0aWMgdm9pZCB0 bWVtX3BlcnNpc3RlbnRfcG9vbF9wYWdlX3B1dCh2b2lkICpwYWdlX3ZhKQogICAgIHN0cnVjdCBw YWdlX2luZm8gKnBpOwogCiAgICAgQVNTRVJUKElTX1BBR0VfQUxJR05FRChwYWdlX3ZhKSk7Ci0g ICAgcGkgPSBtZm5fdG9fcGFnZShfbWZuKHZpcnRfdG9fbWZuKHBhZ2VfdmEpKSk7CisgICAgcGkg PSB2aXJ0X3RvX3BhZ2UocGFnZV92YSk7CiAgICAgQVNTRVJUKElTX1ZBTElEX1BBR0UocGkpKTsK ICAgICBfX3RtZW1fZnJlZV9wYWdlX3RoaXNwb29sKHBpKTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9j b21tb24vdHJhY2UuYyBiL3hlbi9jb21tb24vdHJhY2UuYwppbmRleCBjYzI5NGZjLi4zZTQzOTc2 IDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3RyYWNlLmMKKysrIGIveGVuL2NvbW1vbi90cmFjZS5j CkBAIC0yMTcsNyArMjE3LDcgQEAgc3RhdGljIGludCBhbGxvY190cmFjZV9idWZzKHVuc2lnbmVk IGludCBwYWdlcykKICAgICAgICAgICAgICAgICB0X2luZm9fbWZuX2xpc3Rbb2Zmc2V0ICsgaV0g PSAwOwogICAgICAgICAgICAgICAgIGdvdG8gb3V0X2RlYWxsb2M7CiAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICB0X2luZm9fbWZuX2xpc3Rbb2Zmc2V0ICsgaV0gPSB2aXJ0X3RvX21mbihwKTsK KyAgICAgICAgICAgIHRfaW5mb19tZm5fbGlzdFtvZmZzZXQgKyBpXSA9IF9fdmlydF90b19tZm4o cCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTIzMyw3ICsyMzMsNyBAQCBzdGF0aWMgaW50IGFs bG9jX3RyYWNlX2J1ZnModW5zaWduZWQgaW50IHBhZ2VzKQogICAgICAgICBvZmZzZXQgPSB0X2lu Zm8tPm1mbl9vZmZzZXRbY3B1XTsKIAogICAgICAgICAvKiBJbml0aWFsaXplIHRoZSBidWZmZXIg bWV0YWRhdGEgKi8KLSAgICAgICAgcGVyX2NwdSh0X2J1ZnMsIGNwdSkgPSBidWYgPSBtZm5fdG9f dmlydCh0X2luZm9fbWZuX2xpc3Rbb2Zmc2V0XSk7CisgICAgICAgIHBlcl9jcHUodF9idWZzLCBj cHUpID0gYnVmID0gX19tZm5fdG9fdmlydCh0X2luZm9fbWZuX2xpc3Rbb2Zmc2V0XSk7CiAgICAg ICAgIGJ1Zi0+Y29ucyA9IGJ1Zi0+cHJvZCA9IDA7CiAKICAgICAgICAgcHJpbnRrKFhFTkxPR19J TkZPICJ4ZW50cmFjZTogcCVkIG1mbiAleCBvZmZzZXQgJXVcbiIsCkBAIC0yNjgsMTAgKzI2OCwx MiBAQCBzdGF0aWMgaW50IGFsbG9jX3RyYWNlX2J1ZnModW5zaWduZWQgaW50IHBhZ2VzKQogICAg ICAgICAgICAgY29udGludWU7CiAgICAgICAgIGZvciAoIGkgPSAwOyBpIDwgcGFnZXM7IGkrKyAp CiAgICAgICAgIHsKLSAgICAgICAgICAgIHVpbnQzMl90IG1mbiA9IHRfaW5mb19tZm5fbGlzdFtv ZmZzZXQgKyBpXTsKLSAgICAgICAgICAgIGlmICggIW1mbiApCisgICAgICAgICAgICBtZm5fdCBt Zm4gPSBfbWZuKHRfaW5mb19tZm5fbGlzdFtvZmZzZXQgKyBpXSk7CisKKyAgICAgICAgICAgIGlm ICggIW1mbl94KG1mbikgKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgQVNT RVJUKCEobWZuX3RvX3BhZ2UoX21mbihtZm4pKS0+Y291bnRfaW5mbyAmIFBHQ19hbGxvY2F0ZWQp KTsKKworICAgICAgICAgICAgQVNTRVJUKCEobWZuX3RvX3BhZ2UobWZuKS0+Y291bnRfaW5mbyAm IFBHQ19hbGxvY2F0ZWQpKTsKICAgICAgICAgICAgIGZyZWVfeGVuaGVhcF9wYWdlcyhtZm5fdG9f dmlydChtZm4pLCAwKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM3Nyw3ICszNzksNyBAQCBpbnQg dGJfY29udHJvbChzdHJ1Y3QgeGVuX3N5c2N0bF90YnVmX29wICp0YmMpCiAgICAgewogICAgIGNh c2UgWEVOX1NZU0NUTF9UQlVGT1BfZ2V0X2luZm86CiAgICAgICAgIHRiYy0+ZXZ0X21hc2sgICA9 IHRiX2V2ZW50X21hc2s7Ci0gICAgICAgIHRiYy0+YnVmZmVyX21mbiA9IHRfaW5mbyA/IHZpcnRf dG9fbWZuKHRfaW5mbykgOiAwOworICAgICAgICB0YmMtPmJ1ZmZlcl9tZm4gPSB0X2luZm8gPyBf X3ZpcnRfdG9fbWZuKHRfaW5mbykgOiAwOwogICAgICAgICB0YmMtPnNpemUgPSB0X2luZm9fcGFn ZXMgKiBQQUdFX1NJWkU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWEVOX1NZU0NUTF9UQlVG T1Bfc2V0X2NwdV9tYXNrOgpAQCAtNTExLDcgKzUxMyw3IEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFy ICpuZXh0X3JlY29yZChjb25zdCBzdHJ1Y3QgdF9idWYgKmJ1ZiwgdWludDMyX3QgKm5leHQsCiAg ICAgdWludDE2X3QgcGVyX2NwdV9tZm5fb2Zmc2V0OwogICAgIHVpbnQzMl90IHBlcl9jcHVfbWZu X25yOwogICAgIHVpbnQzMl90ICptZm5fbGlzdDsKLSAgICB1aW50MzJfdCBtZm47CisgICAgbWZu X3QgbWZuOwogICAgIHVuc2lnbmVkIGNoYXIgKnRoaXNfcGFnZTsKIAogICAgIGJhcnJpZXIoKTsg LyogbXVzdCByZWFkIGJ1Zi0+cHJvZCBhbmQgYnVmLT5jb25zIG9ubHkgb25jZSAqLwpAQCAtNTMy LDcgKzUzNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBjaGFyICpuZXh0X3JlY29yZChjb25zdCBzdHJ1 Y3QgdF9idWYgKmJ1ZiwgdWludDMyX3QgKm5leHQsCiAgICAgcGVyX2NwdV9tZm5fbnIgPSB4ID4+ IFBBR0VfU0hJRlQ7CiAgICAgcGVyX2NwdV9tZm5fb2Zmc2V0ID0gdF9pbmZvLT5tZm5fb2Zmc2V0 W3NtcF9wcm9jZXNzb3JfaWQoKV07CiAgICAgbWZuX2xpc3QgPSAodWludDMyX3QgKil0X2luZm87 Ci0gICAgbWZuID0gbWZuX2xpc3RbcGVyX2NwdV9tZm5fb2Zmc2V0ICsgcGVyX2NwdV9tZm5fbnJd OworICAgIG1mbiA9IF9tZm4obWZuX2xpc3RbcGVyX2NwdV9tZm5fb2Zmc2V0ICsgcGVyX2NwdV9t Zm5fbnJdKTsKICAgICB0aGlzX3BhZ2UgPSBtZm5fdG9fdmlydChtZm4pOwogICAgIGlmIChwZXJf Y3B1X21mbl9uciArIDEgPj0gb3B0X3RidWZfc2l6ZSkKICAgICB7CkBAIC01NDEsNyArNTQzLDcg QEAgc3RhdGljIHVuc2lnbmVkIGNoYXIgKm5leHRfcmVjb3JkKGNvbnN0IHN0cnVjdCB0X2J1ZiAq YnVmLCB1aW50MzJfdCAqbmV4dCwKICAgICB9CiAgICAgZWxzZQogICAgIHsKLSAgICAgICAgbWZu ID0gbWZuX2xpc3RbcGVyX2NwdV9tZm5fb2Zmc2V0ICsgcGVyX2NwdV9tZm5fbnIgKyAxXTsKKyAg ICAgICAgbWZuID0gX21mbihtZm5fbGlzdFtwZXJfY3B1X21mbl9vZmZzZXQgKyBwZXJfY3B1X21m bl9uciArIDFdKTsKICAgICAgICAgKm5leHRfcGFnZSA9IG1mbl90b192aXJ0KG1mbik7CiAgICAg fQogICAgIHJldHVybiB0aGlzX3BhZ2U7CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3hlbm9wcm9m LmMgYi94ZW4vY29tbW9uL3hlbm9wcm9mLmMKaW5kZXggOGE3MmUzOC4uMDJiMDE1ZiAxMDA2NDQK LS0tIGEveGVuL2NvbW1vbi94ZW5vcHJvZi5jCisrKyBiL3hlbi9jb21tb24veGVub3Byb2YuYwpA QCAtMTksMTAgKzE5LDYgQEAKICNpbmNsdWRlIDx4c20veHNtLmg+CiAjaW5jbHVkZSA8eGVuL2h5 cGVyY2FsbC5oPgogCi0vKiBPdmVycmlkZSBtYWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2Ug dGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KLSN1bmRlZiB2aXJ0X3RvX21mbgotI2RlZmluZSB2aXJ0 X3RvX21mbih2YSkgX21mbihfX3ZpcnRfdG9fbWZuKHZhKSkKLQogLyogTGltaXQgYW1vdW50IG9m IHBhZ2VzIHVzZWQgZm9yIHNoYXJlZCBidWZmZXIgKHBlciBkb21haW4pICovCiAjZGVmaW5lIE1B WF9PUFJPRl9TSEFSRURfUEFHRVMgMzIKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvYWNwaS9v c2wuYyBiL3hlbi9kcml2ZXJzL2FjcGkvb3NsLmMKaW5kZXggNGM4YmI3OC4uY2EzODU2NSAxMDA2 NDQKLS0tIGEveGVuL2RyaXZlcnMvYWNwaS9vc2wuYworKysgYi94ZW4vZHJpdmVycy9hY3BpL29z bC5jCkBAIC0yMTksNyArMjE5LDcgQEAgdm9pZCAqX19pbml0IGFjcGlfb3NfYWxsb2NfbWVtb3J5 KHNpemVfdCBzeikKIAl2b2lkICpwdHI7CiAKIAlpZiAoc3lzdGVtX3N0YXRlID09IFNZU19TVEFU RV9lYXJseV9ib290KQotCQlyZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3goYWxsb2NfYm9vdF9wYWdl cyhQRk5fVVAoc3opLCAxKSkpOworCQlyZXR1cm4gbWZuX3RvX3ZpcnQoYWxsb2NfYm9vdF9wYWdl cyhQRk5fVVAoc3opLCAxKSk7CiAKIAlwdHIgPSB4bWFsbG9jX2J5dGVzKHN6KTsKIAlBU1NFUlQo IXB0ciB8fCBpc194bWFsbG9jX21lbW9yeShwdHIpKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRl L2FzbS1hcm0vbW0uaCBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vbW0uaAppbmRleCBiMmY2MTA0Li4z ODhkMzUzIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL21tLmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLWFybS9tbS5oCkBAIC0yODgsOCArMjg4LDggQEAgc3RhdGljIGlubGluZSB1aW50 NjRfdCBndmlydF90b19tYWRkcih2YWRkcl90IHZhLCBwYWRkcl90ICpwYSwKICAqIFRoZXNlIGFy ZSBvdmVycmlkZW4gaW4gdmFyaW91cyBzb3VyY2UgZmlsZXMgd2hpbGUgdW5kZXJzY29yZWQgdmVy c2lvbgogICogcmVtYWluIGludGFjdC4KICAqLwotI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgICAg IF9fdmlydF90b19tZm4odmEpCi0jZGVmaW5lIG1mbl90b192aXJ0KG1mbikgICAgX19tZm5fdG9f dmlydChtZm4pCisjZGVmaW5lIHZpcnRfdG9fbWZuKHZhKSAgICAgX21mbihfX3ZpcnRfdG9fbWZu KHZhKSkKKyNkZWZpbmUgbWZuX3RvX3ZpcnQobWZuKSAgICBfX21mbl90b192aXJ0KG1mbl94KG1m bikpCiAKIC8qIENvbnZlcnQgYmV0d2VlbiBYZW4taGVhcCB2aXJ0dWFsIGFkZHJlc3NlcyBhbmQg cGFnZS1pbmZvIHN0cnVjdHVyZXMuICovCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBwYWdlX2luZm8g KnZpcnRfdG9fcGFnZShjb25zdCB2b2lkICp2KQpAQCAtMzA3LDcgKzMwNyw3IEBAIHN0YXRpYyBp bmxpbmUgc3RydWN0IHBhZ2VfaW5mbyAqdmlydF90b19wYWdlKGNvbnN0IHZvaWQgKnYpCiAKIHN0 YXRpYyBpbmxpbmUgdm9pZCAqcGFnZV90b192aXJ0KGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnBn KQogewotICAgIHJldHVybiBtZm5fdG9fdmlydChtZm5feChwYWdlX3RvX21mbihwZykpKTsKKyAg ICByZXR1cm4gbWZuX3RvX3ZpcnQocGFnZV90b19tZm4ocGcpKTsKIH0KIAogc3RydWN0IHBhZ2Vf aW5mbyAqZ2V0X3BhZ2VfZnJvbV9ndmEoc3RydWN0IHZjcHUgKnYsIHZhZGRyX3QgdmEsCmRpZmYg LS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21t LmgKaW5kZXggMWVhMTczYy4uYmQ3MTRkMSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4 Ni9tbS5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvbW0uaApAQCAtNjMzLDcgKzYzMyw3IEBA IHN0YXRpYyBpbmxpbmUgYm9vbCBhcmNoX21mbl9pbl9kaXJlY3RtYXAodW5zaWduZWQgbG9uZyBt Zm4pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBldmEgPSBtaW4oRElSRUNUTUFQX1ZJUlRfRU5ELCBI WVBFUlZJU09SX1ZJUlRfRU5EKTsKIAotICAgIHJldHVybiBtZm4gPD0gKHZpcnRfdG9fbWZuKGV2 YSAtIDEpICsgMSk7CisgICAgcmV0dXJuIG1mbiA8PSAoX192aXJ0X3RvX21mbihldmEgLSAxKSAr IDEpOwogfQogCiBpbnQgYXJjaF9hY3F1aXJlX3Jlc291cmNlKHN0cnVjdCBkb21haW4gKmQsIHVu c2lnbmVkIGludCB0eXBlLApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wYWdlLmgg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAppbmRleCBjMWU5MjkzLi43NGFjNjRhIDEwMDY0 NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BhZ2UuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L3BhZ2UuaApAQCAtMjYwLDggKzI2MCw4IEBAIHZvaWQgY29weV9wYWdlX3NzZTIodm9pZCAq LCBjb25zdCB2b2lkICopOwogICogb3ZlcnJpZGRlbiBpbiB2YXJpb3VzIHNvdXJjZSBmaWxlcyB3 aGlsZSB1bmRlcnNjb3JlZCB2ZXJzaW9ucyByZW1haW4gaW50YWN0LgogICovCiAjZGVmaW5lIG1m bl92YWxpZChtZm4pICAgICAgX19tZm5fdmFsaWQobWZuX3gobWZuKSkKLSNkZWZpbmUgdmlydF90 b19tZm4odmEpICAgICBfX3ZpcnRfdG9fbWZuKHZhKQotI2RlZmluZSBtZm5fdG9fdmlydChtZm4p ICAgIF9fbWZuX3RvX3ZpcnQobWZuKQorI2RlZmluZSB2aXJ0X3RvX21mbih2YSkgICAgIF9tZm4o X192aXJ0X3RvX21mbih2YSkpCisjZGVmaW5lIG1mbl90b192aXJ0KG1mbikgICAgX19tZm5fdG9f dmlydChtZm5feChtZm4pKQogI2RlZmluZSB2aXJ0X3RvX21hZGRyKHZhKSAgIF9fdmlydF90b19t YWRkcigodW5zaWduZWQgbG9uZykodmEpKQogI2RlZmluZSBtYWRkcl90b192aXJ0KG1hKSAgIF9f bWFkZHJfdG9fdmlydCgodW5zaWduZWQgbG9uZykobWEpKQogI2RlZmluZSBtYWRkcl90b19wYWdl KG1hKSAgIF9fbWFkZHJfdG9fcGFnZShtYSkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi9k b21haW5fcGFnZS5oIGIveGVuL2luY2x1ZGUveGVuL2RvbWFpbl9wYWdlLmgKaW5kZXggMzI2Njlh My4uNTE4ZDg3NCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2RvbWFpbl9wYWdlLmgKKysr IGIveGVuL2luY2x1ZGUveGVuL2RvbWFpbl9wYWdlLmgKQEAgLTUzLDE0ICs1MywxNCBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgKl9fbWFwX2RvbWFpbl9wYWdlX2dsb2JhbChjb25zdCBzdHJ1Y3QgcGFn ZV9pbmZvICpwZykKIAogI2Vsc2UgLyogIUNPTkZJR19ET01BSU5fUEFHRSAqLwogCi0jZGVmaW5l IG1hcF9kb21haW5fcGFnZShtZm4pICAgICAgICAgICAgICAgIF9fbWZuX3RvX3ZpcnQobWZuX3go bWZuKSkKKyNkZWZpbmUgbWFwX2RvbWFpbl9wYWdlKG1mbikgICAgICAgICAgICAgICAgbWZuX3Rv X3ZpcnQobWZuKQogI2RlZmluZSBfX21hcF9kb21haW5fcGFnZShwZykgICAgICAgICAgICAgICBw YWdlX3RvX3ZpcnQocGcpCiAjZGVmaW5lIHVubWFwX2RvbWFpbl9wYWdlKHZhKSAgICAgICAgICAg ICAgICgodm9pZCkodmEpKQotI2RlZmluZSBkb21haW5fcGFnZV9tYXBfdG9fbWZuKHZhKSAgICAg ICAgICBfbWZuKHZpcnRfdG9fbWZuKCh1bnNpZ25lZCBsb25nKSh2YSkpKQorI2RlZmluZSBkb21h aW5fcGFnZV9tYXBfdG9fbWZuKHZhKSAgICAgICAgICB2aXJ0X3RvX21mbih2YSkKIAogc3RhdGlj IGlubGluZSB2b2lkICptYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKG1mbl90IG1mbikKIHsKLSAgICBy ZXR1cm4gbWZuX3RvX3ZpcnQobWZuX3gobWZuKSk7CisgICAgcmV0dXJuIG1mbl90b192aXJ0KG1m bik7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19tYXBfZG9tYWluX3BhZ2VfZ2xvYmFsKGNv bnN0IHN0cnVjdCBwYWdlX2luZm8gKnBnKQotLSAKMi4xLjQKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs