From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nadav Amit Subject: [RFC PATCH 5/6] x86/mm/tlb: Flush remote and local TLBs concurrently Date: Sat, 25 May 2019 01:22:02 -0700 Message-ID: <20190525082203.6531-6-namit__28478.075393808$1558772611$gmane$org@vmware.com> References: <20190525082203.6531-1-namit@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hURwb-00046j-CN for xen-devel@lists.xenproject.org; Sat, 25 May 2019 08:22:21 +0000 Received: by mail-pf1-f193.google.com with SMTP id c6so6676451pfa.10 for ; Sat, 25 May 2019 01:22:15 -0700 (PDT) In-Reply-To: <20190525082203.6531-1-namit@vmware.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Ingo Molnar , Peter Zijlstra , Andy Lutomirski Cc: Sasha Levin , Juergen Gross , linux-hyperv@vger.kernel.org, Dave Hansen , Stephen Hemminger , xen-devel@lists.xenproject.org, kvm@vger.kernel.org, Haiyang Zhang , x86@kernel.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org, Nadav Amit , Paolo Bonzini , Borislav Petkov , Thomas Gleixner , "K. Y. Srinivasan" , Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org VG8gaW1wcm92ZSBUTEIgc2hvb3Rkb3duIHBlcmZvcm1hbmNlLCBmbHVzaCB0aGUgcmVtb3RlIGFu ZCBsb2NhbCBUTEJzCmNvbmN1cnJlbnRseS4gSW50cm9kdWNlIGZsdXNoX3RsYl9tdWx0aSgpIHRo YXQgZG9lcyBzby4gVGhlIGN1cnJlbnQKZmx1c2hfdGxiX290aGVycygpIGludGVyZmFjZSBpcyBr ZXB0LCBzaW5jZSBwYXJhdmlydHVhbCBpbnRlcmZhY2VzIG5lZWQKdG8gYmUgYWRhcHRlZCBmaXJz dCBiZWZvcmUgaXQgY2FuIGJlIHJlbW92ZWQuIFRoaXMgaXMgbGVmdCBmb3IgZnV0dXJlCndvcmsu IEluIHN1Y2ggUFYgZW52aXJvbm1lbnRzLCBUTEIgZmx1c2hlcyBhcmUgbm90IHBlcmZvcm1lZCwg YXQgdGhpcwp0aW1lLCBjb25jdXJyZW50bHkuCgpBZGQgYSBzdGF0aWMga2V5IHRvIHRlbGwgd2hl dGhlciB0aGlzIG5ldyBpbnRlcmZhY2UgaXMgc3VwcG9ydGVkLgoKQ2M6ICJLLiBZLiBTcmluaXZh c2FuIiA8a3lzQG1pY3Jvc29mdC5jb20+CkNjOiBIYWl5YW5nIFpoYW5nIDxoYWl5YW5nekBtaWNy b3NvZnQuY29tPgpDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0aGVtbWluQG1pY3Jvc29mdC5jb20+ CkNjOiBTYXNoYSBMZXZpbiA8c2FzaGFsQGtlcm5lbC5vcmc+CkNjOiBUaG9tYXMgR2xlaXhuZXIg PHRnbHhAbGludXRyb25peC5kZT4KQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0ByZWRoYXQuY29tPgpD YzogQm9yaXNsYXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiB4ODZAa2VybmVsLm9yZwpDYzog SnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpDYzogUGFvbG8gQm9uemluaSA8cGJvbnpp bmlAcmVkaGF0LmNvbT4KQ2M6IERhdmUgSGFuc2VuIDxkYXZlLmhhbnNlbkBsaW51eC5pbnRlbC5j b20+CkNjOiBBbmR5IEx1dG9taXJza2kgPGx1dG9Aa2VybmVsLm9yZz4KQ2M6IFBldGVyIFppamxz dHJhIDxwZXRlcnpAaW5mcmFkZWFkLm9yZz4KQ2M6IEJvcmlzIE9zdHJvdnNreSA8Ym9yaXMub3N0 cm92c2t5QG9yYWNsZS5jb20+CkNjOiBsaW51eC1oeXBlcnZAdmdlci5rZXJuZWwub3JnCkNjOiBs aW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnCkNjOiB2aXJ0dWFsaXphdGlvbkBsaXN0cy5saW51 eC1mb3VuZGF0aW9uLm9yZwpDYzoga3ZtQHZnZXIua2VybmVsLm9yZwpDYzogeGVuLWRldmVsQGxp c3RzLnhlbnByb2plY3Qub3JnClNpZ25lZC1vZmYtYnk6IE5hZGF2IEFtaXQgPG5hbWl0QHZtd2Fy ZS5jb20+Ci0tLQogYXJjaC94ODYvaHlwZXJ2L21tdS5jICAgICAgICAgICAgICAgICB8ICAyICsK IGFyY2gveDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0LmggICAgICAgfCAgOCArKysKIGFyY2gveDg2 L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmggfCAgNiArKwogYXJjaC94ODYvaW5jbHVkZS9h c20vdGxiZmx1c2guaCAgICAgICB8ICA2ICsrCiBhcmNoL3g4Ni9rZXJuZWwva3ZtLmMgICAgICAg ICAgICAgICAgIHwgIDEgKwogYXJjaC94ODYva2VybmVsL3BhcmF2aXJ0LmMgICAgICAgICAgICB8 ICAzICsKIGFyY2gveDg2L21tL3RsYi5jICAgICAgICAgICAgICAgICAgICAgfCA4MCArKysrKysr KysrKysrKysrKysrKysrKy0tLS0KIGFyY2gveDg2L3hlbi9tbXVfcHYuYyAgICAgICAgICAgICAg ICAgfCAgMiArCiA4IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2h5cGVydi9tbXUuYyBiL2FyY2gveDg2L2h5cGVy di9tbXUuYwppbmRleCBlNjVkN2ZlNjQ4OWYuLmNhMjhiNDAwYzg3YyAxMDA2NDQKLS0tIGEvYXJj aC94ODYvaHlwZXJ2L21tdS5jCisrKyBiL2FyY2gveDg2L2h5cGVydi9tbXUuYwpAQCAtMjMzLDQg KzIzMyw2IEBAIHZvaWQgaHlwZXJ2X3NldHVwX21tdV9vcHModm9pZCkKIAlwcl9pbmZvKCJVc2lu ZyBoeXBlcmNhbGwgZm9yIHJlbW90ZSBUTEIgZmx1c2hcbiIpOwogCXB2X29wcy5tbXUuZmx1c2hf dGxiX290aGVycyA9IGh5cGVydl9mbHVzaF90bGJfb3RoZXJzOwogCXB2X29wcy5tbXUudGxiX3Jl bW92ZV90YWJsZSA9IHRsYl9yZW1vdmVfdGFibGU7CisKKwlzdGF0aWNfa2V5X2Rpc2FibGUoJmZs dXNoX3RsYl9tdWx0aV9lbmFibGVkLmtleSk7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9wYXJhdmlydC5oIGIvYXJjaC94ODYvaW5jbHVkZS9hc20vcGFyYXZpcnQuaAppbmRl eCBjMjVjMzhhMDVjMWMuLjE5MmJlNzI1NDQ1NyAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVk ZS9hc20vcGFyYXZpcnQuaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydC5oCkBA IC00Nyw2ICs0Nyw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzbG93X2Rvd25faW8odm9pZCkKICNl bmRpZgogfQogCitERUNMQVJFX1NUQVRJQ19LRVlfVFJVRShmbHVzaF90bGJfbXVsdGlfZW5hYmxl ZCk7CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBfX2ZsdXNoX3RsYih2b2lkKQogewogCVBWT1BfVkNB TEwwKG1tdS5mbHVzaF90bGJfdXNlcik7CkBAIC02Miw2ICs2NCwxMiBAQCBzdGF0aWMgaW5saW5l IHZvaWQgX19mbHVzaF90bGJfb25lX3VzZXIodW5zaWduZWQgbG9uZyBhZGRyKQogCVBWT1BfVkNB TEwxKG1tdS5mbHVzaF90bGJfb25lX3VzZXIsIGFkZHIpOwogfQogCitzdGF0aWMgaW5saW5lIHZv aWQgZmx1c2hfdGxiX211bHRpKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVtYXNrLAorCQkJCSAg IGNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAqaW5mbykKK3sKKwlQVk9QX1ZDQUxMMihtbXUu Zmx1c2hfdGxiX211bHRpLCBjcHVtYXNrLCBpbmZvKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lk IGZsdXNoX3RsYl9vdGhlcnMoY29uc3Qgc3RydWN0IGNwdW1hc2sgKmNwdW1hc2ssCiAJCQkJICAg IGNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAqaW5mbykKIHsKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9w YXJhdmlydF90eXBlcy5oCmluZGV4IDk0NmY4ZjFmMWVmYy4uM2ExNTZlNjNjNTdkIDEwMDY0NAot LS0gYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wYXJhdmlydF90eXBlcy5oCisrKyBiL2FyY2gveDg2 L2luY2x1ZGUvYXNtL3BhcmF2aXJ0X3R5cGVzLmgKQEAgLTIxMSw2ICsyMTEsMTIgQEAgc3RydWN0 IHB2X21tdV9vcHMgewogCXZvaWQgKCpmbHVzaF90bGJfdXNlcikodm9pZCk7CiAJdm9pZCAoKmZs dXNoX3RsYl9rZXJuZWwpKHZvaWQpOwogCXZvaWQgKCpmbHVzaF90bGJfb25lX3VzZXIpKHVuc2ln bmVkIGxvbmcgYWRkcik7CisJLyoKKwkgKiBmbHVzaF90bGJfbXVsdGkoKSBpcyB0aGUgcHJlZmVy cmVkIGludGVyZmFjZS4gV2hlbiBpdCBpcyB1c2VkLAorCSAqIGZsdXNoX3RsYl9vdGhlcnMoKSBz aG91bGQgcmV0dXJuIGZhbHNlLgorCSAqLworCXZvaWQgKCpmbHVzaF90bGJfbXVsdGkpKGNvbnN0 IHN0cnVjdCBjcHVtYXNrICpjcHVzLAorCQkJCWNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAq aW5mbyk7CiAJdm9pZCAoKmZsdXNoX3RsYl9vdGhlcnMpKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpj cHVzLAogCQkJCSBjb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2luZm8gKmluZm8pOwogCmRpZmYgLS1n aXQgYS9hcmNoL3g4Ni9pbmNsdWRlL2FzbS90bGJmbHVzaC5oIGIvYXJjaC94ODYvaW5jbHVkZS9h c20vdGxiZmx1c2guaAppbmRleCBkZWUzNzU4MzE5NjIuLjc5MjcyOTM4Y2Y3OSAxMDA2NDQKLS0t IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vdGxiZmx1c2guaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS90bGJmbHVzaC5oCkBAIC01NjksNiArNTY5LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGZs dXNoX3RsYl9wYWdlKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGEp CiAJZmx1c2hfdGxiX21tX3JhbmdlKHZtYS0+dm1fbW0sIGEsIGEgKyBQQUdFX1NJWkUsIFBBR0Vf U0hJRlQsIGZhbHNlKTsKIH0KIAordm9pZCBuYXRpdmVfZmx1c2hfdGxiX211bHRpKGNvbnN0IHN0 cnVjdCBjcHVtYXNrICpjcHVtYXNrLAorCQkJICAgICBjb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2lu Zm8gKmluZm8pOworCiB2b2lkIG5hdGl2ZV9mbHVzaF90bGJfb3RoZXJzKGNvbnN0IHN0cnVjdCBj cHVtYXNrICpjcHVtYXNrLAogCQkJICAgICBjb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2luZm8gKmlu Zm8pOwogCkBAIC01OTMsNiArNTk2LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIGFyY2hfdGxiYmF0 Y2hfYWRkX21tKHN0cnVjdCBhcmNoX3RsYmZsdXNoX3VubWFwX2JhdGNoICpiYXRjaCwKIGV4dGVy biB2b2lkIGFyY2hfdGxiYmF0Y2hfZmx1c2goc3RydWN0IGFyY2hfdGxiZmx1c2hfdW5tYXBfYmF0 Y2ggKmJhdGNoKTsKIAogI2lmbmRlZiBDT05GSUdfUEFSQVZJUlQKKyNkZWZpbmUgZmx1c2hfdGxi X211bHRpKG1hc2ssIGluZm8pCVwKKwluYXRpdmVfZmx1c2hfdGxiX211bHRpKG1hc2ssIGluZm8p CisKICNkZWZpbmUgZmx1c2hfdGxiX290aGVycyhtYXNrLCBpbmZvKQlcCiAJbmF0aXZlX2ZsdXNo X3RsYl9vdGhlcnMobWFzaywgaW5mbykKIApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2t2 bS5jIGIvYXJjaC94ODYva2VybmVsL2t2bS5jCmluZGV4IDNmMGNjODI4Y2MzNi4uYzFjMmI4OGVh M2YxIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJuZWwva3ZtLmMKKysrIGIvYXJjaC94ODYva2Vy bmVsL2t2bS5jCkBAIC02NDMsNiArNjQzLDcgQEAgc3RhdGljIHZvaWQgX19pbml0IGt2bV9ndWVz dF9pbml0KHZvaWQpCiAJICAgIGt2bV9wYXJhX2hhc19mZWF0dXJlKEtWTV9GRUFUVVJFX1NURUFM X1RJTUUpKSB7CiAJCXB2X29wcy5tbXUuZmx1c2hfdGxiX290aGVycyA9IGt2bV9mbHVzaF90bGJf b3RoZXJzOwogCQlwdl9vcHMubW11LnRsYl9yZW1vdmVfdGFibGUgPSB0bGJfcmVtb3ZlX3RhYmxl OworCQlzdGF0aWNfa2V5X2Rpc2FibGUoJmZsdXNoX3RsYl9tdWx0aV9lbmFibGVkLmtleSk7CiAJ fQogCiAJaWYgKGt2bV9wYXJhX2hhc19mZWF0dXJlKEtWTV9GRUFUVVJFX1BWX0VPSSkpCmRpZmYg LS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYyBiL2FyY2gveDg2L2tlcm5lbC9wYXJh dmlydC5jCmluZGV4IDU0OTJhNjY5ZjY1OC4uMTMxNGY4OTMwNGE4IDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9rZXJuZWwvcGFyYXZpcnQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvcGFyYXZpcnQuYwpA QCAtMTcxLDYgKzE3MSw4IEBAIHVuc2lnbmVkIHBhcmF2aXJ0X3BhdGNoX2luc25zKHZvaWQgKmlu c25fYnVmZiwgdW5zaWduZWQgbGVuLAogCXJldHVybiBpbnNuX2xlbjsKIH0KIAorREVGSU5FX1NU QVRJQ19LRVlfVFJVRShmbHVzaF90bGJfbXVsdGlfZW5hYmxlZCk7CisKIHN0YXRpYyB2b2lkIG5h dGl2ZV9mbHVzaF90bGIodm9pZCkKIHsKIAlfX25hdGl2ZV9mbHVzaF90bGIoKTsKQEAgLTM3NSw2 ICszNzcsNyBAQCBzdHJ1Y3QgcGFyYXZpcnRfcGF0Y2hfdGVtcGxhdGUgcHZfb3BzID0gewogCS5t bXUuZmx1c2hfdGxiX3VzZXIJPSBuYXRpdmVfZmx1c2hfdGxiLAogCS5tbXUuZmx1c2hfdGxiX2tl cm5lbAk9IG5hdGl2ZV9mbHVzaF90bGJfZ2xvYmFsLAogCS5tbXUuZmx1c2hfdGxiX29uZV91c2Vy CT0gbmF0aXZlX2ZsdXNoX3RsYl9vbmVfdXNlciwKKwkubW11LmZsdXNoX3RsYl9tdWx0aQk9IG5h dGl2ZV9mbHVzaF90bGJfbXVsdGksCiAJLm1tdS5mbHVzaF90bGJfb3RoZXJzCT0gbmF0aXZlX2Zs dXNoX3RsYl9vdGhlcnMsCiAJLm1tdS50bGJfcmVtb3ZlX3RhYmxlCT0KIAkJCSh2b2lkICgqKShz dHJ1Y3QgbW11X2dhdGhlciAqLCB2b2lkICopKXRsYl9yZW1vdmVfcGFnZSwKZGlmZiAtLWdpdCBh L2FyY2gveDg2L21tL3RsYi5jIGIvYXJjaC94ODYvbW0vdGxiLmMKaW5kZXggYWZkMjg1OWE2OTY2 Li4wZWMyYmZjYTc1ODEgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L21tL3RsYi5jCisrKyBiL2FyY2gv eDg2L21tL3RsYi5jCkBAIC01NTAsNyArNTUwLDcgQEAgc3RhdGljIHZvaWQgZmx1c2hfdGxiX2Z1 bmNfY29tbW9uKGNvbnN0IHN0cnVjdCBmbHVzaF90bGJfaW5mbyAqZiwKIAkJICogZ2FyYmFnZSBp bnRvIG91ciBUTEIuICBTaW5jZSBzd2l0Y2hpbmcgdG8gaW5pdF9tbSBpcyBiYXJlbHkKIAkJICog c2xvd2VyIHRoYW4gYSBtaW5pbWFsIGZsdXNoLCBqdXN0IHN3aXRjaCB0byBpbml0X21tLgogCQkg KgotCQkgKiBUaGlzIHNob3VsZCBiZSByYXJlLCB3aXRoIG5hdGl2ZV9mbHVzaF90bGJfb3RoZXJz IHNraXBwaW5nCisJCSAqIFRoaXMgc2hvdWxkIGJlIHJhcmUsIHdpdGggbmF0aXZlX2ZsdXNoX3Rs Yl9tdWx0aSBza2lwcGluZwogCQkgKiBJUElzIHRvIGxhenkgVExCIG1vZGUgQ1BVcy4KIAkJICov CiAJCXN3aXRjaF9tbV9pcnFzX29mZihOVUxMLCAmaW5pdF9tbSwgTlVMTCk7CkBAIC02MzQsOSAr NjM0LDEyIEBAIHN0YXRpYyB2b2lkIGZsdXNoX3RsYl9mdW5jX2NvbW1vbihjb25zdCBzdHJ1Y3Qg Zmx1c2hfdGxiX2luZm8gKmYsCiAJdGhpc19jcHVfd3JpdGUoY3B1X3RsYnN0YXRlLmN0eHNbbG9h ZGVkX21tX2FzaWRdLnRsYl9nZW4sIG1tX3RsYl9nZW4pOwogfQogCi1zdGF0aWMgdm9pZCBmbHVz aF90bGJfZnVuY19sb2NhbChjb25zdCB2b2lkICppbmZvLCBlbnVtIHRsYl9mbHVzaF9yZWFzb24g cmVhc29uKQorc3RhdGljIHZvaWQgZmx1c2hfdGxiX2Z1bmNfbG9jYWwodm9pZCAqaW5mbykKIHsK IAljb25zdCBzdHJ1Y3QgZmx1c2hfdGxiX2luZm8gKmYgPSBpbmZvOworCWVudW0gdGxiX2ZsdXNo X3JlYXNvbiByZWFzb247CisKKwlyZWFzb24gPSAoZi0+bW0gPT0gTlVMTCkgPyBUTEJfTE9DQUxf U0hPT1RET1dOIDogVExCX0xPQ0FMX01NX1NIT09URE9XTjsKIAogCWZsdXNoX3RsYl9mdW5jX2Nv bW1vbihmLCB0cnVlLCByZWFzb24pOwogfQpAQCAtNjU0LDE0ICs2NTcsMzAgQEAgc3RhdGljIHZv aWQgZmx1c2hfdGxiX2Z1bmNfcmVtb3RlKHZvaWQgKmluZm8pCiAJZmx1c2hfdGxiX2Z1bmNfY29t bW9uKGYsIGZhbHNlLCBUTEJfUkVNT1RFX1NIT09URE9XTik7CiB9CiAKLXN0YXRpYyBib29sIHRs Yl9pc19ub3RfbGF6eShpbnQgY3B1LCB2b2lkICpkYXRhKQorc3RhdGljIGlubGluZSBib29sIHRs Yl9pc19ub3RfbGF6eShpbnQgY3B1KQogewogCXJldHVybiAhcGVyX2NwdShjcHVfdGxic3RhdGUu aXNfbGF6eSwgY3B1KTsKIH0KIAotdm9pZCBuYXRpdmVfZmx1c2hfdGxiX290aGVycyhjb25zdCBz dHJ1Y3QgY3B1bWFzayAqY3B1bWFzaywKLQkJCSAgICAgY29uc3Qgc3RydWN0IGZsdXNoX3RsYl9p bmZvICppbmZvKQorc3RhdGljIERFRklORV9QRVJfQ1BVKGNwdW1hc2tfdCwgZmx1c2hfdGxiX21h c2spOworCit2b2lkIG5hdGl2ZV9mbHVzaF90bGJfbXVsdGkoY29uc3Qgc3RydWN0IGNwdW1hc2sg KmNwdW1hc2ssCisJCQkgICAgY29uc3Qgc3RydWN0IGZsdXNoX3RsYl9pbmZvICppbmZvKQogewor CS8qCisJICogbmF0aXZlX2ZsdXNoX3RsYl9tdWx0aSgpIGNhbiBoYW5kbGUgYSBzaW5nbGUgQ1BV LCBidXQgaXQgaXMKKwkgKiBzdWJvcHRpbWFsIGlmIHRoZSBsb2NhbCBUTEIgc2hvdWxkIGJlIGZs dXNoZWQsIGFuZCB0aGVyZWZvcmUgc2hvdWxkCisJICogbm90IGJlIHVzZWQgaW4gc3VjaCBjYXNl LiBDaGVjayB0aGF0IGl0IGlzIG5vdCB1c2VkIGluIHN1Y2ggY2FzZSwKKwkgKiBhbmQgdXNlIHRo aXMgYXNzdW1wdGlvbiBmb3IgdHJhY2luZyBhbmQgYWNjb3VudGluZyBvZiByZW1vdGUgVExCCisJ ICogZmx1c2hlcy4KKwkgKi8KKwlWTV9XQVJOX09OKCFjcHVtYXNrX2FueV9idXQoY3B1bWFzaywg c21wX3Byb2Nlc3Nvcl9pZCgpKSk7CisKKwkvKgorCSAqIERvIGFjY291bnRpbmcgYW5kIHRyYWNp bmcuIE5vdGUgdGhhdCB0aGVyZSBhcmUgKGFuZCBoYXZlIGFsd2F5cyBiZWVuKQorCSAqIGNhc2Vz IGluIHdoaWNoIGEgcmVtb3RlIFRMQiBmbHVzaCB3aWxsIGJlIHRyYWNlZCwgYnV0IGV2ZW50dWFs bHkKKwkgKiB3b3VsZCBub3QgaGFwcGVuLgorCSAqLwogCWNvdW50X3ZtX3RsYl9ldmVudChOUl9U TEJfUkVNT1RFX0ZMVVNIKTsKIAlpZiAoaW5mby0+ZW5kID09IFRMQl9GTFVTSF9BTEwpCiAJCXRy YWNlX3RsYl9mbHVzaChUTEJfUkVNT1RFX1NFTkRfSVBJLCBUTEJfRkxVU0hfQUxMKTsKQEAgLTY4 MSwxMCArNzAwLDE0IEBAIHZvaWQgbmF0aXZlX2ZsdXNoX3RsYl9vdGhlcnMoY29uc3Qgc3RydWN0 IGNwdW1hc2sgKmNwdW1hc2ssCiAJCSAqIG1lYW5zIHRoYXQgdGhlIHBlcmNwdSB0bGJfZ2VuIHZh cmlhYmxlcyB3b24ndCBiZSB1cGRhdGVkCiAJCSAqIGFuZCB3ZSdsbCBkbyBwb2ludGxlc3MgZmx1 c2hlcyBvbiBmdXR1cmUgY29udGV4dCBzd2l0Y2hlcy4KIAkJICoKLQkJICogUmF0aGVyIHRoYW4g aG9va2luZyBuYXRpdmVfZmx1c2hfdGxiX290aGVycygpIGhlcmUsIEkgdGhpbmsKKwkJICogUmF0 aGVyIHRoYW4gaG9va2luZyBuYXRpdmVfZmx1c2hfdGxiX211bHRpKCkgaGVyZSwgSSB0aGluawog CQkgKiB0aGF0IFVWIHNob3VsZCBiZSB1cGRhdGVkIHNvIHRoYXQgc21wX2NhbGxfZnVuY3Rpb25f bWFueSgpLAogCQkgKiBldGMsIGFyZSBvcHRpbWFsIG9uIFVWLgogCQkgKi8KKwkJbG9jYWxfaXJx X2Rpc2FibGUoKTsKKwkJZmx1c2hfdGxiX2Z1bmNfbG9jYWwoKF9fZm9yY2Ugdm9pZCAqKWluZm8p OworCQlsb2NhbF9pcnFfZW5hYmxlKCk7CisKIAkJY3B1bWFzayA9IHV2X2ZsdXNoX3RsYl9vdGhl cnMoY3B1bWFzaywgaW5mbyk7CiAJCWlmIChjcHVtYXNrKQogCQkJc21wX2NhbGxfZnVuY3Rpb25f bWFueShjcHVtYXNrLCBmbHVzaF90bGJfZnVuY19yZW1vdGUsCkBAIC03MDMsMTEgKzcyNiwzOSBA QCB2b2lkIG5hdGl2ZV9mbHVzaF90bGJfb3RoZXJzKGNvbnN0IHN0cnVjdCBjcHVtYXNrICpjcHVt YXNrLAogCSAqIGRvaW5nIGEgc3BlY3VsYXRpdmUgbWVtb3J5IGFjY2Vzcy4KIAkgKi8KIAlpZiAo aW5mby0+ZnJlZWRfdGFibGVzKQotCQlzbXBfY2FsbF9mdW5jdGlvbl9tYW55KGNwdW1hc2ssIGZs dXNoX3RsYl9mdW5jX3JlbW90ZSwKLQkJCSAgICAgICAodm9pZCAqKWluZm8sIDEpOwotCWVsc2UK LQkJb25fZWFjaF9jcHVfY29uZF9tYXNrKHRsYl9pc19ub3RfbGF6eSwgZmx1c2hfdGxiX2Z1bmNf cmVtb3RlLAotCQkJCSh2b2lkICopaW5mbywgMSwgR0ZQX0FUT01JQywgY3B1bWFzayk7CisJCV9f c21wX2NhbGxfZnVuY3Rpb25fbWFueShjcHVtYXNrLCBmbHVzaF90bGJfZnVuY19yZW1vdGUsCisJ CQkJCSBmbHVzaF90bGJfZnVuY19sb2NhbCwgKHZvaWQgKilpbmZvLCAxKTsKKwllbHNlIHsKKwkJ LyoKKwkJICogQWx0aG91Z2ggd2UgY291bGQgaGF2ZSB1c2VkIG9uX2VhY2hfY3B1X2NvbmRfbWFz aygpLAorCQkgKiBvcGVuLWNvZGluZyBpdCBoYXMgc2V2ZXJhbCBwZXJmb3JtYW5jZSBhZHZhbnRh Z2VzOiAoMSkgd2UgY2FuCisJCSAqIHVzZSBzcGVjaWFsaXplZCBmdW5jdGlvbnMgZm9yIHJlbW90 ZSBhbmQgbG9jYWwgZmx1c2hlczsgKDIpCisJCSAqIG5vIG5lZWQgZm9yIGluZGlyZWN0IGJyYW5j aCB0byB0ZXN0IGlmIFRMQiBpcyBsYXp5OyAoMykgd2UKKwkJICogY2FuIHVzZSBhIGRlc2lnbmF0 ZWQgY3B1bWFzayBmb3IgZXZhbHVhdGluZyB0aGUgY29uZGl0aW9uCisJCSAqIGluc3RlYWQgb2Yg YWxsb2NhdGluZyBhIG5ldyBvbmUuCisJCSAqCisJCSAqIFRoaXMgd29ya3MgdW5kZXIgdGhlIGFz c3VtcHRpb24gdGhhdCB0aGVyZSBhcmUgbm8gbmVzdGVkIFRMQgorCQkgKiBmbHVzaGVzLCBhbiBh c3N1bXB0aW9uIHRoYXQgaXMgYWxyZWFkeSBtYWRlIGluCisJCSAqIGZsdXNoX3RsYl9tbV9yYW5n ZSgpLgorCQkgKi8KKwkJc3RydWN0IGNwdW1hc2sgKmNvbmRfY3B1bWFzayA9IHRoaXNfY3B1X3B0 cigmZmx1c2hfdGxiX21hc2spOworCQlpbnQgY3B1OworCisJCWNwdW1hc2tfY2xlYXIoY29uZF9j cHVtYXNrKTsKKworCQlmb3JfZWFjaF9jcHUoY3B1LCBjcHVtYXNrKSB7CisJCQlpZiAodGxiX2lz X25vdF9sYXp5KGNwdSkpCisJCQkJX19jcHVtYXNrX3NldF9jcHUoY3B1LCBjb25kX2NwdW1hc2sp OworCQl9CisJCV9fc21wX2NhbGxfZnVuY3Rpb25fbWFueShjb25kX2NwdW1hc2ssIGZsdXNoX3Rs Yl9mdW5jX3JlbW90ZSwKKwkJCQkJIGZsdXNoX3RsYl9mdW5jX2xvY2FsLCAodm9pZCAqKWluZm8s IDEpOworCX0KK30KKwordm9pZCBuYXRpdmVfZmx1c2hfdGxiX290aGVycyhjb25zdCBzdHJ1Y3Qg Y3B1bWFzayAqY3B1bWFzaywKKwkJCSAgICAgY29uc3Qgc3RydWN0IGZsdXNoX3RsYl9pbmZvICpp bmZvKQoreworCW5hdGl2ZV9mbHVzaF90bGJfbXVsdGkoY3B1bWFzaywgaW5mbyk7CiB9CiAKIC8q CkBAIC03NzMsMTAgKzgyNCwxNSBAQCBzdGF0aWMgdm9pZCBmbHVzaF90bGJfb25fY3B1cyhjb25z dCBjcHVtYXNrX3QgKmNwdW1hc2ssCiB7CiAJaW50IHRoaXNfY3B1ID0gc21wX3Byb2Nlc3Nvcl9p ZCgpOwogCisJaWYgKHN0YXRpY19icmFuY2hfbGlrZWx5KCZmbHVzaF90bGJfbXVsdGlfZW5hYmxl ZCkpIHsKKwkJZmx1c2hfdGxiX211bHRpKGNwdW1hc2ssIGluZm8pOworCQlyZXR1cm47CisJfQor CiAJaWYgKGNwdW1hc2tfdGVzdF9jcHUodGhpc19jcHUsIGNwdW1hc2spKSB7CiAJCWxvY2tkZXBf YXNzZXJ0X2lycXNfZW5hYmxlZCgpOwogCQlsb2NhbF9pcnFfZGlzYWJsZSgpOwotCQlmbHVzaF90 bGJfZnVuY19sb2NhbChpbmZvLCBUTEJfTE9DQUxfTU1fU0hPT1RET1dOKTsKKwkJZmx1c2hfdGxi X2Z1bmNfbG9jYWwoKF9fZm9yY2Ugdm9pZCAqKWluZm8pOwogCQlsb2NhbF9pcnFfZW5hYmxlKCk7 CiAJfQogCmRpZmYgLS1naXQgYS9hcmNoL3g4Ni94ZW4vbW11X3B2LmMgYi9hcmNoL3g4Ni94ZW4v bW11X3B2LmMKaW5kZXggYmViNDRlMjJhZmRmLi4wY2IyNzc4NDhjYjQgMTAwNjQ0Ci0tLSBhL2Fy Y2gveDg2L3hlbi9tbXVfcHYuYworKysgYi9hcmNoL3g4Ni94ZW4vbW11X3B2LmMKQEAgLTI0NzQs NiArMjQ3NCw4IEBAIHZvaWQgX19pbml0IHhlbl9pbml0X21tdV9vcHModm9pZCkKIAogCXB2X29w cy5tbXUgPSB4ZW5fbW11X29wczsKIAorCXN0YXRpY19rZXlfZGlzYWJsZSgmZmx1c2hfdGxiX211 bHRpX2VuYWJsZWQua2V5KTsKKwogCW1lbXNldChkdW1teV9tYXBwaW5nLCAweGZmLCBQQUdFX1NJ WkUpOwogfQogCi0tIAoyLjIwLjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5w cm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8v eGVuLWRldmVs