From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v6 3/9] xen/x86: support per-domain flag for xpti Date: Tue, 10 Apr 2018 09:58:37 +0200 Message-ID: <20180410075843.6822-4-jgross@suse.com> References: <20180410075843.6822-1-jgross@suse.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]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1f5oB2-0005cK-7j for xen-devel@lists.xenproject.org; Tue, 10 Apr 2018 07:58:52 +0000 In-Reply-To: <20180410075843.6822-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, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzd2l0Y2hpbmcgWFBUSSBnbG9iYWxseSBvbiBvciBvZmYgYWRkIGEgcGVyLWRv bWFpbiBmbGFnIGZvcgp0aGF0IHB1cnBvc2UuIFRoaXMgYWxsb3dzIHRvIG1vZGlmeSB0aGUgeHB0 aSBib290IHBhcmFtZXRlciB0byBzdXBwb3J0CnJ1bm5pbmcgZG9tMCB3aXRob3V0IE1lbHRkb3du IG1pdGlnYXRpb25zLiBVc2luZyAieHB0aT1ub2RvbTAiIGFzIGJvb3QKcGFyYW1ldGVyIHdpbGwg YWNoaWV2ZSB0aGF0LgoKTW92ZSB0aGUgeHB0aSBib290IHBhcmFtZXRlciBoYW5kbGluZyB0byB4 ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYXMKaXQgaXMgcHYtZG9tYWluIHNwZWNpZmljLgoKU2ln bmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgotLS0KVjY6Ci0gbW9k aWZ5IHhwdGkgYm9vdCBwYXJhbWV0ZXIgb3B0aW9ucyAoQW5kcmV3IENvb3BlcikKLSBtb3ZlIHhw dGlfaW5pdCgpIGNvZGUgdG8gc3BlY19jdHJsLmMgKEFuZHJldyBDb29wZXIpCi0gaXJld29yayBp bml0IG9mIHBlci1kb21haW4geHB0aSBmbGFnIChBbmRyZXcgQ29vcGVyKQoKVjM6Ci0gbGF0Y2gg Z2V0X2NwdV9pbmZvKCkgcmV0dXJuIHZhbHVlIGluIHZhcmlhYmxlIChKYW4gQmV1bGljaCkKLSBj YWxsIGFsd2F5cyB4cHRpX2RvbWFpbl9pbml0KCkgZm9yIHB2IGRvbTAgKEphbiBCZXVsaWNoKQot IGFkZCBfX2luaXQgYW5ub3RhdGlvbnMgKEphbiBCZXVsaWNoKQotIGRyb3AgcGVyIGRvbWFpbiBY UFRJIG1lc3NhZ2UgKEphbiBCZXVsaWNoKQotIGRvY3VtZW50IHhwdGk9ZGVmYXVsdCBzdXBwb3J0 IChKYW4gQmV1bGljaCkKLSBtb3ZlIGRvbWFpbiB4cHRpIGZsYWcgaW50byBhIHBhZGRpbmcgaG9s ZSAoSmFuIEJldWxpY2gpCi0tLQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24g fCAxOSArKysrKysrKystLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgfCAx NyArKysrKysrKy0tCiB4ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jICAgICAgICB8ICAxICsK IHhlbi9hcmNoL3g4Ni9wdi9kb21haW4uYyAgICAgICAgICAgIHwgIDcgKysrKwogeGVuL2FyY2gv eDg2L3NldHVwLmMgICAgICAgICAgICAgICAgfCAxOSAtLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2 L3NtcGJvb3QuYyAgICAgICAgICAgICAgfCAgNCArLS0KIHhlbi9hcmNoL3g4Ni9zcGVjX2N0cmwu YyAgICAgICAgICAgIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwog eGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmggICAgICAgfCAgMyArLQogeGVuL2luY2x1ZGUv YXNtLXg4Ni9kb21haW4uaCAgICAgICAgfCAgMyArKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVj X2N0cmwuaCAgICAgfCAgNCArKysKIDEwIGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGlu ZS5tYXJrZG93biBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCmluZGV4IGIz NTMzNTJhZGYuLjY4ZTBkZmJlZDggMTAwNjQ0Ci0tLSBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1s aW5lLm1hcmtkb3duCisrKyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLm1hcmtkb3duCkBA IC0xOTU1LDE0ICsxOTU1LDI5IEBAIGNsdXN0ZXJlZCBtb2RlLiAgVGhlIGRlZmF1bHQsIGdpdmVu IG5vIGhpbnQgZnJvbSB0aGUgKipGQURUKiosIGlzIGNsdXN0ZXIKIG1vZGUuCiAKICMjIyB4cHRp Ci0+IGA9IDxib29sZWFuPmAKKz4gYD0gTGlzdCBvZiBbIGRlZmF1bHQgfCA8Ym9vbGVhbj4gfCBk b20wPTxib29sPiB8IGRvbXU9PGJvb2w+IF1gCiAKLT4gRGVmYXVsdDogYGZhbHNlYCBvbiBBTUQg aGFyZHdhcmUKKz4gRGVmYXVsdDogYGZhbHNlYCBvbiBoYXJkd2FyZSBub3QgdnVsbmVyYWJsZSB0 byBNZWx0ZG93biAoZS5nLiBBTUQpCiA+IERlZmF1bHQ6IGB0cnVlYCBldmVyeXdoZXJlIGVsc2UK IAogT3ZlcnJpZGUgZGVmYXVsdCBzZWxlY3Rpb24gb2Ygd2hldGhlciB0byBpc29sYXRlIDY0LWJp dCBQViBndWVzdCBwYWdlCiB0YWJsZXMuCiAKK2B0cnVlYCBhY3RpdmF0ZXMgcGFnZSB0YWJsZSBp c29sYXRpb24gZXZlbiBvbiBoYXJkd2FyZSBub3QgdnVsbmVyYWJsZSBieQorTWVsdGRvd24gZm9y IGFsbCBkb21haW5zLgorCitgZmFsc2VgIGRlYWN0aXZhdGVzIHBhZ2UgdGFibGUgaXNvbGF0aW9u IG9uIGFsbCBzeXN0ZW1zIGZvciBhbGwgZG9tYWlucy4KKworYGRlZmF1bHRgIHNldHMgdGhlIGRl ZmF1bHQgYmVoYXZpb3VyLgorCitgZG9tMD1mYWxzZWAgZGVhY3RpdmF0ZXMgcGFnZSB0YWJsZSBp c29sYXRpb24gZm9yIGRvbTAuCisKK2Bkb20wPXRydWVgIGFjdGl2YXRlcyBwYWdlIHRhYmxlIGlz b2xhdGlvbiBmb3IgZG9tMC4KKworYGRvbXU9ZmFsc2VgIGRlYWN0aXZhdGVzIHBhZ2UgdGFibGUg aXNvbGF0aW9uIGZvciBndWVzdCBkb21haW5zLgorCitgZG9tdT10cnVlYCBhY3RpdmF0ZXMgcGFn ZSB0YWJsZSBpc29sYXRpb24gZm9yIGd1ZXN0IGRvbWFpbnMuCisKICMjIyB4c2F2ZQogPiBgPSA8 Ym9vbGVhbj5gCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2 L21tLmMKaW5kZXggZTI0NWQ5NmE5Ny4uOWMzNjYxNDA5OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gv eDg2L21tLmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTUwMiw4ICs1MDIsMjEgQEAgdm9p ZCBtYWtlX2NyMyhzdHJ1Y3QgdmNwdSAqdiwgbWZuX3QgbWZuKQogCiB2b2lkIHdyaXRlX3B0YmFz ZShzdHJ1Y3QgdmNwdSAqdikKIHsKLSAgICBnZXRfY3B1X2luZm8oKS0+cm9vdF9wZ3RfY2hhbmdl ZCA9IHRydWU7Ci0gICAgc3dpdGNoX2NyMyh2LT5hcmNoLmNyMyk7CisgICAgc3RydWN0IGNwdV9p bmZvICpjcHVfaW5mbyA9IGdldF9jcHVfaW5mbygpOworCisgICAgaWYgKCBpc19wdl92Y3B1KHYp ICYmIHYtPmRvbWFpbi0+YXJjaC5wdl9kb21haW4ueHB0aSApCisgICAgeworICAgICAgICBjcHVf aW5mby0+cm9vdF9wZ3RfY2hhbmdlZCA9IHRydWU7CisgICAgICAgIGNwdV9pbmZvLT5wdl9jcjMg PSBfX3BhKHRoaXNfY3B1KHJvb3RfcGd0KSk7CisgICAgICAgIHN3aXRjaF9jcjModi0+YXJjaC5j cjMpOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBNYWtlIHN1cmUgdG8gY2xl YXIgeGVuX2NyMyBiZWZvcmUgcHZfY3IzOyBzd2l0Y2hfY3IzKCkgc2VyaWFsaXplcy4gKi8KKyAg ICAgICAgY3B1X2luZm8tPnhlbl9jcjMgPSAwOworICAgICAgICBzd2l0Y2hfY3IzKHYtPmFyY2gu Y3IzKTsKKyAgICAgICAgY3B1X2luZm8tPnB2X2NyMyA9IDA7CisgICAgfQogfQogCiAvKgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYyBiL3hlbi9hcmNoL3g4Ni9wdi9k b20wX2J1aWxkLmMKaW5kZXggNWI0MzI1Yjg3Zi4uZDE0ODM5NTkxOSAxMDA2NDQKLS0tIGEveGVu L2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYworKysgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWls ZC5jCkBAIC0zODcsNiArMzg3LDcgQEAgaW50IF9faW5pdCBkb20wX2NvbnN0cnVjdF9wdihzdHJ1 Y3QgZG9tYWluICpkLAogICAgIGlmICggY29tcGF0MzIgKQogICAgIHsKICAgICAgICAgZC0+YXJj aC5pc18zMmJpdF9wdiA9IGQtPmFyY2guaGFzXzMyYml0X3NoaW5mbyA9IDE7CisgICAgICAgIGQt PmFyY2gucHZfZG9tYWluLnhwdGkgPSBmYWxzZTsKICAgICAgICAgdi0+dmNwdV9pbmZvID0gKHZv aWQgKikmZC0+c2hhcmVkX2luZm8tPmNvbXBhdC52Y3B1X2luZm9bMF07CiAgICAgICAgIGlmICgg c2V0dXBfY29tcGF0X2FyZ194bGF0KHYpICE9IDAgKQogICAgICAgICAgICAgQlVHKCk7CmRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tYWlu LmMKaW5kZXggYmU0MDg0M2IwNS4uNjk5MTAwOTJjMyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3B2L2RvbWFpbi5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYwpAQCAtOSw2ICs5LDcg QEAKICNpbmNsdWRlIDx4ZW4vbGliLmg+CiAjaW5jbHVkZSA8eGVuL3NjaGVkLmg+CiAKKyNpbmNs dWRlIDxhc20vc3BlY19jdHJsLmg+CiAjaW5jbHVkZSA8YXNtL3B2L2RvbWFpbi5oPgogCiBzdGF0 aWMgdm9pZCBub3JldHVybiBjb250aW51ZV9ub25pZGxlX2RvbWFpbihzdHJ1Y3QgdmNwdSAqdikK QEAgLTc1LDYgKzc2LDggQEAgaW50IHN3aXRjaF9jb21wYXQoc3RydWN0IGRvbWFpbiAqZCkKIAog ICAgIGQtPmFyY2gueDg3X2ZpcF93aWR0aCA9IDQ7CiAKKyAgICBkLT5hcmNoLnB2X2RvbWFpbi54 cHRpID0gZmFsc2U7CisKICAgICByZXR1cm4gMDsKIAogIHVuZG9fYW5kX2ZhaWw6CkBAIC0yMDUs NiArMjA4LDEwIEBAIGludCBwdl9kb21haW5faW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQog ICAgIC8qIDY0LWJpdCBQViBndWVzdCBieSBkZWZhdWx0LiAqLwogICAgIGQtPmFyY2guaXNfMzJi aXRfcHYgPSBkLT5hcmNoLmhhc18zMmJpdF9zaGluZm8gPSAwOwogCisgICAgZC0+YXJjaC5wdl9k b21haW4ueHB0aSA9IChkLT5kb21haW5faWQgPT0gaGFyZHdhcmVfZG9taWQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID8gKG9wdF94cHRpICYgWFBUSV9ET00wKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IChvcHRfeHB0aSAmIFhQVElfRE9NVSk7CisKICAgICByZXR1cm4g MDsKIAogICBmYWlsOgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NldHVwLmMgYi94ZW4vYXJj aC94ODYvc2V0dXAuYwppbmRleCBiNTIxZGIyNWE4Li44ODdkNzVhOTgxIDEwMDY0NAotLS0gYS94 ZW4vYXJjaC94ODYvc2V0dXAuYworKysgYi94ZW4vYXJjaC94ODYvc2V0dXAuYwpAQCAtMTY5LDkg KzE2OSw2IEBAIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX3NtYXBfcGFyYW0oY29uc3QgY2hhciAq cykKIH0KIGN1c3RvbV9wYXJhbSgic21hcCIsIHBhcnNlX3NtYXBfcGFyYW0pOwogCi1zdGF0aWMg aW50OF90IF9faW5pdGRhdGEgb3B0X3hwdGkgPSAtMTsKLWJvb2xlYW5fcGFyYW0oInhwdGkiLCBv cHRfeHB0aSk7Ci0KIGJvb2wgX19yZWFkX21vc3RseSBhY3BpX2Rpc2FibGVkOwogYm9vbCBfX2lu aXRkYXRhIGFjcGlfZm9yY2U7CiBzdGF0aWMgY2hhciBfX2luaXRkYXRhIGFjcGlfcGFyYW1bMTBd ID0gIiI7CkBAIC0xNTQ2LDIyICsxNTQzLDYgQEAgdm9pZCBfX2luaXQgbm9yZXR1cm4gX19zdGFy dF94ZW4odW5zaWduZWQgbG9uZyBtYmlfcCkKIAogICAgIGNyNF9wdjMyX21hc2sgPSBtbXVfY3I0 X2ZlYXR1cmVzICYgWEVOX0NSNF9QVjMyX0JJVFM7CiAKLSAgICBpZiAoIG9wdF94cHRpIDwgMCAp Ci0gICAgewotICAgICAgICB1aW50NjRfdCBjYXBzID0gMDsKLQotICAgICAgICBpZiAoIGJvb3Rf Y3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCApCi0gICAgICAgICAgICBjYXBz ID0gQVJDSF9DQVBBQklMSVRJRVNfUkRDTF9OTzsKLSAgICAgICAgZWxzZSBpZiAoIGJvb3RfY3B1 X2hhcyhYODZfRkVBVFVSRV9BUkNIX0NBUFMpICkKLSAgICAgICAgICAgIHJkbXNybChNU1JfQVJD SF9DQVBBQklMSVRJRVMsIGNhcHMpOwotCi0gICAgICAgIG9wdF94cHRpID0gIShjYXBzICYgQVJD SF9DQVBBQklMSVRJRVNfUkRDTF9OTyk7Ci0gICAgfQotICAgIGlmICggb3B0X3hwdGkgKQotICAg ICAgICBzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX05PX1hQVEkpOwotICAgIGVsc2UK LSAgICAgICAgc2V0dXBfZm9yY2VfY3B1X2NhcChYODZfRkVBVFVSRV9OT19YUFRJKTsKLQogICAg IGlmICggY3B1X2hhc19mc2dzYmFzZSApCiAgICAgICAgIHNldF9pbl9jcjQoWDg2X0NSNF9GU0dT QkFTRSk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zbXBib290LmMgYi94ZW4vYXJjaC94 ODYvc21wYm9vdC5jCmluZGV4IGU3ZjU1MDRlYzMuLmI0Y2ZiMDFmZDkgMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni9zbXBib290LmMKKysrIGIveGVuL2FyY2gveDg2L3NtcGJvb3QuYwpAQCAtMzI1 LDcgKzMyNSw3IEBAIHZvaWQgc3RhcnRfc2Vjb25kYXJ5KHZvaWQgKnVudXNlZCkKICAgICBzcGlu X2RlYnVnX2Rpc2FibGUoKTsKIAogICAgIGdldF9jcHVfaW5mbygpLT54ZW5fY3IzID0gMDsKLSAg ICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gdGhpc19jcHUocm9vdF9wZ3QpID8gX19wYSh0aGlz X2NwdShyb290X3BndCkpIDogMDsKKyAgICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gMDsKIAog ICAgIGxvYWRfc3lzdGVtX3RhYmxlcygpOwogCkBAIC0xMDQ0LDcgKzEwNDQsNyBAQCB2b2lkIF9f aW5pdCBzbXBfcHJlcGFyZV9jcHVzKHVuc2lnbmVkIGludCBtYXhfY3B1cykKICAgICAgICAgcGFu aWMoIkVycm9yICVkIHNldHRpbmcgdXAgUFYgcm9vdCBwYWdlIHRhYmxlXG4iLCByYyk7CiAgICAg aWYgKCBwZXJfY3B1KHJvb3RfcGd0LCAwKSApCiAgICAgewotICAgICAgICBnZXRfY3B1X2luZm8o KS0+cHZfY3IzID0gX19wYShwZXJfY3B1KHJvb3RfcGd0LCAwKSk7CisgICAgICAgIGdldF9jcHVf aW5mbygpLT5wdl9jcjMgPSAwOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIEFsbCBlbnRyeSBw b2ludHMgd2hpY2ggbWF5IG5lZWQgdG8gc3dpdGNoIHBhZ2UgdGFibGVzIGhhdmUgdG8gc3RhcnQK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVj X2N0cmwuYwppbmRleCA1YjVlYzkwZmQ4Li5kMTNkNTUwN2FkIDEwMDY0NAotLS0gYS94ZW4vYXJj aC94ODYvc3BlY19jdHJsLmMKKysrIGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCkBAIC0xOTMs NiArMTkzLDY4IEBAIHN0YXRpYyBib29sIF9faW5pdCByZXRwb2xpbmVfc2FmZSh2b2lkKQogICAg IH0KIH0KIAorI2RlZmluZSBYUFRJX0RFRkFVTFQgIDB4ZmYKK3VpbnQ4X3Qgb3B0X3hwdGkgPSBY UFRJX0RFRkFVTFQ7CisKK3N0YXRpYyBfX2luaXQgdm9pZCB4cHRpX2luaXRfZGVmYXVsdChib29s IGZvcmNlKQoreworICAgIHVpbnQ2NF90IGNhcHMgPSAwOworCisgICAgaWYgKCAhZm9yY2UgJiYg KG9wdF94cHRpICE9IFhQVElfREVGQVVMVCkgKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo IGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciA9PSBYODZfVkVORE9SX0FNRCApCisgICAgICAgIGNh cHMgPSBBUkNIX0NBUEFCSUxJVElFU19SRENMX05POworICAgIGVsc2UgaWYgKCBib290X2NwdV9o YXMoWDg2X0ZFQVRVUkVfQVJDSF9DQVBTKSApCisgICAgICAgIHJkbXNybChNU1JfQVJDSF9DQVBB QklMSVRJRVMsIGNhcHMpOworCisgICAgaWYgKCBjYXBzICYgQVJDSF9DQVBBQklMSVRJRVNfUkRD TF9OTyApCisgICAgICAgIG9wdF94cHRpID0gMDsKKyAgICBlbHNlCisgICAgICAgIG9wdF94cHRp ID0gWFBUSV9ET00wIHwgWFBUSV9ET01VOworfQorCitzdGF0aWMgX19pbml0IGludCBwYXJzZV94 cHRpKGNvbnN0IGNoYXIgKnMpCit7CisgICAgY29uc3QgY2hhciAqc3M7CisgICAgaW50IHZhbCwg cmMgPSAwOworCisgICAgeHB0aV9pbml0X2RlZmF1bHQoZmFsc2UpOworCisgICAgZG8geworICAg ICAgICBzcyA9IHN0cmNocihzLCAnLCcpOworICAgICAgICBpZiAoICFzcyApCisgICAgICAgICAg ICBzcyA9IHN0cmNocihzLCAnXDAnKTsKKworICAgICAgICBzd2l0Y2ggKCBwYXJzZV9ib29sKHMs IHNzKSApCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgb3B0X3hwdGkg PSAwOworICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg b3B0X3hwdGkgPSBYUFRJX0RPTTAgfCBYUFRJX0RPTVU7CisgICAgICAgICAgICBicmVhazsKKwor ICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKCAhc3RyY21wKHMsICJkZWZhdWx0Iikg KQorICAgICAgICAgICAgICAgIHhwdGlfaW5pdF9kZWZhdWx0KHRydWUpOworICAgICAgICAgICAg ZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJkb20wIiwgcywgc3MpKSA+PSAwICkKKyAg ICAgICAgICAgICAgICBvcHRfeHB0aSA9IChvcHRfeHB0aSAmIH5YUFRJX0RPTTApIHwgKHZhbCA/ IFhQVElfRE9NMCA6IDApOworICAgICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29s ZWFuKCJkb211Iiwgcywgc3MpKSA+PSAwICkKKyAgICAgICAgICAgICAgICBvcHRfeHB0aSA9IChv cHRfeHB0aSAmIH5YUFRJX0RPTVUpIHwgKHZhbCA/IFhQVElfRE9NVSA6IDApOworICAgICAgICAg ICAgZWxzZQorICAgICAgICAgICAgICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGJyZWFr OworICAgICAgICB9CisKKyAgICAgICAgcyA9IHNzICsgMTsKKyAgICB9IHdoaWxlICggKnNzICk7 CisKKyAgICByZXR1cm4gcmM7Cit9CitjdXN0b21fcGFyYW0oInhwdGkiLCBwYXJzZV94cHRpKTsK Kwogdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogewogICAg IGVudW0gaW5kX3RodW5rIHRodW5rID0gVEhVTktfREVGQVVMVDsKQEAgLTMxMCw2ICszNzIsMTIg QEAgdm9pZCBfX2luaXQgaW5pdF9zcGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgIC8q IChSZSlpbml0IEJTUCBzdGF0ZSBub3cgdGhhdCBkZWZhdWx0X2J0aV9pc3RfaW5mbyBoYXMgYmVl biBjYWxjdWxhdGVkLiAqLwogICAgIGluaXRfc2hhZG93X3NwZWNfY3RybF9zdGF0ZSgpOwogCisg ICAgeHB0aV9pbml0X2RlZmF1bHQoZmFsc2UpOworICAgIGlmICggb3B0X3hwdGkgPT0gMCApCisg ICAgICAgIHNldHVwX2ZvcmNlX2NwdV9jYXAoWDg2X0ZFQVRVUkVfTk9fWFBUSSk7CisgICAgZWxz ZQorICAgICAgICBzZXR1cF9jbGVhcl9jcHVfY2FwKFg4Nl9GRUFUVVJFX05PX1hQVEkpOworCiAg ICAgcHJpbnRfZGV0YWlscyh0aHVuayk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvY3VycmVudC5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKaW5kZXggZjI0 OTFiNDQyMy4uYjI0NzU3ODNmOCAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJy ZW50LmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKQEAgLTQ0LDcgKzQ0LDgg QEAgc3RydWN0IGNwdV9pbmZvIHsKICAgICAvKgogICAgICAqIE9mIHRoZSB0d28gZm9sbG93aW5n IGZpZWxkcyB0aGUgbGF0dGVyIGlzIGJlaW5nIHNldCB0byB0aGUgQ1IzIHZhbHVlCiAgICAgICog dG8gYmUgdXNlZCBvbiB0aGUgZ2l2ZW4gcENQVSBmb3IgbG9hZGluZyB3aGVuZXZlciA2NC1iaXQg UFYgZ3Vlc3QKLSAgICAgKiBjb250ZXh0IGlzIGJlaW5nIGVudGVyZWQuIFRoZSB2YWx1ZSBuZXZl ciBjaGFuZ2VzIG9uY2Ugc2V0LgorICAgICAqIGNvbnRleHQgaXMgYmVpbmcgZW50ZXJlZC4gQSB2 YWx1ZSBvZiB6ZXJvIGluZGljYXRlcyBubyBzZXR0aW5nIG9mIENSMworICAgICAqIGlzIHRvIGJl IHBlcmZvcm1lZC4KICAgICAgKiBUaGUgZm9ybWVyIGlzIHRoZSB2YWx1ZSB0byByZXN0b3JlIHdo ZW4gcmUtZW50ZXJpbmcgWGVuLCBpZiBhbnkuIElPVwogICAgICAqIGl0cyB2YWx1ZSBiZWluZyB6 ZXJvIG1lYW5zIHRoZXJlJ3Mgbm90aGluZyB0byByZXN0b3JlLiBIb3dldmVyLCBpdHMKICAgICAg KiB2YWx1ZSBjYW4gYWxzbyBiZSBuZWdhdGl2ZSwgaW5kaWNhdGluZyB0byB0aGUgZXhpdC10by1Y ZW4gY29kZSB0aGF0CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaAppbmRleCBhMTJhZTQ3ZjFiLi5lZDQxOTk5MzFh IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNs dWRlL2FzbS14ODYvZG9tYWluLmgKQEAgLTI1Myw2ICsyNTMsOSBAQCBzdHJ1Y3QgcHZfZG9tYWlu CiAKICAgICBhdG9taWNfdCBucl9sNF9wYWdlczsKIAorICAgIC8qIFhQVEkgYWN0aXZlPyAqLwor ICAgIGJvb2wgeHB0aTsKKwogICAgIC8qIG1hcF9kb21haW5fcGFnZSgpIG1hcHBpbmcgY2FjaGUu ICovCiAgICAgc3RydWN0IG1hcGNhY2hlX2RvbWFpbiBtYXBjYWNoZTsKIApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmwuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc3Bl Y19jdHJsLmgKaW5kZXggNWFiNGZmM2Y2OC4uMjYzN2VjNzZiNCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9zcGVjX2N0cmwuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNf Y3RybC5oCkBAIC0yOSw2ICsyOSwxMCBAQCB2b2lkIGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlv bnModm9pZCk7CiBleHRlcm4gYm9vbCBvcHRfaWJwYjsKIGV4dGVybiB1aW50OF90IGRlZmF1bHRf YnRpX2lzdF9pbmZvOwogCitleHRlcm4gdWludDhfdCBvcHRfeHB0aTsKKyNkZWZpbmUgWFBUSV9E T00wICAweDAxCisjZGVmaW5lIFhQVElfRE9NVSAgMHgwMgorCiBzdGF0aWMgaW5saW5lIHZvaWQg aW5pdF9zaGFkb3dfc3BlY19jdHJsX3N0YXRlKHZvaWQpCiB7CiAgICAgc3RydWN0IGNwdV9pbmZv ICppbmZvID0gZ2V0X2NwdV9pbmZvKCk7Ci0tIAoyLjEzLjYKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21h aWxtYW4vbGlzdGluZm8veGVuLWRldmVs