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=-9.8 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 83EE6C352A5 for ; Mon, 10 Feb 2020 19:22:17 +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 4EE8A20661 for ; Mon, 10 Feb 2020 19:22:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4EE8A20661 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 1j1EdB-0000sH-66; Mon, 10 Feb 2020 19:22:05 +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 1j1Ed9-0000rw-G4 for xen-devel@lists.xenproject.org; Mon, 10 Feb 2020 19:22:03 +0000 X-Inumbo-ID: 9bdaa7c4-4c3a-11ea-b4f5-12813bfff9fa Received: from mga06.intel.com (unknown [134.134.136.31]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 9bdaa7c4-4c3a-11ea-b4f5-12813bfff9fa; Mon, 10 Feb 2020 19:21:59 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Feb 2020 11:21:59 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,426,1574150400"; d="scan'208";a="380199831" Received: from jcguru1x-mobl.amr.corp.intel.com (HELO localhost.localdomain) ([10.254.67.221]) by orsmga004.jf.intel.com with ESMTP; 10 Feb 2020 11:21:55 -0800 From: Tamas K Lengyel To: xen-devel@lists.xenproject.org Date: Mon, 10 Feb 2020 11:21:27 -0800 Message-Id: <0f7d636910c45e9ca32fda4ef864a9b7d6e32745.1581362050.git.tamas.lengyel@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v8 3/5] xen/mem_sharing: VM forking 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: Stefano Stabellini , Tamas K Lengyel , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Andrew Cooper , Ian Jackson , Tamas K Lengyel , Jan Beulich , Julien Grall , =?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" Vk0gZm9ya2luZyBpcyB0aGUgcHJvY2VzcyBvZiBjcmVhdGluZyBhIGRvbWFpbiB3aXRoIGFuIGVt cHR5IG1lbW9yeSBzcGFjZSBhbmQgYQpwYXJlbnQgZG9tYWluIHNwZWNpZmllZCBmcm9tIHdoaWNo IHRvIHBvcHVsYXRlIHRoZSBtZW1vcnkgd2hlbiBuZWNlc3NhcnkuIEZvcgp0aGUgbmV3IGRvbWFp biB0byBiZSBmdW5jdGlvbmFsIHRoZSBWTSBzdGF0ZSBpcyBjb3BpZWQgb3ZlciBhcyBwYXJ0IG9m IHRoZSBmb3JrCm9wZXJhdGlvbiAoSFZNIHBhcmFtcywgaGFwIGFsbG9jYXRpb24sIGV0YykuCgpT aWduZWQtb2ZmLWJ5OiBUYW1hcyBLIExlbmd5ZWwgPHRhbWFzLmxlbmd5ZWxAaW50ZWwuY29tPgot LS0KIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgICAgICB8ICAxMSArKwogeGVuL2FyY2gv eDg2L2h2bS9odm0uYyAgICAgICAgICAgIHwgICAyICstCiB4ZW4vYXJjaC94ODYvbW0vbWVtX3No YXJpbmcuYyAgICAgfCAyMjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB4ZW4vYXJj aC94ODYvbW0vcDJtLmMgICAgICAgICAgICAgfCAgMTEgKy0KIHhlbi9pbmNsdWRlL2FzbS14ODYv bWVtX3NoYXJpbmcuaCB8ICAxNyArKysKIHhlbi9pbmNsdWRlL3B1YmxpYy9tZW1vcnkuaCAgICAg ICB8ICAgNSArCiB4ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCAgICAgICAgICAgfCAgIDIgKwogNyBm aWxlcyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvZG9tYWluLmMgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMKaW5kZXgg ZjUzYWU1ZmY4Ni4uYTk4ZTJlMDQ3OSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2RvbWFpbi5j CisrKyBiL3hlbi9hcmNoL3g4Ni9kb21haW4uYwpAQCAtMjE4OSw2ICsyMTg5LDE3IEBAIGludCBk b21haW5fcmVsaW5xdWlzaF9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkKICAgICAgICAgICAg IHJldCA9IHJlbGlucXVpc2hfc2hhcmVkX3BhZ2VzKGQpOwogICAgICAgICAgICAgaWYgKCByZXQg KQogICAgICAgICAgICAgICAgIHJldHVybiByZXQ7CisKKyAgICAgICAgICAgIC8qCisgICAgICAg ICAgICAgKiBJZiB0aGUgZG9tYWluIGlzIGZvcmtlZCwgZGVjcmVtZW50IHRoZSBwYXJlbnQncyBw YXVzZSBjb3VudAorICAgICAgICAgICAgICogYW5kIHJlbGVhc2UgdGhlIGRvbWFpbi4KKyAgICAg ICAgICAgICAqLworICAgICAgICAgICAgaWYgKCBkLT5wYXJlbnQgKQorICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgIGRvbWFpbl91bnBhdXNlKGQtPnBhcmVudCk7CisgICAgICAgICAgICAg ICAgcHV0X2RvbWFpbihkLT5wYXJlbnQpOworICAgICAgICAgICAgICAgIGQtPnBhcmVudCA9IE5V TEw7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS94ZW4v YXJjaC94ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAwMGE5ZTcw YjdjLi41NTUyMGJiZDIzIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBi L3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMKQEAgLTE5MTUsNyArMTkxNSw3IEBAIGludCBodm1faGFw X25lc3RlZF9wYWdlX2ZhdWx0KHBhZGRyX3QgZ3BhLCB1bnNpZ25lZCBsb25nIGdsYSwKICAgICB9 CiAjZW5kaWYKIAotICAgIC8qIFNwdXJpb3VzIGZhdWx0PyBQb0QgYW5kIGxvZy1kaXJ0eSBhbHNv IHRha2UgdGhpcyBwYXRoLiAqLworICAgIC8qIFNwdXJpb3VzIGZhdWx0PyBQb0QsIGxvZy1kaXJ0 eSBhbmQgVk0gZm9ya2luZyBhbHNvIHRha2UgdGhpcyBwYXRoLiAqLwogICAgIGlmICggcDJtX2lz X3JhbShwMm10KSApCiAgICAgewogICAgICAgICByYyA9IDE7CmRpZmYgLS1naXQgYS94ZW4vYXJj aC94ODYvbW0vbWVtX3NoYXJpbmcuYyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCmlu ZGV4IDM4MzViYzkyOGYuLmNjZjMzODkxOGQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9t ZW1fc2hhcmluZy5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9tZW1fc2hhcmluZy5jCkBAIC0yMiw2 ICsyMiw3IEBACiAKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KICNpbmNsdWRlIDx4ZW4vZG9tYWlu X3BhZ2UuaD4KKyNpbmNsdWRlIDx4ZW4vZXZlbnQuaD4KICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2su aD4KICNpbmNsdWRlIDx4ZW4vcndsb2NrLmg+CiAjaW5jbHVkZSA8eGVuL21tLmg+CkBAIC0zNiw2 ICszNyw5IEBACiAjaW5jbHVkZSA8YXNtL2FsdHAybS5oPgogI2luY2x1ZGUgPGFzbS9hdG9taWMu aD4KICNpbmNsdWRlIDxhc20vZXZlbnQuaD4KKyNpbmNsdWRlIDxhc20vaGFwLmg+CisjaW5jbHVk ZSA8YXNtL2h2bS9odm0uaD4KKyNpbmNsdWRlIDxhc20vaHZtL3NhdmUuaD4KICNpbmNsdWRlIDx4 c20veHNtLmg+CiAKICNpbmNsdWRlICJtbS1sb2Nrcy5oIgpAQCAtMTQ0NCw2ICsxNDQ4LDE5MyBA QCBzdGF0aWMgaW5saW5lIGludCBtZW1fc2hhcmluZ19jb250cm9sKHN0cnVjdCBkb21haW4gKmQs IGJvb2wgZW5hYmxlKQogICAgIHJldHVybiAwOwogfQogCisvKgorICogRm9ya2luZyBhIHBhZ2Ug b25seSBnZXRzIGNhbGxlZCB3aGVuIHRoZSBWTSBmYXVsdHMgZHVlIHRvIG5vIGVudHJ5IGJlaW5n CisgKiBpbiB0aGUgRVBUIGZvciB0aGUgYWNjZXNzLiBEZXBlbmRpbmcgb24gdGhlIHR5cGUgb2Yg YWNjZXNzIHdlIGVpdGhlcgorICogcG9wdWxhdGUgdGhlIHBoeXNtYXAgd2l0aCBhIHNoYXJlZCBl bnRyeSBmb3IgcmVhZC1vbmx5IGFjY2VzcyBvcgorICogZm9yayB0aGUgcGFnZSBpZiBpdHMgYSB3 cml0ZSBhY2Nlc3MuCisgKgorICogVGhlIGNsaWVudCBwMm0gaXMgYWxyZWFkeSBsb2NrZWQgc28g d2Ugb25seSBuZWVkIHRvIGxvY2sKKyAqIHRoZSBwYXJlbnQncyBoZXJlLgorICovCitpbnQgbWVt X3NoYXJpbmdfZm9ya19wYWdlKHN0cnVjdCBkb21haW4gKmQsIGdmbl90IGdmbiwgYm9vbCB1bnNo YXJpbmcpCit7CisgICAgaW50IHJjID0gLUVOT0VOVDsKKyAgICBzaHJfaGFuZGxlX3QgaGFuZGxl OworICAgIHN0cnVjdCBkb21haW4gKnBhcmVudDsKKyAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJt OworICAgIHVuc2lnbmVkIGxvbmcgZ2ZuX2wgPSBnZm5feChnZm4pOworICAgIG1mbl90IG1mbiwg bmV3X21mbjsKKyAgICBwMm1fdHlwZV90IHAybXQ7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFn ZTsKKworICAgIGlmICggIW1lbV9zaGFyaW5nX2lzX2ZvcmsoZCkgKQorICAgICAgICByZXR1cm4g LUVOT0VOVDsKKworICAgIHBhcmVudCA9IGQtPnBhcmVudDsKKworICAgIGlmICggIXVuc2hhcmlu ZyApCisgICAgeworICAgICAgICAvKiBGb3IgcmVhZC1vbmx5IGFjY2Vzc2VzIHdlIGp1c3QgYWRk IGEgc2hhcmVkIGVudHJ5IHRvIHRoZSBwaHlzbWFwICovCisgICAgICAgIHdoaWxlICggcGFyZW50 ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhKHJjID0gbm9taW5hdGVfcGFnZShwYXJl bnQsIGdmbiwgMCwgJmhhbmRsZSkpICkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg ICAgICAgcGFyZW50ID0gcGFyZW50LT5wYXJlbnQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAo ICFyYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIC8qIFRoZSBjbGllbnQncyBwMm0gaXMgYWxy ZWFkeSBsb2NrZWQgKi8KKyAgICAgICAgICAgIHN0cnVjdCBwMm1fZG9tYWluICpwcDJtID0gcDJt X2dldF9ob3N0cDJtKHBhcmVudCk7CisKKyAgICAgICAgICAgIHAybV9sb2NrKHBwMm0pOworICAg ICAgICAgICAgcmMgPSBhZGRfdG9fcGh5c21hcChwYXJlbnQsIGdmbl9sLCBoYW5kbGUsIGQsIGdm bl9sLCBmYWxzZSk7CisgICAgICAgICAgICBwMm1fdW5sb2NrKHBwMm0pOworCisgICAgICAgICAg ICBpZiAoICFyYyApCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9 CisKKyAgICAvKgorICAgICAqIElmIGl0J3MgYSB3cml0ZSBhY2Nlc3MgKGllLiB1bnNoYXJpbmcp IG9yIGlmIGFkZGluZyBhIHNoYXJlZCBlbnRyeSB0bworICAgICAqIHRoZSBwaHlzbWFwIGZhaWxl ZCB3ZSdsbCBmb3JrIHRoZSBwYWdlIGRpcmVjdGx5LgorICAgICAqLworICAgIHAybSA9IHAybV9n ZXRfaG9zdHAybShkKTsKKyAgICBwYXJlbnQgPSBkLT5wYXJlbnQ7CisKKyAgICB3aGlsZSAoIHBh cmVudCApCisgICAgeworICAgICAgICBtZm4gPSBnZXRfZ2ZuX3F1ZXJ5KHBhcmVudCwgZ2ZuX2ws ICZwMm10KTsKKworICAgICAgICBpZiAoIG1mbl92YWxpZChtZm4pICYmIHAybV9pc19hbnlfcmFt KHAybXQpICkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHB1dF9nZm4ocGFyZW50LCBn Zm5fbCk7CisgICAgICAgIHBhcmVudCA9IHBhcmVudC0+cGFyZW50OworICAgIH0KKworICAgIGlm ICggIXBhcmVudCApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgaWYgKCAhKHBhZ2Ug PSBhbGxvY19kb21oZWFwX3BhZ2UoZCwgMCkpICkKKyAgICB7CisgICAgICAgIHB1dF9nZm4ocGFy ZW50LCBnZm5fbCk7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIG5ld19t Zm4gPSBwYWdlX3RvX21mbihwYWdlKTsKKyAgICBjb3B5X2RvbWFpbl9wYWdlKG5ld19tZm4sIG1m bik7CisgICAgc2V0X2dwZm5fZnJvbV9tZm4obWZuX3gobmV3X21mbiksIGdmbl9sKTsKKworICAg IHB1dF9nZm4ocGFyZW50LCBnZm5fbCk7CisKKyAgICByZXR1cm4gcDJtLT5zZXRfZW50cnkocDJt LCBnZm4sIG5ld19tZm4sIFBBR0VfT1JERVJfNEssIHAybV9yYW1fcncsCisgICAgICAgICAgICAg ICAgICAgICAgICAgIHAybS0+ZGVmYXVsdF9hY2Nlc3MsIC0xKTsKK30KKworc3RhdGljIGludCBi cmluZ191cF92Y3B1cyhzdHJ1Y3QgZG9tYWluICpjZCwgc3RydWN0IGNwdXBvb2wgKmNwdXBvb2wp Cit7CisgICAgaW50IHJldDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGlmICggKHJldCA9 IGNwdXBvb2xfbW92ZV9kb21haW4oY2QsIGNwdXBvb2wpKSApCisgICAgICAgIHJldHVybiByZXQ7 CisKKyAgICBmb3IgKCBpID0gMDsgaSA8IGNkLT5tYXhfdmNwdXM7IGkrKyApCisgICAgeworICAg ICAgICBpZiAoIGNkLT52Y3B1W2ldICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg IGlmICggIXZjcHVfY3JlYXRlKGNkLCBpKSApCisgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsK KyAgICB9CisKKyAgICBkb21haW5fdXBkYXRlX25vZGVfYWZmaW5pdHkoY2QpOworICAgIHJldHVy biAwOworfQorCitzdGF0aWMgaW50IGZvcmtfaGFwX2FsbG9jYXRpb24oc3RydWN0IGRvbWFpbiAq Y2QsIHN0cnVjdCBkb21haW4gKmQpCit7CisgICAgaW50IHJjOworICAgIGJvb2wgcHJlZW1wdGVk OworICAgIHVuc2lnbmVkIGxvbmcgbWIgPSBoYXBfZ2V0X2FsbG9jYXRpb24oZCk7CisKKyAgICBp ZiAoIG1iID09IGhhcF9nZXRfYWxsb2NhdGlvbihjZCkgKQorICAgICAgICByZXR1cm4gMDsKKwor ICAgIHBhZ2luZ19sb2NrKGNkKTsKKyAgICByYyA9IGhhcF9zZXRfYWxsb2NhdGlvbihjZCwgbWIg PDwgKDIwIC0gUEFHRV9TSElGVCksICZwcmVlbXB0ZWQpOworICAgIHBhZ2luZ191bmxvY2soY2Qp OworCisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIGlmICggcHJlZW1w dGVkICkKKyAgICAgICAgcmV0dXJuIC1FUkVTVEFSVDsKKworICAgIHJldHVybiAwOworfQorCitz dGF0aWMgdm9pZCBmb3JrX3RzYyhzdHJ1Y3QgZG9tYWluICpjZCwgc3RydWN0IGRvbWFpbiAqZCkK K3sKKyAgICB1aW50MzJfdCB0c2NfbW9kZTsKKyAgICB1aW50MzJfdCBndHNjX2toejsKKyAgICB1 aW50MzJfdCBpbmNhcm5hdGlvbjsKKyAgICB1aW50NjRfdCBlbGFwc2VkX25zZWM7CisKKyAgICB0 c2NfZ2V0X2luZm8oZCwgJnRzY19tb2RlLCAmZWxhcHNlZF9uc2VjLCAmZ3RzY19raHosICZpbmNh cm5hdGlvbik7CisgICAgdHNjX3NldF9pbmZvKGNkLCB0c2NfbW9kZSwgZWxhcHNlZF9uc2VjLCBn dHNjX2toeiwgaW5jYXJuYXRpb24pOworfQorCitzdGF0aWMgaW50IG1lbV9zaGFyaW5nX2Zvcmso c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGRvbWFpbiAqY2QpCit7CisgICAgaW50IHJjID0gLUVJ TlZBTDsKKworICAgIGlmICggIWNkLT5jb250cm9sbGVyX3BhdXNlX2NvdW50ICkKKyAgICAgICAg cmV0dXJuIHJjOworCisgICAgLyoKKyAgICAgKiBXZSBvbmx5IHdhbnQgdG8gZ2V0IGFuZCBwYXVz ZSB0aGUgcGFyZW50IG9uY2UsIG5vdCBlYWNoIHRpbWUgdGhpcworICAgICAqIG9wZXJhdGlvbiBp cyByZXN0YXJ0ZWQgZHVlIHRvIHByZWVtcHRpb24uCisgICAgICovCisgICAgaWYgKCAhY2QtPnBh cmVudF9wYXVzZWQgKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGdldF9kb21haW4oZCkpOworICAg ICAgICBkb21haW5fcGF1c2UoZCk7CisKKyAgICAgICAgY2QtPnBhcmVudF9wYXVzZWQgPSB0cnVl OworICAgICAgICBjZC0+bWF4X3BhZ2VzID0gZC0+bWF4X3BhZ2VzOworICAgICAgICBjZC0+bWF4 X3ZjcHVzID0gZC0+bWF4X3ZjcHVzOworICAgIH0KKworICAgIC8qIHRoaXMgaXMgcHJlZW1wdGli bGUgc28gaXQncyB0aGUgZmlyc3QgdG8gZ2V0IGRvbmUgKi8KKyAgICBpZiAoIChyYyA9IGZvcmtf aGFwX2FsbG9jYXRpb24oY2QsIGQpKSApCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIGlmICgg KHJjID0gYnJpbmdfdXBfdmNwdXMoY2QsIGQtPmNwdXBvb2wpKSApCisgICAgICAgIGdvdG8gZG9u ZTsKKworICAgIGlmICggKHJjID0gaHZtX2NvcHlfY29udGV4dF9hbmRfcGFyYW1zKGNkLCBkKSkg KQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBmb3JrX3RzYyhjZCwgZCk7CisKKyAgICBjZC0+ cGFyZW50ID0gZDsKKworIGRvbmU6CisgICAgaWYgKCByYyAmJiByYyAhPSAtRVJFU1RBUlQgKQor ICAgIHsKKyAgICAgICAgZG9tYWluX3VucGF1c2UoZCk7CisgICAgICAgIHB1dF9kb21haW4oZCk7 CisgICAgICAgIGNkLT5wYXJlbnRfcGF1c2VkID0gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJu IHJjOworfQorCiBpbnQgbWVtX3NoYXJpbmdfbWVtb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4 ZW5fbWVtX3NoYXJpbmdfb3BfdCkgYXJnKQogewogICAgIGludCByYzsKQEAgLTE2OTgsNiArMTg4 OSwzNiBAQCBpbnQgbWVtX3NoYXJpbmdfbWVtb3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5f bWVtX3NoYXJpbmdfb3BfdCkgYXJnKQogICAgICAgICByYyA9IGRlYnVnX2dyZWYoZCwgbXNvLnUu ZGVidWcudS5ncmVmKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIFhFTk1FTV9zaGFyaW5n X29wX2Zvcms6CisgICAgeworICAgICAgICBzdHJ1Y3QgZG9tYWluICpwZDsKKworICAgICAgICBy YyA9IC1FSU5WQUw7CisgICAgICAgIGlmICggbXNvLnUuZm9yay5fcGFkWzBdIHx8IG1zby51LmZv cmsuX3BhZFsxXSB8fAorICAgICAgICAgICAgIG1zby51LmZvcmsuX3BhZFsyXSApCisgICAgICAg ICAgICBnb3RvIG91dDsKKworICAgICAgICByYyA9IHJjdV9sb2NrX2xpdmVfcmVtb3RlX2RvbWFp bl9ieV9pZChtc28udS5mb3JrLnBhcmVudF9kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZwZCk7CisgICAgICAgIGlmICggcmMgKQorICAgICAg ICAgICAgZ290byBvdXQ7CisKKyAgICAgICAgaWYgKCAhbWVtX3NoYXJpbmdfZW5hYmxlZChwZCkg KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIChyYyA9IG1lbV9zaGFyaW5nX2NvbnRyb2wo cGQsIHRydWUpKSApCisgICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgIH0KKworICAg ICAgICByYyA9IG1lbV9zaGFyaW5nX2ZvcmsocGQsIGQpOworCisgICAgICAgIGlmICggcmMgPT0g LUVSRVNUQVJUICkKKyAgICAgICAgICAgIHJjID0gaHlwZXJjYWxsX2NyZWF0ZV9jb250aW51YXRp b24oX19IWVBFUlZJU09SX21lbW9yeV9vcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgImxoIiwgWEVOTUVNX3NoYXJpbmdfb3AsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZyk7CisgICAgICAgIHJjdV91bmxv Y2tfZG9tYWluKHBkKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgZGVmYXVsdDoKICAg ICAgICAgcmMgPSAtRU5PU1lTOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL3hlbi9hcmNo L3g4Ni9tbS9wMm0uYyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwppbmRleCAyYzBiYjdlODY5Li43 MmI0NDg1OTcwIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2Fy Y2gveDg2L21tL3AybS5jCkBAIC01MDksNiArNTA5LDE0IEBAIG1mbl90IF9fZ2V0X2dmbl90eXBl X2FjY2VzcyhzdHJ1Y3QgcDJtX2RvbWFpbiAqcDJtLCB1bnNpZ25lZCBsb25nIGdmbl9sLAogCiAg ICAgbWZuID0gcDJtLT5nZXRfZW50cnkocDJtLCBnZm4sIHQsIGEsIHEsIHBhZ2Vfb3JkZXIsIE5V TEwpOwogCisgICAgLyogQ2hlY2sgaWYgd2UgbmVlZCB0byBmb3JrIHRoZSBwYWdlICovCisgICAg aWYgKCAocSAmIFAyTV9BTExPQykgJiYgcDJtX2lzX2hvbGUoKnQpICYmCisgICAgICAgICAhbWVt X3NoYXJpbmdfZm9ya19wYWdlKHAybS0+ZG9tYWluLCBnZm4sICEhKHEgJiBQMk1fVU5TSEFSRSkp ICkKKyAgICB7CisgICAgICAgIG1mbiA9IHAybS0+Z2V0X2VudHJ5KHAybSwgZ2ZuLCB0LCBhLCBx LCBwYWdlX29yZGVyLCBOVUxMKTsKKyAgICB9CisKKyAgICAvKiBDaGVjayBpZiB3ZSBuZWVkIHRv IHVuc2hhcmUgdGhlIHBhZ2UgKi8KICAgICBpZiAoIChxICYgUDJNX1VOU0hBUkUpICYmIHAybV9p c19zaGFyZWQoKnQpICkKICAgICB7CiAgICAgICAgIEFTU0VSVChwMm1faXNfaG9zdHAybShwMm0p KTsKQEAgLTU4Nyw3ICs1OTUsOCBAQCBzdHJ1Y3QgcGFnZV9pbmZvICpwMm1fZ2V0X3BhZ2VfZnJv bV9nZm4oCiAgICAgICAgICAgICByZXR1cm4gcGFnZTsKIAogICAgICAgICAvKiBFcnJvciBwYXRo OiBub3QgYSBzdWl0YWJsZSBHRk4gYXQgYWxsICovCi0gICAgICAgIGlmICggIXAybV9pc19yYW0o KnQpICYmICFwMm1faXNfcGFnaW5nKCp0KSAmJiAhcDJtX2lzX3BvZCgqdCkgKQorICAgICAgICBp ZiAoICFwMm1faXNfcmFtKCp0KSAmJiAhcDJtX2lzX3BhZ2luZygqdCkgJiYgIXAybV9pc19wb2Qo KnQpICYmCisgICAgICAgICAgICAgIW1lbV9zaGFyaW5nX2lzX2ZvcmsocDJtLT5kb21haW4pICkK ICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVuL2luY2x1 ZGUvYXNtLXg4Ni9tZW1fc2hhcmluZy5oIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tZW1fc2hhcmlu Zy5oCmluZGV4IDUzNzYwYTI4OTYuLmFjOTY4ZmFlM2YgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRl L2FzbS14ODYvbWVtX3NoYXJpbmcuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21lbV9zaGFy aW5nLmgKQEAgLTM5LDYgKzM5LDkgQEAgc3RydWN0IG1lbV9zaGFyaW5nX2RvbWFpbgogCiAjZGVm aW5lIG1lbV9zaGFyaW5nX2VuYWJsZWQoZCkgKChkKS0+YXJjaC5odm0ubWVtX3NoYXJpbmcuZW5h YmxlZCkKIAorI2RlZmluZSBtZW1fc2hhcmluZ19pc19mb3JrKGQpIFwKKyAgICAobWVtX3NoYXJp bmdfZW5hYmxlZChkKSAmJiAhISgoZCktPnBhcmVudCkpCisKIC8qIEF1ZGl0aW5nIG9mIG1lbW9y eSBzaGFyaW5nIGNvZGU/ICovCiAjaWZuZGVmIE5ERUJVRwogI2RlZmluZSBNRU1fU0hBUklOR19B VURJVCAxCkBAIC04OCw2ICs5MSw5IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1lbV9zaGFyaW5nX3Vu c2hhcmVfcGFnZShzdHJ1Y3QgZG9tYWluICpkLAogICAgIHJldHVybiByYzsKIH0KIAoraW50IG1l bV9zaGFyaW5nX2ZvcmtfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBnZm5fdCBnZm4sCisgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgdW5zaGFyaW5nKTsKKwogLyoKICAqIElmIGNhbGxlZCBi eSBhIGZvcmVpZ24gZG9tYWluLCBwb3NzaWJsZSBlcnJvcnMgYXJlCiAgKiAgIC1FQlVTWSAtPiBy aW5nIGZ1bGwKQEAgLTExNyw2ICsxMjMsNyBAQCBpbnQgcmVsaW5xdWlzaF9zaGFyZWRfcGFnZXMo c3RydWN0IGRvbWFpbiAqZCk7CiAjZWxzZQogCiAjZGVmaW5lIG1lbV9zaGFyaW5nX2VuYWJsZWQo ZCkgZmFsc2UKKyNkZWZpbmUgbWVtX3NoYXJpbmdfaXNfZm9yayhwMm0pIGZhbHNlCiAKIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgaW50IG1lbV9zaGFyaW5nX2dldF9ucl9zYXZlZF9tZm5zKHZvaWQp CiB7CkBAIC0xNDEsNiArMTQ4LDE2IEBAIHN0YXRpYyBpbmxpbmUgaW50IG1lbV9zaGFyaW5nX25v dGlmeV9lbm9tZW0oc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgbG9uZyBnZm4sCiAgICAgcmV0 dXJuIC1FT1BOT1RTVVBQOwogfQogCitzdGF0aWMgaW5saW5lIGludCBtZW1fc2hhcmluZ19mb3Jr KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBkb21haW4gKmNkLCBib29sIHZjcHUpCit7CisgICAg cmV0dXJuIC1FT1BOT1RTVVBQOworfQorCitzdGF0aWMgaW5saW5lIGludCBtZW1fc2hhcmluZ19m b3JrX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZ2ZuX3QgZ2ZuLCBib29sIGxvY2spCit7CisgICAg cmV0dXJuIC1FT1BOT1RTVVBQOworfQorCiAjZW5kaWYKIAogI2VuZGlmIC8qIF9fTUVNX1NIQVJJ TkdfSF9fICovCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvbWVtb3J5LmggYi94ZW4v aW5jbHVkZS9wdWJsaWMvbWVtb3J5LmgKaW5kZXggY2ZkZGE2ZTJhOC4uOTBhM2Y0NDk4ZSAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUvcHVibGljL21lbW9yeS5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy9tZW1vcnkuaApAQCAtNDgyLDYgKzQ4Miw3IEBAIERFRklORV9YRU5fR1VFU1RfSEFORExF KHhlbl9tZW1fYWNjZXNzX29wX3QpOwogI2RlZmluZSBYRU5NRU1fc2hhcmluZ19vcF9hZGRfcGh5 c21hcCAgICAgICA2CiAjZGVmaW5lIFhFTk1FTV9zaGFyaW5nX29wX2F1ZGl0ICAgICAgICAgICAg IDcKICNkZWZpbmUgWEVOTUVNX3NoYXJpbmdfb3BfcmFuZ2Vfc2hhcmUgICAgICAgOAorI2RlZmlu ZSBYRU5NRU1fc2hhcmluZ19vcF9mb3JrICAgICAgICAgICAgICA5CiAKICNkZWZpbmUgWEVOTUVN X1NIQVJJTkdfT1BfU19IQU5ETEVfSU5WQUxJRCAgKC0xMCkKICNkZWZpbmUgWEVOTUVNX1NIQVJJ TkdfT1BfQ19IQU5ETEVfSU5WQUxJRCAgKC05KQpAQCAtNTMyLDYgKzUzMywxMCBAQCBzdHJ1Y3Qg eGVuX21lbV9zaGFyaW5nX29wIHsKICAgICAgICAgICAgICAgICB1aW50MzJfdCBncmVmOyAgICAg LyogSU46IGdyZWYgdG8gZGVidWcgICAgICAgICAqLwogICAgICAgICAgICAgfSB1OwogICAgICAg ICB9IGRlYnVnOworICAgICAgICBzdHJ1Y3QgbWVtX3NoYXJpbmdfb3BfZm9yayB7CisgICAgICAg ICAgICBkb21pZF90IHBhcmVudF9kb21haW47CisgICAgICAgICAgICB1aW50MTZfdCBfcGFkWzNd OyAgICAgICAgICAgICAgICAvKiBNdXN0IGJlIHNldCB0byAwICovCisgICAgICAgIH0gZm9yazsK ICAgICB9IHU7CiB9OwogdHlwZWRlZiBzdHJ1Y3QgeGVuX21lbV9zaGFyaW5nX29wIHhlbl9tZW1f c2hhcmluZ19vcF90OwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3NjaGVkLmggYi94ZW4v aW5jbHVkZS94ZW4vc2NoZWQuaAppbmRleCA3YzVjNDM3MjQ3Li44ZWQ3MjdlMTBjIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vc2NoZWQu aApAQCAtNTA3LDYgKzUwNyw4IEBAIHN0cnVjdCBkb21haW4KICAgICAvKiBNZW1vcnkgc2hhcmlu ZyBzdXBwb3J0ICovCiAjaWZkZWYgQ09ORklHX01FTV9TSEFSSU5HCiAgICAgc3RydWN0IHZtX2V2 ZW50X2RvbWFpbiAqdm1fZXZlbnRfc2hhcmU7CisgICAgc3RydWN0IGRvbWFpbiAqcGFyZW50OyAv KiBWTSBmb3JrIHBhcmVudCAqLworICAgIGJvb2wgcGFyZW50X3BhdXNlZDsKICNlbmRpZgogICAg IC8qIE1lbW9yeSBwYWdpbmcgc3VwcG9ydCAqLwogI2lmZGVmIENPTkZJR19IQVNfTUVNX1BBR0lO RwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5v cmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZl bA==