From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: [PATCH 5/7] x86/domain: Optimise the order of actions in arch_domain_create() Date: Fri, 9 Mar 2018 13:18:40 +0000 Message-ID: <1520601522-2886-6-git-send-email-andrew.cooper3@citrix.com> References: <1520601522-2886-1-git-send-email-andrew.cooper3@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1520601522-2886-1-git-send-email-andrew.cooper3@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Xen-devel Cc: Andrew Cooper , Wei Liu , Jan Beulich , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhlIG9ubHkgcmVsZXZlbnQgaW5pdGlhbGlzYXRpb24gZm9yIHRoZSBpZGxlIGRvbWFpbiBpcyB0 aGUgY29udGV4dCBzd2l0Y2ggYW5kCnBvaXNvbmVkIHBvaW50ZXJzLiAgQ29sbGVjdCB0aGVzZSBi aXRzIHRvZ2V0aGVyIGVhcmx5IGluIHRoZSBmdW5jdGlvbiBhbmQgZXhpdAp3aGVuIGNvbXBsZXRl IChhbHRob3VnaCBhcyBhIGNvbnNlcXVlbmNlLCB0aGUgZTgyMCBhbmQgdnRzYyBsb2NrCmluaXRp YWxpc2F0aW9uIGFyZSBtb3ZlZCBmb3J3YXJkcykuICBUaGlzIGFsbG93cyB1cyB0byByZW1vdmUg c3Vic2VxdWVudAppc19pZGxlX2RvbWFpbigpIGNoZWNrcyBhbmQgdW5pbmRlbnQgbW9zdCBvZiB0 aGUgbG9naWMuCgpGdXJ0aGVybW9yZSwgd2Ugbm8gbG9uZ2VyIGNhbGwgdGhlc2UgZnVuY3Rpb25z IGZvciB0aGUgaWRsZSBkb21haW46CiAqIG1hcGNhY2hlX2RvbWFpbl9pbml0KCkgYW5kIHRzY19z ZXRfaW5mbygpIHdlcmUgcHJldmlvdXNseSBndWFyZGVkIGFnYWluc3QKICAgdGhlIGlkbGUgZG9t YWluLCBhbmQgaGF2ZSBoYWQgdGhlaXIgZ3VhcmRzIHR1cm5lZCBpbnRvIEFTU0VSVCgpcy4KICog cGl0X2luaXQoKSBpcyBpbXBsaWNpdGx5IGd1YXJkZWQgYnkgaGFzX3ZwaXQoKS4KICogcHNyX2Rv bWFpbl9pbml0KCkgbm8gbG9uZ2VyIGFsbG9jYXRlcyBhIHNvY2tldCBhcnJheS4KCkZpbmFsbHks IHR3byBjaGFuZ2VzIGFyZSBpbnRyb2R1Y2VkIGZvciB0aGUgYmVuZWZpdCBvZiB0aGUgZm9sbG93 aW5nIHBhdGNoOgogKiBGb3IgUFYgaGFyZHdhcmUgZG9tYWlucywgb3IgWEVOX1g4Nl9FTVVfUElU IGludG8gZW1mbGFncyByYXRoZXIgdGhhbiBpbnRvCiAgIGNvbmZpZy0+ZW11bGF0aW9uX2ZsYWdz LCB0byBmYWNpbGl0YXRpbmcgY29uZmlnIGJlY29taW5nIGNvbnN0LgogKiBSZWZlcmVuY2VzIHRv IGRvbWNyX2ZsYWdzIGFyZSBtb3ZlZCB1bnRpbCBhZnRlciB0aGUgaWRsZSBlYXJseSBleGlzdCwg dG8KICAgZmFjaWxpdGlhdGUgdGhlbSBiZWluZyB1bmF2YWlsYWJsZSBmb3Igc3lzdGVtIGRvbWFp bnMuCgpObyBwcmFjdGljYWwgY2hhbmdlIGluIGJlaGF2aW91ci4KClNpZ25lZC1vZmYtYnk6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Ci0tLQpDQzogSmFuIEJldWxp Y2ggPEpCZXVsaWNoQHN1c2UuY29tPgpDQzogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4K Q0M6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgotLS0KIHhlbi9hcmNo L3g4Ni9kb21haW4uYyAgICAgIHwgMTUyICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMgfCAgIDMgKy0KIHhlbi9h cmNoL3g4Ni90aW1lLmMgICAgICAgIHwgICA0ICstCiAzIGZpbGVzIGNoYW5nZWQsIDc4IGluc2Vy dGlvbnMoKyksIDgxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9kb21h aW4uYyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwppbmRleCA4MWVlOTkyLi40OGRjMmI5IDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMKKysrIGIveGVuL2FyY2gveDg2L2RvbWFpbi5j CkBAIC00MzAsMjAgKzQzMCwzNyBAQCBpbnQgYXJjaF9kb21haW5fY3JlYXRlKHN0cnVjdCBkb21h aW4gKmQsIHVuc2lnbmVkIGludCBkb21jcl9mbGFncywKICAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHhlbl9hcmNoX2RvbWFpbmNvbmZpZyAqY29uZmlnKQogewogICAgIGJvb2wgcGFnaW5n X2luaXRpYWxpc2VkID0gZmFsc2U7CisgICAgdWludDMyX3QgZW1mbGFnczsKICAgICBpbnQgcmM7 CiAKLSAgICBpZiAoIGNvbmZpZyA9PSBOVUxMICYmICFpc19pZGxlX2RvbWFpbihkKSApCi0gICAg ICAgIHJldHVybiAtRUlOVkFMOwotCi0gICAgZC0+YXJjaC5zM19pbnRlZ3JpdHkgPSBkb21jcl9m bGFncyAmIFhFTl9ET01DVExfQ0RGX3MzX2ludGVncml0eTsKLQogICAgIElOSVRfTElTVF9IRUFE KCZkLT5hcmNoLnBkZXZfbGlzdCk7CiAKICAgICBkLT5hcmNoLnJlbG1lbSA9IFJFTE1FTV9ub3Rf c3RhcnRlZDsKICAgICBJTklUX1BBR0VfTElTVF9IRUFEKCZkLT5hcmNoLnJlbG1lbV9saXN0KTsK IAotICAgIGlmICggZC0+ZG9tYWluX2lkICYmICFpc19pZGxlX2RvbWFpbihkKSAmJgotICAgICAg ICAgY3B1X2hhc19hbWRfZXJyYXR1bSgmYm9vdF9jcHVfZGF0YSwgQU1EX0VSUkFUVU1fMTIxKSAp CisgICAgc3Bpbl9sb2NrX2luaXQoJmQtPmFyY2guZTgyMF9sb2NrKTsKKyAgICBzcGluX2xvY2tf aW5pdCgmZC0+YXJjaC52dHNjX2xvY2spOworCisgICAgLyogTWluaW1hbCBpbml0aWFsaXNhdGlv biBmb3IgdGhlIGlkbGUgZG9tYWluLiAqLworICAgIGlmICggdW5saWtlbHkoaXNfaWRsZV9kb21h aW4oZCkpICkKKyAgICB7CisgICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYXJjaF9jc3cgaWRs ZV9jc3cgPSB7CisgICAgICAgICAgICAuZnJvbSA9IHBhcmF2aXJ0X2N0eHRfc3dpdGNoX2Zyb20s CisgICAgICAgICAgICAudG8gICA9IHBhcmF2aXJ0X2N0eHRfc3dpdGNoX3RvLAorICAgICAgICAg ICAgLnRhaWwgPSBjb250aW51ZV9pZGxlX2RvbWFpbiwKKyAgICAgICAgfTsKKworICAgICAgICBk LT5hcmNoLmN0eHRfc3dpdGNoID0gJmlkbGVfY3N3OworCisgICAgICAgIGQtPmFyY2guY3B1aWQg PSBaRVJPX0JMT0NLX1BUUjsgLyogQ2F0Y2ggc3RyYXkgbWlzdXNlcy4gKi8KKyAgICAgICAgZC0+ YXJjaC5tc3IgPSBaRVJPX0JMT0NLX1BUUjsKKworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cisg ICAgZWxzZSBpZiAoICFjb25maWcgKQorICAgICAgICByZXR1cm4gLUVJTlZBTDsKKworICAgIGlm ICggZC0+ZG9tYWluX2lkICYmIGNwdV9oYXNfYW1kX2VycmF0dW0oJmJvb3RfY3B1X2RhdGEsIEFN RF9FUlJBVFVNXzEyMSkgKQogICAgIHsKICAgICAgICAgaWYgKCAhb3B0X2FsbG93X3Vuc2FmZSAp CiAgICAgICAgIHsKQEAgLTQ1Niw4MyArNDczLDY5IEBAIGludCBhcmNoX2RvbWFpbl9jcmVhdGUo c3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IGRvbWNyX2ZsYWdzLAogICAgICAgICAgICAg ICAgZC0+ZG9tYWluX2lkKTsKICAgICB9CiAKLSAgICBpZiAoIGlzX2lkbGVfZG9tYWluKGQpICkK LSAgICB7Ci0gICAgICAgIGQtPmFyY2guZW11bGF0aW9uX2ZsYWdzID0gMDsKLSAgICAgICAgZC0+ YXJjaC5jcHVpZCA9IFpFUk9fQkxPQ0tfUFRSOyAvKiBDYXRjaCBzdHJheSBtaXN1c2VzLiAqLwot ICAgICAgICBkLT5hcmNoLm1zciA9IFpFUk9fQkxPQ0tfUFRSOwotICAgIH0KLSAgICBlbHNlCi0g ICAgewotICAgICAgICB1aW50MzJfdCBlbWZsYWdzOworICAgIGQtPmFyY2guczNfaW50ZWdyaXR5 ID0gZG9tY3JfZmxhZ3MgJiBYRU5fRE9NQ1RMX0NERl9zM19pbnRlZ3JpdHk7CiAKLSAgICAgICAg aWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgJiYgaXNfcHZfZG9tYWluKGQpICkKLSAgICAgICAg ICAgIGNvbmZpZy0+ZW11bGF0aW9uX2ZsYWdzIHw9IFhFTl9YODZfRU1VX1BJVDsKKyAgICBlbWZs YWdzID0gY29uZmlnLT5lbXVsYXRpb25fZmxhZ3M7CiAKLSAgICAgICAgZW1mbGFncyA9IGNvbmZp Zy0+ZW11bGF0aW9uX2ZsYWdzOwotICAgICAgICBpZiAoIGVtZmxhZ3MgJiB+WEVOX1g4Nl9FTVVf QUxMICkKLSAgICAgICAgewotICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiZCVkOiBJ bnZhbGlkIGVtdWxhdGlvbiBiaXRtYXA6ICUjeFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIGVtZmxhZ3MpOwotICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Ci0gICAgICAg IH0KKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihkKSAmJiBpc19wdl9kb21haW4oZCkgKQor ICAgICAgICBlbWZsYWdzIHw9IFhFTl9YODZfRU1VX1BJVDsKIAotICAgICAgICBpZiAoICFlbXVs YXRpb25fZmxhZ3Nfb2soZCwgZW1mbGFncykgKQotICAgICAgICB7Ci0gICAgICAgICAgICBwcmlu dGsoWEVOTE9HX0dfRVJSICJkJWQ6IFhlbiBkb2VzIG5vdCBhbGxvdyAlcyBkb21haW4gY3JlYXRp b24gIgotICAgICAgICAgICAgICAgICAgICJ3aXRoIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBvZiBl bXVsYXRvcnM6ICUjeFxuIiwKLSAgICAgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGlzX2h2 bV9kb21haW4oZCkgPyAiSFZNIiA6ICJQViIsIGVtZmxhZ3MpOwotICAgICAgICAgICAgcmV0dXJu IC1FT1BOT1RTVVBQOwotICAgICAgICB9Ci0gICAgICAgIGQtPmFyY2guZW11bGF0aW9uX2ZsYWdz ID0gZW1mbGFnczsKKyAgICBpZiAoIGVtZmxhZ3MgJiB+WEVOX1g4Nl9FTVVfQUxMICkKKyAgICB7 CisgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgImQlZDogSW52YWxpZCBlbXVsYXRpb24gYml0 bWFwOiAlI3hcbiIsCisgICAgICAgICAgICAgICBkLT5kb21haW5faWQsIGVtZmxhZ3MpOworICAg ICAgICByZXR1cm4gLUVJTlZBTDsKICAgICB9CiAKLSAgICBtYXBjYWNoZV9kb21haW5faW5pdChk KTsKKyAgICBpZiAoICFlbXVsYXRpb25fZmxhZ3Nfb2soZCwgZW1mbGFncykgKQorICAgIHsKKyAg ICAgICAgcHJpbnRrKFhFTkxPR19HX0VSUiAiZCVkOiBYZW4gZG9lcyBub3QgYWxsb3cgJXMgZG9t YWluIGNyZWF0aW9uICIKKyAgICAgICAgICAgICAgICJ3aXRoIHRoZSBjdXJyZW50IHNlbGVjdGlv biBvZiBlbXVsYXRvcnM6ICUjeFxuIiwKKyAgICAgICAgICAgICAgIGQtPmRvbWFpbl9pZCwgaXNf aHZtX2RvbWFpbihkKSA/ICJIVk0iIDogIlBWIiwgZW1mbGFncyk7CisgICAgICAgIHJldHVybiAt RU9QTk9UU1VQUDsKKyAgICB9CisgICAgZC0+YXJjaC5lbXVsYXRpb25fZmxhZ3MgPSBlbWZsYWdz OwogCiAgICAgSFlQRVJWSVNPUl9DT01QQVRfVklSVF9TVEFSVChkKSA9CiAgICAgICAgIGlzX3B2 X2RvbWFpbihkKSA/IF9fSFlQRVJWSVNPUl9DT01QQVRfVklSVF9TVEFSVCA6IH4wdTsKIAotICAg IGlmICggIWlzX2lkbGVfZG9tYWluKGQpICkKLSAgICB7Ci0gICAgICAgIC8qIE5lZWQgdG8gZGV0 ZXJtaW5lIGlmIEhBUCBpcyBlbmFibGVkIGJlZm9yZSBpbml0aWFsaXNpbmcgcGFnaW5nICovCi0g ICAgICAgIGlmICggaXNfaHZtX2RvbWFpbihkKSApCi0gICAgICAgICAgICBkLT5hcmNoLmh2bV9k b21haW4uaGFwX2VuYWJsZWQgPQotICAgICAgICAgICAgICAgIGh2bV9mdW5jcy5oYXBfc3VwcG9y dGVkICYmIChkb21jcl9mbGFncyAmIFhFTl9ET01DVExfQ0RGX2hhcCk7CisgICAgLyogTmVlZCB0 byBkZXRlcm1pbmUgaWYgSEFQIGlzIGVuYWJsZWQgYmVmb3JlIGluaXRpYWxpc2luZyBwYWdpbmcg Ki8KKyAgICBpZiAoIGlzX2h2bV9kb21haW4oZCkgKQorICAgICAgICBkLT5hcmNoLmh2bV9kb21h aW4uaGFwX2VuYWJsZWQgPQorICAgICAgICAgICAgaHZtX2Z1bmNzLmhhcF9zdXBwb3J0ZWQgJiYg KGRvbWNyX2ZsYWdzICYgWEVOX0RPTUNUTF9DREZfaGFwKTsKIAotICAgICAgICBpZiAoIChyYyA9 IHBhZ2luZ19kb21haW5faW5pdChkLCBkb21jcl9mbGFncykpICE9IDAgKQotICAgICAgICAgICAg Z290byBmYWlsOwotICAgICAgICBwYWdpbmdfaW5pdGlhbGlzZWQgPSAxOworICAgIGlmICggKHJj ID0gcGFnaW5nX2RvbWFpbl9pbml0KGQsIGRvbWNyX2ZsYWdzKSkgIT0gMCApCisgICAgICAgIGdv dG8gZmFpbDsKKyAgICBwYWdpbmdfaW5pdGlhbGlzZWQgPSB0cnVlOwogCi0gICAgICAgIGlmICgg KHJjID0gaW5pdF9kb21haW5fY3B1aWRfcG9saWN5KGQpKSApCi0gICAgICAgICAgICBnb3RvIGZh aWw7CisgICAgaWYgKCAocmMgPSBpbml0X2RvbWFpbl9jcHVpZF9wb2xpY3koZCkpICkKKyAgICAg ICAgZ290byBmYWlsOwogCi0gICAgICAgIGlmICggKHJjID0gaW5pdF9kb21haW5fbXNyX3BvbGlj eShkKSkgKQotICAgICAgICAgICAgZ290byBmYWlsOworICAgIGlmICggKHJjID0gaW5pdF9kb21h aW5fbXNyX3BvbGljeShkKSkgKQorICAgICAgICBnb3RvIGZhaWw7CiAKLSAgICAgICAgZC0+YXJj aC5pb3BvcnRfY2FwcyA9IAotICAgICAgICAgICAgcmFuZ2VzZXRfbmV3KGQsICJJL08gUG9ydHMi LCBSQU5HRVNFVEZfcHJldHR5cHJpbnRfaGV4KTsKLSAgICAgICAgcmMgPSAtRU5PTUVNOwotICAg ICAgICBpZiAoIGQtPmFyY2guaW9wb3J0X2NhcHMgPT0gTlVMTCApCi0gICAgICAgICAgICBnb3Rv IGZhaWw7CisgICAgZC0+YXJjaC5pb3BvcnRfY2FwcyA9CisgICAgICAgIHJhbmdlc2V0X25ldyhk LCAiSS9PIFBvcnRzIiwgUkFOR0VTRVRGX3ByZXR0eXByaW50X2hleCk7CisgICAgcmMgPSAtRU5P TUVNOworICAgIGlmICggZC0+YXJjaC5pb3BvcnRfY2FwcyA9PSBOVUxMICkKKyAgICAgICAgZ290 byBmYWlsOwogCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBzaGFyZWRfaW5mbyBtYWNoaW5l IGFkZHJlc3MgbXVzdCBmaXQgaW4gYSAzMi1iaXQgZmllbGQgd2l0aGluIGEKLSAgICAgICAgICog MzItYml0IGd1ZXN0J3Mgc3RhcnRfaW5mbyBzdHJ1Y3R1cmUuIEhlbmNlIHdlIHNwZWNpZnkgTUVN Rl9iaXRzKDMyKS4KLSAgICAgICAgICovCi0gICAgICAgIGlmICggKGQtPnNoYXJlZF9pbmZvID0g YWxsb2NfeGVuaGVhcF9wYWdlcygwLCBNRU1GX2JpdHMoMzIpKSkgPT0gTlVMTCApCi0gICAgICAg ICAgICBnb3RvIGZhaWw7CisgICAgLyoKKyAgICAgKiBUaGUgc2hhcmVkX2luZm8gbWFjaGluZSBh ZGRyZXNzIG11c3QgZml0IGluIGEgMzItYml0IGZpZWxkIHdpdGhpbiBhCisgICAgICogMzItYml0 IGd1ZXN0J3Mgc3RhcnRfaW5mbyBzdHJ1Y3R1cmUuIEhlbmNlIHdlIHNwZWNpZnkgTUVNRl9iaXRz KDMyKS4KKyAgICAgKi8KKyAgICBpZiAoIChkLT5zaGFyZWRfaW5mbyA9IGFsbG9jX3hlbmhlYXBf cGFnZXMoMCwgTUVNRl9iaXRzKDMyKSkpID09IE5VTEwgKQorICAgICAgICBnb3RvIGZhaWw7CiAK LSAgICAgICAgY2xlYXJfcGFnZShkLT5zaGFyZWRfaW5mbyk7Ci0gICAgICAgIHNoYXJlX3hlbl9w YWdlX3dpdGhfZ3Vlc3QoCi0gICAgICAgICAgICB2aXJ0X3RvX3BhZ2UoZC0+c2hhcmVkX2luZm8p LCBkLCBYRU5TSEFSRV93cml0YWJsZSk7CisgICAgY2xlYXJfcGFnZShkLT5zaGFyZWRfaW5mbyk7 CisgICAgc2hhcmVfeGVuX3BhZ2Vfd2l0aF9ndWVzdCgKKyAgICAgICAgdmlydF90b19wYWdlKGQt PnNoYXJlZF9pbmZvKSwgZCwgWEVOU0hBUkVfd3JpdGFibGUpOwogCi0gICAgICAgIGlmICggKHJj ID0gaW5pdF9kb21haW5faXJxX21hcHBpbmcoZCkpICE9IDAgKQotICAgICAgICAgICAgZ290byBm YWlsOworICAgIGlmICggKHJjID0gaW5pdF9kb21haW5faXJxX21hcHBpbmcoZCkpICE9IDAgKQor ICAgICAgICBnb3RvIGZhaWw7CiAKLSAgICAgICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5faW5p dChkKSkgIT0gMCApCi0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgfQotICAgIHNwaW5fbG9j a19pbml0KCZkLT5hcmNoLmU4MjBfbG9jayk7CisgICAgaWYgKCAocmMgPSBpb21tdV9kb21haW5f aW5pdChkKSkgIT0gMCApCisgICAgICAgIGdvdG8gZmFpbDsKIAogICAgIHBzcl9kb21haW5faW5p dChkKTsKIApAQCAtNTQxLDI1ICs1NDQsMTggQEAgaW50IGFyY2hfZG9tYWluX2NyZWF0ZShzdHJ1 Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgZG9tY3JfZmxhZ3MsCiAgICAgICAgIGlmICggKHJj ID0gaHZtX2RvbWFpbl9pbml0aWFsaXNlKGQpKSAhPSAwICkKICAgICAgICAgICAgIGdvdG8gZmFp bDsKICAgICB9Ci0gICAgZWxzZSBpZiAoIGlzX2lkbGVfZG9tYWluKGQpICkKKyAgICBlbHNlIGlm ICggaXNfcHZfZG9tYWluKGQpICkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg YXJjaF9jc3cgaWRsZV9jc3cgPSB7Ci0gICAgICAgICAgICAuZnJvbSA9IHBhcmF2aXJ0X2N0eHRf c3dpdGNoX2Zyb20sCi0gICAgICAgICAgICAudG8gICA9IHBhcmF2aXJ0X2N0eHRfc3dpdGNoX3Rv LAotICAgICAgICAgICAgLnRhaWwgPSBjb250aW51ZV9pZGxlX2RvbWFpbiwKLSAgICAgICAgfTsK KyAgICAgICAgbWFwY2FjaGVfZG9tYWluX2luaXQoZCk7CiAKLSAgICAgICAgZC0+YXJjaC5jdHh0 X3N3aXRjaCA9ICZpZGxlX2NzdzsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKICAgICAgICAgaWYg KCAocmMgPSBwdl9kb21haW5faW5pdGlhbGlzZShkKSkgIT0gMCApCiAgICAgICAgICAgICBnb3Rv IGZhaWw7CiAgICAgfQorICAgIGVsc2UKKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7IC8q IE5vdCBIVk0gYW5kIG5vdCBQVj8gKi8KIAogICAgIC8qIGluaXRpYWxpemUgZGVmYXVsdCB0c2Mg YmVoYXZpb3IgaW4gY2FzZSB0b29scyBkb24ndCAqLwogICAgIHRzY19zZXRfaW5mbyhkLCBUU0Nf TU9ERV9ERUZBVUxULCAwVUwsIDAsIDApOwotICAgIHNwaW5fbG9ja19pbml0KCZkLT5hcmNoLnZ0 c2NfbG9jayk7CiAKICAgICAvKiBQVi9QVkggZ3Vlc3RzIGdldCBhbiBlbXVsYXRlZCBQSVQgdG9v IGZvciB2aWRlbyBCSU9TZXMgdG8gdXNlLiAqLwogICAgIHBpdF9pbml0KGQsIGNwdV9raHopOwpk aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2RvbWFpbl9wYWdlLmMgYi94ZW4vYXJjaC94ODYvZG9t YWluX3BhZ2UuYwppbmRleCAzNDMyYTg1Li5iNTc4MGYyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94 ODYvZG9tYWluX3BhZ2UuYworKysgYi94ZW4vYXJjaC94ODYvZG9tYWluX3BhZ2UuYwpAQCAtMjM2 LDggKzIzNiw3IEBAIGludCBtYXBjYWNoZV9kb21haW5faW5pdChzdHJ1Y3QgZG9tYWluICpkKQog ICAgIHN0cnVjdCBtYXBjYWNoZV9kb21haW4gKmRjYWNoZSA9ICZkLT5hcmNoLnB2X2RvbWFpbi5t YXBjYWNoZTsKICAgICB1bnNpZ25lZCBpbnQgYml0bWFwX3BhZ2VzOwogCi0gICAgaWYgKCAhaXNf cHZfZG9tYWluKGQpIHx8IGlzX2lkbGVfZG9tYWluKGQpICkKLSAgICAgICAgcmV0dXJuIDA7Cisg ICAgQVNTRVJUKGlzX3B2X2RvbWFpbihkKSk7CiAKICNpZmRlZiBOREVCVUcKICAgICBpZiAoICFt ZW1faG90cGx1ZyAmJiBtYXhfcGFnZSA8PSBQRk5fRE9XTihfX3BhKEhZUEVSVklTT1JfVklSVF9F TkQgLSAxKSkgKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3RpbWUuYyBiL3hlbi9hcmNoL3g4 Ni90aW1lLmMKaW5kZXggMWE2ZmRlNi4uODRjMWMwYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2 L3RpbWUuYworKysgYi94ZW4vYXJjaC94ODYvdGltZS5jCkBAIC0yMTI0LDcgKzIxMjQsOSBAQCB2 b2lkIHRzY19zZXRfaW5mbyhzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgdWlu dDMyX3QgdHNjX21vZGUsIHVpbnQ2NF90IGVsYXBzZWRfbnNlYywKICAgICAgICAgICAgICAgICAg IHVpbnQzMl90IGd0c2Nfa2h6LCB1aW50MzJfdCBpbmNhcm5hdGlvbikKIHsKLSAgICBpZiAoIGlz X2lkbGVfZG9tYWluKGQpIHx8IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgQVNTRVJUKCFp c19zeXN0ZW1fZG9tYWluKGQpKTsKKworICAgIGlmICggaXNfaGFyZHdhcmVfZG9tYWluKGQpICkK ICAgICB7CiAgICAgICAgIGQtPmFyY2gudnRzYyA9IDA7CiAgICAgICAgIHJldHVybjsKLS0gCjIu MS40CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==