From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v2 3/6] xen/x86: support per-domain flag for xpti Date: Fri, 2 Mar 2018 09:14:00 +0100 Message-ID: <20180302081403.16953-4-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 1erftk-0005AC-0U for xen-devel@lists.xenproject.org; Fri, 02 Mar 2018 08:18:36 +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 SW5zdGVhZCBvZiBzd2l0Y2hpbmcgWFBUSSBnbG9iYWxseSBvbiBvciBvZmYgYWRkIGEgcGVyLWRv bWFpbiBmbGFnIGZvcgp0aGF0IHB1cnBvc2UuIFRoaXMgYWxsb3dzIHRvIG1vZGlmeSB0aGUgeHB0 aSBib290IHBhcmFtZXRlciB0byBzdXBwb3J0CnJ1bm5pbmcgZG9tMCB3aXRob3V0IE1lbHRkb3du IG1pdGlnYXRpb25zLiBVc2luZyAieHB0aT1ub2RvbTAiIGFzIGJvb3QKcGFyYW1ldGVyIHdpbGwg YWNoaWV2ZSB0aGF0LgoKTW92ZSB0aGUgeHB0aSBib290IHBhcmFtZXRlciBoYW5kbGluZyB0byB4 ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYXMKaXQgaXMgcHYtZG9tYWluIHNwZWNpZmljLgoKU2ln bmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KIGRvY3MvbWlz Yy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duIHwgIDggKysrLQogeGVuL2FyY2gveDg2L2RvbWN0 bC5jICAgICAgICAgICAgICAgfCAgNCArKwogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAg ICAgICAgfCAgNiArKy0KIHhlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMgICAgICAgIHwgIDQg KysKIHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICAgICAgIHwgODUgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLQogeGVuL2FyY2gveDg2L3NldHVwLmMgICAgICAgICAg ICAgICAgfCAyMCArLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICAg IHwgIDQgKy0KIHhlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyAgICAgICAgIHwgIDIgKwogeGVu L2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggICAgICAgfCAgMyArLQogeGVuL2luY2x1ZGUvYXNt LXg4Ni9kb21haW4uaCAgICAgICAgfCAgMyArKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9wdi9kb21h aW4uaCAgICAgfCAgNCArKwogMTEgZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMoKyksIDI0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1h cmtkb3duIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24KaW5kZXggYTk1MTk1 ZjI0Ni4uNjEyMmQ2ZDdkNSAxMDA2NDQKLS0tIGEvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUu bWFya2Rvd24KKysrIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24KQEAgLTE5 NDAsNyArMTk0MCw3IEBAIGNsdXN0ZXJlZCBtb2RlLiAgVGhlIGRlZmF1bHQsIGdpdmVuIG5vIGhp bnQgZnJvbSB0aGUgKipGQURUKiosIGlzIGNsdXN0ZXIKIG1vZGUuCiAKICMjIyB4cHRpCi0+IGA9 IDxib29sZWFuPmAKKz4gYD0gbm9kb20wIHwgPGJvb2xlYW4+YAogCiA+IERlZmF1bHQ6IGBmYWxz ZWAgb24gQU1EIGhhcmR3YXJlCiA+IERlZmF1bHQ6IGB0cnVlYCBldmVyeXdoZXJlIGVsc2UKQEAg LTE5NDgsNiArMTk0OCwxMiBAQCBtb2RlLgogT3ZlcnJpZGUgZGVmYXVsdCBzZWxlY3Rpb24gb2Yg d2hldGhlciB0byBpc29sYXRlIDY0LWJpdCBQViBndWVzdCBwYWdlCiB0YWJsZXMuCiAKK2B0cnVl YCBhY3RpdmF0ZXMgcGFnZSB0YWJsZSBpc29sYXRpb24gZXZlbiBvbiBBTUQgaGFyZHdhcmUuCisK K2BmYWxzZWAgZGVhY3RpdmF0ZXMgcGFnZSB0YWJsZSBpc29sYXRpb24gb24gYWxsIHN5c3RlbXMu CisKK2Bub2RvbTBgIGRlYWN0aXZhdGVzIHBhZ2UgdGFibGUgaXNvbGF0aW9uIGZvciBkb20wLgor CiAjIyMgeHNhdmUKID4gYD0gPGJvb2xlYW4+YAogCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv ZG9tY3RsLmMgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKaW5kZXggOGZiYmYzYWViMy4uMDcwNGYz OThjNyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWN0bC5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9kb21jdGwuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgPGFzbS9odm0vaHZtLmg+CiAj aW5jbHVkZSA8YXNtL2h2bS9zdXBwb3J0Lmg+CiAjaW5jbHVkZSA8YXNtL3Byb2Nlc3Nvci5oPgor I2luY2x1ZGUgPGFzbS9wdi9kb21haW4uaD4KICNpbmNsdWRlIDxhc20vYWNwaS5oPiAvKiBmb3Ig aHZtX2FjcGlfcG93ZXJfYnV0dG9uICovCiAjaW5jbHVkZSA8eGVuL2h5cGVyY2FsbC5oPiAvKiBm b3IgYXJjaF9kb19kb21jdGwgKi8KICNpbmNsdWRlIDx4c20veHNtLmg+CkBAIC02MTAsNiArNjEx LDkgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgIHJldCA9IHN3aXRjaF9jb21w YXQoZCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldCA9IC1FSU5WQUw7CisKKyAgICAg ICAgaWYgKCByZXQgPT0gMCApCisgICAgICAgICAgICB4cHRpX2RvbWFpbl9pbml0KGQpOwogICAg ICAgICBicmVhazsKIAogICAgIGNhc2UgWEVOX0RPTUNUTF9nZXRfYWRkcmVzc19zaXplOgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21tLmMgYi94ZW4vYXJjaC94ODYvbW0uYwppbmRleCBjZjUx MmVlMzA2Li4wZDBiYWRlYTg2IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0uYworKysgYi94 ZW4vYXJjaC94ODYvbW0uYwpAQCAtNTEwLDE1ICs1MTAsMTkgQEAgdm9pZCBtYWtlX2NyMyhzdHJ1 Y3QgdmNwdSAqdiwgbWZuX3QgbWZuKQogCiB2b2lkIHdyaXRlX3B0YmFzZShzdHJ1Y3QgdmNwdSAq dikKIHsKLSAgICBpZiAoIHRoaXNfY3B1KHJvb3RfcGd0KSAmJiBpc19wdl92Y3B1KHYpICYmICFp c19wdl8zMmJpdF92Y3B1KHYpICkKKyAgICBpZiAoIGlzX3B2X3ZjcHUodikgJiYgdi0+ZG9tYWlu LT5hcmNoLnB2X2RvbWFpbi54cHRpICkKICAgICB7CiAgICAgICAgIGdldF9jcHVfaW5mbygpLT5y b290X3BndF9jaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgZ2V0X2NwdV9pbmZvKCktPnB2X2NyMyA9 IF9fcGEodGhpc19jcHUocm9vdF9wZ3QpKTsKICAgICAgICAgYXNtIHZvbGF0aWxlICggIm1vdiAl MCwgJSVjcjMiIDogOiAiciIgKHYtPmFyY2guY3IzKSA6ICJtZW1vcnkiICk7CiAgICAgfQogICAg IGVsc2UKICAgICB7CiAgICAgICAgIGdldF9jcHVfaW5mbygpLT5yb290X3BndF9jaGFuZ2VkID0g ZmFsc2U7CisgICAgICAgIC8qIE1ha2Ugc3VyZSB0byBjbGVhciB4ZW5fY3IzIGJlZm9yZSBwdl9j cjM7IHdyaXRlX2NyMygpIHNlcmlhbGl6ZXMuICovCisgICAgICAgIGdldF9jcHVfaW5mbygpLT54 ZW5fY3IzID0gMDsKICAgICAgICAgd3JpdGVfY3IzKHYtPmFyY2guY3IzKTsKKyAgICAgICAgZ2V0 X2NwdV9pbmZvKCktPnB2X2NyMyA9IDA7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvcHYvZG9tMF9idWlsZC5jIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwppbmRl eCAwYmQyZjFiZjkwLi4yMWU4Y2Q1NmJmIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvcHYvZG9t MF9idWlsZC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMKQEAgLTE5LDYgKzE5 LDcgQEAKICNpbmNsdWRlIDxhc20vZG9tMF9idWlsZC5oPgogI2luY2x1ZGUgPGFzbS9ndWVzdC5o PgogI2luY2x1ZGUgPGFzbS9wYWdlLmg+CisjaW5jbHVkZSA8YXNtL3B2L2RvbWFpbi5oPgogI2lu Y2x1ZGUgPGFzbS9wdi9tbS5oPgogI2luY2x1ZGUgPGFzbS9zZXR1cC5oPgogCkBAIC03MDcsNiAr NzA4LDkgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1Y3QgZG9tYWluICpkLAog ICAgICAgICAgICAgY3B1ID0gcC0+cHJvY2Vzc29yOwogICAgIH0KIAorICAgIGlmICggIWlzX3B2 XzMyYml0X2RvbWFpbihkKSApCisgICAgICAgIHhwdGlfZG9tYWluX2luaXQoZCk7CisKICAgICBk LT5hcmNoLnBhZ2luZy5tb2RlID0gMDsKIAogICAgIC8qIFNldCB1cCBDUjMgdmFsdWUgZm9yIHdy aXRlX3B0YmFzZSAqLwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jIGIveGVu L2FyY2gveDg2L3B2L2RvbWFpbi5jCmluZGV4IDc3NDJkNTIyZjUuLjVmMTVjOWUyNWIgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9t YWluLmMKQEAgLTksNiArOSw4IEBACiAjaW5jbHVkZSA8eGVuL2xpYi5oPgogI2luY2x1ZGUgPHhl bi9zY2hlZC5oPgogCisjaW5jbHVkZSA8YXNtL2NwdWZlYXR1cmUuaD4KKyNpbmNsdWRlIDxhc20v bXNyLWluZGV4Lmg+CiAjaW5jbHVkZSA8YXNtL3B2L2RvbWFpbi5oPgogCiAvKiBPdmVycmlkZSBt YWNyb3MgZnJvbSBhc20vcGFnZS5oIHRvIG1ha2UgdGhlbSB3b3JrIHdpdGggbWZuX3QgKi8KQEAg LTE3LDYgKzE5LDg3IEBACiAjdW5kZWYgcGFnZV90b19tZm4KICNkZWZpbmUgcGFnZV90b19tZm4o cGcpIF9tZm4oX19wYWdlX3RvX21mbihwZykpCiAKK3N0YXRpYyBfX3JlYWRfbW9zdGx5IGVudW0g eworICAgIFhQVElfREVGQVVMVCwKKyAgICBYUFRJX09OLAorICAgIFhQVElfT0ZGLAorICAgIFhQ VElfTk9ET00wCit9IG9wdF94cHRpID0gWFBUSV9ERUZBVUxUOworCitzdGF0aWMgaW50IHBhcnNl X3hwdGkoY29uc3QgY2hhciAqcykKK3sKKyAgICBpbnQgcmMgPSAwOworCisgICAgc3dpdGNoICgg cGFyc2VfYm9vbChzLCBOVUxMKSApCisgICAgeworICAgIGNhc2UgMDoKKyAgICAgICAgb3B0X3hw dGkgPSBYUFRJX09GRjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxOgorICAgICAgICBvcHRf eHB0aSA9IFhQVElfT047CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGlm ICggIXN0cmNtcChzLCAiZGVmYXVsdCIpICkKKyAgICAgICAgICAgIG9wdF94cHRpID0gWFBUSV9E RUZBVUxUOworICAgICAgICBlbHNlIGlmICggIXN0cmNtcChzLCAibm9kb20wIikgKQorICAgICAg ICAgICAgb3B0X3hwdGkgPSBYUFRJX05PRE9NMDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg cmMgPSAtRUlOVkFMOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9 CisKK2N1c3RvbV9wYXJhbSgieHB0aSIsIHBhcnNlX3hwdGkpOworCit2b2lkIHhwdGlfaW5pdCh2 b2lkKQoreworICAgIHVpbnQ2NF90IGNhcHMgPSAwOworCisgICAgaWYgKCBib290X2NwdV9kYXRh Lng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9BTUQgKQorICAgICAgICBjYXBzID0gQVJDSF9DQVBB QklMSVRJRVNfUkRDTF9OTzsKKyAgICBlbHNlIGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJF X0FSQ0hfQ0FQUykgKQorICAgICAgICByZG1zcmwoTVNSX0FSQ0hfQ0FQQUJJTElUSUVTLCBjYXBz KTsKKworICAgIGlmICggb3B0X3hwdGkgIT0gWFBUSV9PTiAmJiAoY2FwcyAmIEFSQ0hfQ0FQQUJJ TElUSUVTX1JEQ0xfTk8pICkKKyAgICAgICAgb3B0X3hwdGkgPSBYUFRJX09GRjsKKyAgICBlbHNl IGlmICggb3B0X3hwdGkgPT0gWFBUSV9ERUZBVUxUICkKKyAgICAgICAgb3B0X3hwdGkgPSBYUFRJ X09OOworCisgICAgaWYgKCBvcHRfeHB0aSA9PSBYUFRJX09GRiApCisgICAgICAgIHNldHVwX2Zv cmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfTk9fWFBUSSk7CisgICAgZWxzZQorICAgICAgICBzZXR1 cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX05PX1hQVEkpOworfQorCit2b2lkIHhwdGlfZG9t YWluX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKK3sKKyAgICBpZiAoICFpc19wdl9kb21haW4oZCkg fHwgaXNfcHZfMzJiaXRfZG9tYWluKGQpICkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNo ICggb3B0X3hwdGkgKQorICAgIHsKKyAgICBjYXNlIFhQVElfT0ZGOgorICAgICAgICBkLT5hcmNo LnB2X2RvbWFpbi54cHRpID0gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgWFBUSV9P TjoKKyAgICAgICAgZC0+YXJjaC5wdl9kb21haW4ueHB0aSA9IHRydWU7CisgICAgICAgIGJyZWFr OworICAgIGNhc2UgWFBUSV9OT0RPTTA6CisgICAgICAgIGQtPmFyY2gucHZfZG9tYWluLnhwdGkg PSBkLT5kb21haW5faWQgIT0gMCAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZC0+ZG9tYWluX2lkICE9IGhhcmR3YXJlX2RvbWlkOworICAgICAgICBicmVhazsKKyAgICBkZWZh dWx0OgorICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKKyAgICAgICAgYnJlYWs7CisgICAg fQorCisgICAgaWYgKCBkLT5hcmNoLnB2X2RvbWFpbi54cHRpICkKKyAgICAgICAgcHJpbnRrKCJF bmFibGluZyBYZW4gUGFnZXRhYmxlIHByb3RlY3Rpb24gKFhQVEkpIGZvciBEb21haW4gJWRcbiIs CisgICAgICAgICAgICAgICBkLT5kb21haW5faWQpOworfQorCiBzdGF0aWMgdm9pZCBub3JldHVy biBjb250aW51ZV9ub25pZGxlX2RvbWFpbihzdHJ1Y3QgdmNwdSAqdikKIHsKICAgICBjaGVja193 YWtldXBfZnJvbV93YWl0KCk7CkBAIC0yNjYsNyArMzQ5LDcgQEAgdm9pZCB0b2dnbGVfZ3Vlc3Rf bW9kZShzdHJ1Y3QgdmNwdSAqdikKICAgICB9CiAgICAgYXNtIHZvbGF0aWxlICggInN3YXBncyIg KTsKIAotICAgIF90b2dnbGVfZ3Vlc3RfcHQodiwgY3B1X2hhc19ub194cHRpKTsKKyAgICBfdG9n Z2xlX2d1ZXN0X3B0KHYsICF2LT5kb21haW4tPmFyY2gucHZfZG9tYWluLnhwdGkpOwogfQogCiB2 b2lkIHRvZ2dsZV9ndWVzdF9wdChzdHJ1Y3QgdmNwdSAqdikKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9zZXR1cC5jIGIveGVuL2FyY2gveDg2L3NldHVwLmMKaW5kZXggMTQ4MDU0YzQzOC4uN2M5 ZmJmZTA0YSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3NldHVwLmMKKysrIGIveGVuL2FyY2gv eDg2L3NldHVwLmMKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlIDxhc20vY3B1aWQuaD4KICNp bmNsdWRlIDxhc20vc3BlY19jdHJsLmg+CiAjaW5jbHVkZSA8YXNtL2d1ZXN0Lmg+CisjaW5jbHVk ZSA8YXNtL3B2L2RvbWFpbi5oPgogCiAvKiBvcHRfbm9zbXA6IElmIHRydWUsIHNlY29uZGFyeSBw cm9jZXNzb3JzIGFyZSBpZ25vcmVkLiAqLwogc3RhdGljIGJvb2wgX19pbml0ZGF0YSBvcHRfbm9z bXA7CkBAIC0xNjksOSArMTcwLDYgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2Vfc21hcF9wYXJh bShjb25zdCBjaGFyICpzKQogfQogY3VzdG9tX3BhcmFtKCJzbWFwIiwgcGFyc2Vfc21hcF9wYXJh bSk7CiAKLXN0YXRpYyBpbnQ4X3QgX19pbml0ZGF0YSBvcHRfeHB0aSA9IC0xOwotYm9vbGVhbl9w YXJhbSgieHB0aSIsIG9wdF94cHRpKTsKLQogYm9vbCBfX3JlYWRfbW9zdGx5IGFjcGlfZGlzYWJs ZWQ7CiBib29sIF9faW5pdGRhdGEgYWNwaV9mb3JjZTsKIHN0YXRpYyBjaGFyIF9faW5pdGRhdGEg YWNwaV9wYXJhbVsxMF0gPSAiIjsKQEAgLTE1NDQsMjEgKzE1NDIsNyBAQCB2b2lkIF9faW5pdCBu b3JldHVybiBfX3N0YXJ0X3hlbih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgY3I0X3B2MzJf bWFzayA9IG1tdV9jcjRfZmVhdHVyZXMgJiBYRU5fQ1I0X1BWMzJfQklUUzsKIAotICAgIGlmICgg b3B0X3hwdGkgPCAwICkKLSAgICB7Ci0gICAgICAgIHVpbnQ2NF90IGNhcHMgPSAwOwotCi0gICAg ICAgIGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EICkKLSAg ICAgICAgICAgIGNhcHMgPSBBUkNIX0NBUEFCSUxJVElFU19SRENMX05POwotICAgICAgICBlbHNl IGlmICggYm9vdF9jcHVfaGFzKFg4Nl9GRUFUVVJFX0FSQ0hfQ0FQUykgKQotICAgICAgICAgICAg cmRtc3JsKE1TUl9BUkNIX0NBUEFCSUxJVElFUywgY2Fwcyk7Ci0KLSAgICAgICAgb3B0X3hwdGkg PSAhKGNhcHMgJiBBUkNIX0NBUEFCSUxJVElFU19SRENMX05PKTsKLSAgICB9Ci0gICAgaWYgKCBv cHRfeHB0aSApCi0gICAgICAgIHNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfTk9fWFBU SSk7Ci0gICAgZWxzZQotICAgICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX05P X1hQVEkpOworICAgIHhwdGlfaW5pdCgpOwogCiAgICAgaWYgKCBjcHVfaGFzX2ZzZ3NiYXNlICkK ICAgICAgICAgc2V0X2luX2NyNChYODZfQ1I0X0ZTR1NCQVNFKTsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCmluZGV4IGM1ODdlNGRi OWYuLjYwNjA0ZjQ1MzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIv eGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgc3RhcnRfc2Vj b25kYXJ5KHZvaWQgKnVudXNlZCkKICAgICBzcGluX2RlYnVnX2Rpc2FibGUoKTsKIAogICAgIGdl dF9jcHVfaW5mbygpLT54ZW5fY3IzID0gMDsKLSAgICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0g dGhpc19jcHUocm9vdF9wZ3QpID8gX19wYSh0aGlzX2NwdShyb290X3BndCkpIDogMDsKKyAgICBn ZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gMDsKIAogICAgIGxvYWRfc3lzdGVtX3RhYmxlcygpOwog CkBAIC0xMDUwLDcgKzEwNTAsNyBAQCB2b2lkIF9faW5pdCBzbXBfcHJlcGFyZV9jcHVzKHVuc2ln bmVkIGludCBtYXhfY3B1cykKICAgICAgICAgcGFuaWMoIkVycm9yICVkIHNldHRpbmcgdXAgUFYg cm9vdCBwYWdlIHRhYmxlXG4iLCByYyk7CiAgICAgaWYgKCBwZXJfY3B1KHJvb3RfcGd0LCAwKSAp CiAgICAgewotICAgICAgICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gX19wYShwZXJfY3B1KHJv b3RfcGd0LCAwKSk7CisgICAgICAgIGdldF9jcHVfaW5mbygpLT5wdl9jcjMgPSAwOwogICAgICAg ICAvKgogICAgICAgICAgKiBBbGwgZW50cnkgcG9pbnRzIHdoaWNoIG1heSBuZWVkIHRvIHN3aXRj aCBwYWdlIHRhYmxlcyBoYXZlIHRvIHN0YXJ0CiAgICAgICAgICAqIHdpdGggaW50ZXJydXB0cyBv ZmYuIFJlLXdyaXRlIHdoYXQgcHZfdHJhcF9pbml0KCkgaGFzIHB1dCB0aGVyZS4KZGlmZiAtLWdp dCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50cnkuUyBiL3hlbi9hcmNoL3g4Ni94ODZfNjQvZW50 cnkuUwppbmRleCA4MjhmOWNjZmU4Li5jZGNkYzJjNDBhIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYveDg2XzY0L2VudHJ5LlMKKysrIGIveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCkBAIC00 OSw2ICs0OSw4IEBAIHJlc3RvcmVfYWxsX2d1ZXN0OgogICAgICAgICBtb3YgICBWQ1BVX2NyMygl cmJ4KSwgJXI5CiAgICAgICAgIEdFVF9TVEFDS19FTkQoZHgpCiAgICAgICAgIG1vdiAgIFNUQUNL X0NQVUlORk9fRklFTEQocHZfY3IzKSglcmR4KSwgJXJheAorICAgICAgICB0ZXN0ICAlcmF4LCAl cmF4CisgICAgICAgIGp6ICAgIC5McmFnX2NyM19lbmQKICAgICAgICAgY21wYiAgJDAsIFNUQUNL X0NQVUlORk9fRklFTEQocm9vdF9wZ3RfY2hhbmdlZCkoJXJkeCkKICAgICAgICAgamUgICAgLkxy YWdfY29weV9kb25lCiAgICAgICAgIG1vdmIgICQwLCBTVEFDS19DUFVJTkZPX0ZJRUxEKHJvb3Rf cGd0X2NoYW5nZWQpKCVyZHgpCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2N1cnJl bnQuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCmluZGV4IDNjOTZjMTczYzIuLmQ1 MjM2YzgyZGUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCisrKyBi L3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oCkBAIC00NCw3ICs0NCw4IEBAIHN0cnVjdCBj cHVfaW5mbyB7CiAgICAgLyoKICAgICAgKiBPZiB0aGUgdHdvIGZvbGxvd2luZyBmaWVsZHMgdGhl IGxhdHRlciBpcyBiZWluZyBzZXQgdG8gdGhlIENSMyB2YWx1ZQogICAgICAqIHRvIGJlIHVzZWQg b24gdGhlIGdpdmVuIHBDUFUgZm9yIGxvYWRpbmcgd2hlbmV2ZXIgNjQtYml0IFBWIGd1ZXN0Ci0g ICAgICogY29udGV4dCBpcyBiZWluZyBlbnRlcmVkLiBUaGUgdmFsdWUgbmV2ZXIgY2hhbmdlcyBv bmNlIHNldC4KKyAgICAgKiBjb250ZXh0IGlzIGJlaW5nIGVudGVyZWQuIEEgdmFsdWUgb2YgemVy byBpbmRpY2F0ZXMgbm8gc2V0dGluZyBvZiBDUjMKKyAgICAgKiBpcyB0byBiZSBwZXJmb3JtZWQu CiAgICAgICogVGhlIGZvcm1lciBpcyB0aGUgdmFsdWUgdG8gcmVzdG9yZSB3aGVuIHJlLWVudGVy aW5nIFhlbiwgaWYgYW55LiBJT1cKICAgICAgKiBpdHMgdmFsdWUgYmVpbmcgemVybyBtZWFucyB0 aGVyZSdzIG5vdGhpbmcgdG8gcmVzdG9yZS4gSG93ZXZlciwgaXRzCiAgICAgICogdmFsdWUgY2Fu IGFsc28gYmUgbmVnYXRpdmUsIGluZGljYXRpbmcgdG8gdGhlIGV4aXQtdG8tWGVuIGNvZGUgdGhh dApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCBiL3hlbi9pbmNsdWRl L2FzbS14ODYvZG9tYWluLmgKaW5kZXggNDY3OWQ1NDc3ZC4uMGNjMzdkZWEwNSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2RvbWFpbi5oCkBAIC0yNTcsNiArMjU3LDkgQEAgc3RydWN0IHB2X2RvbWFpbgogICAgIHN0cnVj dCBtYXBjYWNoZV9kb21haW4gbWFwY2FjaGU7CiAKICAgICBzdHJ1Y3QgY3B1aWRtYXNrcyAqY3B1 aWRtYXNrczsKKworICAgIC8qIFhQVEkgYWN0aXZlPyAqLworICAgIGJvb2wgeHB0aTsKIH07CiAK IHN0cnVjdCBtb25pdG9yX3dyaXRlX2RhdGEgewpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9wdi9kb21haW4uaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcHYvZG9tYWluLmgKaW5kZXgg YWNkZjE0MGZiZC4uYzZmZGYzZmU1NiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9w di9kb21haW4uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3B2L2RvbWFpbi5oCkBAIC0yOCw2 ICsyOCw4IEBAIGludCBwdl92Y3B1X2luaXRpYWxpc2Uoc3RydWN0IHZjcHUgKnYpOwogdm9pZCBw dl9kb21haW5fZGVzdHJveShzdHJ1Y3QgZG9tYWluICpkKTsKIGludCBwdl9kb21haW5faW5pdGlh bGlzZShzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZG9tY3JfZmxhZ3MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyAqY29uZmlnKTsK K3ZvaWQgeHB0aV9pbml0KHZvaWQpOwordm9pZCB4cHRpX2RvbWFpbl9pbml0KHN0cnVjdCBkb21h aW4gKmQpOwogCiAjZWxzZSAgLyogIUNPTkZJR19QViAqLwogCkBAIC00Miw2ICs0NCw4IEBAIHN0 YXRpYyBpbmxpbmUgaW50IHB2X2RvbWFpbl9pbml0aWFsaXNlKHN0cnVjdCBkb21haW4gKmQsCiB7 CiAgICAgcmV0dXJuIC1FT1BOT1RTVVBQOwogfQorc3RhdGljIGlubGluZSB2b2lkIHhwdGlfaW5p dCh2b2lkKSB7fQorc3RhdGljIGlubGluZSB2b2lkIHhwdGlfZG9tYWluX2luaXQoc3RydWN0IGRv bWFpbiAqZCkge30KICNlbmRpZgkvKiBDT05GSUdfUFYgKi8KIAogdm9pZCBwYXJhdmlydF9jdHh0 X3N3aXRjaF9mcm9tKHN0cnVjdCB2Y3B1ICp2KTsKLS0gCjIuMTMuNgoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK WGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5v cmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=