From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v2 09/10] xen/arm: map reserved-memory regions as normal memory in dom0 Date: Tue, 30 Apr 2019 14:02:51 -0700 Message-ID: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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 1hLZu0-0007gU-Hu for xen-devel@lists.xenproject.org; Tue, 30 Apr 2019 21:03:00 +0000 In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , julien.grall@arm.com, sstabellini@kernel.org List-Id: xen-devel@lists.xenproject.org cmVzZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgc2hvdWxkIGJlIG1hcHBlZCBhcyBub3JtYWwgbWVtb3J5 LiBBdCB0aGUKbW9tZW50LCB0aGV5IGdldCByZW1hcHBlZCBhcyBkZXZpY2UgbWVtb3J5IGluIGRv bTAgYmVjYXVzZSBYZW4gZG9lc24ndAprbm93IGFueSBiZXR0ZXIuIEFkZCBhbiBleHBsaWNpdCBj aGVjayBmb3IgaXQuCgpyZXNlcnZlZC1tZW1vcnkgcmVnaW9ucyBvdmVybGFwIHdpdGggbWVtb3J5 IG5vZGVzLiBUaGUgb3ZlcmxhcHBpbmcKbWVtb3J5IGlzIHJlc2VydmVkLW1lbW9yeSBhbmQgc2hv dWxkIGJlIGhhbmRsZWQgYWNjb3JkaW5nbHk6CmNvbnNpZGVyX21vZHVsZXMgYW5kIGR0X3VucmVz ZXJ2ZWRfcmVnaW9ucyBzaG91bGQgc2tpcCB0aGVzZSByZWdpb25zIHRoZQpzYW1lIHdheSB0aGV5 IGFyZSBhbHJlYWR5IHNraXBwaW5nIG1lbS1yZXNlcnZlIHJlZ2lvbnMuCgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+Ci0tLQpDaGFuZ2VzIGlu IHYyOgotIGZpeCBjb21taXQgbWVzc2FnZTogZnVsbCBvdmVybGFwCi0gcmVtb3ZlIGNoZWNrX3Jl c2VydmVkX21lbW9yeQotIGV4dGVuZCBjb25zaWRlcl9tb2R1bGVzIGFuZCBkdF91bnJlc2VydmVk X3JlZ2lvbnMKLS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAgNyArKysrKysrCiB4 ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggNWU3Zjk0Yy4uZTVkNDg4ZCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVp bGQuYwpAQCAtMTQwOCw2ICsxNDA4LDEzIEBAIHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9ub2Rl KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAgICAgICAgICAg ICAgICAiV0FSTklORzogUGF0aCAlcyBpcyByZXNlcnZlZCwgc2tpcCB0aGUgbm9kZSBhcyB3ZSBt YXkgcmUtdXNlIHRoZSBwYXRoLlxuIiwKICAgICAgICAgICAgICAgIHBhdGgpOwogCisgICAgLyoK KyAgICAgKiByZXNlcnZlZC1tZW1vcnkgcmFuZ2VzIHNob3VsZCBiZSBtYXBwZWQgYXMgbm9ybWFs IG1lbW9yeSBpbiB0aGUKKyAgICAgKiBwMm0uCisgICAgICovCisgICAgaWYgKCAhc3RyY21wKGR0 X25vZGVfbmFtZShub2RlKSwgInJlc2VydmVkLW1lbW9yeSIpICkKKyAgICAgICAgcDJtdCA9IHAy bV9tbWlvX2RpcmVjdF9jOworCiAgICAgcmVzID0gaGFuZGxlX2RldmljZShkLCBub2RlLCBwMm10 KTsKICAgICBpZiAoIHJlcykKICAgICAgICAgcmV0dXJuIHJlczsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKaW5kZXggY2NiMGYxOC4uOTA4 YjUyYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJt L3NldHVwLmMKQEAgLTIwNCw2ICsyMDQsMTkgQEAgdm9pZCBfX2luaXQgZHRfdW5yZXNlcnZlZF9y ZWdpb25zKHBhZGRyX3QgcywgcGFkZHJfdCBlLAogICAgICAgICB9CiAgICAgfQogCisgICAgZm9y ICggOyBpIC0gbnIgPCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7IGkrKyApCisgICAg eworICAgICAgICBwYWRkcl90IHJfcyA9IGJvb3RpbmZvLnJlc2VydmVkX21lbS5iYW5rW2kgLSBu cl0uc3RhcnQ7CisgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGluZm8ucmVzZXJ2ZWRf bWVtLmJhbmtbaSAtIG5yXS5zaXplOworCisgICAgICAgIGlmICggcyA8IHJfZSAmJiByX3MgPCBl ICkKKyAgICAgICAgeworICAgICAgICAgICAgZHRfdW5yZXNlcnZlZF9yZWdpb25zKHJfZSwgZSwg Y2IsIGkrMSk7CisgICAgICAgICAgICBkdF91bnJlc2VydmVkX3JlZ2lvbnMocywgcl9zLCBjYiwg aSsxKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGNiKHMs IGUpOwogfQogCkBAIC0zOTAsNyArNDAzLDcgQEAgc3RhdGljIHBhZGRyX3QgX19pbml0IGNvbnNp ZGVyX21vZHVsZXMocGFkZHJfdCBzLCBwYWRkcl90IGUsCiB7CiAgICAgY29uc3Qgc3RydWN0IGJv b3Rtb2R1bGVzICptaSA9ICZib290aW5mby5tb2R1bGVzOwogICAgIGludCBpOwotICAgIGludCBu cl9yc3ZkOworICAgIGludCBucjsKIAogICAgIHMgPSAocythbGlnbi0xKSAmIH4oYWxpZ24tMSk7 CiAgICAgZSA9IGUgJiB+KGFsaWduLTEpOwpAQCAtNDE2LDkgKzQyOSw5IEBAIHN0YXRpYyBwYWRk cl90IF9faW5pdCBjb25zaWRlcl9tb2R1bGVzKHBhZGRyX3QgcywgcGFkZHJfdCBlLAogCiAgICAg LyogTm93IGNoZWNrIGFueSBmZHQgcmVzZXJ2ZWQgYXJlYXMuICovCiAKLSAgICBucl9yc3ZkID0g ZmR0X251bV9tZW1fcnN2KGRldmljZV90cmVlX2ZsYXR0ZW5lZCk7CisgICAgbnIgPSBmZHRfbnVt X21lbV9yc3YoZGV2aWNlX3RyZWVfZmxhdHRlbmVkKTsKIAotICAgIGZvciAoIDsgaSA8IG1pLT5u cl9tb2RzICsgbnJfcnN2ZDsgaSsrICkKKyAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9kcyArIG5y OyBpKysgKQogICAgIHsKICAgICAgICAgcGFkZHJfdCBtb2RfcywgbW9kX2U7CiAKQEAgLTQ0MCw2 ICs0NTMsMjMgQEAgc3RhdGljIHBhZGRyX3QgX19pbml0IGNvbnNpZGVyX21vZHVsZXMocGFkZHJf dCBzLCBwYWRkcl90IGUsCiAgICAgICAgICAgICByZXR1cm4gY29uc2lkZXJfbW9kdWxlcyhzLCBt b2Rfcywgc2l6ZSwgYWxpZ24sIGkrMSk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvKiBOb3cg Y2hlY2sgZm9yIHJlc2VydmVkLW1lbW9yeSByZWdpb25zICovCisgICAgbnIgKz0gbWktPm5yX21v ZHM7CisgICAgZm9yICggOyBpIC0gbnIgPCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7 IGkrKyApCisgICAgeworICAgICAgICBwYWRkcl90IHJfcyA9IGJvb3RpbmZvLnJlc2VydmVkX21l bS5iYW5rW2kgLSBucl0uc3RhcnQ7CisgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGlu Zm8ucmVzZXJ2ZWRfbWVtLmJhbmtbaSAtIG5yXS5zaXplOworCisgICAgICAgIGlmICggcyA8IHJf ZSAmJiByX3MgPCBlICkKKyAgICAgICAgeworICAgICAgICAgICAgcl9lID0gY29uc2lkZXJfbW9k dWxlcyhyX2UsIGUsIHNpemUsIGFsaWduLCBpKzEpOworICAgICAgICAgICAgaWYgKCByX2UgKQor ICAgICAgICAgICAgICAgIHJldHVybiByX2U7CisKKyAgICAgICAgICAgIHJldHVybiBjb25zaWRl cl9tb2R1bGVzKHMsIHJfcywgc2l6ZSwgYWxpZ24sIGkrMSk7CisgICAgICAgIH0KKyAgICB9CiAg ICAgcmV0dXJuIGU7CiB9CiAjZW5kaWYKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== 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=-8.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, 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 558A6C43219 for ; Tue, 30 Apr 2019 21:03:15 +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 2393A2081C for ; Tue, 30 Apr 2019 21:03:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="avpozdf3" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2393A2081C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org 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 1hLZu2-0007jQ-CF; Tue, 30 Apr 2019 21:03:02 +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 1hLZu0-0007gU-Hu for xen-devel@lists.xenproject.org; Tue, 30 Apr 2019 21:03:00 +0000 X-Inumbo-ID: 55718702-6b8b-11e9-b7b5-1b0fe93ad1c4 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 55718702-6b8b-11e9-b7b5-1b0fe93ad1c4; Tue, 30 Apr 2019 21:02:59 +0000 (UTC) Received: from sstabellini-ThinkPad-X260.xilinx.com (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 885C221743; Tue, 30 Apr 2019 21:02:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1556658178; bh=8/4xOiePn9z3SrdryWW11nW/8QK/e4NhxngmXpkEtp4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=avpozdf3Ngal5mDVzPmkEKGD688CCc4+nB9sUCCwvVTsrgPmVJFOc1/ohSqpRZwQ0 Zim42WWomCH++3IrHtxT2xFacA7aC1/XFQSx3k0P4iOkP/WuSzLxvuc1EoxjG0wiuP gfVg5Sonhqafmj1avTl6/7SHL3ipzq2Vf4KX2m8U= From: Stefano Stabellini To: xen-devel@lists.xenproject.org Date: Tue, 30 Apr 2019 14:02:51 -0700 Message-Id: <1556658172-8824-9-git-send-email-sstabellini@kernel.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: References: Subject: [Xen-devel] [PATCH v2 09/10] xen/arm: map reserved-memory regions as normal memory in dom0 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 , julien.grall@arm.com, sstabellini@kernel.org 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" Message-ID: <20190430210251.qpssyGkglUae7DhojknAAINjU1itqKIamJnlaBnUtek@z> cmVzZXJ2ZWQtbWVtb3J5IHJlZ2lvbnMgc2hvdWxkIGJlIG1hcHBlZCBhcyBub3JtYWwgbWVtb3J5 LiBBdCB0aGUKbW9tZW50LCB0aGV5IGdldCByZW1hcHBlZCBhcyBkZXZpY2UgbWVtb3J5IGluIGRv bTAgYmVjYXVzZSBYZW4gZG9lc24ndAprbm93IGFueSBiZXR0ZXIuIEFkZCBhbiBleHBsaWNpdCBj aGVjayBmb3IgaXQuCgpyZXNlcnZlZC1tZW1vcnkgcmVnaW9ucyBvdmVybGFwIHdpdGggbWVtb3J5 IG5vZGVzLiBUaGUgb3ZlcmxhcHBpbmcKbWVtb3J5IGlzIHJlc2VydmVkLW1lbW9yeSBhbmQgc2hv dWxkIGJlIGhhbmRsZWQgYWNjb3JkaW5nbHk6CmNvbnNpZGVyX21vZHVsZXMgYW5kIGR0X3VucmVz ZXJ2ZWRfcmVnaW9ucyBzaG91bGQgc2tpcCB0aGVzZSByZWdpb25zIHRoZQpzYW1lIHdheSB0aGV5 IGFyZSBhbHJlYWR5IHNraXBwaW5nIG1lbS1yZXNlcnZlIHJlZ2lvbnMuCgpTaWduZWQtb2ZmLWJ5 OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm9zQHhpbGlueC5jb20+Ci0tLQpDaGFuZ2VzIGlu IHYyOgotIGZpeCBjb21taXQgbWVzc2FnZTogZnVsbCBvdmVybGFwCi0gcmVtb3ZlIGNoZWNrX3Jl c2VydmVkX21lbW9yeQotIGV4dGVuZCBjb25zaWRlcl9tb2R1bGVzIGFuZCBkdF91bnJlc2VydmVk X3JlZ2lvbnMKLS0tCiB4ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgfCAgNyArKysrKysrCiB4 ZW4vYXJjaC9hcm0vc2V0dXAuYyAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vZG9tYWluX2J1aWxkLmMgYi94ZW4vYXJj aC9hcm0vZG9tYWluX2J1aWxkLmMKaW5kZXggNWU3Zjk0Yy4uZTVkNDg4ZCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gvYXJtL2RvbWFpbl9idWlsZC5jCisrKyBiL3hlbi9hcmNoL2FybS9kb21haW5fYnVp bGQuYwpAQCAtMTQwOCw2ICsxNDA4LDEzIEBAIHN0YXRpYyBpbnQgX19pbml0IGhhbmRsZV9ub2Rl KHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBrZXJuZWxfaW5mbyAqa2luZm8sCiAgICAgICAgICAg ICAgICAiV0FSTklORzogUGF0aCAlcyBpcyByZXNlcnZlZCwgc2tpcCB0aGUgbm9kZSBhcyB3ZSBt YXkgcmUtdXNlIHRoZSBwYXRoLlxuIiwKICAgICAgICAgICAgICAgIHBhdGgpOwogCisgICAgLyoK KyAgICAgKiByZXNlcnZlZC1tZW1vcnkgcmFuZ2VzIHNob3VsZCBiZSBtYXBwZWQgYXMgbm9ybWFs IG1lbW9yeSBpbiB0aGUKKyAgICAgKiBwMm0uCisgICAgICovCisgICAgaWYgKCAhc3RyY21wKGR0 X25vZGVfbmFtZShub2RlKSwgInJlc2VydmVkLW1lbW9yeSIpICkKKyAgICAgICAgcDJtdCA9IHAy bV9tbWlvX2RpcmVjdF9jOworCiAgICAgcmVzID0gaGFuZGxlX2RldmljZShkLCBub2RlLCBwMm10 KTsKICAgICBpZiAoIHJlcykKICAgICAgICAgcmV0dXJuIHJlczsKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9zZXR1cC5jIGIveGVuL2FyY2gvYXJtL3NldHVwLmMKaW5kZXggY2NiMGYxOC4uOTA4 YjUyYyAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3NldHVwLmMKKysrIGIveGVuL2FyY2gvYXJt L3NldHVwLmMKQEAgLTIwNCw2ICsyMDQsMTkgQEAgdm9pZCBfX2luaXQgZHRfdW5yZXNlcnZlZF9y ZWdpb25zKHBhZGRyX3QgcywgcGFkZHJfdCBlLAogICAgICAgICB9CiAgICAgfQogCisgICAgZm9y ICggOyBpIC0gbnIgPCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7IGkrKyApCisgICAg eworICAgICAgICBwYWRkcl90IHJfcyA9IGJvb3RpbmZvLnJlc2VydmVkX21lbS5iYW5rW2kgLSBu cl0uc3RhcnQ7CisgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGluZm8ucmVzZXJ2ZWRf bWVtLmJhbmtbaSAtIG5yXS5zaXplOworCisgICAgICAgIGlmICggcyA8IHJfZSAmJiByX3MgPCBl ICkKKyAgICAgICAgeworICAgICAgICAgICAgZHRfdW5yZXNlcnZlZF9yZWdpb25zKHJfZSwgZSwg Y2IsIGkrMSk7CisgICAgICAgICAgICBkdF91bnJlc2VydmVkX3JlZ2lvbnMocywgcl9zLCBjYiwg aSsxKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGNiKHMs IGUpOwogfQogCkBAIC0zOTAsNyArNDAzLDcgQEAgc3RhdGljIHBhZGRyX3QgX19pbml0IGNvbnNp ZGVyX21vZHVsZXMocGFkZHJfdCBzLCBwYWRkcl90IGUsCiB7CiAgICAgY29uc3Qgc3RydWN0IGJv b3Rtb2R1bGVzICptaSA9ICZib290aW5mby5tb2R1bGVzOwogICAgIGludCBpOwotICAgIGludCBu cl9yc3ZkOworICAgIGludCBucjsKIAogICAgIHMgPSAocythbGlnbi0xKSAmIH4oYWxpZ24tMSk7 CiAgICAgZSA9IGUgJiB+KGFsaWduLTEpOwpAQCAtNDE2LDkgKzQyOSw5IEBAIHN0YXRpYyBwYWRk cl90IF9faW5pdCBjb25zaWRlcl9tb2R1bGVzKHBhZGRyX3QgcywgcGFkZHJfdCBlLAogCiAgICAg LyogTm93IGNoZWNrIGFueSBmZHQgcmVzZXJ2ZWQgYXJlYXMuICovCiAKLSAgICBucl9yc3ZkID0g ZmR0X251bV9tZW1fcnN2KGRldmljZV90cmVlX2ZsYXR0ZW5lZCk7CisgICAgbnIgPSBmZHRfbnVt X21lbV9yc3YoZGV2aWNlX3RyZWVfZmxhdHRlbmVkKTsKIAotICAgIGZvciAoIDsgaSA8IG1pLT5u cl9tb2RzICsgbnJfcnN2ZDsgaSsrICkKKyAgICBmb3IgKCA7IGkgPCBtaS0+bnJfbW9kcyArIG5y OyBpKysgKQogICAgIHsKICAgICAgICAgcGFkZHJfdCBtb2RfcywgbW9kX2U7CiAKQEAgLTQ0MCw2 ICs0NTMsMjMgQEAgc3RhdGljIHBhZGRyX3QgX19pbml0IGNvbnNpZGVyX21vZHVsZXMocGFkZHJf dCBzLCBwYWRkcl90IGUsCiAgICAgICAgICAgICByZXR1cm4gY29uc2lkZXJfbW9kdWxlcyhzLCBt b2Rfcywgc2l6ZSwgYWxpZ24sIGkrMSk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvKiBOb3cg Y2hlY2sgZm9yIHJlc2VydmVkLW1lbW9yeSByZWdpb25zICovCisgICAgbnIgKz0gbWktPm5yX21v ZHM7CisgICAgZm9yICggOyBpIC0gbnIgPCBib290aW5mby5yZXNlcnZlZF9tZW0ubnJfYmFua3M7 IGkrKyApCisgICAgeworICAgICAgICBwYWRkcl90IHJfcyA9IGJvb3RpbmZvLnJlc2VydmVkX21l bS5iYW5rW2kgLSBucl0uc3RhcnQ7CisgICAgICAgIHBhZGRyX3Qgcl9lID0gcl9zICsgYm9vdGlu Zm8ucmVzZXJ2ZWRfbWVtLmJhbmtbaSAtIG5yXS5zaXplOworCisgICAgICAgIGlmICggcyA8IHJf ZSAmJiByX3MgPCBlICkKKyAgICAgICAgeworICAgICAgICAgICAgcl9lID0gY29uc2lkZXJfbW9k dWxlcyhyX2UsIGUsIHNpemUsIGFsaWduLCBpKzEpOworICAgICAgICAgICAgaWYgKCByX2UgKQor ICAgICAgICAgICAgICAgIHJldHVybiByX2U7CisKKyAgICAgICAgICAgIHJldHVybiBjb25zaWRl cl9tb2R1bGVzKHMsIHJfcywgc2l6ZSwgYWxpZ24sIGkrMSk7CisgICAgICAgIH0KKyAgICB9CiAg ICAgcmV0dXJuIGU7CiB9CiAjZW5kaWYKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==