From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v10 03/11] x86: implement set value flow for MBA Date: Tue, 19 Dec 2017 08:42:14 +0800 Message-ID: <1513644142-50972-4-git-send-email-yi.y.sun@linux.intel.com> References: <1513644142-50972-1-git-send-email-yi.y.sun@linux.intel.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 1eR72D-0007N0-Bg for xen-devel@lists.xenproject.org; Tue, 19 Dec 2017 01:49:33 +0000 In-Reply-To: <1513644142-50972-1-git-send-email-yi.y.sun@linux.intel.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: Wei Liu , Yi Sun , Andrew Cooper , Jan Beulich , Chao Peng , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBpbXBsZW1lbnRzIHNldCB2YWx1ZSBmbG93IGZvciBNQkEgaW5jbHVkaW5nIGl0 cyBjYWxsYmFjawpmdW5jdGlvbiBhbmQgZG9tY3RsIGludGVyZmFjZS4KClNpZ25lZC1vZmYtYnk6 IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNDOiBX ZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIu cGF1QGNpdHJpeC5jb20+CkNDOiBDaGFvIFBlbmcgPGNoYW8ucC5wZW5nQGxpbnV4LmludGVsLmNv bT4KCnY5OgogICAgLSBhZGp1c3QgY29kZXMgaW4gJ21iYV9zYW5pdGl6ZV90aHJ0bCcuCiAgICAg IChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY4OgogICAgLSByZXN0b3JlIHNvbWUgb2xkIGNv ZGVzIGluICdjYXRfY2hlY2tfY2JtJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkK ICAgIC0gdXNlICdmbHMoKScgYnV0IG5vdCAnZmxzbCgpJy4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gdXNlIHBsYWluICc9JyB0byBhc3NpZ24gdmFsdWUgZm9yIHRocnRs IGluICdtYmFfc2FuaXRpemVfdGhydGwnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNo KQp2NzoKICAgIC0gY2hhbmdlIG5hbWUgb2YgJ2NoZWNrX3ZhbCcgdG8gJ3Nhbml0aXplJy4KICAg ICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvbW1lbnRzLgogICAgICAo c3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBhZGQgcGFyZW50aGVzZXMgYW5kIGNoYW5n ZSAnPT0gMCcgdG8gJyEnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBy ZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2sgb2YgJ21iYS50aHJ0bF9tYXgnLgogICAgICAoc3VnZ2Vz dGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgaW50ZXJtZWRpYXRl IHZhcmlhYmxlICdtb2QnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBy ZWZpbmUgYW4gYXNzaWduZW1lbnQgc2VudGVuY2UgdG8gdXNlICcmPScuCiAgICAgIChzdWdnZXN0 ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSB0eXBlIG9mIGxhc3QgcGFyYW1ldGVyIG9m ICdzYW5pdGl6ZScgdG8gJ3VpbnQzMl90JyBhbmQKICAgICAgYXBwbHkgc2FtZSBjaGFuZ2UgdG8g J2NhdF9jaGVja19jYm0nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQp2NjoKICAg IC0gc3BsaXQgY28tZXhpc3QgZmVhdHVyZXMnIHZhbHVlcyBzZXR0aW5nIGZsb3cgdG8gYSBuZXcg cGF0Y2guCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIHJlc3RvcmUgY29k ZXMgcmVsYXRlZCB0byAnbWJhX2NoZWNrX3RocnRsJyBhbmQgJ2NoZWNrX3ZhbHVlJy4KICAgICAg KHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjU6CiAgICAtIGFkanVzdCBwb3NpdGlvbiBvZiAn Y2F0X2NoZWNrX2NibScgdG8gbm90IHRvIG1ha2UgY2hhbmdlcyBzbyBiaWcuCiAgICAgIChzdWdn ZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdwcm9wcycgZnJvbSAnc3Ry dWN0IGNvc193cml0ZV9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOp KQogICAgLSBtYWtlIGEgc2luZ2xlIHJldHVybiBzdGF0ZW1lbnQgaW4gJ21iYV9jaGVja190aHJ0 bCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAgLSByZW1vdmUgJ0FM TE9DXycgZnJvbSBtYWNybyBuYW1lcy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9u bsOpKQogICAgLSBqb2luIHR3byBjaGVja3MgaW50byBhIHNpbmdsZSBpZi4KICAgICAgKHN1Z2dl c3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgcmVkdW5kYW50IGxvY2FsIHZh cmlhYmxlICdhcnJheV9sZW4nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kp CnYzOgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gbWFrZSBpdCBjbGVhci4KICAgICAg KHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBtb2RpZnkgZnVuY3Rpb25hbGl0 eSBvZiAnY2hlY2tfdmFsJyB0byBtYWtlIGl0IHNpbXBsZSB0byBvbmx5IGNoZWNrIHZhbHVlLgog ICAgICBDaGFuZ2UgdGhlIGxhc3QgcGFyYW1ldGVyIHR5cGUgZnJvbSAndW5zaWduZWQgbG9uZyAq JyB0byAndW5zaWduZWQgbG9uZycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7D qSkKICAgIC0gY2FsbCByZG1zcmwgdG8gZ2V0IHZhbHVlIGp1c3Qgd3JpdHRlbiBpbnRvIE1TUiBm b3IgTUJBLiBCZWNhdXNlIEhXIGNhbgogICAgICBhdXRvbWF0aWNhbGx5IGNoYW5nZSBpbnB1dCB2 YWx1ZSB0byB3aGF0IGl0IHdhbnRzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25u w6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICd3cml0ZV9tc3InIHRvICd1aW50MzJfdCcgdG8gcmV0 dXJuIHRoZSB2YWx1ZSBhY3R1YWxseQogICAgICB3cml0dGVuIGludG8gTVNSLiBUaGVuLCBjaGFu Z2UgJ2RvX3dyaXRlX3Bzcl9tc3JzJyB0byBzZXQgdGhlIHJldHVybmVkCiAgICAgIHZhbHVlIGlu dG8gJ2Nvc19yZWdfdmFsW10nCiAgICAtIG1vdmUgdGhlIGRlY2xhcmF0aW9uIG9mICdqJyBpbnRv IGxvb3AgaW4gJ2RvX3dyaXRlX3Bzcl9tc3JzJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQ YXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ21iYV9pbmZvJyB0byAnbWJhJy4KICAgICAgKHN1Z2dl c3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ2NhdF9pbmZvJyB0byAnY2F0 Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW5hbWUgJ3Bz cl9jYXQvUFNSX0NBVCcgdG8gJ3Bzcl9hbGxvYy9QU1JfQUxMT0MnIGFuZCByZW1vdmUgJ29wL09Q JwogICAgICBmcm9tIG5hbWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkK ICAgIC0gY2hhbmdlICdQU1JfVkFMX1RZUEVfTUJBJyB0byAnUFNSX1RZUEVfTUJBX1RIUlRMJy4K ICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2MjoKICAgIC0gcmVtb3ZlIGxp bmVhciBtb2RlICd0aHJ0bF9tYXgnIGNoZWNrIGluICdtYmFfY2hlY2tfdGhydGwnIGJlY2F1c2Ug aXQgaGFzCiAgICAgIGJlZW4gY2hlY2tlZCBpbiAnbWJhX2luaXRfZmVhdHVyZScuCiAgICAgIChz dWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSBmb3Igbm9uLWxpbmVhciBtb2RlLCBjaGVjayBp ZiAnKnRocnRsJyBpcyBub3QgMCBpbiAnbWJhX2NoZWNrX3RocnRsJy4gSWYKICAgICAgaXQgaXMg MCwgd2UgZG8gbm90IG5lZWQgdG8gY2hhbmdlIGl0LgogICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8g UGVuZykKICAgIC0gbW92ZSBjb21tZW50cyB0byBleHBsYWluIGNoYW5nZXMgb2YgJ2Nvc193cml0 ZV9pbmZvJyBmcm9tIHBzci5jIHRvIGNvbW1pdAogICAgICBtZXNzYWdlLgogICAgICAoc3VnZ2Vz dGVkIGJ5IENoYW8gUGVuZykKLS0tCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMgICAgICAgfCAgNiAr KysrKysKIHhlbi9hcmNoL3g4Ni9wc3IuYyAgICAgICAgICB8IDQ2ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogeGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5o IHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9hcmNoL3g4Ni9kb21j dGwuYwppbmRleCA3NWU1ZTM1Li4zNmFiMjM1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvZG9t Y3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0xNTA1LDYgKzE1MDUsMTIgQEAg bG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBTUl9U WVBFX0wyX0NCTSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIFhFTl9ET01D VExfUFNSX1NFVF9NQkFfVEhSVEw6CisgICAgICAgICAgICByZXQgPSBwc3Jfc2V0X3ZhbChkLCBk b21jdGwtPnUucHNyX2FsbG9jLnRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWN0bC0+dS5wc3JfYWxsb2MuZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBTUl9UWVBFX01CQV9USFJUTCk7CisgICAgICAgICAgICBicmVhazsKKwogI2RlZmluZSBkb21j dGxfcHNyX2dldF92YWwoZCwgZG9tY3RsLCB0eXBlLCBjb3B5YmFjaykgKHsgICAgXAogICAgIHVp bnQzMl90IHZfOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAog ICAgIGludCByXyA9IHBzcl9nZXRfdmFsKChkKSwgKGRvbWN0bCktPnUucHNyX2FsbG9jLnRhcmdl dCwgXApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2FyY2gveDg2L3Bzci5j CmluZGV4IGE0OTAxZDguLjBiYThlZjggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wc3IuYwor KysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTEzOCw2ICsxMzgsMTIgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmZWF0X3Byb3BzIHsKIAogICAgIC8qIHdyaXRlX21zciBpcyB1c2VkIHRvIHdyaXRl IG91dCBmZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KICAgICB2b2lkICgqd3JpdGVfbXNyKSh1bnNp Z25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVudW0gcHNyX3R5cGUgdHlwZSk7CisKKyAgICAv KgorICAgICAqIHNhbml0aXplIGlzIHVzZWQgdG8gY2hlY2sgaWYgaW5wdXQgdmFsIGZ1bGZpbGxz IFNETSByZXF1aXJlbWVudC4KKyAgICAgKiBBbmQgY2hhbmdlIGl0IHRvIHZhbGlkIHZhbHVlIGlm IFNETSBhbGxvd3MuCisgICAgICovCisgICAgYm9vbCAoKnNhbml0aXplKShjb25zdCBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0LCB1aW50MzJfdCAqdmFsKTsKIH0gKmZlYXRfcHJvcHNbRkVBVF9UWVBF X05VTV07CiAKIC8qCkBAIC0yNzQsMTEgKzI4MCwxNCBAQCBzdGF0aWMgZW51bSBwc3JfZmVhdF90 eXBlIHBzcl90eXBlX3RvX2ZlYXRfdHlwZShlbnVtIHBzcl90eXBlIHR5cGUpCiAgICAgcmV0dXJu IGZlYXRfdHlwZTsKIH0KIAotc3RhdGljIGJvb2wgcHNyX2NoZWNrX2NibSh1bnNpZ25lZCBpbnQg Y2JtX2xlbiwgdW5zaWduZWQgbG9uZyBjYm0pCisvKiBJbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2F0 aW9uIGZlYXR1cmVzJyBmdW5jdGlvbnMuICovCitzdGF0aWMgYm9vbCBjYXRfY2hlY2tfY2JtKGNv bnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVpbnQzMl90ICp2YWwpCiB7CiAgICAgdW5zaWdu ZWQgaW50IGZpcnN0X2JpdCwgemVyb19iaXQ7CisgICAgdW5zaWduZWQgaW50IGNibV9sZW4gPSBm ZWF0LT5jYXQuY2JtX2xlbjsKKyAgICB1bnNpZ25lZCBsb25nIGNibSA9ICp2YWw7CiAKLSAgICAv KiBTZXQgYml0cyBzaG91bGQgb25seSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIGNibV9sZW5dLiAqLwor ICAgIC8qIFNldCBiaXRzIHNob3VsZCBvbmx5IGluIHRoZSByYW5nZSBvZiBbMCwgY2JtX2xlbiku ICovCiAgICAgaWYgKCBjYm0gJiAofjB1bCA8PCBjYm1fbGVuKSApCiAgICAgICAgIHJldHVybiBm YWxzZTsKIApAQCAtMjk3LDcgKzMwNiw2IEBAIHN0YXRpYyBib29sIHBzcl9jaGVja19jYm0odW5z aWduZWQgaW50IGNibV9sZW4sIHVuc2lnbmVkIGxvbmcgY2JtKQogICAgIHJldHVybiB0cnVlOwog fQogCi0vKiBJbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2F0aW9uIGZlYXR1cmVzJyBmdW5jdGlvbnMu ICovCiBzdGF0aWMgYm9vbCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVjdCBjcHVpZF9sZWFm ICpyZWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmVhdF9ub2RlICpm ZWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHNyX3NvY2tldF9pbmZv ICppbmZvLApAQCAtNDM0LDYgKzQ0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9w cyBsM19jYXRfcHJvcHMgPSB7CiAgICAgLmFsdF90eXBlID0gUFNSX1RZUEVfVU5LTk9XTiwKICAg ICAuZ2V0X2ZlYXRfaW5mbyA9IGNhdF9nZXRfZmVhdF9pbmZvLAogICAgIC53cml0ZV9tc3IgPSBs M19jYXRfd3JpdGVfbXNyLAorICAgIC5zYW5pdGl6ZSA9IGNhdF9jaGVja19jYm0sCiB9OwogCiAv KiBMMyBDRFAgcHJvcHMgKi8KQEAgLTQ2NCw2ICs0NzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IGZlYXRfcHJvcHMgbDNfY2RwX3Byb3BzID0gewogICAgIC5hbHRfdHlwZSA9IFBTUl9UWVBFX0wz X0NCTSwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NkcF9nZXRfZmVhdF9pbmZvLAogICAgIC53 cml0ZV9tc3IgPSBsM19jZHBfd3JpdGVfbXNyLAorICAgIC5zYW5pdGl6ZSA9IGNhdF9jaGVja19j Ym0sCiB9OwogCiAvKiBMMiBDQVQgcHJvcHMgKi8KQEAgLTQ3OSw2ICs0ODksNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDJfY2F0X3Byb3BzID0gewogICAgIC5hbHRfdHlwZSA9 IFBTUl9UWVBFX1VOS05PV04sCiAgICAgLmdldF9mZWF0X2luZm8gPSBjYXRfZ2V0X2ZlYXRfaW5m bywKICAgICAud3JpdGVfbXNyID0gbDJfY2F0X3dyaXRlX21zciwKKyAgICAuc2FuaXRpemUgPSBj YXRfY2hlY2tfY2JtLAogfTsKIAogLyogTUJBIHByb3BzICovCkBAIC00OTksNiArNTEwLDMyIEBA IHN0YXRpYyBib29sIG1iYV9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZl YXQsCiBzdGF0aWMgdm9pZCBtYmFfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90 IHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfdHlwZSB0eXBlKQogewor ICAgIHdybXNybChNU1JfSUEzMl9QU1JfTUJBX01BU0soY29zKSwgdmFsKTsKK30KKworc3RhdGlj IGJvb2wgbWJhX3Nhbml0aXplX3RocnRsKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVp bnQzMl90ICp0aHJ0bCkKK3sKKyAgICAvKgorICAgICAqIFBlciBTRE0gKGNoYXB0ZXIgIk1lbW9y eSBCYW5kd2lkdGggQWxsb2NhdGlvbiBDb25maWd1cmF0aW9uIik6CisgICAgICogMS4gTGluZWFy IG1vZGU6IEluIHRoZSBsaW5lYXIgbW9kZSB0aGUgaW5wdXQgcHJlY2lzaW9uIGlzIGRlZmluZWQK KyAgICAgKiAgICBhcyAxMDAtKE1CQV9NQVgpLiBGb3IgaW5zdGFuY2UsIGlmIHRoZSBNQkFfTUFY IHZhbHVlIGlzIDkwLCB0aGUKKyAgICAgKiAgICBpbnB1dCBwcmVjaXNpb24gaXMgMTAlLiBWYWx1 ZXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlCisgICAgICogICAgcHJlY2lzaW9uIChlLmcu LCAxMiUpIHdpbGwgYmUgcm91bmRlZCBkb3duIChlLmcuLCB0byAxMCUgZGVsYXkKKyAgICAgKiAg ICBhcHBsaWVkKS4KKyAgICAgKiAyLiBOb24tbGluZWFyIG1vZGU6IElucHV0IGRlbGF5IHZhbHVl cyBhcmUgcG93ZXJzLW9mLXR3byBmcm9tIHplcm8KKyAgICAgKiAgICB0byB0aGUgTUJBX01BWCB2 YWx1ZSBmcm9tIENQVUlELiBJbiB0aGlzIGNhc2UgYW55IHZhbHVlcyBub3QgYQorICAgICAqICAg IHBvd2VyIG9mIHR3byB3aWxsIGJlIHJvdW5kZWQgZG93biB0aGUgbmV4dCBuZWFyZXN0IHBvd2Vy IG9mIHR3by4KKyAgICAgKi8KKyAgICBpZiAoIGZlYXQtPm1iYS5saW5lYXIgKQorICAgICAgICAq dGhydGwgLT0gKnRocnRsICUgKDEwMCAtIGZlYXQtPm1iYS50aHJ0bF9tYXgpOworICAgIGVsc2UK KyAgICB7CisgICAgICAgIC8qIE5vdCBwb3dlciBvZiAyLiAqLworICAgICAgICBpZiAoICp0aHJ0 bCAmICgqdGhydGwgLSAxKSApCisgICAgICAgICAgICAqdGhydGwgPSAxIDw8IChmbHMoKnRocnRs KSAtIDEpOworICAgIH0KKworICAgIHJldHVybiAqdGhydGwgPD0gZmVhdC0+bWJhLnRocnRsX21h eDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIG1iYV9wcm9wcyA9IHsKQEAg LTUwNyw2ICs1NDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbWJhX3Byb3Bz ID0gewogICAgIC5hbHRfdHlwZSA9IFBTUl9UWVBFX1VOS05PV04sCiAgICAgLmdldF9mZWF0X2lu Zm8gPSBtYmFfZ2V0X2ZlYXRfaW5mbywKICAgICAud3JpdGVfbXNyID0gbWJhX3dyaXRlX21zciwK KyAgICAuc2FuaXRpemUgPSBtYmFfc2FuaXRpemVfdGhydGwsCiB9OwogCiBzdGF0aWMgYm9vbCBf X2luaXQgcGFyc2VfcHNyX2Jvb2woY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqZGVsaW0sCkBA IC05NzIsNyArMTAxMCw3IEBAIHN0YXRpYyBpbnQgaW5zZXJ0X3ZhbF9pbnRvX2FycmF5KHVpbnQz Ml90IHZhbFtdLAogICAgIGlmICggYXJyYXlfbGVuIDwgcHJvcHMtPmNvc19udW0gKQogICAgICAg ICByZXR1cm4gLUVOT1NQQzsKIAotICAgIGlmICggIXBzcl9jaGVja19jYm0oZmVhdC0+Y2F0LmNi bV9sZW4sIG5ld192YWwpICkKKyAgICBpZiAoICFwcm9wcy0+c2FuaXRpemUoZmVhdCwgJm5ld192 YWwpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICAvKgpkaWZmIC0tZ2l0IGEveGVu L2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCmlu ZGV4IDQ0Y2YwYjUuLjZkNTM5NmYgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21j dGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTEwNzQsNiArMTA3NCw3 IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9hbGxvYyB7CiAjZGVmaW5lIFhFTl9ET01DVExfUFNS X0dFVF9MM19EQVRBICAgIDUKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfU0VUX0wyX0NCTSAgICAg NgogI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9HRVRfTDJfQ0JNICAgICA3CisjZGVmaW5lIFhFTl9E T01DVExfUFNSX1NFVF9NQkFfVEhSVEwgIDgKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfR0VUX01C QV9USFJUTCAgOQogICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogSU46IFhFTl9ET01DVExfUFNS XyogKi8KICAgICB1aW50MzJfdCB0YXJnZXQ7ICAgIC8qIElOICovCi0tIAoxLjkuMQoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=