From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v9 08/16] x86: implement set value flow for MBA Date: Tue, 17 Oct 2017 09:04:18 +0800 Message-ID: <1508202258-15791-1-git-send-email-yi.y.sun@linux.intel.com> References: <1508123061-6600-9-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 mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1e4GdD-0005uU-Qf for xen-devel@lists.xenproject.org; Tue, 17 Oct 2017 01:25:19 +0000 In-Reply-To: <1508123061-6600-9-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.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 IFlpIFN1biA8eWkueS5zdW5AbGludXguaW50ZWwuY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxq YmV1bGljaEBzdXNlLmNvbT4KQ0M6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJp eC5jb20+CkNDOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgpDQzogUm9nZXIgUGF1IE1v bm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CkNDOiBDaGFvIFBlbmcgPGNoYW8ucC5wZW5nQGxp bnV4LmludGVsLmNvbT4KCnY5OgogICAgLSBhZGp1c3QgY29kZXMgaW4gJ21iYV9zYW5pdGl6ZV90 aHJ0bCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY4OgogICAgLSByZXN0b3Jl IHNvbWUgb2xkIGNvZGVzIGluICdjYXRfY2hlY2tfY2JtJy4KICAgICAgKHN1Z2dlc3RlZCBieSBK YW4gQmV1bGljaCkKICAgIC0gdXNlICdmbHMoKScgYnV0IG5vdCAnZmxzbCgpJy4KICAgICAgKHN1 Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gdXNlIHBsYWluICc9JyB0byBhc3NpZ24gdmFs dWUgZm9yIHRocnRsIGluICdtYmFfc2FuaXRpemVfdGhydGwnLgogICAgICAoc3VnZ2VzdGVkIGJ5 IEphbiBCZXVsaWNoKQp2NzoKICAgIC0gY2hhbmdlIG5hbWUgb2YgJ2NoZWNrX3ZhbCcgdG8gJ3Nh bml0aXplJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKICAgIC0gZml4IGNvbW1l bnRzLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSBhZGQgcGFyZW50aGVz ZXMgYW5kIGNoYW5nZSAnPT0gMCcgdG8gJyEnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3NhcnkgY2hlY2sgb2YgJ21iYS50aHJ0bF9tYXgnLgog ICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVsaWNoKQogICAgLSByZW1vdmUgdW5uZWNlc3Nhcnkg aW50ZXJtZWRpYXRlIHZhcmlhYmxlICdtb2QnLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQogICAgLSByZWZpbmUgYW4gYXNzaWduZW1lbnQgc2VudGVuY2UgdG8gdXNlICcmPScuCiAg ICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAtIGNoYW5nZSB0eXBlIG9mIGxhc3Qg cGFyYW1ldGVyIG9mICdzYW5pdGl6ZScgdG8gJ3VpbnQzMl90JyBhbmQKICAgICAgYXBwbHkgc2Ft ZSBjaGFuZ2UgdG8gJ2NhdF9jaGVja19jYm0nLgogICAgICAoc3VnZ2VzdGVkIGJ5IEphbiBCZXVs aWNoKQp2NjoKICAgIC0gc3BsaXQgY28tZXhpc3QgZmVhdHVyZXMnIHZhbHVlcyBzZXR0aW5nIGZs b3cgdG8gYSBuZXcgcGF0Y2guCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCiAgICAt IHJlc3RvcmUgY29kZXMgcmVsYXRlZCB0byAnbWJhX2NoZWNrX3RocnRsJyBhbmQgJ2NoZWNrX3Zh bHVlJy4KICAgICAgKHN1Z2dlc3RlZCBieSBKYW4gQmV1bGljaCkKdjU6CiAgICAtIGFkanVzdCBw b3NpdGlvbiBvZiAnY2F0X2NoZWNrX2NibScgdG8gbm90IHRvIG1ha2UgY2hhbmdlcyBzbyBiaWcu CiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVtb3ZlICdwcm9w cycgZnJvbSAnc3RydWN0IGNvc193cml0ZV9pbmZvJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dl ciBQYXUgTW9ubsOpKQogICAgLSBtYWtlIGEgc2luZ2xlIHJldHVybiBzdGF0ZW1lbnQgaW4gJ21i YV9jaGVja190aHJ0bCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gpCnY0OgogICAg LSByZW1vdmUgJ0FMTE9DXycgZnJvbSBtYWNybyBuYW1lcy4KICAgICAgKHN1Z2dlc3RlZCBieSBS b2dlciBQYXUgTW9ubsOpKQogICAgLSBqb2luIHR3byBjaGVja3MgaW50byBhIHNpbmdsZSBpZi4K ICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1vdmUgcmVkdW5k YW50IGxvY2FsIHZhcmlhYmxlICdhcnJheV9sZW4nLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2Vy IFBhdSBNb25uw6kpCnYzOgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8gbWFrZSBpdCBj bGVhci4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBtb2RpZnkg ZnVuY3Rpb25hbGl0eSBvZiAnY2hlY2tfdmFsJyB0byBtYWtlIGl0IHNpbXBsZSB0byBvbmx5IGNo ZWNrIHZhbHVlLgogICAgICBDaGFuZ2UgdGhlIGxhc3QgcGFyYW1ldGVyIHR5cGUgZnJvbSAndW5z aWduZWQgbG9uZyAqJyB0byAndW5zaWduZWQgbG9uZycuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9n ZXIgUGF1IE1vbm7DqSkKICAgIC0gY2FsbCByZG1zcmwgdG8gZ2V0IHZhbHVlIGp1c3Qgd3JpdHRl biBpbnRvIE1TUiBmb3IgTUJBLiBCZWNhdXNlIEhXIGNhbgogICAgICBhdXRvbWF0aWNhbGx5IGNo YW5nZSBpbnB1dCB2YWx1ZSB0byB3aGF0IGl0IHdhbnRzLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJv Z2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICd3cml0ZV9tc3InIHRvICd1aW50 MzJfdCcgdG8gcmV0dXJuIHRoZSB2YWx1ZSBhY3R1YWxseQogICAgICB3cml0dGVuIGludG8gTVNS LiBUaGVuLCBjaGFuZ2UgJ2RvX3dyaXRlX3Bzcl9tc3JzJyB0byBzZXQgdGhlIHJldHVybmVkCiAg ICAgIHZhbHVlIGludG8gJ2Nvc19yZWdfdmFsW10nCiAgICAtIG1vdmUgdGhlIGRlY2xhcmF0aW9u IG9mICdqJyBpbnRvIGxvb3AgaW4gJ2RvX3dyaXRlX3Bzcl9tc3JzJy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ21iYV9pbmZvJyB0byAnbWJhJy4K ICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ2NhdF9p bmZvJyB0byAnY2F0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSByZW5hbWUgJ3Bzcl9jYXQvUFNSX0NBVCcgdG8gJ3Bzcl9hbGxvYy9QU1JfQUxMT0MnIGFuZCBy ZW1vdmUgJ29wL09QJwogICAgICBmcm9tIG5hbWUuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIg UGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdQU1JfVkFMX1RZUEVfTUJBJyB0byAnUFNSX1RZUEVf TUJBX1RIUlRMJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQp2MjoKICAg IC0gcmVtb3ZlIGxpbmVhciBtb2RlICd0aHJ0bF9tYXgnIGNoZWNrIGluICdtYmFfY2hlY2tfdGhy dGwnIGJlY2F1c2UgaXQgaGFzCiAgICAgIGJlZW4gY2hlY2tlZCBpbiAnbWJhX2luaXRfZmVhdHVy ZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSBmb3Igbm9uLWxpbmVhciBt b2RlLCBjaGVjayBpZiAnKnRocnRsJyBpcyBub3QgMCBpbiAnbWJhX2NoZWNrX3RocnRsJy4gSWYK ICAgICAgaXQgaXMgMCwgd2UgZG8gbm90IG5lZWQgdG8gY2hhbmdlIGl0LgogICAgICAoc3VnZ2Vz dGVkIGJ5IENoYW8gUGVuZykKICAgIC0gbW92ZSBjb21tZW50cyB0byBleHBsYWluIGNoYW5nZXMg b2YgJ2Nvc193cml0ZV9pbmZvJyBmcm9tIHBzci5jIHRvIGNvbW1pdAogICAgICBtZXNzYWdlLgog ICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKLS0tCiB4ZW4vYXJjaC94ODYvZG9tY3RsLmMg ICAgICAgfCAgNiArKysrKysKIHhlbi9hcmNoL3g4Ni9wc3IuYyAgICAgICAgICB8IDQ2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogeGVuL2luY2x1ZGUvcHVi bGljL2RvbWN0bC5oIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA0 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYyBiL3hlbi9h cmNoL3g4Ni9kb21jdGwuYwppbmRleCBiNzI2ZWFlLi40YmNhMTVkIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvZG9tY3RsLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCkBAIC0xNDY1LDYg KzE0NjUsMTIgQEAgbG9uZyBhcmNoX2RvX2RvbWN0bCgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFBTUl9UWVBFX0wyX0NCTSk7CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBj YXNlIFhFTl9ET01DVExfUFNSX1NFVF9NQkFfVEhSVEw6CisgICAgICAgICAgICByZXQgPSBwc3Jf c2V0X3ZhbChkLCBkb21jdGwtPnUucHNyX2FsbG9jLnRhcmdldCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbWN0bC0+dS5wc3JfYWxsb2MuZGF0YSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBTUl9UWVBFX01CQV9USFJUTCk7CisgICAgICAgICAgICBicmVhazsKKwog I2RlZmluZSBkb21jdGxfcHNyX2dldF92YWwoZCwgZG9tY3RsLCB0eXBlLCBjb3B5YmFjaykgKHsg ICAgXAogICAgIHVpbnQzMl90IHZfOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAogICAgIGludCByXyA9IHBzcl9nZXRfdmFsKChkKSwgKGRvbWN0bCktPnUucHNy X2FsbG9jLnRhcmdldCwgXApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3Bzci5jIGIveGVuL2Fy Y2gveDg2L3Bzci5jCmluZGV4IDU0OWYyMWIuLmU4ZjZkZDggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNo L3g4Ni9wc3IuYworKysgYi94ZW4vYXJjaC94ODYvcHNyLmMKQEAgLTEzOCw2ICsxMzgsMTIgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIHsKIAogICAgIC8qIHdyaXRlX21zciBpcyB1 c2VkIHRvIHdyaXRlIG91dCBmZWF0dXJlIE1TUiByZWdpc3Rlci4gKi8KICAgICB2b2lkICgqd3Jp dGVfbXNyKSh1bnNpZ25lZCBpbnQgY29zLCB1aW50MzJfdCB2YWwsIGVudW0gcHNyX3R5cGUgdHlw ZSk7CisKKyAgICAvKgorICAgICAqIHNhbml0aXplIGlzIHVzZWQgdG8gY2hlY2sgaWYgaW5wdXQg dmFsIGZ1bGZpbGxzIFNETSByZXF1aXJlbWVudC4KKyAgICAgKiBBbmQgY2hhbmdlIGl0IHRvIHZh bGlkIHZhbHVlIGlmIFNETSBhbGxvd3MuCisgICAgICovCisgICAgYm9vbCAoKnNhbml0aXplKShj b25zdCBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0LCB1aW50MzJfdCAqdmFsKTsKIH0gKmZlYXRfcHJv cHNbRkVBVF9UWVBFX05VTV07CiAKIC8qCkBAIC0yNzQsMTEgKzI4MCwxNCBAQCBzdGF0aWMgZW51 bSBwc3JfZmVhdF90eXBlIHBzcl90eXBlX3RvX2ZlYXRfdHlwZShlbnVtIHBzcl90eXBlIHR5cGUp CiAgICAgcmV0dXJuIGZlYXRfdHlwZTsKIH0KIAotc3RhdGljIGJvb2wgcHNyX2NoZWNrX2NibSh1 bnNpZ25lZCBpbnQgY2JtX2xlbiwgdW5zaWduZWQgbG9uZyBjYm0pCisvKiBJbXBsZW1lbnRhdGlv biBvZiBhbGxvY2F0aW9uIGZlYXR1cmVzJyBmdW5jdGlvbnMuICovCitzdGF0aWMgYm9vbCBjYXRf Y2hlY2tfY2JtKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVpbnQzMl90ICp2YWwpCiB7 CiAgICAgdW5zaWduZWQgaW50IGZpcnN0X2JpdCwgemVyb19iaXQ7CisgICAgdW5zaWduZWQgaW50 IGNibV9sZW4gPSBmZWF0LT5jYXQuY2JtX2xlbjsKKyAgICB1bnNpZ25lZCBsb25nIGNibSA9ICp2 YWw7CiAKLSAgICAvKiBTZXQgYml0cyBzaG91bGQgb25seSBpbiB0aGUgcmFuZ2Ugb2YgWzAsIGNi bV9sZW5dLiAqLworICAgIC8qIFNldCBiaXRzIHNob3VsZCBvbmx5IGluIHRoZSByYW5nZSBvZiBb MCwgY2JtX2xlbikuICovCiAgICAgaWYgKCBjYm0gJiAofjB1bCA8PCBjYm1fbGVuKSApCiAgICAg ICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjk3LDcgKzMwNiw2IEBAIHN0YXRpYyBib29sIHBzcl9j aGVja19jYm0odW5zaWduZWQgaW50IGNibV9sZW4sIHVuc2lnbmVkIGxvbmcgY2JtKQogICAgIHJl dHVybiB0cnVlOwogfQogCi0vKiBJbXBsZW1lbnRhdGlvbiBvZiBhbGxvY2F0aW9uIGZlYXR1cmVz JyBmdW5jdGlvbnMuICovCiBzdGF0aWMgYm9vbCBjYXRfaW5pdF9mZWF0dXJlKGNvbnN0IHN0cnVj dCBjcHVpZF9sZWFmICpyZWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg ZmVhdF9ub2RlICpmZWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcHNy X3NvY2tldF9pbmZvICppbmZvLApAQCAtNDM0LDYgKzQ0Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZmVhdF9wcm9wcyBsM19jYXRfcHJvcHMgPSB7CiAgICAgLmFsdF90eXBlID0gUFNSX1RZUEVf VU5LTk9XTiwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGNhdF9nZXRfZmVhdF9pbmZvLAogICAgIC53 cml0ZV9tc3IgPSBsM19jYXRfd3JpdGVfbXNyLAorICAgIC5zYW5pdGl6ZSA9IGNhdF9jaGVja19j Ym0sCiB9OwogCiAvKiBMMyBDRFAgcHJvcHMgKi8KQEAgLTQ2NCw2ICs0NzMsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2RwX3Byb3BzID0gewogICAgIC5hbHRfdHlwZSA9 IFBTUl9UWVBFX0wzX0NCTSwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NkcF9nZXRfZmVhdF9p bmZvLAogICAgIC53cml0ZV9tc3IgPSBsM19jZHBfd3JpdGVfbXNyLAorICAgIC5zYW5pdGl6ZSA9 IGNhdF9jaGVja19jYm0sCiB9OwogCiAvKiBMMiBDQVQgcHJvcHMgKi8KQEAgLTQ3OSw2ICs0ODks NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDJfY2F0X3Byb3BzID0gewogICAg IC5hbHRfdHlwZSA9IFBTUl9UWVBFX1VOS05PV04sCiAgICAgLmdldF9mZWF0X2luZm8gPSBjYXRf Z2V0X2ZlYXRfaW5mbywKICAgICAud3JpdGVfbXNyID0gbDJfY2F0X3dyaXRlX21zciwKKyAgICAu c2FuaXRpemUgPSBjYXRfY2hlY2tfY2JtLAogfTsKIAogLyogTUJBIHByb3BzICovCkBAIC00OTks NiArNTEwLDMyIEBAIHN0YXRpYyBib29sIG1iYV9nZXRfZmVhdF9pbmZvKGNvbnN0IHN0cnVjdCBm ZWF0X25vZGUgKmZlYXQsCiBzdGF0aWMgdm9pZCBtYmFfd3JpdGVfbXNyKHVuc2lnbmVkIGludCBj b3MsIHVpbnQzMl90IHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfdHlw ZSB0eXBlKQogeworICAgIHdybXNybChNU1JfSUEzMl9QU1JfTUJBX01BU0soY29zKSwgdmFsKTsK K30KKworc3RhdGljIGJvb2wgbWJhX3Nhbml0aXplX3RocnRsKGNvbnN0IHN0cnVjdCBmZWF0X25v ZGUgKmZlYXQsIHVpbnQzMl90ICp0aHJ0bCkKK3sKKyAgICAvKgorICAgICAqIFBlciBTRE0gKGNo YXB0ZXIgIk1lbW9yeSBCYW5kd2lkdGggQWxsb2NhdGlvbiBDb25maWd1cmF0aW9uIik6CisgICAg ICogMS4gTGluZWFyIG1vZGU6IEluIHRoZSBsaW5lYXIgbW9kZSB0aGUgaW5wdXQgcHJlY2lzaW9u IGlzIGRlZmluZWQKKyAgICAgKiAgICBhcyAxMDAtKE1CQV9NQVgpLiBGb3IgaW5zdGFuY2UsIGlm IHRoZSBNQkFfTUFYIHZhbHVlIGlzIDkwLCB0aGUKKyAgICAgKiAgICBpbnB1dCBwcmVjaXNpb24g aXMgMTAlLiBWYWx1ZXMgbm90IGFuIGV2ZW4gbXVsdGlwbGUgb2YgdGhlCisgICAgICogICAgcHJl Y2lzaW9uIChlLmcuLCAxMiUpIHdpbGwgYmUgcm91bmRlZCBkb3duIChlLmcuLCB0byAxMCUgZGVs YXkKKyAgICAgKiAgICBhcHBsaWVkKS4KKyAgICAgKiAyLiBOb24tbGluZWFyIG1vZGU6IElucHV0 IGRlbGF5IHZhbHVlcyBhcmUgcG93ZXJzLW9mLXR3byBmcm9tIHplcm8KKyAgICAgKiAgICB0byB0 aGUgTUJBX01BWCB2YWx1ZSBmcm9tIENQVUlELiBJbiB0aGlzIGNhc2UgYW55IHZhbHVlcyBub3Qg YQorICAgICAqICAgIHBvd2VyIG9mIHR3byB3aWxsIGJlIHJvdW5kZWQgZG93biB0aGUgbmV4dCBu ZWFyZXN0IHBvd2VyIG9mIHR3by4KKyAgICAgKi8KKyAgICBpZiAoIGZlYXQtPm1iYS5saW5lYXIg KQorICAgICAgICAqdGhydGwgLT0gKnRocnRsICUgKDEwMCAtIGZlYXQtPm1iYS50aHJ0bF9tYXgp OworICAgIGVsc2UKKyAgICB7CisgICAgICAgIC8qIE5vdCBwb3dlciBvZiAyLiAqLworICAgICAg ICBpZiAoICp0aHJ0bCAmICgqdGhydGwgLSAxKSApCisgICAgICAgICAgICAqdGhydGwgPSAxIDw8 IChmbHMoKnRocnRsKSAtIDEpOworICAgIH0KKworICAgIHJldHVybiAqdGhydGwgPD0gZmVhdC0+ bWJhLnRocnRsX21heDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIG1iYV9w cm9wcyA9IHsKQEAgLTUwNyw2ICs1NDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJv cHMgbWJhX3Byb3BzID0gewogICAgIC5hbHRfdHlwZSA9IFBTUl9UWVBFX1VOS05PV04sCiAgICAg LmdldF9mZWF0X2luZm8gPSBtYmFfZ2V0X2ZlYXRfaW5mbywKICAgICAud3JpdGVfbXNyID0gbWJh X3dyaXRlX21zciwKKyAgICAuc2FuaXRpemUgPSBtYmFfc2FuaXRpemVfdGhydGwsCiB9OwogCiBz dGF0aWMgYm9vbCBfX2luaXQgcGFyc2VfcHNyX2Jvb2woY29uc3QgY2hhciAqcywgY29uc3QgY2hh ciAqZGVsaW0sCkBAIC05NzIsNyArMTAxMCw3IEBAIHN0YXRpYyBpbnQgaW5zZXJ0X3ZhbF9pbnRv X2FycmF5KHVpbnQzMl90IHZhbFtdLAogICAgIGlmICggYXJyYXlfbGVuIDwgcHJvcHMtPmNvc19u dW0gKQogICAgICAgICByZXR1cm4gLUVOT1NQQzsKIAotICAgIGlmICggIXBzcl9jaGVja19jYm0o ZmVhdC0+Y2F0LmNibV9sZW4sIG5ld192YWwpICkKKyAgICBpZiAoICFwcm9wcy0+c2FuaXRpemUo ZmVhdCwgJm5ld192YWwpICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKICAgICAvKgpkaWZm IC0tZ2l0IGEveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oIGIveGVuL2luY2x1ZGUvcHVibGlj L2RvbWN0bC5oCmluZGV4IDAwMmEyNmYuLmIzMTJjNjkgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L3B1YmxpYy9kb21jdGwuaAorKysgYi94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmgKQEAgLTEw NzAsNiArMTA3MCw3IEBAIHN0cnVjdCB4ZW5fZG9tY3RsX3Bzcl9hbGxvYyB7CiAjZGVmaW5lIFhF Tl9ET01DVExfUFNSX0dFVF9MM19EQVRBICAgIDUKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfU0VU X0wyX0NCTSAgICAgNgogI2RlZmluZSBYRU5fRE9NQ1RMX1BTUl9HRVRfTDJfQ0JNICAgICA3Cisj ZGVmaW5lIFhFTl9ET01DVExfUFNSX1NFVF9NQkFfVEhSVEwgIDgKICNkZWZpbmUgWEVOX0RPTUNU TF9QU1JfR0VUX01CQV9USFJUTCAgOQogICAgIHVpbnQzMl90IGNtZDsgICAgICAgLyogSU46IFhF Tl9ET01DVExfUFNSXyogKi8KICAgICB1aW50MzJfdCB0YXJnZXQ7ICAgIC8qIElOICovCi0tIAox LjkuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhl bi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0 cy54ZW4ub3JnL3hlbi1kZXZlbAo=