From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 6/6] xen/x86: use PCID feature for XPTI Date: Fri, 2 Mar 2018 09:14:03 +0100 Message-ID: <20180302081403.16953-7-jgross@suse.com> References: <20180302081403.16953-1-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1erfpT-0004Ho-Up for xen-devel@lists.xenproject.org; Fri, 02 Mar 2018 08:14:11 +0000 In-Reply-To: <20180302081403.16953-1-jgross@suse.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Juergen Gross , andrew.cooper3@citrix.com, wei.liu2@citrix.com, jbeulich@suse.com, dfaggioli@suse.com List-Id: xen-devel@lists.xenproject.org QXZvaWQgZmx1c2hpbmcgdGhlIGNvbXBsZXRlIFRMQiB3aGVuIHN3aXRjaGluZyAlY3IzIGZvciBt aXRpZ2F0aW9uIG9mCk1lbHRkb3duIGJ5IHVzaW5nIHRoZSBQQ0lEIGZlYXR1cmUgaWYgYXZhaWxh YmxlLgoKV2UgYXJlIHVzaW5nIDQgUENJRCB2YWx1ZXMgZm9yIGEgNjQgYml0IHB2IGRvbWFpbiBz dWJqZWN0IHRvIFhQVEk6CgotIGh5cGVydmlzb3IgYWN0aXZlIGFuZCBndWVzdCBpbiBrZXJuZWwg bW9kZQotIGd1ZXN0IGFjdGl2ZSBhbmQgaW4ga2VybmVsIG1vZGUKLSBoeXBlcnZpc29yIGFjdGl2 ZSBhbmQgZ3Vlc3QgaW4gdXNlciBtb2RlCi0gZ3Vlc3QgYWN0aXZlIGFuZCBpbiB1c2VyIG1vZGUK ClRoZSAyIGh5cGVydmlzb3IgY2FzZXMgY291bGQgcG9zc2libHkgYmUgbWVyZ2VkLCBidXQgZm9y IHNlY3VyaXR5CnJlYXNvbnMgdGhpcyBpcyBsZWZ0IGZvciBhbm90aGVyIHBhdGNoLgoKQWRkIGEg cGNpZCBmbGFnIHRvIHN0cnVjdCBwdl9kb21haW4gdG8gbWFrZSBpdCBwb3NzaWJsZSB1c2luZyBQ Q0lECndpdGhvdXQgWFBUSSBsYXRlci4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpn cm9zc0BzdXNlLmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvY3B1L210cnIvZ2VuZXJpYy5jIHwgIDUg KysrCiB4ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYyAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4 Ni9mbHVzaHRsYi5jICAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICB8IDEyICsrKysrKy0K IHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICAgfCAgNCArKysKIHhlbi9hcmNoL3g4Ni9z ZXR1cC5jICAgICAgICAgICAgfCAgMyArKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCAg ICB8IDM0ICsrKysrKysrKysrKystLS0tLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYveDg2LWRlZm5z LmggfCAgMSArCiA4IGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlvbnMoKyksIDQ1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9jcHUvbXRyci9nZW5lcmljLmMgYi94ZW4v YXJjaC94ODYvY3B1L210cnIvZ2VuZXJpYy5jCmluZGV4IGQ3MDUxMzgxMDAuLjg0YjljZDc4ZGYg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvbXRyci9nZW5lcmljLmMKKysrIGIveGVuL2Fy Y2gveDg2L2NwdS9tdHJyL2dlbmVyaWMuYwpAQCAtNSw2ICs1LDcgQEAKICNpbmNsdWRlIDx4ZW4v bW0uaD4KICNpbmNsdWRlIDx4ZW4vc3RkYm9vbC5oPgogI2luY2x1ZGUgPGFzbS9mbHVzaHRsYi5o PgorI2luY2x1ZGUgPGFzbS9pbnZwY2lkLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAjaW5jbHVk ZSA8YXNtL210cnIuaD4KICNpbmNsdWRlIDxhc20vbXNyLmg+CkBAIC00MTcsNiArNDE4LDggQEAg c3RhdGljIGJvb2wgcHJlcGFyZV9zZXQodm9pZCkKIAljcjQgPSByZWFkX2NyNCgpOwogCWlmIChj cjQgJiBYODZfQ1I0X1BHRSkKIAkJd3JpdGVfY3I0KGNyNCAmIH5YODZfQ1I0X1BHRSk7CisJZWxz ZSBpZiAoIGNwdV9oYXNfaW52cGNpZCApCisJCWludnBjaWRfZmx1c2hfYWxsKCk7CiAJZWxzZQog CQlhc20gdm9sYXRpbGUoICJtb3YgJTAsICUlY3IzIiA6IDogInIiIChyZWFkX2NyMygpKSA6ICJt ZW1vcnkiICk7CiAKQEAgLTQ0MCw2ICs0NDMsOCBAQCBzdGF0aWMgdm9pZCBwb3N0X3NldChib29s IHBnZSkKIAkvKiAgUmVlbmFibGUgQ1I0LlBHRSAoYWxzbyBmbHVzaGVzIHRoZSBUTEIpICovCiAJ aWYgKHBnZSkKIAkJd3JpdGVfY3I0KHJlYWRfY3I0KCkgfCBYODZfQ1I0X1BHRSk7CisJZWxzZSBp ZiAoIGNwdV9oYXNfaW52cGNpZCApCisJCWludnBjaWRfZmx1c2hfYWxsKCk7CiAJZWxzZQogCQlh c20gdm9sYXRpbGUoICJtb3YgJTAsICUlY3IzIiA6IDogInIiIChyZWFkX2NyMygpKSA6ICJtZW1v cnkiICk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21haW5fcGFnZS5jIGIveGVuL2Fy Y2gveDg2L2RvbWFpbl9wYWdlLmMKaW5kZXggMzQzMmE4NTRkZC4uZTRiN2Y3NGYzNCAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWFp bl9wYWdlLmMKQEAgLTUxLDcgKzUxLDcgQEAgc3RhdGljIGlubGluZSBzdHJ1Y3QgdmNwdSAqbWFw Y2FjaGVfY3VycmVudF92Y3B1KHZvaWQpCiAgICAgICAgIGlmICggKHYgPSBpZGxlX3ZjcHVbc21w X3Byb2Nlc3Nvcl9pZCgpXSkgPT0gY3VycmVudCApCiAgICAgICAgICAgICBzeW5jX2xvY2FsX2V4 ZWNzdGF0ZSgpOwogICAgICAgICAvKiBXZSBtdXN0IG5vdyBiZSBydW5uaW5nIG9uIHRoZSBpZGxl IHBhZ2UgdGFibGUuICovCi0gICAgICAgIEFTU0VSVChyZWFkX2NyMygpID09IF9fcGEoaWRsZV9w Z190YWJsZSkpOworICAgICAgICBBU1NFUlQoKHJlYWRfY3IzKCkgJiB+WDg2X0NSM19QQ0lETUFT SykgPT0gX19wYShpZGxlX3BnX3RhYmxlKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIHY7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvZmx1c2h0bGIuYyBiL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5j CmluZGV4IDE4NmQ5MDk5ZjYuLmE2NWZhZDAwZWQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9m bHVzaHRsYi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9mbHVzaHRsYi5jCkBAIC03NSwzOSArNzUsNDYg QEAgc3RhdGljIHZvaWQgcG9zdF9mbHVzaCh1MzIgdCkKIHN0YXRpYyB2b2lkIGRvX2ZsdXNoX3Rs Yih1bnNpZ25lZCBsb25nIGNyMykKIHsKICAgICB1bnNpZ25lZCBsb25nIGNyNDsKKyAgICB1MzIg dDsKKworICAgIHQgPSBwcmVfZmx1c2goKTsKIAogICAgIGNyNCA9IHJlYWRfY3I0KCk7Ci0gICAg aWYgKCBjcjQgJiBYODZfQ1I0X1BHRSApCisKKyAgICBpZiAoIGNwdV9oYXNfaW52cGNpZCApCiAg ICAgewotICAgICAgICB3cml0ZV9jcjQoY3I0ICYgflg4Nl9DUjRfUEdFKTsKICAgICAgICAgaWYg KCBjcjMgKQogICAgICAgICAgICAgYXNtIHZvbGF0aWxlICggIm1vdiAlMCwgJSVjcjMiIDogOiAi ciIgKGNyMykgOiAibWVtb3J5IiApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBiYXJyaWVy KCk7Ci0gICAgICAgIHdyaXRlX2NyNChjcjQpOworICAgICAgICBpZiAoICFjcjMgfHwgKGNyMyAm IFg4Nl9DUjNfTk9GTFVTSCkgfHwgKGNyNCAmIFg4Nl9DUjRfUEdFKSApCisgICAgICAgICAgICBp bnZwY2lkX2ZsdXNoX2FsbCgpOwogICAgIH0KICAgICBlbHNlCiAgICAgewotICAgICAgICBpZiAo ICFjcjMgKQorICAgICAgICAvKiBQQ0lEIG5vdCBwb3NzaWJsZSBoZXJlLCBhcyBpbnZwY2lkIGlz IHJlcXVpcmVkIGZvciBQQ0lELiAqLworICAgICAgICBpZiAoIGNyNCAmIFg4Nl9DUjRfUEdFICkK KyAgICAgICAgICAgIHdyaXRlX2NyNChjcjQgJiB+WDg2X0NSNF9QR0UpOworICAgICAgICBlbHNl IGlmICggIWNyMyApCiAgICAgICAgICAgICBjcjMgPSByZWFkX2NyMygpOwotICAgICAgICBhc20g dm9sYXRpbGUgKCAibW92ICUwLCAlJWNyMyIgOiA6ICJyIiAoY3IzKSA6ICJtZW1vcnkiICk7Cisg ICAgICAgIGlmICggY3IzICkKKyAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoICJtb3YgJTAsICUl Y3IzIiA6IDogInIiIChjcjMpIDogIm1lbW9yeSIgKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg ICAgYmFycmllcigpOworICAgICAgICBpZiAoIGNyNCAmIFg4Nl9DUjRfUEdFICkKKyAgICAgICAg ICAgIHdyaXRlX2NyNChjcjQpOwogICAgIH0KKworICAgIHBvc3RfZmx1c2godCk7CiB9CiAKIHZv aWQgd3JpdGVfY3IzKHVuc2lnbmVkIGxvbmcgY3IzKQogewogICAgIHVuc2lnbmVkIGxvbmcgZmxh Z3M7Ci0gICAgdTMyIHQ7CiAKICAgICAvKiBUaGlzIG5vbi1yZWVudHJhbnQgZnVuY3Rpb24gaXMg c29tZXRpbWVzIGNhbGxlZCBpbiBpbnRlcnJ1cHQgY29udGV4dC4gKi8KICAgICBsb2NhbF9pcnFf c2F2ZShmbGFncyk7CiAKLSAgICB0ID0gcHJlX2ZsdXNoKCk7Ci0KICAgICBkb19mbHVzaF90bGIo Y3IzKTsKIAotICAgIHBvc3RfZmx1c2godCk7Ci0KICAgICBsb2NhbF9pcnFfcmVzdG9yZShmbGFn cyk7CiB9CiAKQEAgLTEyOCwzMCArMTM1LDMzIEBAIHVuc2lnbmVkIGludCBmbHVzaF9hcmVhX2xv Y2FsKGNvbnN0IHZvaWQgKnZhLCB1bnNpZ25lZCBpbnQgZmxhZ3MpCiAgICAgewogICAgICAgICBp ZiAoIG9yZGVyID09IDAgKQogICAgICAgICB7Ci0gICAgICAgICAgICAvKgotICAgICAgICAgICAg ICogV2UgZG9uJ3QgSU5WTFBHIG11bHRpLXBhZ2UgcmVnaW9ucyBiZWNhdXNlIHRoZSAyTS80TS8x RwotICAgICAgICAgICAgICogcmVnaW9uIG1heSBub3QgaGF2ZSBiZWVuIG1hcHBlZCB3aXRoIGEg c3VwZXJwYWdlLiBBbHNvIHRoZXJlCi0gICAgICAgICAgICAgKiBhcmUgdmFyaW91cyBlcnJhdGEg c3Vycm91bmRpbmcgSU5WTFBHIHVzYWdlIG9uIHN1cGVycGFnZXMsIGFuZAotICAgICAgICAgICAg ICogYSBmdWxsIGZsdXNoIGlzIGluIGFueSBjYXNlIG5vdCAqdGhhdCogZXhwZW5zaXZlLgotICAg ICAgICAgICAgICovCi0gICAgICAgICAgICBhc20gdm9sYXRpbGUgKCAiaW52bHBnICUwIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiA6ICJtIiAoKihjb25zdCBjaGFyICopKHZhKSkgOiAi bWVtb3J5IiApOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAg ICAgdTMyIHQgPSBwcmVfZmx1c2goKTsKKyAgICAgICAgICAgIGlmICggcmVhZF9jcjMoKSAmIFg4 Nl9DUjNfUENJRE1BU0sgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHVuc2lnbmVk IGxvbmcgYWRkciA9ICh1bnNpZ25lZCBsb25nKXZhOwogCi0gICAgICAgICAgICBpZiAoICFjcHVf aGFzX2ludnBjaWQgKQotICAgICAgICAgICAgICAgIGRvX2ZsdXNoX3RsYigwKTsKKyAgICAgICAg ICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIEZsdXNoIHRoZSBhZGRyZXNzZXMgZm9yIGFs bCBwb3RlbnRpYWwgYWRkcmVzcyBzcGFjZXMuCisgICAgICAgICAgICAgICAgICovCisgICAgICAg ICAgICAgICAgaW52cGNpZF9mbHVzaF9vbmUoUENJRF9QVl9QUklWLCBhZGRyKTsKKyAgICAgICAg ICAgICAgICBpbnZwY2lkX2ZsdXNoX29uZShQQ0lEX1BWX1VTRVIsIGFkZHIpOworICAgICAgICAg ICAgICAgIGludnBjaWRfZmx1c2hfb25lKFBDSURfUFZfUFJJViB8IFBDSURfUFZfWEVOLCBhZGRy KTsKKyAgICAgICAgICAgICAgICBpbnZwY2lkX2ZsdXNoX29uZShQQ0lEX1BWX1VTRVIgfCBQQ0lE X1BWX1hFTiwgYWRkcik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCisgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAgICAgKiBVc2luZyBpbnZw Y2lkIHRvIGZsdXNoIGFsbCBtYXBwaW5ncyB3b3JrcwotICAgICAgICAgICAgICAgICAqIHJlZ2Fy ZGxlc3Mgb2Ygd2hldGhlciBQQ0lEIGlzIGVuYWJsZWQgb3Igbm90LgotICAgICAgICAgICAgICAg ICAqIEl0IGlzIGZhc3RlciB0aGFuIHJlYWQtbW9kaWZ5LXdyaXRlIENSNC4KKyAgICAgICAgICAg ICAgICAgKiBXZSBkb24ndCBJTlZMUEcgbXVsdGktcGFnZSByZWdpb25zIGJlY2F1c2UgdGhlIDJN LzRNLzFHCisgICAgICAgICAgICAgICAgICogcmVnaW9uIG1heSBub3QgaGF2ZSBiZWVuIG1hcHBl ZCB3aXRoIGEgc3VwZXJwYWdlLiBBbHNvIHRoZXJlCisgICAgICAgICAgICAgICAgICogYXJlIHZh cmlvdXMgZXJyYXRhIHN1cnJvdW5kaW5nIElOVkxQRyB1c2FnZSBvbiBzdXBlcnBhZ2VzLAorICAg ICAgICAgICAgICAgICAqIGFuZCBhIGZ1bGwgZmx1c2ggaXMgaW4gYW55IGNhc2Ugbm90ICp0aGF0 KiBleHBlbnNpdmUuCiAgICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgaW52cGNp ZF9mbHVzaF9hbGwoKTsKLQotICAgICAgICAgICAgcG9zdF9mbHVzaCh0KTsKKyAgICAgICAgICAg ICAgICBhc20gdm9sYXRpbGUgKCAiaW52bHBnICUwIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogOiAibSIgKCooY29uc3QgY2hhciAqKSh2YSkpIDogIm1lbW9yeSIgKTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAg IGRvX2ZsdXNoX3RsYigwKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCAyZDgzNjZhMDFjLi44MmZiYmUw YTEwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94ZW4vYXJjaC94ODYvbW0u YwpAQCAtNTA2LDYgKzUwNiw4IEBAIHZvaWQgZnJlZV9zaGFyZWRfZG9taGVhcF9wYWdlKHN0cnVj dCBwYWdlX2luZm8gKnBhZ2UpCiB2b2lkIG1ha2VfY3IzKHN0cnVjdCB2Y3B1ICp2LCBtZm5fdCBt Zm4pCiB7CiAgICAgdi0+YXJjaC5jcjMgPSBtZm5feChtZm4pIDw8IFBBR0VfU0hJRlQ7CisgICAg aWYgKCBpc19wdl92Y3B1KHYpICYmIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ucGNpZCApCisg ICAgICAgIHYtPmFyY2guY3IzIHw9IFg4Nl9DUjNfTk9GTFVTSCB8IGdldF9wdl9wY2lkKHYsIDEp OwogfQogCiB2b2lkIHdyaXRlX3B0YmFzZShzdHJ1Y3QgdmNwdSAqdikKQEAgLTUxNCw3ICs1MTYs MTUgQEAgdm9pZCB3cml0ZV9wdGJhc2Uoc3RydWN0IHZjcHUgKnYpCiAgICAgewogICAgICAgICBn ZXRfY3B1X2luZm8oKS0+cm9vdF9wZ3RfY2hhbmdlZCA9IHRydWU7CiAgICAgICAgIGdldF9jcHVf aW5mbygpLT5wdl9jcjMgPSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7Ci0gICAgICAgIGFzbSB2 b2xhdGlsZSAoICJtb3YgJTAsICUlY3IzIiA6IDogInIiICh2LT5hcmNoLmNyMykgOiAibWVtb3J5 IiApOworICAgICAgICBpZiAoIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ucGNpZCApCisgICAg ICAgIHsKKyAgICAgICAgICAgIGdldF9jcHVfaW5mbygpLT5wdl9jcjMgfD0gWDg2X0NSM19OT0ZM VVNIIHwgZ2V0X3B2X3BjaWQodiwgMCk7CisgICAgICAgICAgICB3cml0ZV9jcjModi0+YXJjaC5j cjMpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgYXNt IHZvbGF0aWxlICggIm1vdiAlMCwgJSVjcjMiIDogOiAiciIgKHYtPmFyY2guY3IzKSA6ICJtZW1v cnkiICk7CisgICAgICAgIH0KICAgICB9CiAgICAgZWxzZQogICAgIHsKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9wdi9kb21haW4uYyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwppbmRleCA1 ZjE1YzllMjViLi4zNzMzOGIyYTAxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMKKysrIGIveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCkBAIC05Niw4ICs5NiwxMiBAQCB2b2lk IHhwdGlfZG9tYWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKICAgICB9CiAKICAgICBpZiAoIGQt PmFyY2gucHZfZG9tYWluLnhwdGkgKQorICAgIHsKKyAgICAgICAgZC0+YXJjaC5wdl9kb21haW4u cGNpZCA9IGNwdV9oYXNfcGNpZCAmJiBjcHVfaGFzX2ludnBjaWQ7CisKICAgICAgICAgcHJpbnRr KCJFbmFibGluZyBYZW4gUGFnZXRhYmxlIHByb3RlY3Rpb24gKFhQVEkpIGZvciBEb21haW4gJWRc biIsCiAgICAgICAgICAgICAgICBkLT5kb21haW5faWQpOworICAgIH0KIH0KIAogc3RhdGljIHZv aWQgbm9yZXR1cm4gY29udGludWVfbm9uaWRsZV9kb21haW4oc3RydWN0IHZjcHUgKnYpCmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCmluZGV4 IDdjOWZiZmUwNGEuLjc4MWYxOTFlNmUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zZXR1cC5j CisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0xNTQ3LDYgKzE1NDcsOSBAQCB2b2lkIF9f aW5pdCBub3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogICAgIGlmICgg Y3B1X2hhc19mc2dzYmFzZSApCiAgICAgICAgIHNldF9pbl9jcjQoWDg2X0NSNF9GU0dTQkFTRSk7 CiAKKyAgICBpZiAoIGNwdV9oYXNfaW52cGNpZCAmJiBjcHVfaGFzX3BjaWQgKQorICAgICAgICBz ZXRfaW5fY3I0KFg4Nl9DUjRfUENJREUpOworCiAgICAgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0 aW9ucygpOwogCiAgICAgaW5pdF9pZGxlX2RvbWFpbigpOwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgKaW5kZXgg MzE2NDE4YTZmZS4uYTJjYTAzNTgzZiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9k b21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCkBAIC0yNjAsOCArMjYw LDIwIEBAIHN0cnVjdCBwdl9kb21haW4KIAogICAgIC8qIFhQVEkgYWN0aXZlPyAqLwogICAgIGJv b2wgeHB0aTsKKworICAgIC8qIFVzZSBQQ0lEIGZvciB0aGUgZGlmZmVyZW50IGFkZHJlc3Mgc3Bh Y2VzPyAqLworICAgIGJvb2wgcGNpZDsKIH07CiAKKy8qIFBDSUQgdmFsdWVzIGZvciB0aGUgYWRk cmVzcyBzcGFjZXM6ICovCisjZGVmaW5lIFBDSURfUFZfUFJJViAgICAgIDB4MDAwMQorI2RlZmlu ZSBQQ0lEX1BWX1VTRVIgICAgICAweDAwMDIKKyNkZWZpbmUgUENJRF9QVl9YRU4gICAgICAgMHgw MDA0ICAgIC8qIFRvIGJlIE9SZWQgdG8gYWJvdmUgdmFsdWVzLiAqLworCisjZGVmaW5lIGdldF9w dl9wY2lkKHYsIHhlbikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICgoKHhlbikgPyBQQ0lEX1BWX1hFTiA6IDApIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKCgodiktPmFyY2guZmxhZ3MgJiBURl9rZXJu ZWxfbW9kZSkgPyBQQ0lEX1BWX1BSSVYgOiBQQ0lEX1BWX1VTRVIpKQorCiBzdHJ1Y3QgbW9uaXRv cl93cml0ZV9kYXRhIHsKICAgICBzdHJ1Y3QgewogICAgICAgICB1bnNpZ25lZCBpbnQgbXNyIDog MTsKQEAgLTYxNSwxOCArNjI3LDE4IEBAIHZvaWQgdmNwdV9zaG93X3JlZ2lzdGVycyhjb25zdCBz dHJ1Y3QgdmNwdSAqKTsKIHVuc2lnbmVkIGxvbmcgcHZfZ3Vlc3RfY3I0X2ZpeHVwKGNvbnN0IHN0 cnVjdCB2Y3B1ICosIHVuc2lnbmVkIGxvbmcgZ3Vlc3RfY3I0KTsKIAogLyogQ29udmVydCBiZXR3 ZWVuIGd1ZXN0LXZpc2libGUgYW5kIHJlYWwgQ1I0IHZhbHVlcy4gKi8KLSNkZWZpbmUgcHZfZ3Vl c3RfY3I0X3RvX3JlYWxfY3I0KHYpICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICAoKCh2 KS0+YXJjaC5wdl92Y3B1LmN0cmxyZWdbNF0gICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAg ICAgIHwgKG1tdV9jcjRfZmVhdHVyZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICAgICAgICYgKFg4Nl9DUjRfUEdFIHwgWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1NNRVAg fCAgICAgIFwKLSAgICAgICAgICAgIFg4Nl9DUjRfU01BUCB8IFg4Nl9DUjRfT1NYU0FWRSB8ICAg ICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIFg4Nl9DUjRfRlNHU0JBU0UpKSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKLSAgICAgIHwgKCh2KS0+ZG9tYWluLT5hcmNoLnZ0c2MgPyBY ODZfQ1I0X1RTRCA6IDApKSAgICAgICAgIFwKLSAgICAgJiB+KFg4Nl9DUjRfREUgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgcHZfZ3Vlc3RfY3I0X3Rv X3JlYWxfY3I0KHYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgodiktPmFy Y2gucHZfdmNwdS5jdHJscmVnWzRdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgfCAobW11X2NyNF9mZWF0dXJlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwKKyAgICAgICAgICYgKFg4Nl9DUjRfUEdFIHwgWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1NN RVAgfCAgICAgICAgICBcCisgICAgICAgICAgICBYODZfQ1I0X1NNQVAgfCBYODZfQ1I0X09TWFNB VkUgfCAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgWDg2X0NSNF9GU0dTQkFTRSB8 IFg4Nl9DUjRfUENJREUpKSAgICAgICAgICAgICAgICAgIFwKKyAgICAgIHwgKCh2KS0+ZG9tYWlu LT5hcmNoLnZ0c2MgPyBYODZfQ1I0X1RTRCA6IDApKSAgICAgICAgICAgICBcCisgICAgICYgfihY ODZfQ1I0X0RFIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgICAgICAgKCh2KS0+ZG9tYWluLT5hcmNoLnB2X2RvbWFpbi54cHRpID8gWDg2X0NSNF9QR0Ug OiAwKSkpCi0jZGVmaW5lIHJlYWxfY3I0X3RvX3B2X2d1ZXN0X2NyNChjKSAgICAgICAgICAgICAg ICAgICAgICAgICBcCi0gICAgKChjKSAmIH4oWDg2X0NSNF9QR0UgfCBYODZfQ1I0X1BTRSB8IFg4 Nl9DUjRfVFNEIHwgICAgICBcCi0gICAgICAgICAgICAgWDg2X0NSNF9PU1hTQVZFIHwgWDg2X0NS NF9TTUVQIHwgICAgICAgICAgICAgICBcCisjZGVmaW5lIHJlYWxfY3I0X3RvX3B2X2d1ZXN0X2Ny NChjKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICgoYykgJiB+KFg4Nl9DUjRf UEdFIHwgWDg2X0NSNF9QU0UgfCBYODZfQ1I0X1RTRCB8ICAgICAgICAgIFwKKyAgICAgICAgICAg ICBYODZfQ1I0X09TWFNBVkUgfCBYODZfQ1I0X1NNRVAgfCBYODZfQ1I0X1BDSURFIHwgICBcCiAg ICAgICAgICAgICAgWDg2X0NSNF9GU0dTQkFTRSB8IFg4Nl9DUjRfU01BUCkpCiAKICNkZWZpbmUg ZG9tYWluX21heF92Y3B1cyhkKSAoaXNfaHZtX2RvbWFpbihkKSA/IEhWTV9NQVhfVkNQVVMgOiBN QVhfVklSVF9DUFVTKQpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODYtZGVmbnMu aCBiL3hlbi9pbmNsdWRlL2FzbS14ODYveDg2LWRlZm5zLmgKaW5kZXggODU5OGFkZWYxNC4uZDAw Nzk5N2Y4OCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni94ODYtZGVmbnMuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3g4Ni1kZWZucy5oCkBAIC00Niw2ICs0Niw3IEBACiAgKiBJ bnRlbCBDUFUgZmxhZ3MgaW4gQ1IzCiAgKi8KICNkZWZpbmUgWDg2X0NSM19OT0ZMVVNIIChfQUMo MSwgVUxMKSA8PCA2MykKKyNkZWZpbmUgWDg2X0NSM19QQ0lETUFTSyBfQUMoMHgwMDAwMDAwMDAw MDAwZmZmLCBVTEwpIC8qIE1hc2sgZm9yIFBDSUQgKi8KIAogLyoKICAqIEludGVsIENQVSBmZWF0 dXJlcyBpbiBDUjQKLS0gCjIuMTMuNgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=