From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v5 08/16] x86: implement set value flow for MBA Date: Sat, 30 Sep 2017 09:39:18 +0800 Message-ID: <1506735566-5706-9-git-send-email-yi.y.sun@linux.intel.com> References: <1506735566-5706-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 mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dy73w-0004Wh-0x for xen-devel@lists.xenproject.org; Sat, 30 Sep 2017 01:59:28 +0000 In-Reply-To: <1506735566-5706-1-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 cyBjYWxsYmFjawpmdW5jdGlvbiBhbmQgZG9tY3RsIGludGVyZmFjZS4KCkl0IGFsc28gY2hhbmdl cyB0aGUgbWVtZWJlcnMgaW4gJ2Nvc193cml0ZV9pbmZvJyB0byB0cmFuc2ZlciB0aGUKZmVhdHVy ZSBhcnJheSwgZmVhdHVyZSBwcm9wZXJ0aWVzIGFycmF5IGFuZCB2YWx1ZSBhcnJheS4gVGhlbiwg d2UKY2FuIHdyaXRlIGFsbCBmZWF0dXJlcyB2YWx1ZXMgb24gdGhlIGNvcyBpZCBpbnRvIE1TUnMu CgpCZWNhdXNlIG11bHRpcGxlIGZlYXR1cmVzIG1heSBjby1leGlzdCwgd2UgbmVlZCBoYW5kbGUg YWxsIGZlYXR1cmVzIHRvIHdyaXRlCnZhbHVlcyBvZiB0aGVtIGludG8gYSBDT1MgcmVnaXN0ZXIg d2l0aCBuZXcgQ09TIElELiBFLmc6CjEuIEwzIENBVCBhbmQgTUJBIGNvLWV4aXN0LgoyLiBEb20x IGFuZCBEb20yIHNoYXJlIGEgc2FtZSBDT1MgSUQgKDIpLiBUaGUgTDMgQ0FUIENCTSBvZiBEb20x IGlzIDB4MWZmLAogICB0aGUgTUJBIFRocnRsZSBvZiBEb20xIGlzIDB4YS4KMy4gVXNlciB3YW50 cyB0byBjaGFuZ2UgTUJBIFRocnRsIG9mIERvbTEgdG8gYmUgMHgxNC4gQmVjYXVzZSBDT1MgSUQg MiBpcwogICB1c2VkIGJ5IERvbTIgdG9vLCB3ZSBoYXZlIHRvIHBpY2sgYSBuZXcgQ09TIElEIDMu IFRoZSB2YWx1ZXMgb2YgRG9tMSBvbgogICBDT1MgSUQgMyBhcmUgYWxsIGRlZmF1bHQgdmFsdWVz IGFzIGJlbG93OgogICAgICAgICAgIC0tLS0tLS0tLQogICAgICAgICAgIHwgQ09TIDMgfAogICAg ICAgICAgIC0tLS0tLS0tLQogICBMMyBDQVQgIHwgMHg3ZmYgfAogICAgICAgICAgIC0tLS0tLS0t LQogICBNQkEgICAgIHwgMHgwICAgfAogICAgICAgICAgIC0tLS0tLS0tLQo0LiBBZnRlciBzZXR0 aW5nLCB0aGUgTDMgQ0FUIENCTSB2YWx1ZSBvZiBEb20xIHNob3VsZCBiZSBrZXB0IGFuZCB0aGUg bmV3IE1CQQogICBUaHJ0bCBpcyBzZXQuIFNvLCB0aGUgdmFsdWVzIG9uIENPUyBJRCAzIHNob3Vs ZCBiZSBiZWxvdy4KICAgICAgICAgICAtLS0tLS0tLS0KICAgICAgICAgICB8IENPUyAzIHwKICAg ICAgICAgICAtLS0tLS0tLS0KICAgTDMgQ0FUICB8IDB4MWZmIHwKICAgICAgICAgICAtLS0tLS0t LS0KICAgTUJBICAgICB8IDB4MTQgIHwKICAgICAgICAgICAtLS0tLS0tLS0KClNvLCB3ZSBzaG91 bGQgd3JpdGUgYWxsIGZlYXR1cmVzIHZhbHVlcyBpbnRvIHRoZWlyIE1TUnMuIFRoYXQgcmVxdWly ZXMgdGhlCmZlYXR1cmUgYXJyYXksIGZlYXR1cmUgcHJvcGVydGllcyBhcnJheSBhbmQgdmFsdWUg YXJyYXkgYXJlIGlucHV0LgoKU2lnbmVkLW9mZi1ieTogWWkgU3VuIDx5aS55LnN1bkBsaW51eC5p bnRlbC5jb20+Ci0tLQpDQzogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpDQzogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KQ0M6IFdlaSBMaXUgPHdlaS5s aXUyQGNpdHJpeC5jb20+CkNDOiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KQ0M6IENoYW8gUGVuZyA8Y2hhby5wLnBlbmdAbGludXguaW50ZWwuY29tPgoKdjU6CiAgICAt IGFkanVzdCBwb3NpdGlvbiBvZiAnY2F0X2NoZWNrX2NibScgdG8gbm90IHRvIG1ha2UgY2hhbmdl cyBzbyBiaWcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gcmVt b3ZlICdwcm9wcycgZnJvbSAnc3RydWN0IGNvc193cml0ZV9pbmZvJy4KICAgICAgKHN1Z2dlc3Rl ZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBtYWtlIGEgc2luZ2xlIHJldHVybiBzdGF0ZW1l bnQgaW4gJ21iYV9jaGVja190aHJ0bCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgSmFuIEJldWxpY2gp CnY0OgogICAgLSByZW1vdmUgJ0FMTE9DXycgZnJvbSBtYWNybyBuYW1lcy4KICAgICAgKHN1Z2dl c3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBqb2luIHR3byBjaGVja3MgaW50byBhIHNp bmdsZSBpZi4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSByZW1v dmUgcmVkdW5kYW50IGxvY2FsIHZhcmlhYmxlICdhcnJheV9sZW4nLgogICAgICAoc3VnZ2VzdGVk IGJ5IFJvZ2VyIFBhdSBNb25uw6kpCnYzOgogICAgLSBtb2RpZnkgY29tbWl0IG1lc3NhZ2UgdG8g bWFrZSBpdCBjbGVhci4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSBtb2RpZnkgZnVuY3Rpb25hbGl0eSBvZiAnY2hlY2tfdmFsJyB0byBtYWtlIGl0IHNpbXBsZSB0 byBvbmx5IGNoZWNrIHZhbHVlLgogICAgICBDaGFuZ2UgdGhlIGxhc3QgcGFyYW1ldGVyIHR5cGUg ZnJvbSAndW5zaWduZWQgbG9uZyAqJyB0byAndW5zaWduZWQgbG9uZycuCiAgICAgIChzdWdnZXN0 ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2FsbCByZG1zcmwgdG8gZ2V0IHZhbHVlIGp1 c3Qgd3JpdHRlbiBpbnRvIE1TUiBmb3IgTUJBLiBCZWNhdXNlIEhXIGNhbgogICAgICBhdXRvbWF0 aWNhbGx5IGNoYW5nZSBpbnB1dCB2YWx1ZSB0byB3aGF0IGl0IHdhbnRzLgogICAgICAoc3VnZ2Vz dGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGNoYW5nZSB0eXBlIG9mICd3cml0ZV9tc3In IHRvICd1aW50MzJfdCcgdG8gcmV0dXJuIHRoZSB2YWx1ZSBhY3R1YWxseQogICAgICB3cml0dGVu IGludG8gTVNSLiBUaGVuLCBjaGFuZ2UgJ2RvX3dyaXRlX3Bzcl9tc3JzJyB0byBzZXQgdGhlIHJl dHVybmVkCiAgICAgIHZhbHVlIGludG8gJ2Nvc19yZWdfdmFsW10nCiAgICAtIG1vdmUgdGhlIGRl Y2xhcmF0aW9uIG9mICdqJyBpbnRvIGxvb3AgaW4gJ2RvX3dyaXRlX3Bzcl9tc3JzJy4KICAgICAg KHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGFuZ2UgJ21iYV9pbmZvJyB0 byAnbWJhJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBjaGFu Z2UgJ2NhdF9pbmZvJyB0byAnY2F0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9u bsOpKQogICAgLSByZW5hbWUgJ3Bzcl9jYXQvUFNSX0NBVCcgdG8gJ3Bzcl9hbGxvYy9QU1JfQUxM T0MnIGFuZCByZW1vdmUgJ29wL09QJwogICAgICBmcm9tIG5hbWUuCiAgICAgIChzdWdnZXN0ZWQg YnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gY2hhbmdlICdQU1JfVkFMX1RZUEVfTUJBJyB0byAn UFNSX1RZUEVfTUJBX1RIUlRMJy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOp KQp2MjoKICAgIC0gcmVtb3ZlIGxpbmVhciBtb2RlICd0aHJ0bF9tYXgnIGNoZWNrIGluICdtYmFf Y2hlY2tfdGhydGwnIGJlY2F1c2UgaXQgaGFzCiAgICAgIGJlZW4gY2hlY2tlZCBpbiAnbWJhX2lu aXRfZmVhdHVyZScuCiAgICAgIChzdWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSBmb3Igbm9u LWxpbmVhciBtb2RlLCBjaGVjayBpZiAnKnRocnRsJyBpcyBub3QgMCBpbiAnbWJhX2NoZWNrX3Ro cnRsJy4gSWYKICAgICAgaXQgaXMgMCwgd2UgZG8gbm90IG5lZWQgdG8gY2hhbmdlIGl0LgogICAg ICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKICAgIC0gbW92ZSBjb21tZW50cyB0byBleHBsYWlu IGNoYW5nZXMgb2YgJ2Nvc193cml0ZV9pbmZvJyBmcm9tIHBzci5jIHRvIGNvbW1pdAogICAgICBt ZXNzYWdlLgogICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKLS0tCiB4ZW4vYXJjaC94ODYv ZG9tY3RsLmMgICAgICAgfCAgNiArKysrCiB4ZW4vYXJjaC94ODYvcHNyLmMgICAgICAgICAgfCA4 NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIHhlbi9pbmNs dWRlL3B1YmxpYy9kb21jdGwuaCB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9u cygrKSwgMzQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWN0bC5j IGIveGVuL2FyY2gveDg2L2RvbWN0bC5jCmluZGV4IDVmYjQ0M2YuLmU1ZjZhMjQgMTAwNjQ0Ci0t LSBhL3hlbi9hcmNoL3g4Ni9kb21jdGwuYworKysgYi94ZW4vYXJjaC94ODYvZG9tY3RsLmMKQEAg LTE0NzYsNiArMTQ3NiwxMiBAQCBsb25nIGFyY2hfZG9fZG9tY3RsKAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUFNSX1RZUEVfTDJfQ0JNKTsKICAgICAgICAgICAgIGJyZWFrOwogCisg ICAgICAgIGNhc2UgWEVOX0RPTUNUTF9QU1JfU0VUX01CQV9USFJUTDoKKyAgICAgICAgICAgIHJl dCA9IHBzcl9zZXRfdmFsKGQsIGRvbWN0bC0+dS5wc3JfYWxsb2MudGFyZ2V0LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9tY3RsLT51LnBzcl9hbGxvYy5kYXRhLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUFNSX1RZUEVfTUJBX1RIUlRMKTsKKyAgICAgICAgICAgIGJy ZWFrOworCiAgICAgICAgIGNhc2UgWEVOX0RPTUNUTF9QU1JfR0VUX0wzX0NCTToKICAgICAgICAg ICAgIHJldCA9IGRvbWN0bF9wc3JfZ2V0X3ZhbChkLCBkb21jdGwsIFBTUl9UWVBFX0wzX0NCTSwg Y29weWJhY2spOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv cHNyLmMgYi94ZW4vYXJjaC94ODYvcHNyLmMKaW5kZXggNjZlMjBhNy4uMzJlNTEyMiAxMDA2NDQK LS0tIGEveGVuL2FyY2gveDg2L3Bzci5jCisrKyBiL3hlbi9hcmNoL3g4Ni9wc3IuYwpAQCAtMTM4 LDYgKzEzOCw5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyB7CiAKICAgICAvKiB3 cml0ZV9tc3IgaXMgdXNlZCB0byB3cml0ZSBvdXQgZmVhdHVyZSBNU1IgcmVnaXN0ZXIuICovCiAg ICAgdWludDMyX3QgKCp3cml0ZV9tc3IpKHVuc2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwg ZW51bSBwc3JfdHlwZSB0eXBlKTsKKworICAgIC8qIGNoZWNrX3ZhbCBpcyB1c2VkIHRvIGNoZWNr IGlmIGlucHV0IHZhbCBmdWxmaWxscyBTRE0gcmVxdWlyZW1lbnQuICovCisgICAgYm9vbCAoKmNo ZWNrX3ZhbCkoY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwgdW5zaWduZWQgbG9uZyB2YWwp OwogfSAqZmVhdF9wcm9wc1tGRUFUX1RZUEVfTlVNXTsKIAogLyoKQEAgLTI3NCwxNiArMjc3LDE3 IEBAIHN0YXRpYyBlbnVtIHBzcl9mZWF0X3R5cGUgcHNyX3R5cGVfdG9fZmVhdF90eXBlKGVudW0g cHNyX3R5cGUgdHlwZSkKICAgICByZXR1cm4gZmVhdF90eXBlOwogfQogCi1zdGF0aWMgYm9vbCBw c3JfY2hlY2tfY2JtKHVuc2lnbmVkIGludCBjYm1fbGVuLCB1bnNpZ25lZCBsb25nIGNibSkKKy8q IEltcGxlbWVudGF0aW9uIG9mIGFsbG9jYXRpb24gZmVhdHVyZXMnIGZ1bmN0aW9ucy4gKi8KK3N0 YXRpYyBib29sIGNhdF9jaGVja19jYm0oY29uc3Qgc3RydWN0IGZlYXRfbm9kZSAqZmVhdCwgdW5z aWduZWQgbG9uZyBjYm0pCiB7CiAgICAgdW5zaWduZWQgaW50IGZpcnN0X2JpdCwgemVyb19iaXQ7 CisgICAgdW5zaWduZWQgaW50IGNibV9sZW4gPSBmZWF0LT5jYXQuY2JtX2xlbjsKIAotICAgIC8q IFNldCBiaXRzIHNob3VsZCBvbmx5IGluIHRoZSByYW5nZSBvZiBbMCwgY2JtX2xlbl0uICovCi0g ICAgaWYgKCBjYm0gJiAofjB1bCA8PCBjYm1fbGVuKSApCi0gICAgICAgIHJldHVybiBmYWxzZTsK LQotICAgIC8qIEF0IGxlYXN0IG9uZSBiaXQgbmVlZCB0byBiZSBzZXQuICovCi0gICAgaWYgKCBj Ym0gPT0gMCApCisgICAgLyoKKyAgICAgKiBTZXQgYml0cyBzaG91bGQgb25seSBpbiB0aGUgcmFu Z2Ugb2YgWzAsIGNibV9sZW5dLgorICAgICAqIEFuZCwgYXQgbGVhc3Qgb25lIGJpdCBuZWVkIHRv IGJlIHNldC4KKyAgICAgKi8KKyAgICBpZiAoIGNibSAmICh+MHVsIDw8IGNibV9sZW4pIHx8IGNi bSA9PSAwICkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZmlyc3RfYml0ID0gZmluZF9m aXJzdF9iaXQoJmNibSwgY2JtX2xlbik7CkBAIC0yOTcsNyArMzAxLDYgQEAgc3RhdGljIGJvb2wg cHNyX2NoZWNrX2NibSh1bnNpZ25lZCBpbnQgY2JtX2xlbiwgdW5zaWduZWQgbG9uZyBjYm0pCiAg ICAgcmV0dXJuIHRydWU7CiB9CiAKLS8qIEltcGxlbWVudGF0aW9uIG9mIGFsbG9jYXRpb24gZmVh dHVyZXMnIGZ1bmN0aW9ucy4gKi8KIHN0YXRpYyBib29sIGNhdF9pbml0X2ZlYXR1cmUoY29uc3Qg c3RydWN0IGNwdWlkX2xlYWYgKnJlZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBmZWF0X25vZGUgKmZlYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBwc3Jfc29ja2V0X2luZm8gKmluZm8sCkBAIC00MzgsNiArNDQxLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBmZWF0X3Byb3BzIGwzX2NhdF9wcm9wcyA9IHsKICAgICAuYWx0X3R5cGUgPSBQU1Jf VFlQRV9VTktOT1dOLAogICAgIC5nZXRfZmVhdF9pbmZvID0gY2F0X2dldF9mZWF0X2luZm8sCiAg ICAgLndyaXRlX21zciA9IGwzX2NhdF93cml0ZV9tc3IsCisgICAgLmNoZWNrX3ZhbCA9IGNhdF9j aGVja19jYm0sCiB9OwogCiAvKiBMMyBDRFAgcHJvcHMgKi8KQEAgLTQ3MCw2ICs0NzQsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGZlYXRfcHJvcHMgbDNfY2RwX3Byb3BzID0gewogICAgIC5hbHRf dHlwZSA9IFBTUl9UWVBFX0wzX0NCTSwKICAgICAuZ2V0X2ZlYXRfaW5mbyA9IGwzX2NkcF9nZXRf ZmVhdF9pbmZvLAogICAgIC53cml0ZV9tc3IgPSBsM19jZHBfd3JpdGVfbXNyLAorICAgIC5jaGVj a192YWwgPSBjYXRfY2hlY2tfY2JtLAogfTsKIAogLyogTDIgQ0FUIHByb3BzICovCkBAIC00ODcs NiArNDkyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIGwyX2NhdF9wcm9wcyA9 IHsKICAgICAuYWx0X3R5cGUgPSBQU1JfVFlQRV9VTktOT1dOLAogICAgIC5nZXRfZmVhdF9pbmZv ID0gY2F0X2dldF9mZWF0X2luZm8sCiAgICAgLndyaXRlX21zciA9IGwyX2NhdF93cml0ZV9tc3Is CisgICAgLmNoZWNrX3ZhbCA9IGNhdF9jaGVja19jYm0sCiB9OwogCiAvKiBNQkEgcHJvcHMgKi8K QEAgLTUwNyw3ICs1MTMsMTcgQEAgc3RhdGljIGJvb2wgbWJhX2dldF9mZWF0X2luZm8oY29uc3Qg c3RydWN0IGZlYXRfbm9kZSAqZmVhdCwKIHN0YXRpYyB1aW50MzJfdCBtYmFfd3JpdGVfbXNyKHVu c2lnbmVkIGludCBjb3MsIHVpbnQzMl90IHZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVudW0gcHNyX3R5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4gMDsKKyAgICB3cm1zcmwoTVNS X0lBMzJfUFNSX01CQV9NQVNLKGNvcyksIHZhbCk7CisKKyAgICAvKiBSZWFkIGFjdHVhbCB2YWx1 ZSBzZXQgYnkgaGFyZHdhcmUuICovCisgICAgcmRtc3JsKE1TUl9JQTMyX1BTUl9NQkFfTUFTSyhj b3MpLCB2YWwpOworCisgICAgcmV0dXJuIHZhbDsKK30KKworc3RhdGljIGJvb2wgbWJhX2NoZWNr X3RocnRsKGNvbnN0IHN0cnVjdCBmZWF0X25vZGUgKmZlYXQsIHVuc2lnbmVkIGxvbmcgdGhydGwp Cit7CisgICAgcmV0dXJuICggdGhydGwgPiBmZWF0LT5tYmEudGhydGxfbWF4ICkgPyBmYWxzZSA6 IHRydWU7CiB9CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZmVhdF9wcm9wcyBtYmFfcHJvcHMgPSB7 CkBAIC01MTYsNiArNTMyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzIG1iYV9w cm9wcyA9IHsKICAgICAuYWx0X3R5cGUgPSBQU1JfVFlQRV9VTktOT1dOLAogICAgIC5nZXRfZmVh dF9pbmZvID0gbWJhX2dldF9mZWF0X2luZm8sCiAgICAgLndyaXRlX21zciA9IG1iYV93cml0ZV9t c3IsCisgICAgLmNoZWNrX3ZhbCA9IG1iYV9jaGVja190aHJ0bCwKIH07CiAKIHN0YXRpYyBib29s IF9faW5pdCBwYXJzZV9wc3JfYm9vbChjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICpkZWxpbSwK QEAgLTk4MSw3ICs5OTgsNyBAQCBzdGF0aWMgaW50IGluc2VydF92YWxfaW50b19hcnJheSh1aW50 MzJfdCB2YWxbXSwKICAgICBpZiAoIGFycmF5X2xlbiA8IHByb3BzLT5jb3NfbnVtICkKICAgICAg ICAgcmV0dXJuIC1FTk9TUEM7CiAKLSAgICBpZiAoICFwc3JfY2hlY2tfY2JtKGZlYXQtPmNhdC5j Ym1fbGVuLCBuZXdfdmFsKSApCisgICAgaWYgKCAhcHJvcHMtPmNoZWNrX3ZhbChmZWF0LCBuZXdf dmFsKSApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogCiAgICAgLyoKQEAgLTEyMTMsMjUgKzEy MzAsMzggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnZXRfc29ja2V0X2NwdSh1bnNpZ25lZCBpbnQg c29ja2V0KQogc3RydWN0IGNvc193cml0ZV9pbmZvCiB7CiAgICAgdW5zaWduZWQgaW50IGNvczsK LSAgICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0dXJlOworICAgIHN0cnVjdCBmZWF0X25vZGUgKipm ZWF0dXJlczsKICAgICBjb25zdCB1aW50MzJfdCAqdmFsOwotICAgIGNvbnN0IHN0cnVjdCBmZWF0 X3Byb3BzICpwcm9wczsKKyAgICB1bnNpZ25lZCBpbnQgYXJyYXlfbGVuOwogfTsKIAogc3RhdGlj IHZvaWQgZG9fd3JpdGVfcHNyX21zcnModm9pZCAqZGF0YSkKIHsKICAgICBjb25zdCBzdHJ1Y3Qg Y29zX3dyaXRlX2luZm8gKmluZm8gPSBkYXRhOwotICAgIHN0cnVjdCBmZWF0X25vZGUgKmZlYXQg PSBpbmZvLT5mZWF0dXJlOwotICAgIGNvbnN0IHN0cnVjdCBmZWF0X3Byb3BzICpwcm9wcyA9IGlu Zm8tPnByb3BzOwotICAgIHVuc2lnbmVkIGludCBpLCBjb3MgPSBpbmZvLT5jb3MsIGNvc19udW0g PSBwcm9wcy0+Y29zX251bTsKKyAgICB1bnNpZ25lZCBpbnQgaSwgaW5kZXggPSAwLCBjb3MgPSBp bmZvLT5jb3M7CisgICAgY29uc3QgdWludDMyX3QgKnZhbF9hcnJheSA9IGluZm8tPnZhbDsKIAot ICAgIGZvciAoIGkgPSAwOyBpIDwgY29zX251bTsgaSsrICkKKyAgICBmb3IgKCBpID0gMDsgaSA8 IEFSUkFZX1NJWkUoZmVhdF9wcm9wcyk7IGkrKyApCiAgICAgewotICAgICAgICBpZiAoIGZlYXQt PmNvc19yZWdfdmFsW2NvcyAqIGNvc19udW0gKyBpXSAhPSBpbmZvLT52YWxbaV0gKQorICAgICAg ICBzdHJ1Y3QgZmVhdF9ub2RlICpmZWF0ID0gaW5mby0+ZmVhdHVyZXNbaV07CisgICAgICAgIGNv bnN0IHN0cnVjdCBmZWF0X3Byb3BzICpwcm9wcyA9IGZlYXRfcHJvcHNbaV07CisgICAgICAgIHVu c2lnbmVkIGludCBjb3NfbnVtLCBqOworCisgICAgICAgIGlmICggIWZlYXQgfHwgIXByb3BzICkK KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGNvc19udW0gPSBwcm9wcy0+Y29zX251 bTsKKyAgICAgICAgaWYgKCBpbmZvLT5hcnJheV9sZW4gPCBpbmRleCArIGNvc19udW0gKQorICAg ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZvciAoIGogPSAwOyBqIDwgY29zX251bTsgaisr ICkKICAgICAgICAgewotICAgICAgICAgICAgZmVhdC0+Y29zX3JlZ192YWxbY29zICogY29zX251 bSArIGldID0gaW5mby0+dmFsW2ldOwotICAgICAgICAgICAgcHJvcHMtPndyaXRlX21zcihjb3Ms IGluZm8tPnZhbFtpXSwgcHJvcHMtPnR5cGVbaV0pOworICAgICAgICAgICAgaWYgKCBmZWF0LT5j b3NfcmVnX3ZhbFtjb3MgKiBjb3NfbnVtICsgal0gIT0gdmFsX2FycmF5W2luZGV4ICsgal0gKQor ICAgICAgICAgICAgICAgIGZlYXQtPmNvc19yZWdfdmFsW2NvcyAqIGNvc19udW0gKyBqXSA9Cisg ICAgICAgICAgICAgICAgICAgIHByb3BzLT53cml0ZV9tc3IoY29zLCB2YWxfYXJyYXlbaW5kZXgg KyBqXSwgcHJvcHMtPnR5cGVbal0pOwogICAgICAgICB9CisKKyAgICAgICAgaW5kZXggKz0gY29z X251bTsKICAgICB9CiB9CiAKQEAgLTEyMzksMzAgKzEyNjksMTggQEAgc3RhdGljIGludCB3cml0 ZV9wc3JfbXNycyh1bnNpZ25lZCBpbnQgc29ja2V0LCB1bnNpZ25lZCBpbnQgY29zLAogICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCB2YWxbXSwgdW5zaWduZWQgaW50IGFy cmF5X2xlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bSBwc3JfZmVhdF90eXBlIGZl YXRfdHlwZSkKIHsKLSAgICBpbnQgcmV0OwogICAgIHN0cnVjdCBwc3Jfc29ja2V0X2luZm8gKmlu Zm8gPSBnZXRfc29ja2V0X2luZm8oc29ja2V0KTsKICAgICBzdHJ1Y3QgY29zX3dyaXRlX2luZm8g ZGF0YSA9CiAgICAgewogICAgICAgICAuY29zID0gY29zLAotICAgICAgICAuZmVhdHVyZSA9IGlu Zm8tPmZlYXR1cmVzW2ZlYXRfdHlwZV0sCi0gICAgICAgIC5wcm9wcyA9IGZlYXRfcHJvcHNbZmVh dF90eXBlXSwKKyAgICAgICAgLmZlYXR1cmVzID0gaW5mby0+ZmVhdHVyZXMsCisgICAgICAgIC52 YWwgPSB2YWwsCisgICAgICAgIC5hcnJheV9sZW4gPSBhcnJheV9sZW4sCiAgICAgfTsKIAogICAg IGlmICggY29zID4gaW5mby0+ZmVhdHVyZXNbZmVhdF90eXBlXS0+Y29zX21heCApCiAgICAgICAg IHJldHVybiAtRUlOVkFMOwogCi0gICAgLyogU2tpcCB0byB0aGUgZmVhdHVyZSdzIHZhbHVlIGhl YWQuICovCi0gICAgcmV0ID0gc2tpcF9wcmlvcl9mZWF0dXJlcygmYXJyYXlfbGVuLCBmZWF0X3R5 cGUpOwotICAgIGlmICggcmV0IDwgMCApCi0gICAgICAgIHJldHVybiByZXQ7Ci0KLSAgICB2YWwg Kz0gcmV0OwotCi0gICAgaWYgKCBhcnJheV9sZW4gPCBmZWF0X3Byb3BzW2ZlYXRfdHlwZV0tPmNv c19udW0gKQotICAgICAgICByZXR1cm4gLUVOT1NQQzsKLQotICAgIGRhdGEudmFsID0gdmFsOwot CiAgICAgaWYgKCBzb2NrZXQgPT0gY3B1X3RvX3NvY2tldChzbXBfcHJvY2Vzc29yX2lkKCkpICkK ICAgICAgICAgZG9fd3JpdGVfcHNyX21zcnMoJmRhdGEpOwogICAgIGVsc2UKZGlmZiAtLWdpdCBh L3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwu aAppbmRleCAxMjMxZDM3Li4xOWQyMGQwIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMv ZG9tY3RsLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2RvbWN0bC5oCkBAIC0xMTU2LDYgKzEx NTYsNyBAQCBzdHJ1Y3QgeGVuX2RvbWN0bF9wc3JfYWxsb2MgewogI2RlZmluZSBYRU5fRE9NQ1RM X1BTUl9HRVRfTDNfREFUQSAgICA1CiAjZGVmaW5lIFhFTl9ET01DVExfUFNSX1NFVF9MMl9DQk0g ICAgIDYKICNkZWZpbmUgWEVOX0RPTUNUTF9QU1JfR0VUX0wyX0NCTSAgICAgNworI2RlZmluZSBY RU5fRE9NQ1RMX1BTUl9TRVRfTUJBX1RIUlRMICA4CiAjZGVmaW5lIFhFTl9ET01DVExfUFNSX0dF VF9NQkFfVEhSVEwgIDkKICAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIElOOiBYRU5fRE9NQ1RM X1BTUl8qICovCiAgICAgdWludDMyX3QgdGFyZ2V0OyAgICAvKiBJTiAqLwotLSAKMS45LjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK