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 1EDFAC49ED9 for ; Thu, 12 Sep 2019 07:19:37 +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 E20DD21479 for ; Thu, 12 Sep 2019 07:19:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E20DD21479 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 1i8JNz-0001mJ-7o; Thu, 12 Sep 2019 07:19:23 +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 1i8JNy-0001lX-6c for xen-devel@lists.xenproject.org; Thu, 12 Sep 2019 07:19:22 +0000 X-Inumbo-ID: 989afc8c-d52d-11e9-83e3-12813bfff9fa Received: from mga01.intel.com (unknown [192.55.52.88]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 989afc8c-d52d-11e9-83e3-12813bfff9fa; Thu, 12 Sep 2019 07:19:02 +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:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,492,1559545200"; d="scan'208";a="189906315" Received: from gao-cwp.sh.intel.com ([10.239.159.26]) by orsmga006.jf.intel.com with ESMTP; 12 Sep 2019 00:18:59 -0700 From: Chao Gao To: xen-devel@lists.xenproject.org Date: Thu, 12 Sep 2019 15:22:24 +0800 Message-Id: <1568272949-1086-12-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 11/16] microcode: reduce memory allocation and copy when creating a 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" VG8gY3JlYXRlIGEgbWljcm9jb2RlIHBhdGNoIGZyb20gYSB2ZW5kb3Itc3BlY2lmaWMgdXBkYXRl LAphbGxvY2F0ZV9taWNyb2NvZGVfcGF0Y2goKSBjb3BpZWQgZXZlcnl0aGluZyBmcm9tIHRoZSB1 cGRhdGUuCkl0IGlzIG5vdCBlZmZpY2llbnQuIEVzc2VudGlhbGx5LCB3ZSBqdXN0IG5lZWQgdG8g Z28gdGhyb3VnaAp1Y29kZXMgaW4gdGhlIGJsb2IsIGZpbmQgdGhlIG9uZSB3aXRoIHRoZSBuZXdl c3QgcmV2aXNpb24gYW5kCmluc3RhbGwgaXQgaW50byB0aGUgbWljcm9jb2RlX3BhdGNoLiBJbiB0 aGUgcHJvY2VzcywgYnVmZmVycwpsaWtlIG1jX2FtZCwgZXF1aXZfY3B1X3RhYmxlIChvbiBBTUQg c2lkZSksIGFuZCBtYyAob24gSW50ZWwKc2lkZSkgY2FuIGJlIHJldXNlZC4gbWljcm9jb2RlX3Bh dGNoIG5vdyBpcyBhbGxvY2F0ZWQgYWZ0ZXIKaXQgaXMgc3VyZSB0aGF0IHRoZXJlIGlzIGEgbWF0 Y2hpbmcgdWNvZGUuCgpTaWduZWQtb2ZmLWJ5OiBDaGFvIEdhbyA8Y2hhby5nYW9AaW50ZWwuY29t PgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0t LQpDaGFuZ2VzIGluIHYxMDoKIC0gYXZvaWQgdW5uZWNlc3NhcnkgdHlwZSBjYXN0aW5nCiAgICog aW50cm9kdWNlIGNvbXBhcmVfaGVhZGVyIG9uIEFNRCBzaWRlCiAgICogc3BlY2lmeSB0aGUgdHlw ZSBvZiB0aGUgZmlyc3QgcGFyYW1ldGVyIG9mIGdldF9uZXh0X3Vjb2RlX2Zyb21fYnVmZmVyKCkK ICAgICBvbiBJbnRlbCBzaWRlCgpDaGFuZ2VzIGluIHY5OgogLSBuZXcKLS0tCiB4ZW4vYXJjaC94 ODYvbWljcm9jb2RlX2FtZC5jICAgfCAxMTIgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KIHhlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYyB8ICA2NyArKysrKysr KystLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMTEw IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMg Yi94ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5jCmluZGV4IDFkMWJlYTQuLmYwNWRiNzIgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfYW1kLmMKKysrIGIveGVuL2FyY2gveDg2 L21pY3JvY29kZV9hbWQuYwpAQCAtMTk0LDM2ICsxOTQsNiBAQCBzdGF0aWMgYm9vbCBtYXRjaF9j cHUoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqcGF0Y2gpCiAgICAgcmV0dXJuIHBhdGNo ICYmIChtaWNyb2NvZGVfZml0cyhwYXRjaC0+bWNfYW1kKSA9PSBORVdfVUNPREUpOwogfQogCi1z dGF0aWMgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqYWxsb2NfbWljcm9jb2RlX3BhdGNoKAotICAg IGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQpCi17Ci0gICAgc3RydWN0IG1pY3Jv Y29kZV9wYXRjaCAqbWljcm9jb2RlX3BhdGNoID0geG1hbGxvYyhzdHJ1Y3QgbWljcm9jb2RlX3Bh dGNoKTsKLSAgICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqY2FjaGUgPSB4bWFsbG9jKHN0cnVjdCBt aWNyb2NvZGVfYW1kKTsKLSAgICB2b2lkICptcGIgPSB4bWFsbG9jX2J5dGVzKG1jX2FtZC0+bXBi X3NpemUpOwotICAgIHN0cnVjdCBlcXVpdl9jcHVfZW50cnkgKmVxdWl2X2NwdV90YWJsZSA9Ci0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtYWxsb2NfYnl0ZXMobWNfYW1kLT5lcXVp dl9jcHVfdGFibGVfc2l6ZSk7Ci0KLSAgICBpZiAoICFtaWNyb2NvZGVfcGF0Y2ggfHwgIWNhY2hl IHx8ICFtcGIgfHwgIWVxdWl2X2NwdV90YWJsZSApCi0gICAgewotICAgICAgICB4ZnJlZShtaWNy b2NvZGVfcGF0Y2gpOwotICAgICAgICB4ZnJlZShjYWNoZSk7Ci0gICAgICAgIHhmcmVlKG1wYik7 Ci0gICAgICAgIHhmcmVlKGVxdWl2X2NwdV90YWJsZSk7Ci0gICAgICAgIHJldHVybiBFUlJfUFRS KC1FTk9NRU0pOwotICAgIH0KLQotICAgIG1lbWNweShtcGIsIG1jX2FtZC0+bXBiLCBtY19hbWQt Pm1wYl9zaXplKTsKLSAgICBjYWNoZS0+bXBiID0gbXBiOwotICAgIGNhY2hlLT5tcGJfc2l6ZSA9 IG1jX2FtZC0+bXBiX3NpemU7Ci0gICAgbWVtY3B5KGVxdWl2X2NwdV90YWJsZSwgbWNfYW1kLT5l cXVpdl9jcHVfdGFibGUsCi0gICAgICAgICAgIG1jX2FtZC0+ZXF1aXZfY3B1X3RhYmxlX3NpemUp OwotICAgIGNhY2hlLT5lcXVpdl9jcHVfdGFibGUgPSBlcXVpdl9jcHVfdGFibGU7Ci0gICAgY2Fj aGUtPmVxdWl2X2NwdV90YWJsZV9zaXplID0gbWNfYW1kLT5lcXVpdl9jcHVfdGFibGVfc2l6ZTsK LSAgICBtaWNyb2NvZGVfcGF0Y2gtPm1jX2FtZCA9IGNhY2hlOwotCi0gICAgcmV0dXJuIG1pY3Jv Y29kZV9wYXRjaDsKLX0KLQogc3RhdGljIHZvaWQgZnJlZV9wYXRjaCh2b2lkICptYykKIHsKICAg ICBzdHJ1Y3QgbWljcm9jb2RlX2FtZCAqbWNfYW1kID0gbWM7CkBAIC0yMzYsNiArMjA2LDE3IEBA IHN0YXRpYyB2b2lkIGZyZWVfcGF0Y2godm9pZCAqbWMpCiAgICAgfQogfQogCitzdGF0aWMgZW51 bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IGNvbXBhcmVfaGVhZGVyKAorICAgIGNvbnN0IHN0cnVj dCBtaWNyb2NvZGVfaGVhZGVyX2FtZCAqbmV3X2hlYWRlciwKKyAgICBjb25zdCBzdHJ1Y3QgbWlj cm9jb2RlX2hlYWRlcl9hbWQgKm9sZF9oZWFkZXIpCit7CisgICAgaWYgKCBuZXdfaGVhZGVyLT5w cm9jZXNzb3JfcmV2X2lkID09IG9sZF9oZWFkZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQorICAgICAg ICByZXR1cm4gKG5ld19oZWFkZXItPnBhdGNoX2lkID4gb2xkX2hlYWRlci0+cGF0Y2hfaWQpID8g TkVXX1VDT0RFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBPTERfVUNPREU7CisKKyAgICByZXR1cm4gTUlTX1VDT0RFOworfQor CiBzdGF0aWMgZW51bSBtaWNyb2NvZGVfbWF0Y2hfcmVzdWx0IGNvbXBhcmVfcGF0Y2goCiAgICAg Y29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqbmV3LCBjb25zdCBzdHJ1Y3QgbWljcm9jb2Rl X3BhdGNoICpvbGQpCiB7CkBAIC0yNDYsMTEgKzIyNyw3IEBAIHN0YXRpYyBlbnVtIG1pY3JvY29k ZV9tYXRjaF9yZXN1bHQgY29tcGFyZV9wYXRjaCgKICAgICBBU1NFUlQobWljcm9jb2RlX2ZpdHMo bmV3LT5tY19hbWQpICE9IE1JU19VQ09ERSk7CiAgICAgQVNTRVJUKG1pY3JvY29kZV9maXRzKG5l dy0+bWNfYW1kKSAhPSBNSVNfVUNPREUpOwogCi0gICAgaWYgKCBuZXdfaGVhZGVyLT5wcm9jZXNz b3JfcmV2X2lkID09IG9sZF9oZWFkZXItPnByb2Nlc3Nvcl9yZXZfaWQgKQotICAgICAgICByZXR1 cm4gKG5ld19oZWFkZXItPnBhdGNoX2lkID4gb2xkX2hlYWRlci0+cGF0Y2hfaWQpID8KLSAgICAg ICAgICAgICAgICBORVdfVUNPREUgOiBPTERfVUNPREU7Ci0KLSAgICByZXR1cm4gTUlTX1VDT0RF OworICAgIHJldHVybiBjb21wYXJlX2hlYWRlcihuZXdfaGVhZGVyLCBvbGRfaGVhZGVyKTsKIH0K IAogc3RhdGljIGludCBhcHBseV9taWNyb2NvZGUoY29uc3Qgc3RydWN0IG1pY3JvY29kZV9wYXRj aCAqcGF0Y2gpCkBAIC0zMjgsMTggKzMwNSwxMCBAQCBzdGF0aWMgaW50IGdldF91Y29kZV9mcm9t X2J1ZmZlcl9hbWQoCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAotICAgIGlmICgg bWNfYW1kLT5tcGJfc2l6ZSA8IG1wYnVmLT5sZW4gKQotICAgIHsKLSAgICAgICAgaWYgKCBtY19h bWQtPm1wYiApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHhmcmVlKG1jX2FtZC0+bXBiKTsKLSAg ICAgICAgICAgIG1jX2FtZC0+bXBiX3NpemUgPSAwOwotICAgICAgICB9Ci0gICAgICAgIG1jX2Ft ZC0+bXBiID0geG1hbGxvY19ieXRlcyhtcGJ1Zi0+bGVuKTsKLSAgICAgICAgaWYgKCBtY19hbWQt Pm1wYiA9PSBOVUxMICkKLSAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwotICAgICAgICBtY19h bWQtPm1wYl9zaXplID0gbXBidWYtPmxlbjsKLSAgICB9CisgICAgbWNfYW1kLT5tcGIgPSB4bWFs bG9jX2J5dGVzKG1wYnVmLT5sZW4pOworICAgIGlmICggIW1jX2FtZC0+bXBiICkKKyAgICAgICAg cmV0dXJuIC1FTk9NRU07CisgICAgbWNfYW1kLT5tcGJfc2l6ZSA9IG1wYnVmLT5sZW47CiAgICAg bWVtY3B5KG1jX2FtZC0+bXBiLCBtcGJ1Zi0+ZGF0YSwgbXBidWYtPmxlbik7CiAKICAgICBwcl9k ZWJ1ZygibWljcm9jb2RlOiBDUFUlZCBzaXplICV6dSwgYmxvY2sgc2l6ZSAldSBvZmZzZXQgJXp1 IGVxdWl2SUQgJSN4IHJldiAlI3hcbiIsCkBAIC00NTksOCArNDI4LDkgQEAgc3RhdGljIHN0cnVj dCBtaWNyb2NvZGVfcGF0Y2ggKmNwdV9yZXF1ZXN0X21pY3JvY29kZShjb25zdCB2b2lkICpidWYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp emVfdCBidWZzaXplKQogewogICAgIHN0cnVjdCBtaWNyb2NvZGVfYW1kICptY19hbWQ7CisgICAg c3RydWN0IG1pY3JvY29kZV9oZWFkZXJfYW1kICpzYXZlZCA9IE5VTEw7CiAgICAgc3RydWN0IG1p Y3JvY29kZV9wYXRjaCAqcGF0Y2ggPSBOVUxMOwotICAgIHNpemVfdCBvZmZzZXQgPSAwOworICAg IHNpemVfdCBvZmZzZXQgPSAwLCBzYXZlZF9zaXplID0gMDsKICAgICBpbnQgZXJyb3IgPSAwOwog ICAgIHVuc2lnbmVkIGludCBjdXJyZW50X2NwdV9pZDsKICAgICB1bnNpZ25lZCBpbnQgZXF1aXZf Y3B1X2lkOwpAQCAtNTUwLDI5ICs1MjAsMjIgQEAgc3RhdGljIHN0cnVjdCBtaWNyb2NvZGVfcGF0 Y2ggKmNwdV9yZXF1ZXN0X21pY3JvY29kZShjb25zdCB2b2lkICpidWYsCiAgICAgd2hpbGUgKCAo ZXJyb3IgPSBnZXRfdWNvZGVfZnJvbV9idWZmZXJfYW1kKG1jX2FtZCwgYnVmLCBidWZzaXplLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb2Zmc2V0KSkg PT0gMCApCiAgICAgewotICAgICAgICBzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoICpuZXdfcGF0Y2gg PSBhbGxvY19taWNyb2NvZGVfcGF0Y2gobWNfYW1kKTsKLQotICAgICAgICBpZiAoIElTX0VSUihu ZXdfcGF0Y2gpICkKLSAgICAgICAgewotICAgICAgICAgICAgZXJyb3IgPSBQVFJfRVJSKG5ld19w YXRjaCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgICAgIC8qCi0gICAg ICAgICAqIElmIHRoZSBuZXcgcGF0Y2ggY292ZXJzIGN1cnJlbnQgQ1BVLCBjb21wYXJlIHBhdGNo ZXMgYW5kIHN0b3JlIHRoZQorICAgICAgICAgKiBJZiB0aGUgbmV3IHVjb2RlIGNvdmVycyBjdXJy ZW50IENQVSwgY29tcGFyZSB1Y29kZXMgYW5kIHN0b3JlIHRoZQogICAgICAgICAgKiBvbmUgd2l0 aCBoaWdoZXIgcmV2aXNpb24uCiAgICAgICAgICAqLwotICAgICAgICBpZiAoIChtaWNyb2NvZGVf Zml0cyhuZXdfcGF0Y2gtPm1jX2FtZCkgIT0gTUlTX1VDT0RFKSAmJgotICAgICAgICAgICAgICgh cGF0Y2ggfHwgKGNvbXBhcmVfcGF0Y2gobmV3X3BhdGNoLCBwYXRjaCkgPT0gTkVXX1VDT0RFKSkg KQorICAgICAgICBpZiAoIChtaWNyb2NvZGVfZml0cyhtY19hbWQpICE9IE1JU19VQ09ERSkgJiYK KyAgICAgICAgICAgICAoIXNhdmVkIHx8IChjb21wYXJlX2hlYWRlcihtY19hbWQtPm1wYiwgc2F2 ZWQpID09IE5FV19VQ09ERSkpICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IG1pY3Jv Y29kZV9wYXRjaCAqdG1wID0gcGF0Y2g7Ci0KLSAgICAgICAgICAgIHBhdGNoID0gbmV3X3BhdGNo OwotICAgICAgICAgICAgbmV3X3BhdGNoID0gdG1wOworICAgICAgICAgICAgeGZyZWUoc2F2ZWQp OworICAgICAgICAgICAgc2F2ZWQgPSBtY19hbWQtPm1wYjsKKyAgICAgICAgICAgIHNhdmVkX3Np emUgPSBtY19hbWQtPm1wYl9zaXplOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAg eworICAgICAgICAgICAgeGZyZWUobWNfYW1kLT5tcGIpOworICAgICAgICAgICAgbWNfYW1kLT5t cGIgPSBOVUxMOwogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCBuZXdfcGF0Y2ggKQotICAgICAg ICAgICAgbWljcm9jb2RlX2ZyZWVfcGF0Y2gobmV3X3BhdGNoKTsKIAogICAgICAgICBpZiAoIG9m ZnNldCA+PSBidWZzaXplICkKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjAxLDcgKzU2NCwyMiBA QCBzdGF0aWMgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqY3B1X3JlcXVlc3RfbWljcm9jb2RlKGNv bnN0IHZvaWQgKmJ1ZiwKICAgICAgICAgICAgICAqKGNvbnN0IHVpbnQzMl90ICopKGJ1ZiArIG9m ZnNldCkgPT0gVUNPREVfTUFHSUMgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIGZy ZWVfcGF0Y2gobWNfYW1kKTsKKworICAgIGlmICggc2F2ZWQgKQorICAgIHsKKyAgICAgICAgbWNf YW1kLT5tcGIgPSBzYXZlZDsKKyAgICAgICAgbWNfYW1kLT5tcGJfc2l6ZSA9IHNhdmVkX3NpemU7 CisgICAgICAgIHBhdGNoID0geG1hbGxvYyhzdHJ1Y3QgbWljcm9jb2RlX3BhdGNoKTsKKyAgICAg ICAgaWYgKCBwYXRjaCApCisgICAgICAgICAgICBwYXRjaC0+bWNfYW1kID0gbWNfYW1kOworICAg ICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIGZyZWVfcGF0Y2gobWNfYW1kKTsKKyAg ICAgICAgICAgIGVycm9yID0gLUVOT01FTTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisg ICAgICAgIGZyZWVfcGF0Y2gobWNfYW1kKTsKIAogICBvdXQ6CiAgICAgaWYgKCBlcnJvciAmJiAh cGF0Y2ggKQpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jIGIveGVu L2FyY2gveDg2L21pY3JvY29kZV9pbnRlbC5jCmluZGV4IGMzMDgzZDcuLjRlODExYjcgMTAwNjQ0 Ci0tLSBhL3hlbi9hcmNoL3g4Ni9taWNyb2NvZGVfaW50ZWwuYworKysgYi94ZW4vYXJjaC94ODYv bWljcm9jb2RlX2ludGVsLmMKQEAgLTI4NiwyNSArMjg2LDYgQEAgc3RhdGljIGVudW0gbWljcm9j b2RlX21hdGNoX3Jlc3VsdCBjb21wYXJlX3BhdGNoKAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogT0xEX1VDT0RFOwogfQogCi1z dGF0aWMgc3RydWN0IG1pY3JvY29kZV9wYXRjaCAqYWxsb2NfbWljcm9jb2RlX3BhdGNoKAotICAg IGNvbnN0IHN0cnVjdCBtaWNyb2NvZGVfaGVhZGVyX2ludGVsICptY19oZWFkZXIpCi17Ci0gICAg dW5zaWduZWQgbG9uZyB0b3RhbF9zaXplID0gZ2V0X3RvdGFsc2l6ZShtY19oZWFkZXIpOwotICAg IHZvaWQgKm5ld19tYyA9IHhtYWxsb2NfYnl0ZXModG90YWxfc2l6ZSk7Ci0gICAgc3RydWN0IG1p Y3JvY29kZV9wYXRjaCAqbmV3X3BhdGNoID0geG1hbGxvYyhzdHJ1Y3QgbWljcm9jb2RlX3BhdGNo KTsKLQotICAgIGlmICggIW5ld19wYXRjaCB8fCAhbmV3X21jICkKLSAgICB7Ci0gICAgICAgIHhm cmVlKG5ld19wYXRjaCk7Ci0gICAgICAgIHhmcmVlKG5ld19tYyk7Ci0gICAgICAgIHJldHVybiBF UlJfUFRSKC1FTk9NRU0pOwotICAgIH0KLSAgICBtZW1jcHkobmV3X21jLCBtY19oZWFkZXIsIHRv dGFsX3NpemUpOwotICAgIG5ld19wYXRjaC0+bWNfaW50ZWwgPSBuZXdfbWM7Ci0KLSAgICByZXR1 cm4gbmV3X3BhdGNoOwotfQotCiBzdGF0aWMgaW50IGFwcGx5X21pY3JvY29kZShjb25zdCBzdHJ1 Y3QgbWljcm9jb2RlX3BhdGNoICpwYXRjaCkKIHsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwpA QCAtMzUzLDggKzMzNCw5IEBAIHN0YXRpYyBpbnQgYXBwbHlfbWljcm9jb2RlKGNvbnN0IHN0cnVj dCBtaWNyb2NvZGVfcGF0Y2ggKnBhdGNoKQogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgbG9u ZyBnZXRfbmV4dF91Y29kZV9mcm9tX2J1ZmZlcih2b2lkICoqbWMsIGNvbnN0IHU4ICpidWYsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIHNpemUs IGxvbmcgb2Zmc2V0KQorc3RhdGljIGxvbmcgZ2V0X25leHRfdWNvZGVfZnJvbV9idWZmZXIoc3Ry dWN0IG1pY3JvY29kZV9pbnRlbCAqKm1jLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgdTggKmJ1ZiwgdW5zaWduZWQgbG9uZyBzaXplLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uZyBvZmZzZXQpCiB7CiAgICAgc3RydWN0IG1p Y3JvY29kZV9oZWFkZXJfaW50ZWwgKm1jX2hlYWRlcjsKICAgICB1bnNpZ25lZCBsb25nIHRvdGFs X3NpemU7CkBAIC0zODYsNDcgKzM2OCw0NiBAQCBzdGF0aWMgc3RydWN0IG1pY3JvY29kZV9wYXRj aCAqY3B1X3JlcXVlc3RfbWljcm9jb2RlKGNvbnN0IHZvaWQgKmJ1ZiwKIHsKICAgICBsb25nIG9m ZnNldCA9IDA7CiAgICAgaW50IGVycm9yID0gMDsKLSAgICB2b2lkICptYzsKKyAgICBzdHJ1Y3Qg bWljcm9jb2RlX2ludGVsICptYywgKnNhdmVkID0gTlVMTDsKICAgICBzdHJ1Y3QgbWljcm9jb2Rl X3BhdGNoICpwYXRjaCA9IE5VTEw7CiAKICAgICB3aGlsZSAoIChvZmZzZXQgPSBnZXRfbmV4dF91 Y29kZV9mcm9tX2J1ZmZlcigmbWMsIGJ1Ziwgc2l6ZSwgb2Zmc2V0KSkgPiAwICkKICAgICB7Ci0g ICAgICAgIHN0cnVjdCBtaWNyb2NvZGVfcGF0Y2ggKm5ld19wYXRjaDsKLQogICAgICAgICBlcnJv ciA9IG1pY3JvY29kZV9zYW5pdHlfY2hlY2sobWMpOwogICAgICAgICBpZiAoIGVycm9yICkKLSAg ICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIG5ld19wYXRjaCA9IGFsbG9jX21pY3JvY29kZV9w YXRjaChtYyk7Ci0gICAgICAgIGlmICggSVNfRVJSKG5ld19wYXRjaCkgKQogICAgICAgICB7Ci0g ICAgICAgICAgICBlcnJvciA9IFBUUl9FUlIobmV3X3BhdGNoKTsKKyAgICAgICAgICAgIHhmcmVl KG1jKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKICAgICAgICAgLyoKLSAgICAg ICAgICogSWYgdGhlIG5ldyBwYXRjaCBjb3ZlcnMgY3VycmVudCBDUFUsIGNvbXBhcmUgcGF0Y2hl cyBhbmQgc3RvcmUgdGhlCisgICAgICAgICAqIElmIHRoZSBuZXcgdXBkYXRlIGNvdmVycyBjdXJy ZW50IENQVSwgY29tcGFyZSB1cGRhdGVzIGFuZCBzdG9yZSB0aGUKICAgICAgICAgICogb25lIHdp dGggaGlnaGVyIHJldmlzaW9uLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCAobWljcm9jb2Rl X3VwZGF0ZV9tYXRjaCgmbmV3X3BhdGNoLT5tY19pbnRlbC0+aGRyKSAhPSBNSVNfVUNPREUpICYm Ci0gICAgICAgICAgICAgKCFwYXRjaCB8fCAoY29tcGFyZV9wYXRjaChuZXdfcGF0Y2gsIHBhdGNo KSA9PSBORVdfVUNPREUpKSApCisgICAgICAgIGlmICggKG1pY3JvY29kZV91cGRhdGVfbWF0Y2go Jm1jLT5oZHIpICE9IE1JU19VQ09ERSkgJiYKKyAgICAgICAgICAgICAoIXNhdmVkIHx8IChtYy0+ aGRyLnJldiA+IHNhdmVkLT5oZHIucmV2KSkgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1 Y3QgbWljcm9jb2RlX3BhdGNoICp0bXAgPSBwYXRjaDsKLQotICAgICAgICAgICAgcGF0Y2ggPSBu ZXdfcGF0Y2g7Ci0gICAgICAgICAgICBuZXdfcGF0Y2ggPSB0bXA7CisgICAgICAgICAgICB4ZnJl ZShzYXZlZCk7CisgICAgICAgICAgICBzYXZlZCA9IG1jOwogICAgICAgICB9Ci0KLSAgICAgICAg aWYgKCBuZXdfcGF0Y2ggKQotICAgICAgICAgICAgbWljcm9jb2RlX2ZyZWVfcGF0Y2gobmV3X3Bh dGNoKTsKLQotICAgICAgICB4ZnJlZShtYyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHhm cmVlKG1jKTsKICAgICB9Ci0gICAgaWYgKCBvZmZzZXQgPiAwICkKLSAgICAgICAgeGZyZWUobWMp OwogICAgIGlmICggb2Zmc2V0IDwgMCApCiAgICAgICAgIGVycm9yID0gb2Zmc2V0OwogCisgICAg aWYgKCBzYXZlZCApCisgICAgeworICAgICAgICBwYXRjaCA9IHhtYWxsb2Moc3RydWN0IG1pY3Jv Y29kZV9wYXRjaCk7CisgICAgICAgIGlmICggcGF0Y2ggKQorICAgICAgICAgICAgcGF0Y2gtPm1j X2ludGVsID0gc2F2ZWQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgeGZy ZWUoc2F2ZWQpOworICAgICAgICAgICAgZXJyb3IgPSAtRU5PTUVNOworICAgICAgICB9CisgICAg fQorCiAgICAgaWYgKCBlcnJvciAmJiAhcGF0Y2ggKQogICAgICAgICBwYXRjaCA9IEVSUl9QVFIo ZXJyb3IpOwogCi0tIAoxLjguMy4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==