From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11FDEC49ED9 for ; Thu, 12 Sep 2019 07:19:50 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D5A5D21479 for ; Thu, 12 Sep 2019 07:19:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D5A5D21479 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i8JOD-00020B-Qf; Thu, 12 Sep 2019 07:19:37 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i8JOD-0001ze-6W for xen-devel@lists.xenproject.org; Thu, 12 Sep 2019 07:19:37 +0000 X-Inumbo-ID: 9f2fabce-d52d-11e9-83e3-12813bfff9fa Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 9f2fabce-d52d-11e9-83e3-12813bfff9fa; Thu, 12 Sep 2019 07:19:13 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Sep 2019 00:19:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,492,1559545200"; d="scan'208";a="189906379" Received: from gao-cwp.sh.intel.com ([10.239.159.26]) by orsmga006.jf.intel.com with ESMTP; 12 Sep 2019 00:19:09 -0700 From: Chao Gao To: xen-devel@lists.xenproject.org Date: Thu, 12 Sep 2019 15:22:27 +0800 Message-Id: <1568272949-1086-15-git-send-email-chao.gao@intel.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1568272949-1086-1-git-send-email-chao.gao@intel.com> References: <1568272949-1086-1-git-send-email-chao.gao@intel.com> Subject: [Xen-devel] [PATCH v10 14/16] microcode: rendezvous CPUs in NMI handler and load ucode X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Sergey Dyasli , Stefano Stabellini , Ashok Raj , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" V2hlbiBvbmUgY29yZSBpcyBsb2FkaW5nIHVjb2RlLCBoYW5kbGluZyBOTUkgb24gc2libGluZyB0 aHJlYWRzIG9yCm9uIG90aGVyIGNvcmVzIGluIHRoZSBzeXN0ZW0gbWlnaHQgYmUgcHJvYmxlbWF0 aWMuIEJ5IHJlbmRlenZvdXNpbmcKYWxsIENQVXMgaW4gTk1JIGhhbmRsZXIsIGl0IHByZXZlbnRz IE5NSSBhY2NlcHRhbmNlIGR1cmluZyB1Y29kZQpsb2FkaW5nLgoKQmFzaWNhbGx5LCBzb21lIHdv cmsgcHJldmlvdXNseSBkb25lIGluIHN0b3BfbWFjaGluZSBjb250ZXh0IGlzCm1vdmVkIHRvIE5N SSBoYW5kbGVyLiBQcmltYXJ5IHRocmVhZHMgY2FsbCBpbiBhbmQgbG9hZCB1Y29kZSBpbgpOTUkg aGFuZGxlci4gU2Vjb25kYXJ5IHRocmVhZHMgd2FpdCBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdWNv ZGUKbG9hZGluZyBvbiBhbGwgQ1BVIGNvcmVzLiBBbiBvcHRpb24gaXMgaW50cm9kdWNlZCB0byBk aXNhYmxlIHRoaXMKYmVoYXZpb3IuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9A aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgRHlhc2xpIDxzZXJnZXkuZHlhc2xpQGNp dHJpeC5jb20+Ci0tLQpDaGFuZ2VzIGluIHYxMDoKIC0gcmV3cml0ZSBiYXNlZCBvbiBTZXJnZXkn cyBpZGVhIGFuZCBwYXRjaAogLSBhZGQgU2VyZ2V5J3MgU09CLgogLSBhZGQgYW4gb3B0aW9uIHRv IGRpc2FibGUgdWNvZGUgbG9hZGluZyBpbiBOTUkgaGFuZGxlcgogLSBkb24ndCBzZW5kIElQSSBO TUkgdG8gdGhlIGNvbnRyb2wgdGhyZWFkIHRvIGF2b2lkIHVua25vd25fbm1pX2Vycm9yKCkKIGlu IGRvX25taSgpLgogLSBhZGQgYW4gYXNzZXJ0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgY3B1IGNob3Nl biB0byBoYW5kbGUgcGxhdGZvcm0gTk1JCiB3b24ndCBzZW5kIHNlbGYgTk1JLiBPdGhlcndpc2Us IHRoZXJlIGlzIGEgcmlzayB0aGF0IHdlIGVuY291bnRlcgogdW5rbm93bl9ubWlfZXJyb3IoKSBh bmQgc3lzdGVtIGNyYXNoZXMuCgpDaGFuZ2VzIGluIHY5OgogLSBjb250cm9sIHRocmVhZHMgc2Vu ZCBOTUkgdG8gYWxsIG90aGVyIHRocmVhZHMuIFNsYXZlIHRocmVhZHMgd2lsbAogc3RheSBpbiB0 aGUgTk1JIGhhbmRsaW5nIHRvIHByZXZlbnQgTk1JIGFjY2VwdGFuY2UgZHVyaW5nIHVjb2RlCiBs b2FkaW5nLiBOb3RlIHRoYXQgc2VsZi1ubWkgaXMgaW52YWxpZCBhY2NvcmRpbmcgdG8gU0RNLgog LSBzL3JlcF9ub3AvY3B1X3JlbGF4CiAtIHJlbW92ZSBkZWJ1ZyBtZXNzYWdlIGluIG1pY3JvY29k ZV9ubWlfY2FsbGJhY2soKS4gUHJpbnRpbmcgZGVidWcKIG1lc3NhZ2Ugd291bGQgdGFrZSBsb25n IHRpbWVzIGFuZCBjb250cm9sIHRocmVhZCBtYXkgdGltZW91dC4KIC0gcmViYXNlIGFuZCBmaXgg Y29uZmxpY3RzCgpDaGFuZ2VzIGluIHY4OgogLSBuZXcKLS0tCiBkb2NzL21pc2MveGVuLWNvbW1h bmQtbGluZS5wYW5kb2MgfCAxMCArKysrKwogeGVuL2FyY2gveDg2L21pY3JvY29kZS5jICAgICAg ICAgIHwgOTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiB4ZW4vYXJj aC94ODYvdHJhcHMuYyAgICAgICAgICAgICAgfCAgNiArKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYv bm1pLmggICAgICAgICB8ICAzICsrCiA0IGZpbGVzIGNoYW5nZWQsIDk2IGluc2VydGlvbnMoKyks IDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5l LnBhbmRvYyBiL2RvY3MvbWlzYy94ZW4tY29tbWFuZC1saW5lLnBhbmRvYwppbmRleCA3YzcyZTMx Li4zMDE3MDczIDEwMDY0NAotLS0gYS9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5wYW5kb2MK KysrIGIvZG9jcy9taXNjL3hlbi1jb21tYW5kLWxpbmUucGFuZG9jCkBAIC0yMDU2LDYgKzIwNTYs MTYgQEAgbWljcm9jb2RlIGluIHRoZSBjcGlvIG5hbWUgc3BhY2UgbXVzdCBiZToKICAgLSBvbiBJ bnRlbDoga2VybmVsL3g4Ni9taWNyb2NvZGUvR2VudWluZUludGVsLmJpbgogICAtIG9uIEFNRCAg OiBrZXJuZWwveDg2L21pY3JvY29kZS9BdXRoZW50aWNBTUQuYmluCiAKKyMjIyB1Y29kZV9sb2Fk aW5nX2luX25taSAoeDg2KQorPiBgPSA8Ym9vbGVhbj5gCisKKz4gRGVmYXVsdDogYHRydWVgCisK K1doZW4gb25lIENQVSBpcyBsb2FkaW5nIHVjb2RlLCBoYW5kbGluZyBOTUlzIG9uIHNpYmxpbmcg dGhyZWFkcyBvciB0aHJlYWRzIG9uCitvdGhlciBjb3JlcyBtaWdodCBjYXVzZSBwcm9ibGVtcy4g QnkgZGVmYXVsdCwgYWxsIENQVXMgcmVuZGV6dm91cyBpbiBOTUkgaGFuZGxlcgorYW5kIGxvYWQg dWNvZGUuIFRoaXMgb3B0aW9uIHByb3ZpZGVzIGEgd2F5IHRvIGRpc2FibGUgaXQgaW4gY2FzZSBv ZiBzb21lIENQVXMKK2Rvbid0IGFsbG93IHVjb2RlIGxvYWRpbmcgaW4gTk1JIGhhbmRsZXIuCisK ICMjIyB1bnJlc3RyaWN0ZWRfZ3Vlc3QgKEludGVsKQogPiBgPSA8Ym9vbGVhbj5gCiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBiL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUu YwppbmRleCAwNDllZGE2Li42NGE0MzIxIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbWljcm9j b2RlLmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCkBAIC0zNiw4ICszNiwxMCBAQAog I2luY2x1ZGUgPHhlbi9lYXJseWNwaW8uaD4KICNpbmNsdWRlIDx4ZW4vd2F0Y2hkb2cuaD4KIAor I2luY2x1ZGUgPGFzbS9hcGljLmg+CiAjaW5jbHVkZSA8YXNtL2RlbGF5Lmg+CiAjaW5jbHVkZSA8 YXNtL21zci5oPgorI2luY2x1ZGUgPGFzbS9ubWkuaD4KICNpbmNsdWRlIDxhc20vcHJvY2Vzc29y Lmg+CiAjaW5jbHVkZSA8YXNtL3NldHVwLmg+CiAjaW5jbHVkZSA8YXNtL21pY3JvY29kZS5oPgpA QCAtMTI1LDYgKzEyNyw5IEBAIHN0YXRpYyBpbnQgX19pbml0IHBhcnNlX3Vjb2RlKGNvbnN0IGNo YXIgKnMpCiB9CiBjdXN0b21fcGFyYW0oInVjb2RlIiwgcGFyc2VfdWNvZGUpOwogCitzdGF0aWMg Ym9vbCBfX3JlYWRfbW9zdGx5IG9wdF91Y29kZV9sb2FkaW5nX2luX25taSA9IHRydWU7Citib29s ZWFuX3J1bnRpbWVfcGFyYW0oInVjb2RlX2xvYWRpbmdfaW5fbm1pIiwgb3B0X3Vjb2RlX2xvYWRp bmdfaW5fbm1pKTsKKwogLyoKICAqIDhNQiBvdWdodCB0byBiZSBlbm91Z2guCiAgKi8KQEAgLTIz Miw2ICsyMzcsNyBAQCBERUZJTkVfUEVSX0NQVShzdHJ1Y3QgY3B1X3NpZ25hdHVyZSwgY3B1X3Np Zyk7CiAgKi8KIHN0YXRpYyBjcHVtYXNrX3QgY3B1X2NhbGxpbl9tYXA7CiBzdGF0aWMgYXRvbWlj X3QgY3B1X291dCwgY3B1X3VwZGF0ZWQ7Citjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpu bWlfcGF0Y2g7CiAKIC8qCiAgKiBSZXR1cm4gYSBwYXRjaCB0aGF0IGNvdmVycyBjdXJyZW50IENQ VS4gSWYgdGhlcmUgYXJlIG11bHRpcGxlIHBhdGNoZXMsCkBAIC0zNTQsNiArMzYwLDUwIEBAIHN0 YXRpYyB2b2lkIHNldF9zdGF0ZSh1bnNpZ25lZCBpbnQgc3RhdGUpCiAgICAgc21wX3dtYigpOwog fQogCitzdGF0aWMgaW50IHNlY29uZGFyeV90aHJlYWRfd29yayh2b2lkKQoreworICAgIGNwdW1h c2tfc2V0X2NwdShzbXBfcHJvY2Vzc29yX2lkKCksICZjcHVfY2FsbGluX21hcCk7CisKKyAgICBy ZXR1cm4gd2FpdF9mb3Jfc3RhdGUoTE9BRElOR19FWElUKSA/IDAgOiAtRUJVU1k7Cit9CisKK3N0 YXRpYyBpbnQgcHJpbWFyeV90aHJlYWRfd29yayhjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo ICpwYXRjaCkKK3sKKyAgICBpbnQgcmV0OworCisgICAgY3B1bWFza19zZXRfY3B1KHNtcF9wcm9j ZXNzb3JfaWQoKSwgJmNwdV9jYWxsaW5fbWFwKTsKKworICAgIGlmICggIXdhaXRfZm9yX3N0YXRl KExPQURJTkdfRU5URVIpICkKKyAgICAgICAgcmV0dXJuIC1FQlVTWTsKKworICAgIHJldCA9IG1p Y3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZShwYXRjaCk7CisgICAgaWYgKCAhcmV0ICkKKyAg ICAgICAgYXRvbWljX2luYygmY3B1X3VwZGF0ZWQpOworICAgIGF0b21pY19pbmMoJmNwdV9vdXQp OworCisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIGludCBtaWNyb2NvZGVfbm1pX2NhbGxi YWNrKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9yZWdzICpyZWdzLCBpbnQgY3B1KQoreworICAgIHVu c2lnbmVkIGludCBwcmltYXJ5ID0gY3B1bWFza19maXJzdCh0aGlzX2NwdShjcHVfc2libGluZ19t YXNrKSk7CisgICAgdW5zaWduZWQgaW50IGNvbnRyb2xsZXIgPSBjcHVtYXNrX2ZpcnN0KCZjcHVf b25saW5lX21hcCk7CisKKyAgICAvKiBTeXN0ZW0tZ2VuZXJhdGVkIE5NSSwgd2lsbCBiZSBpZ25v cmVkICovCisgICAgaWYgKCBsb2FkaW5nX3N0YXRlICE9IExPQURJTkdfQ0FMTElOICkKKyAgICAg ICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIGNwdSA9PSBjb250cm9sbGVyIHx8ICghb3B0X3Vjb2Rl X2xvYWRpbmdfaW5fbm1pICYmIGNwdSA9PSBwcmltYXJ5KSApCisgICAgICAgIHJldHVybiAwOwor CisgICAgaWYgKCBjcHUgPT0gcHJpbWFyeSApCisgICAgICAgIHByaW1hcnlfdGhyZWFkX3dvcmso bm1pX3BhdGNoKTsKKyAgICBlbHNlCisgICAgICAgIHNlY29uZGFyeV90aHJlYWRfd29yaygpOwor CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgc2Vjb25kYXJ5X3RocmVhZF9mbih2b2lk KQogewogICAgIHVuc2lnbmVkIGludCBwcmltYXJ5ID0gY3B1bWFza19maXJzdCh0aGlzX2NwdShj cHVfc2libGluZ19tYXNrKSk7CkBAIC0zNjEsMTAgKzQxMSw3IEBAIHN0YXRpYyBpbnQgc2Vjb25k YXJ5X3RocmVhZF9mbih2b2lkKQogICAgIGlmICggIXdhaXRfZm9yX3N0YXRlKExPQURJTkdfQ0FM TElOKSApCiAgICAgICAgIHJldHVybiAtRUJVU1k7CiAKLSAgICBjcHVtYXNrX3NldF9jcHUoc21w X3Byb2Nlc3Nvcl9pZCgpLCAmY3B1X2NhbGxpbl9tYXApOwotCi0gICAgaWYgKCAhd2FpdF9mb3Jf c3RhdGUoTE9BRElOR19FWElUKSApCi0gICAgICAgIHJldHVybiAtRUJVU1k7CisgICAgc2VsZl9u bWkoKTsKIAogICAgIC8qIENvcHkgdXBkYXRlIHJldmlzaW9uIGZyb20gdGhlIHByaW1hcnkgdGhy ZWFkLiAqLwogICAgIHRoaXNfY3B1KGNwdV9zaWcpLnJldiA9IHBlcl9jcHUoY3B1X3NpZywgcHJp bWFyeSkucmV2OwpAQCAtMzc5LDE1ICs0MjYsMTAgQEAgc3RhdGljIGludCBwcmltYXJ5X3RocmVh ZF9mbihjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkKICAgICBpZiAoICF3YWl0 X2Zvcl9zdGF0ZShMT0FESU5HX0NBTExJTikgKQogICAgICAgICByZXR1cm4gLUVCVVNZOwogCi0g ICAgY3B1bWFza19zZXRfY3B1KHNtcF9wcm9jZXNzb3JfaWQoKSwgJmNwdV9jYWxsaW5fbWFwKTsK LQotICAgIGlmICggIXdhaXRfZm9yX3N0YXRlKExPQURJTkdfRU5URVIpICkKLSAgICAgICAgcmV0 dXJuIC1FQlVTWTsKLQotICAgIHJldCA9IG1pY3JvY29kZV9vcHMtPmFwcGx5X21pY3JvY29kZShw YXRjaCk7Ci0gICAgaWYgKCAhcmV0ICkKLSAgICAgICAgYXRvbWljX2luYygmY3B1X3VwZGF0ZWQp OwotICAgIGF0b21pY19pbmMoJmNwdV9vdXQpOworICAgIGlmICggb3B0X3Vjb2RlX2xvYWRpbmdf aW5fbm1pICkKKyAgICAgICAgc2VsZl9ubWkoKTsKKyAgICBlbHNlCisgICAgICAgIHJldCA9IHBy aW1hcnlfdGhyZWFkX3dvcmsocGF0Y2gpOwogCiAgICAgcmV0dXJuIHJldDsKIH0KQEAgLTM5Nyw2 ICs0MzksNyBAQCBzdGF0aWMgaW50IGNvbnRyb2xfdGhyZWFkX2ZuKGNvbnN0IHN0cnVjdCBtaWNy b2NvZGVfcGF0Y2ggKnBhdGNoKQogICAgIHVuc2lnbmVkIGludCBjcHUgPSBzbXBfcHJvY2Vzc29y X2lkKCksIGRvbmU7CiAgICAgdW5zaWduZWQgbG9uZyB0aWNrOwogICAgIGludCByZXQ7CisgICAg bm1pX2NhbGxiYWNrX3QgKnNhdmVkX25taV9jYWxsYmFjazsKIAogICAgIC8qCiAgICAgICogV2Ug aW50ZW5kIHRvIGRpc2FibGUgaW50ZXJydXB0IGZvciBsb25nIHRpbWUsIHdoaWNoIG1heSBsZWFk IHRvCkBAIC00MDQsNiArNDQ3LDkgQEAgc3RhdGljIGludCBjb250cm9sX3RocmVhZF9mbihjb25z dCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkKICAgICAgKi8KICAgICB3YXRjaGRvZ19k aXNhYmxlKCk7CiAKKyAgICBubWlfcGF0Y2ggPSBwYXRjaDsKKyAgICBzYXZlZF9ubWlfY2FsbGJh Y2sgPSBzZXRfbm1pX2NhbGxiYWNrKG1pY3JvY29kZV9ubWlfY2FsbGJhY2spOworCiAgICAgLyog QWxsb3cgdGhyZWFkcyB0byBjYWxsIGluICovCiAgICAgc2V0X3N0YXRlKExPQURJTkdfQ0FMTElO KTsKIApAQCAtNDE5LDE0ICs0NjUsMjMgQEAgc3RhdGljIGludCBjb250cm9sX3RocmVhZF9mbihj b25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkKICAgICAgICAgcmV0dXJuIHJldDsK ICAgICB9CiAKLSAgICAvKiBMZXQgcHJpbWFyeSB0aHJlYWRzIGxvYWQgdGhlIGdpdmVuIHVjb2Rl IHVwZGF0ZSAqLwotICAgIHNldF9zdGF0ZShMT0FESU5HX0VOVEVSKTsKLQorICAgIC8qIENvbnRy b2wgdGhyZWFkIGxvYWRzIHVjb2RlIGZpcnN0IHdoaWxlIG90aGVycyBhcmUgaW4gTk1JIGhhbmRs ZXIuICovCiAgICAgcmV0ID0gbWljcm9jb2RlX29wcy0+YXBwbHlfbWljcm9jb2RlKHBhdGNoKTsK ICAgICBpZiAoICFyZXQgKQogICAgICAgICBhdG9taWNfaW5jKCZjcHVfdXBkYXRlZCk7CiAgICAg YXRvbWljX2luYygmY3B1X291dCk7CiAKKyAgICBpZiAoIHJldCA9PSAtRUlPICkKKyAgICB7Cisg ICAgICAgIHByaW50ayhYRU5MT0dfRVJSCisgICAgICAgICAgICAgICAiTGF0ZSBsb2FkaW5nIGFi b3J0ZWQ6IENQVSV1IGZhaWxlZCB0byB1cGRhdGUgdWNvZGVcbiIsIGNwdSk7CisgICAgICAgIHNl dF9zdGF0ZShMT0FESU5HX0VYSVQpOworICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKworICAg IC8qIExldCBwcmltYXJ5IHRocmVhZHMgbG9hZCB0aGUgZ2l2ZW4gdWNvZGUgdXBkYXRlICovCisg ICAgc2V0X3N0YXRlKExPQURJTkdfRU5URVIpOworCiAgICAgdGljayA9IHJkdHNjX29yZGVyZWQo KTsKICAgICAvKiBXYWl0IGZvciBwcmltYXJ5IHRocmVhZHMgZmluaXNoaW5nIHVwZGF0ZSAqLwog ICAgIGRvbmUgPSBhdG9taWNfcmVhZCgmY3B1X291dCk7CkBAIC00NTgsNiArNTEzLDcgQEAgc3Rh dGljIGludCBjb250cm9sX3RocmVhZF9mbihjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpw YXRjaCkKICAgICAvKiBNYXJrIGxvYWRpbmcgaXMgZG9uZSB0byB1bmJsb2NrIG90aGVyIHRocmVh ZHMgKi8KICAgICBzZXRfc3RhdGUoTE9BRElOR19FWElUKTsKIAorICAgIHNldF9ubWlfY2FsbGJh Y2soc2F2ZWRfbm1pX2NhbGxiYWNrKTsKICAgICB3YXRjaGRvZ19lbmFibGUoKTsKIAogICAgIHJl dHVybiByZXQ7CkBAIC01MjIsNiArNTc4LDEzIEBAIGludCBtaWNyb2NvZGVfdXBkYXRlKFhFTl9H VUVTVF9IQU5ETEVfUEFSQU0oY29uc3Rfdm9pZCkgYnVmLCB1bnNpZ25lZCBsb25nIGxlbikKICAg ICAgICAgZ290byBmcmVlOwogICAgIH0KIAorICAgIC8qCisgICAgICogQ1BVcyBleGNlcHQgdGhl IGZpcnN0IG9ubGluZSBDUFUgd291bGQgc2VuZCBhIGZha2UgKHNlbGYpIE5NSSB0bworICAgICAq IHJlbmRlenZvdXMgaW4gTk1JIGhhbmRsZXIuIEJ1dCBhIGZha2UgTk1JIHRvIG5taV9jcHUgbWF5 IHRyaWdnZXIKKyAgICAgKiB1bmtub3duX25taV9lcnJvcigpLiBJdCBlbnN1cmVzIG5taV9jcHUg d29uJ3QgcmVjZWl2ZSBhIGZha2UgTk1JLgorICAgICAqLworICAgIEFTU0VSVCggIWNwdV9vbmxp bmUobm1pX2NwdSkgfHwgbm1pX2NwdSA9PSBjcHVtYXNrX2ZpcnN0KCZjcHVfb25saW5lX21hcCkg KTsKKwogICAgIHBhdGNoID0gcGFyc2VfYmxvYihidWZmZXIsIGxlbik7CiAgICAgaWYgKCBJU19F UlIocGF0Y2gpICkKICAgICB7CmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvdHJhcHMuYyBiL3hl bi9hcmNoL3g4Ni90cmFwcy5jCmluZGV4IDE2YzU5MGQuLjUwM2Y1YzggMTAwNjQ0Ci0tLSBhL3hl bi9hcmNoL3g4Ni90cmFwcy5jCisrKyBiL3hlbi9hcmNoL3g4Ni90cmFwcy5jCkBAIC0xMjYsNiAr MTI2LDggQEAgYm9vbGVhbl9wYXJhbSgibGVyIiwgb3B0X2xlcik7CiAvKiBMYXN0RXhjZXB0aW9u RnJvbUlQIG9uIHRoaXMgaGFyZHdhcmUuICBaZXJvIGlmIExFUiBpcyBub3QgaW4gdXNlLiAqLwog dW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkgbGVyX21zcjsKIAordW5zaWduZWQgaW50IF9fcmVh ZF9tb3N0bHkgbm1pX2NwdTsKKwogI2RlZmluZSBzdGFja193b3Jkc19wZXJfbGluZSA0CiAjZGVm aW5lIEVTUF9CRUZPUkVfRVhDRVBUSU9OKHJlZ3MpICgodW5zaWduZWQgbG9uZyAqKXJlZ3MtPnJz cCkKIApAQCAtMTY3OSw3ICsxNjgxLDcgQEAgdm9pZCBkb19ubWkoY29uc3Qgc3RydWN0IGNwdV91 c2VyX3JlZ3MgKnJlZ3MpCiAgICAgICogdGhpcyBwb3J0IGJlZm9yZSB3ZSByZS1hcm0gdGhlIE5N SSB3YXRjaGRvZywgd2UgcmVkdWNlIHRoZSBjaGFuY2UKICAgICAgKiBvZiBoYXZpbmcgYW4gTk1J IHdhdGNoZG9nIGV4cGlyZSB3aGlsZSBpbiB0aGUgU01JIGhhbmRsZXIuCiAgICAgICovCi0gICAg aWYgKCBjcHUgPT0gMCApCisgICAgaWYgKCBjcHUgPT0gbm1pX2NwdSApCiAgICAgICAgIHJlYXNv biA9IGluYigweDYxKTsKIAogICAgIGlmICggKG5taV93YXRjaGRvZyA9PSBOTUlfTk9ORSkgfHwK QEAgLTE2ODcsNyArMTY4OSw3IEBAIHZvaWQgZG9fbm1pKGNvbnN0IHN0cnVjdCBjcHVfdXNlcl9y ZWdzICpyZWdzKQogICAgICAgICBoYW5kbGVfdW5rbm93biA9IHRydWU7CiAKICAgICAvKiBPbmx5 IHRoZSBCU1AgZ2V0cyBleHRlcm5hbCBOTUlzIGZyb20gdGhlIHN5c3RlbS4gKi8KLSAgICBpZiAo IGNwdSA9PSAwICkKKyAgICBpZiAoIGNwdSA9PSBubWlfY3B1ICkKICAgICB7CiAgICAgICAgIGlm ICggcmVhc29uICYgMHg4MCApCiAgICAgICAgICAgICBwY2lfc2Vycl9lcnJvcihyZWdzKTsKZGlm ZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbm1pLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L25taS5oCmluZGV4IDk5ZjYyODQuLmRiZWJmZmUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2Fz bS14ODYvbm1pLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9ubWkuaApAQCAtMTEsNiArMTEs OSBAQCBleHRlcm4gYm9vbCBvcHRfd2F0Y2hkb2c7CiAKIC8qIFdhdGNoZG9nIGZvcmNlIHBhcmFt ZXRlciBmcm9tIHRoZSBjb21tYW5kIGxpbmUgKi8KIGV4dGVybiBib29sIHdhdGNoZG9nX2ZvcmNl OworCisvKiBDUFUgdG8gaGFuZGxlIHBsYXRmb3JtIE5NSSAqLworZXh0ZXJuIHVuc2lnbmVkIGlu dCBubWlfY3B1OwogIAogdHlwZWRlZiBpbnQgbm1pX2NhbGxiYWNrX3QoY29uc3Qgc3RydWN0IGNw dV91c2VyX3JlZ3MgKnJlZ3MsIGludCBjcHUpOwogIAotLSAKMS44LjMuMQoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVj dC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=