From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v8 3/9] xen/x86: support per-domain flag for xpti Date: Wed, 18 Apr 2018 10:30:45 +0200 Message-ID: <20180418083051.8334-4-jgross@suse.com> References: <20180418083051.8334-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 1f8iUX-0003NH-9N for xen-devel@lists.xenproject.org; Wed, 18 Apr 2018 08:31:01 +0000 In-Reply-To: <20180418083051.8334-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, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBzd2l0Y2hpbmcgWFBUSSBnbG9iYWxseSBvbiBvciBvZmYgYWRkIGEgcGVyLWRv bWFpbiBmbGFnIGZvcgp0aGF0IHB1cnBvc2UuIFRoaXMgYWxsb3dzIHRvIG1vZGlmeSB0aGUgeHB0 aSBib290IHBhcmFtZXRlciB0byBzdXBwb3J0CnJ1bm5pbmcgZG9tMCB3aXRob3V0IE1lbHRkb3du IG1pdGlnYXRpb25zLiBVc2luZyAieHB0aT1ub2RvbTAiIGFzIGJvb3QKcGFyYW1ldGVyIHdpbGwg YWNoaWV2ZSB0aGF0LgoKTW92ZSB0aGUgeHB0aSBib290IHBhcmFtZXRlciBoYW5kbGluZyB0byB4 ZW4vYXJjaC94ODYvcHYvZG9tYWluLmMgYXMKaXQgaXMgcHYtZG9tYWluIHNwZWNpZmljLgoKU2ln bmVkLW9mZi1ieTogSnVlcmdlbiBHcm9zcyA8amdyb3NzQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KVjYuMToKLSBhZGRyZXNzIHNvbWUg bWlub3IgY29tbWVudHMgKEphbiBCZXVsaWNoKQoKVjY6Ci0gbW9kaWZ5IHhwdGkgYm9vdCBwYXJh bWV0ZXIgb3B0aW9ucyAoQW5kcmV3IENvb3BlcikKLSBtb3ZlIHhwdGlfaW5pdCgpIGNvZGUgdG8g c3BlY19jdHJsLmMgKEFuZHJldyBDb29wZXIpCi0gaXJld29yayBpbml0IG9mIHBlci1kb21haW4g eHB0aSBmbGFnIChBbmRyZXcgQ29vcGVyKQoKVjM6Ci0gbGF0Y2ggZ2V0X2NwdV9pbmZvKCkgcmV0 dXJuIHZhbHVlIGluIHZhcmlhYmxlIChKYW4gQmV1bGljaCkKLSBjYWxsIGFsd2F5cyB4cHRpX2Rv bWFpbl9pbml0KCkgZm9yIHB2IGRvbTAgKEphbiBCZXVsaWNoKQotIGFkZCBfX2luaXQgYW5ub3Rh dGlvbnMgKEphbiBCZXVsaWNoKQotIGRyb3AgcGVyIGRvbWFpbiBYUFRJIG1lc3NhZ2UgKEphbiBC ZXVsaWNoKQotIGRvY3VtZW50IHhwdGk9ZGVmYXVsdCBzdXBwb3J0IChKYW4gQmV1bGljaCkKLSBt b3ZlIGRvbWFpbiB4cHRpIGZsYWcgaW50byBhIHBhZGRpbmcgaG9sZSAoSmFuIEJldWxpY2gpCi0t LQogZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gfCAxNCArKysrKystLQogeGVu L2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrLS0KIHhlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvbXVsdGkuYyAgICAgIHwgIDIgKy0KIHhlbi9hcmNoL3g4Ni9wdi9kb20w X2J1aWxkLmMgICAgICAgIHwgIDEgKwogeGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jICAgICAgICAg ICAgfCAgNiArKysrCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAgICB8IDE5IC0t LS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9zbXBib290LmMgICAgICAgICAgICAgIHwgIDQgKy0tCiB4 ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMgICAgICAgICAgICB8IDcwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oICAgICAg IHwgIDMgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggICAgICAgIHwgIDMgKysKIHhl bi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmggICAgIHwgIDQgKysrCiAxMSBmaWxlcyBjaGFu Z2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9j cy9taXNjL3hlbi1jb21tYW5kLWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNvbW1hbmQt bGluZS5tYXJrZG93bgppbmRleCBiMzUzMzUyYWRmLi5kNGY3NTg0ODdhIDEwMDY0NAotLS0gYS9k b2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bgorKysgYi9kb2NzL21pc2MveGVuLWNv bW1hbmQtbGluZS5tYXJrZG93bgpAQCAtMTk1NSwxNCArMTk1NSwyNCBAQCBjbHVzdGVyZWQgbW9k ZS4gIFRoZSBkZWZhdWx0LCBnaXZlbiBubyBoaW50IGZyb20gdGhlICoqRkFEVCoqLCBpcyBjbHVz dGVyCiBtb2RlLgogCiAjIyMgeHB0aQotPiBgPSA8Ym9vbGVhbj5gCis+IGA9IExpc3Qgb2YgWyBk ZWZhdWx0IHwgPGJvb2xlYW4+IHwgZG9tMD08Ym9vbD4gfCBkb211PTxib29sPiBdYAogCi0+IERl ZmF1bHQ6IGBmYWxzZWAgb24gQU1EIGhhcmR3YXJlCis+IERlZmF1bHQ6IGBmYWxzZWAgb24gaGFy ZHdhcmUgbm90IHZ1bG5lcmFibGUgdG8gTWVsdGRvd24gKGUuZy4gQU1EKQogPiBEZWZhdWx0OiBg dHJ1ZWAgZXZlcnl3aGVyZSBlbHNlCiAKIE92ZXJyaWRlIGRlZmF1bHQgc2VsZWN0aW9uIG9mIHdo ZXRoZXIgdG8gaXNvbGF0ZSA2NC1iaXQgUFYgZ3Vlc3QgcGFnZQogdGFibGVzLgogCitgdHJ1ZWAg YWN0aXZhdGVzIHBhZ2UgdGFibGUgaXNvbGF0aW9uIGV2ZW4gb24gaGFyZHdhcmUgbm90IHZ1bG5l cmFibGUgYnkKK01lbHRkb3duIGZvciBhbGwgZG9tYWlucy4KKworYGZhbHNlYCBkZWFjdGl2YXRl cyBwYWdlIHRhYmxlIGlzb2xhdGlvbiBvbiBhbGwgc3lzdGVtcyBmb3IgYWxsIGRvbWFpbnMuCisK K2BkZWZhdWx0YCBzZXRzIHRoZSBkZWZhdWx0IGJlaGF2aW91ci4KKworV2l0aCBgZG9tMGAgYW5k IGBkb211YCBpdCBpcyBwb3NzaWJsZSB0byBjb250cm9sIHBhZ2UgdGFibGUgaXNvbGF0aW9uCitm b3IgZG9tMCBvciBndWVzdCBkb21haW5zIG9ubHkuCisKICMjIyB4c2F2ZQogPiBgPSA8Ym9vbGVh bj5gCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMK aW5kZXggZTI0NWQ5NmE5Ny4uOWMzNjYxNDA5OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L21t LmMKKysrIGIveGVuL2FyY2gveDg2L21tLmMKQEAgLTUwMiw4ICs1MDIsMjEgQEAgdm9pZCBtYWtl X2NyMyhzdHJ1Y3QgdmNwdSAqdiwgbWZuX3QgbWZuKQogCiB2b2lkIHdyaXRlX3B0YmFzZShzdHJ1 Y3QgdmNwdSAqdikKIHsKLSAgICBnZXRfY3B1X2luZm8oKS0+cm9vdF9wZ3RfY2hhbmdlZCA9IHRy dWU7Ci0gICAgc3dpdGNoX2NyMyh2LT5hcmNoLmNyMyk7CisgICAgc3RydWN0IGNwdV9pbmZvICpj cHVfaW5mbyA9IGdldF9jcHVfaW5mbygpOworCisgICAgaWYgKCBpc19wdl92Y3B1KHYpICYmIHYt PmRvbWFpbi0+YXJjaC5wdl9kb21haW4ueHB0aSApCisgICAgeworICAgICAgICBjcHVfaW5mby0+ cm9vdF9wZ3RfY2hhbmdlZCA9IHRydWU7CisgICAgICAgIGNwdV9pbmZvLT5wdl9jcjMgPSBfX3Bh KHRoaXNfY3B1KHJvb3RfcGd0KSk7CisgICAgICAgIHN3aXRjaF9jcjModi0+YXJjaC5jcjMpOwor ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICAvKiBNYWtlIHN1cmUgdG8gY2xlYXIgeGVu X2NyMyBiZWZvcmUgcHZfY3IzOyBzd2l0Y2hfY3IzKCkgc2VyaWFsaXplcy4gKi8KKyAgICAgICAg Y3B1X2luZm8tPnhlbl9jcjMgPSAwOworICAgICAgICBzd2l0Y2hfY3IzKHYtPmFyY2guY3IzKTsK KyAgICAgICAgY3B1X2luZm8tPnB2X2NyMyA9IDA7CisgICAgfQogfQogCiAvKgpkaWZmIC0tZ2l0 IGEveGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRv dy9tdWx0aS5jCmluZGV4IDVlNzc5YmFhNTMuLjVhOTI0MmRlNzEgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYworKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211 bHRpLmMKQEAgLTk2Nyw3ICs5NjcsNyBAQCBzdGF0aWMgaW50IHNoYWRvd19zZXRfbDRlKHN0cnVj dCBkb21haW4gKmQsCiAgICAgICAgIHNoX3B1dF9yZWYoZCwgb3NsM21mbiwgcGFkZHIpOwogICAg IH0KIAotICAgIGlmICggIWNwdV9oYXNfbm9feHB0aSApCisgICAgaWYgKCBpc19wdl9kb21haW4o ZCkgJiYgZC0+YXJjaC5wdl9kb21haW4ueHB0aSApCiAgICAgICAgIC8qCiAgICAgICAgICAqIExh enkgZmx1c2hpbmcgaXMgZW5vdWdoOiBlaXRoZXIgd2UgZG8gYSBUTEIgZmx1c2ggcmlnaHQgYWZ0 ZXJ3YXJkcwogICAgICAgICAgKiB3aGljaCB3aWxsIHBpY2sgdXAgdGhlIG5ldyByb290IHBhZ2Ug dGFibGUgb24gYWxsIGFmZmVjdGVkIGNwdXMKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9wdi9k b20wX2J1aWxkLmMgYi94ZW4vYXJjaC94ODYvcHYvZG9tMF9idWlsZC5jCmluZGV4IDViNDMyNWI4 N2YuLmQxNDgzOTU5MTkgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb20wX2J1aWxkLmMK KysrIGIveGVuL2FyY2gveDg2L3B2L2RvbTBfYnVpbGQuYwpAQCAtMzg3LDYgKzM4Nyw3IEBAIGlu dCBfX2luaXQgZG9tMF9jb25zdHJ1Y3RfcHYoc3RydWN0IGRvbWFpbiAqZCwKICAgICBpZiAoIGNv bXBhdDMyICkKICAgICB7CiAgICAgICAgIGQtPmFyY2guaXNfMzJiaXRfcHYgPSBkLT5hcmNoLmhh c18zMmJpdF9zaGluZm8gPSAxOworICAgICAgICBkLT5hcmNoLnB2X2RvbWFpbi54cHRpID0gZmFs c2U7CiAgICAgICAgIHYtPnZjcHVfaW5mbyA9ICh2b2lkICopJmQtPnNoYXJlZF9pbmZvLT5jb21w YXQudmNwdV9pbmZvWzBdOwogICAgICAgICBpZiAoIHNldHVwX2NvbXBhdF9hcmdfeGxhdCh2KSAh PSAwICkKICAgICAgICAgICAgIEJVRygpOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3B2L2Rv bWFpbi5jIGIveGVuL2FyY2gveDg2L3B2L2RvbWFpbi5jCmluZGV4IGJlNDA4NDNiMDUuLmNlMWEx YTlkMzUgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wdi9kb21haW4uYworKysgYi94ZW4vYXJj aC94ODYvcHYvZG9tYWluLmMKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8eGVuL2xpYi5oPgog I2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogCisjaW5jbHVkZSA8YXNtL3NwZWNfY3RybC5oPgogI2lu Y2x1ZGUgPGFzbS9wdi9kb21haW4uaD4KIAogc3RhdGljIHZvaWQgbm9yZXR1cm4gY29udGludWVf bm9uaWRsZV9kb21haW4oc3RydWN0IHZjcHUgKnYpCkBAIC03NSw2ICs3Niw4IEBAIGludCBzd2l0 Y2hfY29tcGF0KHN0cnVjdCBkb21haW4gKmQpCiAKICAgICBkLT5hcmNoLng4N19maXBfd2lkdGgg PSA0OwogCisgICAgZC0+YXJjaC5wdl9kb21haW4ueHB0aSA9IGZhbHNlOworCiAgICAgcmV0dXJu IDA7CiAKICB1bmRvX2FuZF9mYWlsOgpAQCAtMjA1LDYgKzIwOCw5IEBAIGludCBwdl9kb21haW5f aW5pdGlhbGlzZShzdHJ1Y3QgZG9tYWluICpkKQogICAgIC8qIDY0LWJpdCBQViBndWVzdCBieSBk ZWZhdWx0LiAqLwogICAgIGQtPmFyY2guaXNfMzJiaXRfcHYgPSBkLT5hcmNoLmhhc18zMmJpdF9z aGluZm8gPSAwOwogCisgICAgZC0+YXJjaC5wdl9kb21haW4ueHB0aSA9IG9wdF94cHRpICYgKGlz X2hhcmR3YXJlX2RvbWFpbihkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICA/IE9QVF9YUFRJX0RPTTAgOiBPUFRfWFBUSV9ET01VKTsKKwogICAgIHJldHVybiAwOwog CiAgIGZhaWw6CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvc2V0dXAuYyBiL3hlbi9hcmNoL3g4 Ni9zZXR1cC5jCmluZGV4IGIyYmFlZTNkMmMuLmY4MDM5ODBiOTcgMTAwNjQ0Ci0tLSBhL3hlbi9h cmNoL3g4Ni9zZXR1cC5jCisrKyBiL3hlbi9hcmNoL3g4Ni9zZXR1cC5jCkBAIC0xNjksOSArMTY5 LDYgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2Vfc21hcF9wYXJhbShjb25zdCBjaGFyICpzKQog fQogY3VzdG9tX3BhcmFtKCJzbWFwIiwgcGFyc2Vfc21hcF9wYXJhbSk7CiAKLXN0YXRpYyBpbnQ4 X3QgX19pbml0ZGF0YSBvcHRfeHB0aSA9IC0xOwotYm9vbGVhbl9wYXJhbSgieHB0aSIsIG9wdF94 cHRpKTsKLQogYm9vbCBfX3JlYWRfbW9zdGx5IGFjcGlfZGlzYWJsZWQ7CiBib29sIF9faW5pdGRh dGEgYWNwaV9mb3JjZTsKIHN0YXRpYyBjaGFyIF9faW5pdGRhdGEgYWNwaV9wYXJhbVsxMF0gPSAi IjsKQEAgLTE1NDYsMjIgKzE1NDMsNiBAQCB2b2lkIF9faW5pdCBub3JldHVybiBfX3N0YXJ0X3hl bih1bnNpZ25lZCBsb25nIG1iaV9wKQogCiAgICAgY3I0X3B2MzJfbWFzayA9IG1tdV9jcjRfZmVh dHVyZXMgJiBYRU5fQ1I0X1BWMzJfQklUUzsKIAotICAgIGlmICggb3B0X3hwdGkgPCAwICkKLSAg ICB7Ci0gICAgICAgIHVpbnQ2NF90IGNhcHMgPSAwOwotCi0gICAgICAgIGlmICggYm9vdF9jcHVf ZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EICkKLSAgICAgICAgICAgIGNhcHMgPSBB UkNIX0NBUEFCSUxJVElFU19SRENMX05POwotICAgICAgICBlbHNlIGlmICggYm9vdF9jcHVfaGFz KFg4Nl9GRUFUVVJFX0FSQ0hfQ0FQUykgKQotICAgICAgICAgICAgcmRtc3JsKE1TUl9BUkNIX0NB UEFCSUxJVElFUywgY2Fwcyk7Ci0KLSAgICAgICAgb3B0X3hwdGkgPSAhKGNhcHMgJiBBUkNIX0NB UEFCSUxJVElFU19SRENMX05PKTsKLSAgICB9Ci0gICAgaWYgKCBvcHRfeHB0aSApCi0gICAgICAg IHNldHVwX2NsZWFyX2NwdV9jYXAoWDg2X0ZFQVRVUkVfTk9fWFBUSSk7Ci0gICAgZWxzZQotICAg ICAgICBzZXR1cF9mb3JjZV9jcHVfY2FwKFg4Nl9GRUFUVVJFX05PX1hQVEkpOwotCiAgICAgaWYg KCBjcHVfaGFzX2ZzZ3NiYXNlICkKICAgICAgICAgc2V0X2luX2NyNChYODZfQ1I0X0ZTR1NCQVNF KTsKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9z bXBib290LmMKaW5kZXggMTAzZDhmNzE0Mi4uOTgwMTkyZTcxZiAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L3NtcGJvb3QuYworKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jCkBAIC0zMjUsNyAr MzI1LDcgQEAgdm9pZCBzdGFydF9zZWNvbmRhcnkodm9pZCAqdW51c2VkKQogICAgIHNwaW5fZGVi dWdfZGlzYWJsZSgpOwogCiAgICAgZ2V0X2NwdV9pbmZvKCktPnhlbl9jcjMgPSAwOwotICAgIGdl dF9jcHVfaW5mbygpLT5wdl9jcjMgPSB0aGlzX2NwdShyb290X3BndCkgPyBfX3BhKHRoaXNfY3B1 KHJvb3RfcGd0KSkgOiAwOworICAgIGdldF9jcHVfaW5mbygpLT5wdl9jcjMgPSAwOwogCiAgICAg bG9hZF9zeXN0ZW1fdGFibGVzKCk7CiAKQEAgLTEwNDQsNyArMTA0NCw3IEBAIHZvaWQgX19pbml0 IHNtcF9wcmVwYXJlX2NwdXModm9pZCkKICAgICAgICAgcGFuaWMoIkVycm9yICVkIHNldHRpbmcg dXAgUFYgcm9vdCBwYWdlIHRhYmxlXG4iLCByYyk7CiAgICAgaWYgKCBwZXJfY3B1KHJvb3RfcGd0 LCAwKSApCiAgICAgewotICAgICAgICBnZXRfY3B1X2luZm8oKS0+cHZfY3IzID0gX19wYShwZXJf Y3B1KHJvb3RfcGd0LCAwKSk7CisgICAgICAgIGdldF9jcHVfaW5mbygpLT5wdl9jcjMgPSAwOwog CiAgICAgICAgIC8qCiAgICAgICAgICAqIEFsbCBlbnRyeSBwb2ludHMgd2hpY2ggbWF5IG5lZWQg dG8gc3dpdGNoIHBhZ2UgdGFibGVzIGhhdmUgdG8gc3RhcnQKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9zcGVjX2N0cmwuYyBiL3hlbi9hcmNoL3g4Ni9zcGVjX2N0cmwuYwppbmRleCA1YjVlYzkw ZmQ4Li4yMzAwZTllYmE5IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvc3BlY19jdHJsLmMKKysr IGIveGVuL2FyY2gveDg2L3NwZWNfY3RybC5jCkBAIC0xOTMsNiArMTkzLDcwIEBAIHN0YXRpYyBi b29sIF9faW5pdCByZXRwb2xpbmVfc2FmZSh2b2lkKQogICAgIH0KIH0KIAorI2RlZmluZSBPUFRf WFBUSV9ERUZBVUxUICAweGZmCit1aW50OF90IF9fcmVhZF9tb3N0bHkgb3B0X3hwdGkgPSBPUFRf WFBUSV9ERUZBVUxUOworCitzdGF0aWMgX19pbml0IHZvaWQgeHB0aV9pbml0X2RlZmF1bHQoYm9v bCBmb3JjZSkKK3sKKyAgICB1aW50NjRfdCBjYXBzID0gMDsKKworICAgIGlmICggIWZvcmNlICYm IChvcHRfeHB0aSAhPSBPUFRfWFBUSV9ERUZBVUxUKSApCisgICAgICAgIHJldHVybjsKKworICAg IGlmICggYm9vdF9jcHVfZGF0YS54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1EICkKKyAgICAg ICAgY2FwcyA9IEFSQ0hfQ0FQQUJJTElUSUVTX1JEQ0xfTk87CisgICAgZWxzZSBpZiAoIGJvb3Rf Y3B1X2hhcyhYODZfRkVBVFVSRV9BUkNIX0NBUFMpICkKKyAgICAgICAgcmRtc3JsKE1TUl9BUkNI X0NBUEFCSUxJVElFUywgY2Fwcyk7CisKKyAgICBpZiAoIGNhcHMgJiBBUkNIX0NBUEFCSUxJVElF U19SRENMX05PICkKKyAgICAgICAgb3B0X3hwdGkgPSAwOworICAgIGVsc2UKKyAgICAgICAgb3B0 X3hwdGkgPSBPUFRfWFBUSV9ET00wIHwgT1BUX1hQVElfRE9NVTsKK30KKworc3RhdGljIF9faW5p dCBpbnQgcGFyc2VfeHB0aShjb25zdCBjaGFyICpzKQoreworICAgIGNvbnN0IGNoYXIgKnNzOwor ICAgIGludCB2YWwsIHJjID0gMDsKKworICAgIHhwdGlfaW5pdF9kZWZhdWx0KGZhbHNlKTsKKwor ICAgIGRvIHsKKyAgICAgICAgc3MgPSBzdHJjaHIocywgJywnKTsKKyAgICAgICAgaWYgKCAhc3Mg KQorICAgICAgICAgICAgc3MgPSBzdHJjaHIocywgJ1wwJyk7CisKKyAgICAgICAgc3dpdGNoICgg cGFyc2VfYm9vbChzLCBzcykgKQorICAgICAgICB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg ICAgIG9wdF94cHRpID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgMToK KyAgICAgICAgICAgIG9wdF94cHRpID0gT1BUX1hQVElfRE9NMCB8IE9QVF9YUFRJX0RPTVU7Cisg ICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKCAh c3RyY21wKHMsICJkZWZhdWx0IikgKQorICAgICAgICAgICAgICAgIHhwdGlfaW5pdF9kZWZhdWx0 KHRydWUpOworICAgICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29sZWFuKCJkb20w Iiwgcywgc3MpKSA+PSAwICkKKyAgICAgICAgICAgICAgICBvcHRfeHB0aSA9IChvcHRfeHB0aSAm IH5PUFRfWFBUSV9ET00wKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsID8gT1BU X1hQVElfRE9NMCA6IDApOworICAgICAgICAgICAgZWxzZSBpZiAoICh2YWwgPSBwYXJzZV9ib29s ZWFuKCJkb211Iiwgcywgc3MpKSA+PSAwICkKKyAgICAgICAgICAgICAgICBvcHRfeHB0aSA9IChv cHRfeHB0aSAmIH5PUFRfWFBUSV9ET01VKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAo dmFsID8gT1BUX1hQVElfRE9NVSA6IDApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgIHJjID0gLUVJTlZBTDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAg ICAgcyA9IHNzICsgMTsKKyAgICB9IHdoaWxlICggKnNzICk7CisKKyAgICByZXR1cm4gcmM7Cit9 CitjdXN0b21fcGFyYW0oInhwdGkiLCBwYXJzZV94cHRpKTsKKwogdm9pZCBfX2luaXQgaW5pdF9z cGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogewogICAgIGVudW0gaW5kX3RodW5rIHRodW5r ID0gVEhVTktfREVGQVVMVDsKQEAgLTMxMCw2ICszNzQsMTIgQEAgdm9pZCBfX2luaXQgaW5pdF9z cGVjdWxhdGlvbl9taXRpZ2F0aW9ucyh2b2lkKQogICAgIC8qIChSZSlpbml0IEJTUCBzdGF0ZSBu b3cgdGhhdCBkZWZhdWx0X2J0aV9pc3RfaW5mbyBoYXMgYmVlbiBjYWxjdWxhdGVkLiAqLwogICAg IGluaXRfc2hhZG93X3NwZWNfY3RybF9zdGF0ZSgpOwogCisgICAgeHB0aV9pbml0X2RlZmF1bHQo ZmFsc2UpOworICAgIGlmICggb3B0X3hwdGkgPT0gMCApCisgICAgICAgIHNldHVwX2ZvcmNlX2Nw dV9jYXAoWDg2X0ZFQVRVUkVfTk9fWFBUSSk7CisgICAgZWxzZQorICAgICAgICBzZXR1cF9jbGVh cl9jcHVfY2FwKFg4Nl9GRUFUVVJFX05PX1hQVEkpOworCiAgICAgcHJpbnRfZGV0YWlscyh0aHVu ayk7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKaW5kZXggZjI0OTFiNDQyMy4uYjI0NzU3ODNmOCAx MDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9jdXJyZW50LmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9jdXJyZW50LmgKQEAgLTQ0LDcgKzQ0LDggQEAgc3RydWN0IGNwdV9pbmZvIHsK ICAgICAvKgogICAgICAqIE9mIHRoZSB0d28gZm9sbG93aW5nIGZpZWxkcyB0aGUgbGF0dGVyIGlz IGJlaW5nIHNldCB0byB0aGUgQ1IzIHZhbHVlCiAgICAgICogdG8gYmUgdXNlZCBvbiB0aGUgZ2l2 ZW4gcENQVSBmb3IgbG9hZGluZyB3aGVuZXZlciA2NC1iaXQgUFYgZ3Vlc3QKLSAgICAgKiBjb250 ZXh0IGlzIGJlaW5nIGVudGVyZWQuIFRoZSB2YWx1ZSBuZXZlciBjaGFuZ2VzIG9uY2Ugc2V0Lgor ICAgICAqIGNvbnRleHQgaXMgYmVpbmcgZW50ZXJlZC4gQSB2YWx1ZSBvZiB6ZXJvIGluZGljYXRl cyBubyBzZXR0aW5nIG9mIENSMworICAgICAqIGlzIHRvIGJlIHBlcmZvcm1lZC4KICAgICAgKiBU aGUgZm9ybWVyIGlzIHRoZSB2YWx1ZSB0byByZXN0b3JlIHdoZW4gcmUtZW50ZXJpbmcgWGVuLCBp ZiBhbnkuIElPVwogICAgICAqIGl0cyB2YWx1ZSBiZWluZyB6ZXJvIG1lYW5zIHRoZXJlJ3Mgbm90 aGluZyB0byByZXN0b3JlLiBIb3dldmVyLCBpdHMKICAgICAgKiB2YWx1ZSBjYW4gYWxzbyBiZSBu ZWdhdGl2ZSwgaW5kaWNhdGluZyB0byB0aGUgZXhpdC10by1YZW4gY29kZSB0aGF0CmRpZmYgLS1n aXQgYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9k b21haW4uaAppbmRleCBhMTJhZTQ3ZjFiLi5lZDQxOTk5MzFhIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmgK QEAgLTI1Myw2ICsyNTMsOSBAQCBzdHJ1Y3QgcHZfZG9tYWluCiAKICAgICBhdG9taWNfdCBucl9s NF9wYWdlczsKIAorICAgIC8qIFhQVEkgYWN0aXZlPyAqLworICAgIGJvb2wgeHB0aTsKKwogICAg IC8qIG1hcF9kb21haW5fcGFnZSgpIG1hcHBpbmcgY2FjaGUuICovCiAgICAgc3RydWN0IG1hcGNh Y2hlX2RvbWFpbiBtYXBjYWNoZTsKIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9z cGVjX2N0cmwuaCBiL3hlbi9pbmNsdWRlL2FzbS14ODYvc3BlY19jdHJsLmgKaW5kZXggNWFiNGZm M2Y2OC4uYjRmYTQzMjY5ZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9zcGVjX2N0 cmwuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3NwZWNfY3RybC5oCkBAIC0yOSw2ICsyOSwx MCBAQCB2b2lkIGluaXRfc3BlY3VsYXRpb25fbWl0aWdhdGlvbnModm9pZCk7CiBleHRlcm4gYm9v bCBvcHRfaWJwYjsKIGV4dGVybiB1aW50OF90IGRlZmF1bHRfYnRpX2lzdF9pbmZvOwogCitleHRl cm4gdWludDhfdCBvcHRfeHB0aTsKKyNkZWZpbmUgT1BUX1hQVElfRE9NMCAgMHgwMQorI2RlZmlu ZSBPUFRfWFBUSV9ET01VICAweDAyCisKIHN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3NoYWRvd19z cGVjX2N0cmxfc3RhdGUodm9pZCkKIHsKICAgICBzdHJ1Y3QgY3B1X2luZm8gKmluZm8gPSBnZXRf Y3B1X2luZm8oKTsKLS0gCjIuMTMuNgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=