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,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 89F5DC49ED9 for ; Thu, 12 Sep 2019 07:19:10 +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 5520021479 for ; Thu, 12 Sep 2019 07:19:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5520021479 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 1i8JNL-0001Pu-Vc; Thu, 12 Sep 2019 07:18:43 +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 1i8JNK-0001Pk-6U for xen-devel@lists.xenproject.org; Thu, 12 Sep 2019 07:18:42 +0000 X-Inumbo-ID: 8b0c5fac-d52d-11e9-83e3-12813bfff9fa Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 8b0c5fac-d52d-11e9-83e3-12813bfff9fa; Thu, 12 Sep 2019 07:18:39 +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:18:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,492,1559545200"; d="scan'208";a="189906215" Received: from gao-cwp.sh.intel.com ([10.239.159.26]) by orsmga006.jf.intel.com with ESMTP; 12 Sep 2019 00:18:36 -0700 From: Chao Gao To: xen-devel@lists.xenproject.org Date: Thu, 12 Sep 2019 15:22:16 +0800 Message-Id: <1568272949-1086-4-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> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v10 03/16] microcode: introduce a global cache of ucode patch 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 , Ashok Raj , Wei Liu , Andrew Cooper , Jan Beulich , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" dG8gcmVwbGFjZSB0aGUgY3VycmVudCBwZXItY3B1IGNhY2hlICd1Y2ktPm1jJy4KCldpdGggdGhl IGFzc3VtcHRpb24gdGhhdCBhbGwgQ1BVcyBpbiB0aGUgc3lzdGVtIGhhdmUgdGhlIHNhbWUgc2ln bmF0dXJlCihmYW1pbHksIG1vZGVsLCBzdGVwcGluZyBhbmQgJ3BmJyksIG9uZSBtaWNyb2NvZGUg dXBkYXRlIG1hdGNoZXMgd2l0aApvbmUgY3B1IHNob3VsZCBtYXRjaCB3aXRoIG90aGVycy4gSGF2 aW5nIGRpZmZlcmluZyBtaWNyb2NvZGUgcmV2aXNpb25zCm9uIGNwdXMgd291bGQgY2F1c2Ugc3lz dGVtIHVuc3RhYmxlIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gSGVuY2UsIGNhY2hpbmcKb25lIG1p Y3JvY29kZSB1cGRhdGUgaXMgZ29vZCBlbm91Z2ggZm9yIGFsbCBjYXNlcy4KCkludHJvZHVjZSBh IGdsb2JhbCB2YXJpYWJsZSwgbWljcm9jb2RlX2NhY2hlLCB0byBzdG9yZSB0aGUgbmV3ZXN0Cm1h dGNoaW5nIG1pY3JvY29kZSB1cGRhdGUuIFdoZW5ldmVyIHdlIGdldCBhIG5ldyB2YWxpZCBtaWNy b2NvZGUgdXBkYXRlLAppdHMgcmV2aXNpb24gaWQgaXMgY29tcGFyZWQgYWdhaW5zdCB0aGF0IG9m IHRoZSBtaWNyb2NvZGUgdXBkYXRlIHRvCmRldGVybWluZSB3aGV0aGVyIHRoZSAibWljcm9jb2Rl X2NhY2hlIiBuZWVkcyB0byBiZSByZXBsYWNlZC4gQW5kCnRoaXMgZ2xvYmFsIGNhY2hlIGlzIGxv YWRlZCB0byBjcHUgaW4gYXBwbHlfbWljcm9jb2RlKCkuCgpBbGwgb3BlcmF0aW9ucyBvbiB0aGUg Y2FjaGUgaXMgcHJvdGVjdGVkIGJ5ICdtaWNyb2NvZGVfbXV0ZXgnLgoKTm90ZSB0aGF0IEkgZGVs aWJlcmF0ZWx5IGF2b2lkIHRvdWNoaW5nIHRoZSBvbGQgcGVyLWNwdSBjYWNoZSAoJ3VjaS0+bWMn KQphcyBJIGFtIGdvaW5nIHRvIHJlbW92ZSBpdCBjb21wbGV0ZWx5IGluIHRoZSBmb2xsb3dpbmcg cGF0Y2hlcy4gV2UgY29weQpldmVyeXRoaW5nIHRvIGNyZWF0ZSB0aGUgbmV3IGNhY2hlIGJsb2Ig dG8gYXZvaWQgcmV1c2luZyBzb21lIGJ1ZmZlcnMKcHJldmlvdXNseSBhbGxvY2F0ZWQgZm9yIHRo ZSBvbGQgcGVyLWNwdSBjYWNoZS4gSXQgaXMgbm90IHNvIGVmZmljaWVudCwKYnV0IGl0IGlzIGFs cmVhZHkgY29ycmVjdGVkIGJ5IGEgcGF0Y2ggbGF0ZXIgaW4gdGhpcyBzZXJpZXMuCgpTaWduZWQt b2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29tPgpSZXZpZXdlZC1ieTogUm9nZXIg UGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQpDaGFuZ2VzIGluIHYxMDoKIC0g YXNzZXJ0IG1pc21hdGNoZWQgdWNvZGUgd29uJ3QgYmUgcGFzc2VkIHRvIC0+Y29tcGFyZV9wYXRj aC4KIC0gcmV0dXJuIC1FTk9FTlQgaWYgcGF0Y2ggaXMgTlVMTCBpbiAuYXBwbHlfbWljcm9jb2Rl KCkuCiAtIGNoZWNrIGFnYWluc3QgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIGluIGZyZWVfcGF0 Y2goKSBvbiBBTUQgc2lkZQogLSBjb3NtZXRpYyBjaGFuZ2VzIHN1Z2dlc3RlZCBieSBSb2dlciBh bmQgSmFuLgoKQ2hhbmdlcyBpbiB2OToKIC0gb24gSW50ZWwgc2lkZSwgLT5jb21wYXJlX3BhdGNo IGp1c3QgY2hlY2tzIHRoZSBwYXRjaCByZXZpc2lvbiBudW1iZXIuCiAtIGV4cGxhaW4gd2h5IGFs bCBidWZmZXJzIGFyZSBjb3BpZWQgaW4gYWxsb2NfbWljcm9jb2RlX3BhdGNoKCkgaW4KIHBhdGNo IGRlc2NyaXB0aW9uLgoKQ2hhbmdlcyBpbiB2ODoKIC0gRnJlZSBnZW5lcmljIHdyYXBwZXIgc3Ry dWN0IGluIGdlbmVyYWwgY29kZQogLSBUcnkgdG8gdXBkYXRlIGNhY2hlIGFzIGxvbmcgYXMgYSBw YXRjaCBjb3ZlcnMgY3VycmVudCBjcHUuIFByZXZpc291bHksCiBjYWNoZSBpcyB1cGRhdGVkIG9u bHkgaWYgdGhlIHBhdGNoIGlzIG5ld2VyIHRoYW4gY3VycmVudCB1cGRhdGUgcmV2aXNpb24gaW4K IHRoZSBDUFUuIFRoZSBzbWFsbCBkaWZmZXJlbmNlIGNhbiB3b3JrIGFyb3VuZCBhIGJyb2tlbiBi aW9zIHdoaWNoIG9ubHkKIGFwcGxpZXMgbWljcm9jb2RlIHVwZGF0ZSB0byBCU1AgYW5kIHNvZnR3 YXJlIGhhcyB0byBhcHBseSB0aGUgc2FtZQogdXBkYXRlIHRvIG90aGVyIENQVXMuCgpDaGFuZ2Vz IGluIHY3OgogLSByZXdvcmtlZCB0byBjYWNoZSBvbmx5IG9uZSBtaWNyb2NvZGUgcGF0Y2ggcmF0 aGVyIHRoYW4gYSBsaXN0IG9mCiBtaWNyb2NvZGUgcGF0Y2hlcy4KLS0tCiB4ZW4vYXJjaC94ODYv bWljcm9jb2RlLmMgICAgICAgIHwgMzggKysrKysrKysrKysrKysrKwogeGVuL2FyY2gveDg2L21p Y3JvY29kZV9hbWQuYyAgICB8IDk4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMgIHwgODEgKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCB8 IDE2ICsrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMjExIGluc2VydGlvbnMoKyksIDIyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGUuYyBiL3hlbi9hcmNo L3g4Ni9taWNyb2NvZGUuYwppbmRleCA0MjFkNTdlLi5lMjE4YTlkIDEwMDY0NAotLS0gYS94ZW4v YXJjaC94ODYvbWljcm9jb2RlLmMKKysrIGIveGVuL2FyY2gveDg2L21pY3JvY29kZS5jCkBAIC02 MSw2ICs2MSw5IEBAIHN0YXRpYyBzdHJ1Y3QgdWNvZGVfbW9kX2Jsb2IgX19pbml0ZGF0YSB1Y29k ZV9ibG9iOwogICovCiBzdGF0aWMgYm9vbF90IF9faW5pdGRhdGEgdWNvZGVfc2NhbjsKIAorLyog UHJvdGVjdGVkIGJ5IG1pY3JvY29kZV9tdXRleCAqLworc3RhdGljIHN0cnVjdCBtaWNyb2NvZGVf cGF0Y2ggKm1pY3JvY29kZV9jYWNoZTsKKwogdm9pZCBfX2luaXQgbWljcm9jb2RlX3NldF9tb2R1 bGUodW5zaWduZWQgaW50IGlkeCkKIHsKICAgICB1Y29kZV9tb2RfaWR4ID0gaWR4OwpAQCAtMjYy LDYgKzI2NSw0MSBAQCBpbnQgbWljcm9jb2RlX3Jlc3VtZV9jcHUodW5zaWduZWQgaW50IGNwdSkK ICAgICByZXR1cm4gZXJyOwogfQogCit2b2lkIG1pY3JvY29kZV9mcmVlX3BhdGNoKHN0cnVjdCBt aWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9wYXRjaCkKK3sKKyAgICBtaWNyb2NvZGVfb3BzLT5m cmVlX3BhdGNoKG1pY3JvY29kZV9wYXRjaC0+bWMpOworICAgIHhmcmVlKG1pY3JvY29kZV9wYXRj aCk7Cit9CisKK2NvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1pY3JvY29kZV9nZXRfY2Fj aGUodm9pZCkKK3sKKyAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJm1pY3JvY29kZV9tdXRleCkp OworCisgICAgcmV0dXJuIG1pY3JvY29kZV9jYWNoZTsKK30KKworLyogUmV0dXJuIHRydWUgaWYg Y2FjaGUgZ2V0cyB1cGRhdGVkLiBPdGhlcndpc2UsIHJldHVybiBmYWxzZSAqLworYm9vbCBtaWNy b2NvZGVfdXBkYXRlX2NhY2hlKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKQoreworICAg IEFTU0VSVChzcGluX2lzX2xvY2tlZCgmbWljcm9jb2RlX211dGV4KSk7CisKKyAgICBpZiAoICFt aWNyb2NvZGVfY2FjaGUgKQorICAgICAgICBtaWNyb2NvZGVfY2FjaGUgPSBwYXRjaDsKKyAgICBl bHNlIGlmICggbWljcm9jb2RlX29wcy0+Y29tcGFyZV9wYXRjaChwYXRjaCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWNyb2NvZGVfY2FjaGUpID09IE5FV19V Q09ERSApCisgICAgeworICAgICAgICBtaWNyb2NvZGVfZnJlZV9wYXRjaChtaWNyb2NvZGVfY2Fj aGUpOworICAgICAgICBtaWNyb2NvZGVfY2FjaGUgPSBwYXRjaDsKKyAgICB9CisgICAgZWxzZQor ICAgIHsKKyAgICAgICAgbWljcm9jb2RlX2ZyZWVfcGF0Y2gocGF0Y2gpOworICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIHN0YXRpYyBpbnQgbWlj cm9jb2RlX3VwZGF0ZV9jcHUoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBp bnQgZXJyOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYyBiL3hlbi9h cmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKaW5kZXggN2ZhNzAwYi4uMmRjYTFkZiAxMDA2NDQKLS0t IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9hbWQuYworKysgYi94ZW4vYXJjaC94ODYvbWljcm9j b2RlX2FtZC5jCkBAIC0xOTAsMjUgKzE5MCw5MiBAQCBzdGF0aWMgZW51bSBtaWNyb2NvZGVfbWF0 Y2hfcmVzdWx0IG1pY3JvY29kZV9maXRzKAogICAgIHJldHVybiBORVdfVUNPREU7CiB9CiAKK3N0 YXRpYyBib29sIG1hdGNoX2NwdShjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkK K3sKKyAgICBpZiAoICFwYXRjaCApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g bWljcm9jb2RlX2ZpdHMocGF0Y2gtPm1jX2FtZCwgc21wX3Byb2Nlc3Nvcl9pZCgpKSA9PSBORVdf VUNPREU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICphbGxvY19taWNyb2Nv ZGVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9hbWQgKm1jX2FtZCkKK3sKKyAg ICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICptaWNyb2NvZGVfcGF0Y2ggPSB4bWFsbG9jKHN0cnVj dCBtaWNyb2NvZGVfcGF0Y2gpOworICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICpjYWNoZSA9IHht YWxsb2Moc3RydWN0IG1pY3JvY29kZV9hbWQpOworICAgIHZvaWQgKm1wYiA9IHhtYWxsb2NfYnl0 ZXMobWNfYW1kLT5tcGJfc2l6ZSk7CisgICAgc3RydWN0IGVxdWl2X2NwdV9lbnRyeSAqZXF1aXZf Y3B1X3RhYmxlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1hbGxvY19ieXRl cyhtY19hbWQtPmVxdWl2X2NwdV90YWJsZV9zaXplKTsKKworICAgIGlmICggIW1pY3JvY29kZV9w YXRjaCB8fCAhY2FjaGUgfHwgIW1wYiB8fCAhZXF1aXZfY3B1X3RhYmxlICkKKyAgICB7CisgICAg ICAgIHhmcmVlKG1pY3JvY29kZV9wYXRjaCk7CisgICAgICAgIHhmcmVlKGNhY2hlKTsKKyAgICAg ICAgeGZyZWUobXBiKTsKKyAgICAgICAgeGZyZWUoZXF1aXZfY3B1X3RhYmxlKTsKKyAgICAgICAg cmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7CisgICAgfQorCisgICAgbWVtY3B5KG1wYiwgbWNfYW1k LT5tcGIsIG1jX2FtZC0+bXBiX3NpemUpOworICAgIGNhY2hlLT5tcGIgPSBtcGI7CisgICAgY2Fj aGUtPm1wYl9zaXplID0gbWNfYW1kLT5tcGJfc2l6ZTsKKyAgICBtZW1jcHkoZXF1aXZfY3B1X3Rh YmxlLCBtY19hbWQtPmVxdWl2X2NwdV90YWJsZSwKKyAgICAgICAgICAgbWNfYW1kLT5lcXVpdl9j cHVfdGFibGVfc2l6ZSk7CisgICAgY2FjaGUtPmVxdWl2X2NwdV90YWJsZSA9IGVxdWl2X2NwdV90 YWJsZTsKKyAgICBjYWNoZS0+ZXF1aXZfY3B1X3RhYmxlX3NpemUgPSBtY19hbWQtPmVxdWl2X2Nw dV90YWJsZV9zaXplOworICAgIG1pY3JvY29kZV9wYXRjaC0+bWNfYW1kID0gY2FjaGU7CisKKyAg ICByZXR1cm4gbWljcm9jb2RlX3BhdGNoOworfQorCitzdGF0aWMgdm9pZCBmcmVlX3BhdGNoKHZv aWQgKm1jKQoreworICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQgPSBtYzsKKworICAg IGlmICggbWNfYW1kICkKKyAgICB7CisgICAgICAgIHhmcmVlKG1jX2FtZC0+ZXF1aXZfY3B1X3Rh YmxlKTsKKyAgICAgICAgeGZyZWUobWNfYW1kLT5tcGIpOworICAgICAgICB4ZnJlZShtY19hbWQp OworICAgIH0KK30KKworc3RhdGljIGVudW0gbWljcm9jb2RlX21hdGNoX3Jlc3VsdCBjb21wYXJl X3BhdGNoKAorICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ldywgY29uc3Qgc3Ry dWN0IG1pY3JvY29kZV9wYXRjaCAqb2xkKQoreworICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVf aGVhZGVyX2FtZCAqbmV3X2hlYWRlciA9IG5ldy0+bWNfYW1kLT5tcGI7CisgICAgY29uc3Qgc3Ry dWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpvbGRfaGVhZGVyID0gb2xkLT5tY19hbWQtPm1wYjsK KworICAgIC8qIEJvdGggcGF0Y2hlcyB0byBjb21wYXJlIGFyZSBzdXBwb3NlZCB0byBiZSBhcHBs aWNhYmxlIHRvIGxvY2FsIENQVS4gKi8KKyAgICBBU1NFUlQobWljcm9jb2RlX2ZpdHMobmV3LT5t Y19hbWQsIHNtcF9wcm9jZXNzb3JfaWQoKSkgIT0gTUlTX1VDT0RFKTsKKyAgICBBU1NFUlQobWlj cm9jb2RlX2ZpdHMobmV3LT5tY19hbWQsIHNtcF9wcm9jZXNzb3JfaWQoKSkgIT0gTUlTX1VDT0RF KTsKKworICAgIGlmICggbmV3X2hlYWRlci0+cHJvY2Vzc29yX3Jldl9pZCA9PSBvbGRfaGVhZGVy LT5wcm9jZXNzb3JfcmV2X2lkICkKKyAgICAgICAgcmV0dXJuIChuZXdfaGVhZGVyLT5wYXRjaF9p ZCA+IG9sZF9oZWFkZXItPnBhdGNoX2lkKSA/CisgICAgICAgICAgICAgICAgTkVXX1VDT0RFIDog T0xEX1VDT0RFOworCisgICAgcmV0dXJuIE1JU19VQ09ERTsKK30KKwogc3RhdGljIGludCBhcHBs eV9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OwogICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9jcHUodWNvZGVfY3B1X2lu Zm8sIGNwdSk7CiAgICAgdWludDMyX3QgcmV2OwotICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICpt Y19hbWQgPSB1Y2ktPm1jLm1jX2FtZDsKLSAgICBzdHJ1Y3QgbWljcm9jb2RlX2hlYWRlcl9hbWQg KmhkcjsKICAgICBpbnQgaHdfZXJyOworICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVy X2FtZCAqaGRyOworICAgIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoID0gbWlj cm9jb2RlX2dldF9jYWNoZSgpOwogCiAgICAgLyogV2Ugc2hvdWxkIGJpbmQgdGhlIHRhc2sgdG8g dGhlIENQVSAqLwogICAgIEJVR19PTihyYXdfc21wX3Byb2Nlc3Nvcl9pZCgpICE9IGNwdSk7CiAK LSAgICBpZiAoIG1jX2FtZCA9PSBOVUxMICkKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAg aWYgKCAhcGF0Y2ggKQorICAgICAgICByZXR1cm4gLUVOT0VOVDsKIAotICAgIGhkciA9IG1jX2Ft ZC0+bXBiOwotICAgIGlmICggaGRyID09IE5VTEwgKQorICAgIGlmICggIW1hdGNoX2NwdShwYXRj aCkgKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKIAorICAgIGhkciA9IHBhdGNoLT5tY19hbWQt Pm1wYjsKKwogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZtaWNyb2NvZGVfdXBkYXRlX2xvY2ssIGZs YWdzKTsKIAogICAgIGh3X2VyciA9IHdybXNyX3NhZmUoTVNSX0FNRF9QQVRDSExPQURFUiwgKHVu c2lnbmVkIGxvbmcpaGRyKTsKQEAgLTQ5Niw3ICs1NjMsMjEgQEAgc3RhdGljIGludCBjcHVfcmVx dWVzdF9taWNyb2NvZGUodW5zaWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAgIHdo aWxlICggKGVycm9yID0gZ2V0X3Vjb2RlX2Zyb21fYnVmZmVyX2FtZChtY19hbWQsIGJ1ZiwgYnVm c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9m ZnNldCkpID09IDAgKQogICAgIHsKLSAgICAgICAgaWYgKCBtaWNyb2NvZGVfZml0cyhtY19hbWQs IGNwdSkgPT0gTkVXX1VDT0RFICkKKyAgICAgICAgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqbmV3 X3BhdGNoID0gYWxsb2NfbWljcm9jb2RlX3BhdGNoKG1jX2FtZCk7CisKKyAgICAgICAgaWYgKCBJ U19FUlIobmV3X3BhdGNoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGVycm9yID0gUFRSX0VS UihuZXdfcGF0Y2gpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICAv KiBVcGRhdGUgY2FjaGUgaWYgdGhpcyBwYXRjaCBjb3ZlcnMgY3VycmVudCBDUFUgKi8KKyAgICAg ICAgaWYgKCBtaWNyb2NvZGVfZml0cyhuZXdfcGF0Y2gtPm1jX2FtZCwgY3B1KSAhPSBNSVNfVUNP REUgKQorICAgICAgICAgICAgbWljcm9jb2RlX3VwZGF0ZV9jYWNoZShuZXdfcGF0Y2gpOworICAg ICAgICBlbHNlCisgICAgICAgICAgICBtaWNyb2NvZGVfZnJlZV9wYXRjaChuZXdfcGF0Y2gpOwor CisgICAgICAgIGlmICggbWF0Y2hfY3B1KG1pY3JvY29kZV9nZXRfY2FjaGUoKSkgKQogICAgICAg ICB7CiAgICAgICAgICAgICBlcnJvciA9IGFwcGx5X21pY3JvY29kZShjcHUpOwogICAgICAgICAg ICAgaWYgKCBlcnJvciApCkBAIC02NDMsNiArNzI0LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt aWNyb2NvZGVfb3BzIG1pY3JvY29kZV9hbWRfb3BzID0gewogICAgIC5jb2xsZWN0X2NwdV9pbmZv ICAgICAgICAgICAgICAgICA9IGNvbGxlY3RfY3B1X2luZm8sCiAgICAgLmFwcGx5X21pY3JvY29k ZSAgICAgICAgICAgICAgICAgID0gYXBwbHlfbWljcm9jb2RlLAogICAgIC5zdGFydF91cGRhdGUg ICAgICAgICAgICAgICAgICAgICA9IHN0YXJ0X3VwZGF0ZSwKKyAgICAuZnJlZV9wYXRjaCAgICAg ICAgICAgICAgICAgICAgICAgPSBmcmVlX3BhdGNoLAorICAgIC5jb21wYXJlX3BhdGNoICAgICAg ICAgICAgICAgICAgICA9IGNvbXBhcmVfcGF0Y2gsCisgICAgLm1hdGNoX2NwdSAgICAgICAgICAg ICAgICAgICAgICAgID0gbWF0Y2hfY3B1LAogfTsKIAogaW50IF9faW5pdCBtaWNyb2NvZGVfaW5p dF9hbWQodm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYyBi L3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYwppbmRleCAxYTNmZmE1Li5lZWZjMmQyIDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2ludGVsLmMKKysrIGIveGVuL2FyY2gv eDg2L21pY3JvY29kZV9pbnRlbC5jCkBAIC0yNjAsNiArMjYwLDM2IEBAIHN0YXRpYyBlbnVtIG1p Y3JvY29kZV9tYXRjaF9yZXN1bHQgbWljcm9jb2RlX3VwZGF0ZV9tYXRjaCgKICAgICByZXR1cm4g TUlTX1VDT0RFOwogfQogCitzdGF0aWMgYm9vbCBtYXRjaF9jcHUoY29uc3Qgc3RydWN0IG1pY3Jv Y29kZV9wYXRjaCAqcGF0Y2gpCit7CisgICAgaWYgKCAhcGF0Y2ggKQorICAgICAgICByZXR1cm4g ZmFsc2U7CisKKyAgICByZXR1cm4gbWljcm9jb2RlX3VwZGF0ZV9tYXRjaCgmcGF0Y2gtPm1jX2lu dGVsLT5oZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc21wX3Byb2Nlc3Nv cl9pZCgpKSA9PSBORVdfVUNPREU7Cit9CisKK3N0YXRpYyB2b2lkIGZyZWVfcGF0Y2godm9pZCAq bWMpCit7CisgICAgeGZyZWUobWMpOworfQorCitzdGF0aWMgZW51bSBtaWNyb2NvZGVfbWF0Y2hf cmVzdWx0IGNvbXBhcmVfcGF0Y2goCisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAq bmV3LCBjb25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpvbGQpCit7CisgICAgLyoKKyAgICAg KiBCb3RoIHBhdGNoZXMgdG8gY29tcGFyZSBhcmUgc3VwcG9zZWQgdG8gYmUgYXBwbGljYWJsZSB0 byBsb2NhbCBDUFUuCisgICAgICogSnVzdCBjb21wYXJlIHRoZSByZXZpc2lvbiBudW1iZXIuCisg ICAgICovCisgICAgQVNTRVJUKG1pY3JvY29kZV91cGRhdGVfbWF0Y2goJm9sZC0+bWNfaW50ZWwt Pmhkciwgc21wX3Byb2Nlc3Nvcl9pZCgpKSAhPQorICAgICAgICAgICAgICAgTUlTX1VDT0RFKTsK KyAgICBBU1NFUlQobWljcm9jb2RlX3VwZGF0ZV9tYXRjaCgmbmV3LT5tY19pbnRlbC0+aGRyLCBz bXBfcHJvY2Vzc29yX2lkKCkpICE9CisgICAgICAgICAgICAgICBNSVNfVUNPREUpOworCisgICAg cmV0dXJuIChuZXctPm1jX2ludGVsLT5oZHIucmV2ID4gb2xkLT5tY19pbnRlbC0+aGRyLnJldikg PyBORVdfVUNPREUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IE9MRF9VQ09ERTsKK30KKwogLyoKICAqIHJldHVybiAwIC0gbm8g dXBkYXRlIGZvdW5kCiAgKiByZXR1cm4gMSAtIGZvdW5kIHVwZGF0ZQpAQCAtMjcwLDEwICszMDAs MjYgQEAgc3RhdGljIGludCBnZXRfbWF0Y2hpbmdfbWljcm9jb2RlKGNvbnN0IHZvaWQgKm1jLCB1 bnNpZ25lZCBpbnQgY3B1KQogICAgIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyAqdWNpID0gJnBlcl9j cHUodWNvZGVfY3B1X2luZm8sIGNwdSk7CiAgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9oZWFk ZXJfaW50ZWwgKm1jX2hlYWRlciA9IG1jOwogICAgIHVuc2lnbmVkIGxvbmcgdG90YWxfc2l6ZSA9 IGdldF90b3RhbHNpemUobWNfaGVhZGVyKTsKLSAgICB2b2lkICpuZXdfbWM7CisgICAgdm9pZCAq bmV3X21jID0geG1hbGxvY19ieXRlcyh0b3RhbF9zaXplKTsKKyAgICBzdHJ1Y3QgbWljcm9jb2Rl X3BhdGNoICpuZXdfcGF0Y2ggPSB4bWFsbG9jKHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2gpOwogCi0g ICAgaWYgKCBtaWNyb2NvZGVfdXBkYXRlX21hdGNoKG1jLCBjcHUpICE9IE5FV19VQ09ERSApCisg ICAgaWYgKCAhbmV3X3BhdGNoIHx8ICFuZXdfbWMgKQorICAgIHsKKyAgICAgICAgeGZyZWUobmV3 X3BhdGNoKTsKKyAgICAgICAgeGZyZWUobmV3X21jKTsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07 CisgICAgfQorICAgIG1lbWNweShuZXdfbWMsIG1jLCB0b3RhbF9zaXplKTsKKyAgICBuZXdfcGF0 Y2gtPm1jX2ludGVsID0gbmV3X21jOworCisgICAgLyogTWFrZSBzdXJlIHRoYXQgdGhpcyBwYXRj aCBjb3ZlcnMgY3VycmVudCBDUFUgKi8KKyAgICBpZiAoIG1pY3JvY29kZV91cGRhdGVfbWF0Y2go bWMsIGNwdSkgPT0gTUlTX1VDT0RFICkKKyAgICB7CisgICAgICAgIG1pY3JvY29kZV9mcmVlX3Bh dGNoKG5ld19wYXRjaCk7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIG1pY3JvY29k ZV91cGRhdGVfY2FjaGUobmV3X3BhdGNoKTsKIAogICAgIHByX2RlYnVnKCJtaWNyb2NvZGU6IENQ VSVkIGZvdW5kIGEgbWF0Y2hpbmcgbWljcm9jb2RlIHVwZGF0ZSB3aXRoIgogICAgICAgICAgICAg ICIgdmVyc2lvbiAlI3ggKGN1cnJlbnQ9JSN4KVxuIiwKQEAgLTI5OCwxOCArMzQ0LDI1IEBAIHN0 YXRpYyBpbnQgYXBwbHlfbWljcm9jb2RlKHVuc2lnbmVkIGludCBjcHUpCiAgICAgdW5zaWduZWQg aW50IHZhbFsyXTsKICAgICB1bnNpZ25lZCBpbnQgY3B1X251bSA9IHJhd19zbXBfcHJvY2Vzc29y X2lkKCk7CiAgICAgc3RydWN0IHVjb2RlX2NwdV9pbmZvICp1Y2kgPSAmcGVyX2NwdSh1Y29kZV9j cHVfaW5mbywgY3B1X251bSk7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9pbnRlbCAqbWNf aW50ZWw7CisgICAgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2ggPSBtaWNyb2Nv ZGVfZ2V0X2NhY2hlKCk7CiAKICAgICAvKiBXZSBzaG91bGQgYmluZCB0aGUgdGFzayB0byB0aGUg Q1BVICovCiAgICAgQlVHX09OKGNwdV9udW0gIT0gY3B1KTsKIAotICAgIGlmICggdWNpLT5tYy5t Y19pbnRlbCA9PSBOVUxMICkKKyAgICBpZiAoICFwYXRjaCApCisgICAgICAgIHJldHVybiAtRU5P RU5UOworCisgICAgaWYgKCAhbWF0Y2hfY3B1KHBhdGNoKSApCiAgICAgICAgIHJldHVybiAtRUlO VkFMOwogCisgICAgbWNfaW50ZWwgPSBwYXRjaC0+bWNfaW50ZWw7CisKICAgICAvKiBzZXJpYWxp emUgYWNjZXNzIHRvIHRoZSBwaHlzaWNhbCB3cml0ZSB0byBNU1IgMHg3OSAqLwogICAgIHNwaW5f bG9ja19pcnFzYXZlKCZtaWNyb2NvZGVfdXBkYXRlX2xvY2ssIGZsYWdzKTsKIAogICAgIC8qIHdy aXRlIG1pY3JvY29kZSB2aWEgTVNSIDB4NzkgKi8KLSAgICB3cm1zcmwoTVNSX0lBMzJfVUNPREVf V1JJVEUsICh1bnNpZ25lZCBsb25nKXVjaS0+bWMubWNfaW50ZWwtPmJpdHMpOworICAgIHdybXNy bChNU1JfSUEzMl9VQ09ERV9XUklURSwgKHVuc2lnbmVkIGxvbmcpbWNfaW50ZWwtPmJpdHMpOwog ICAgIHdybXNybChNU1JfSUEzMl9VQ09ERV9SRVYsIDB4MFVMTCk7CiAKICAgICAvKiBBcyBkb2N1 bWVudGVkIGluIHRoZSBTRE06IERvIGEgQ1BVSUQgMSBoZXJlICovCkBAIC0zMjAsMTkgKzM3Mywx NyBAQCBzdGF0aWMgaW50IGFwcGx5X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1KQogICAgIHZh bFsxXSA9ICh1aW50MzJfdCkobXNyX2NvbnRlbnQgPj4gMzIpOwogCiAgICAgc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmbWljcm9jb2RlX3VwZGF0ZV9sb2NrLCBmbGFncyk7Ci0gICAgaWYgKCB2YWxb MV0gIT0gdWNpLT5tYy5tY19pbnRlbC0+aGRyLnJldiApCisgICAgaWYgKCB2YWxbMV0gIT0gbWNf aW50ZWwtPmhkci5yZXYgKQogICAgIHsKICAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJtaWNyb2Nv ZGU6IENQVSVkIHVwZGF0ZSBmcm9tIHJldmlzaW9uICIKICAgICAgICAgICAgICAgICIlI3ggdG8g JSN4IGZhaWxlZC4gUmVzdWx0aW5nIHJldmlzaW9uIGlzICUjeC5cbiIsIGNwdV9udW0sCi0gICAg ICAgICAgICAgICB1Y2ktPmNwdV9zaWcucmV2LCB1Y2ktPm1jLm1jX2ludGVsLT5oZHIucmV2LCB2 YWxbMV0pOworICAgICAgICAgICAgICAgdWNpLT5jcHVfc2lnLnJldiwgbWNfaW50ZWwtPmhkci5y ZXYsIHZhbFsxXSk7CiAgICAgICAgIHJldHVybiAtRUlPOwogICAgIH0KICAgICBwcmludGsoS0VS Tl9JTkZPICJtaWNyb2NvZGU6IENQVSVkIHVwZGF0ZWQgZnJvbSByZXZpc2lvbiAiCiAgICAgICAg ICAgICIlI3ggdG8gJSN4LCBkYXRlID0gJTA0eC0lMDJ4LSUwMnggXG4iLAotICAgICAgICAgICBj cHVfbnVtLCB1Y2ktPmNwdV9zaWcucmV2LCB2YWxbMV0sCi0gICAgICAgICAgIHVjaS0+bWMubWNf aW50ZWwtPmhkci55ZWFyLAotICAgICAgICAgICB1Y2ktPm1jLm1jX2ludGVsLT5oZHIubW9udGgs Ci0gICAgICAgICAgIHVjaS0+bWMubWNfaW50ZWwtPmhkci5kYXkpOworICAgICAgICAgICBjcHVf bnVtLCB1Y2ktPmNwdV9zaWcucmV2LCB2YWxbMV0sIG1jX2ludGVsLT5oZHIueWVhciwKKyAgICAg ICAgICAgbWNfaW50ZWwtPmhkci5tb250aCwgbWNfaW50ZWwtPmhkci5kYXkpOwogICAgIHVjaS0+ Y3B1X3NpZy5yZXYgPSB2YWxbMV07CiAKICAgICByZXR1cm4gMDsKQEAgLTM3Miw3ICs0MjMsNiBA QCBzdGF0aWMgaW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25z dCB2b2lkICpidWYsCiAgICAgbG9uZyBvZmZzZXQgPSAwOwogICAgIGludCBlcnJvciA9IDA7CiAg ICAgdm9pZCAqbWM7Ci0gICAgdW5zaWduZWQgaW50IG1hdGNoaW5nX2NvdW50ID0gMDsKIAogICAg IC8qIFdlIHNob3VsZCBiaW5kIHRoZSB0YXNrIHRvIHRoZSBDUFUgKi8KICAgICBCVUdfT04oY3B1 ICE9IHJhd19zbXBfcHJvY2Vzc29yX2lkKCkpOwpAQCAtMzkwLDEwICs0NDAsOCBAQCBzdGF0aWMg aW50IGNwdV9yZXF1ZXN0X21pY3JvY29kZSh1bnNpZ25lZCBpbnQgY3B1LCBjb25zdCB2b2lkICpi dWYsCiAgICAgICAgICAqIGxldHMga2VlcCBzZWFyY2hpbmcgdGlsbCB0aGUgbGF0ZXN0IHZlcnNp b24KICAgICAgICAgICovCiAgICAgICAgIGlmICggZXJyb3IgPT0gMSApCi0gICAgICAgIHsKLSAg ICAgICAgICAgIG1hdGNoaW5nX2NvdW50Kys7CiAgICAgICAgICAgICBlcnJvciA9IDA7Ci0gICAg ICAgIH0KKwogICAgICAgICB4ZnJlZShtYyk7CiAgICAgfQogICAgIGlmICggb2Zmc2V0ID4gMCAp CkBAIC00MDEsNyArNDQ5LDcgQEAgc3RhdGljIGludCBjcHVfcmVxdWVzdF9taWNyb2NvZGUodW5z aWduZWQgaW50IGNwdSwgY29uc3Qgdm9pZCAqYnVmLAogICAgIGlmICggb2Zmc2V0IDwgMCApCiAg ICAgICAgIGVycm9yID0gb2Zmc2V0OwogCi0gICAgaWYgKCAhZXJyb3IgJiYgbWF0Y2hpbmdfY291 bnQgKQorICAgIGlmICggIWVycm9yICYmIG1hdGNoX2NwdShtaWNyb2NvZGVfZ2V0X2NhY2hlKCkp ICkKICAgICAgICAgZXJyb3IgPSBhcHBseV9taWNyb2NvZGUoY3B1KTsKIAogICAgIHJldHVybiBl cnJvcjsKQEAgLTQxNyw2ICs0NjUsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1pY3JvY29kZV9v cHMgbWljcm9jb2RlX2ludGVsX29wcyA9IHsKICAgICAuY3B1X3JlcXVlc3RfbWljcm9jb2RlICAg ICAgICAgICAgPSBjcHVfcmVxdWVzdF9taWNyb2NvZGUsCiAgICAgLmNvbGxlY3RfY3B1X2luZm8g ICAgICAgICAgICAgICAgID0gY29sbGVjdF9jcHVfaW5mbywKICAgICAuYXBwbHlfbWljcm9jb2Rl ICAgICAgICAgICAgICAgICAgPSBhcHBseV9taWNyb2NvZGUsCisgICAgLmZyZWVfcGF0Y2ggICAg ICAgICAgICAgICAgICAgICAgID0gZnJlZV9wYXRjaCwKKyAgICAuY29tcGFyZV9wYXRjaCAgICAg ICAgICAgICAgICAgICAgPSBjb21wYXJlX3BhdGNoLAorICAgIC5tYXRjaF9jcHUgICAgICAgICAg ICAgICAgICAgICAgICA9IG1hdGNoX2NwdSwKIH07CiAKIGludCBfX2luaXQgbWljcm9jb2RlX2lu aXRfaW50ZWwodm9pZCkKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2Rl LmggYi94ZW4vaW5jbHVkZS9hc20teDg2L21pY3JvY29kZS5oCmluZGV4IDg4MmY1NjAuLjRkNDU0 MDEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbWljcm9jb2RlLmgKKysrIGIveGVu L2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaApAQCAtMTIsNiArMTIsMTQgQEAgZW51bSBtaWNy b2NvZGVfbWF0Y2hfcmVzdWx0IHsKIHN0cnVjdCBjcHVfc2lnbmF0dXJlOwogc3RydWN0IHVjb2Rl X2NwdV9pbmZvOwogCitzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoIHsKKyAgICB1bmlvbiB7CisgICAg ICAgIHN0cnVjdCBtaWNyb2NvZGVfaW50ZWwgKm1jX2ludGVsOworICAgICAgICBzdHJ1Y3QgbWlj cm9jb2RlX2FtZCAqbWNfYW1kOworICAgICAgICB2b2lkICptYzsKKyAgICB9OworfTsKKwogc3Ry dWN0IG1pY3JvY29kZV9vcHMgewogICAgIGludCAoKm1pY3JvY29kZV9yZXN1bWVfbWF0Y2gpKHVu c2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKm1jKTsKICAgICBpbnQgKCpjcHVfcmVxdWVzdF9t aWNyb2NvZGUpKHVuc2lnbmVkIGludCBjcHUsIGNvbnN0IHZvaWQgKmJ1ZiwKQEAgLTE5LDYgKzI3 LDEwIEBAIHN0cnVjdCBtaWNyb2NvZGVfb3BzIHsKICAgICBpbnQgKCpjb2xsZWN0X2NwdV9pbmZv KSh1bnNpZ25lZCBpbnQgY3B1LCBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSAqY3NpZyk7CiAgICAgaW50 ICgqYXBwbHlfbWljcm9jb2RlKSh1bnNpZ25lZCBpbnQgY3B1KTsKICAgICBpbnQgKCpzdGFydF91 cGRhdGUpKHZvaWQpOworICAgIHZvaWQgKCpmcmVlX3BhdGNoKSh2b2lkICptYyk7CisgICAgYm9v bCAoKm1hdGNoX2NwdSkoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpOworICAg IGVudW0gbWljcm9jb2RlX21hdGNoX3Jlc3VsdCAoKmNvbXBhcmVfcGF0Y2gpKAorICAgICAgICBj b25zdCBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXcsIGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVf cGF0Y2ggKm9sZCk7CiB9OwogCiBzdHJ1Y3QgY3B1X3NpZ25hdHVyZSB7CkBAIC0zOSw0ICs1MSw4 IEBAIHN0cnVjdCB1Y29kZV9jcHVfaW5mbyB7CiBERUNMQVJFX1BFUl9DUFUoc3RydWN0IHVjb2Rl X2NwdV9pbmZvLCB1Y29kZV9jcHVfaW5mbyk7CiBleHRlcm4gY29uc3Qgc3RydWN0IG1pY3JvY29k ZV9vcHMgKm1pY3JvY29kZV9vcHM7CiAKK2NvbnN0IHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm1p Y3JvY29kZV9nZXRfY2FjaGUodm9pZCk7Citib29sIG1pY3JvY29kZV91cGRhdGVfY2FjaGUoc3Ry dWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpOwordm9pZCBtaWNyb2NvZGVfZnJlZV9wYXRjaChz dHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCk7CisKICNlbmRpZiAvKiBBU01fWDg2X19NSUNS T0NPREVfSCAqLwotLSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhl bnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5m by94ZW4tZGV2ZWw=