From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: [PATCH v2] IOMMU/x86: make page type checks consistent when mapping pages Date: Tue, 14 May 2019 06:11:23 -0600 Message-ID: <5CDAB06B020000780022E990@prv1-mh.provo.novell.com> 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 1hQWHL-0006CL-DD for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:11:31 +0000 Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel Cc: George Dunlap , Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhlcmUgYXJlIGN1cnJlbnRseSB0aHJlZSBtb3JlIG9yIGxlc3MgZGlmZmVyZW50IGNoZWNrczoK LSBfZ2V0X3BhZ2VfdHlwZSgpIGFkanVzdHMgdGhlIElPTU1VIG1hcHBpbmdzIGFjY29yZGluZyB0 byB0aGUgbmV3IHR5cGUKICBhbG9uZSwKLSBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUo KSB3YW50cyBqdXN0IHRoZSB0eXBlIHRvIGJlCiAgUEdUX3dyaXRhYmxlX3BhZ2UsCi0gaW9tbXVf aHdkb21faW5pdCgpIGFkZGl0aW9uYWxseSBwZXJtaXRzIGFsbCBvdGhlciB0eXBlcyB3aXRoIGEg dHlwZQogIHJlZmNvdW50IG9mIHplcm8uClRoZSBjYW5vbmljYWwgb25lIGlzIGluIF9nZXRfcGFn ZV90eXBlKCksIGFuZCBhcyBvZiBYU0EtMjg4CmFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJs ZSgpIGFsc28gaGFzIG5vIG5lZWQgYW55bW9yZSB0byBkZWFsIHdpdGgKUEdUX25vbmUgcGFnZXMu IEluIHRoZSBQViBEb20wIGNhc2UsIGhvd2V2ZXIsIFBHVF9ub25lIHBhZ2VzIGFyZSBzdGlsbApu ZWNlc3NhcnkgdG8gY29uc2lkZXIsIHNpbmNlIGluIHRoYXQgY2FzZSBwYWdlcyBkb24ndCBnZXQg aGFuZGVkIHRvCmd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KCkuIEZ1cnRoZXJtb3JlLCB0aGUgZnVu Y3Rpb24gc28gZmFyIGFsc28KZXN0YWJsaXNoZWQgci9vIG1hcHBpbmdzLCB3aGljaCBpcyBub3Qg aW4gbGluZSB3aXRoIHRoZSBydWxlcyBzZXQgZm9ydGgKYnkgdGhlIFhTQS0yODggY2hhbmdlLgoK Rm9yIGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZSgpIHRvIG5vdCBlbmNvdW50ZXIgUEdU X25vbmUgcGFnZXMKYW55bW9yZSBldmVuIGluIGNhc2VzIHdoZXJlIHRoZSBJT01NVSBnZXRzIGVu YWJsZWQgZm9yIGEgZG9tYWluIG9ubHkKd2hlbiBpdCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHJlcGxh Y2UgdGhlIElPTU1VIGRlcGVuZGVuY3kgaW4KZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoKSdzIGhh bmRsaW5nIG9mIFBWIGd1ZXN0cyB0byBjaGVjayBqdXN0IHRoZQpzeXN0ZW0gd2lkZSBzdGF0ZSBp bnN0ZWFkIG9mIHRoZSBkb21haW4gcHJvcGVydHkuCgpVbmZvcnR1bmF0ZWx5IChwYXJ0aWFsbHkp IHJlcGxhY2luZyB0aGUgaW9tbXVfbWFwKCkgY2FsbCBpbgppb21tdV9od2RvbV9pbml0KCkgaW1w bGllcyByZXN1cnJlY3RpbmcgdGhlIGZsdXNoIHN1cHByZXNzaW9uIHRoYXQgZ290CnByZXZpb3Vz bHkgZWxpbWluYXRlZC4gTm90ZSB0aGF0IHRoZSBjYWxsIHRvIGlvbW11X21hcCgpIGNhbid0IGJl CnJlbW92ZWQgYXQgdGhpcyBwb2ludCBpbiB0aW1lIC0gRG9tMCdzIGluaXRpYWwgYWxsb2NhdGlv biBnZXRzIGl0cyBwYWdlCnR5cGVzIHNldCBiZWZvcmUgaW9tbXVfaHdkb21faW5pdCgpIHJ1bnMu CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2Mjog Rml4IElPVExCIGZsdXNoaW5nLiBFeGNsdWRlIFBWSC4gVXNlIHR5cGUgc2FmZSBsb2NhbCB2YXJp YWJsZXMuCgotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21t L3AybS5jCkBAIC04NzMsMTEgKzg3MywxMSBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1 Y3QgZG9tYWluICpkCiAgICAgICAgICAqCiAgICAgICAgICAqIFJldGFpbiB0aGlzIHByb3BlcnR5 IGJ5IGdyYWJiaW5nIGEgd3JpdGFibGUgdHlwZSByZWYgYW5kIHRoZW4KICAgICAgICAgICogZHJv cHBpbmcgaXQgaW1tZWRpYXRlbHkuICBUaGUgcmVzdWx0IHdpbGwgYmUgcGFnZXMgdGhhdCBoYXZl IGEKLSAgICAgICAgICogd3JpdGFibGUgdHlwZSAoYW5kIGFuIElPTU1VIGVudHJ5KSwgYnV0IGEg Y291bnQgb2YgMCAoc3VjaCB0aGF0Ci0gICAgICAgICAqIGFueSBndWVzdC1yZXF1ZXN0ZWQgdHlw ZSBjaGFuZ2VzIHN1Y2NlZWQgYW5kIHJlbW92ZSB0aGUgSU9NTVUKLSAgICAgICAgICogZW50cnkp LgorICAgICAgICAgKiB3cml0YWJsZSB0eXBlIChhbmQgYW4gSU9NTVUgZW50cnkgaWYgbmVjZXNz YXJ5KSwgYnV0IGEgY291bnQgb2YgMAorICAgICAgICAgKiAoc3VjaCB0aGF0IGFueSBndWVzdC1y ZXF1ZXN0ZWQgdHlwZSBjaGFuZ2VzIHN1Y2NlZWQgYW5kIHJlbW92ZSB0aGUKKyAgICAgICAgICog SU9NTVUgZW50cnkpLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCAhbmVlZF9pb21tdV9wdF9z eW5jKGQpIHx8IHQgIT0gcDJtX3JhbV9ydyApCisgICAgICAgIGlmICggIWlvbW11X2VuYWJsZWQg fHwgdCAhPSBwMm1fcmFtX3J3ICkKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgKytpLCArK3BhZ2UgKQotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKQEAgLTE5MiwyOCArMTkyLDQ2IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11 X2h3ZG9tX2luaXQoc3RydWMKICAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwLCBmbHVzaF9mbGFn cyA9IDA7CiAgICAgICAgIGludCByYyA9IDA7CiAKKyAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9u dF9mbHVzaF9pb3RsYikgPSB0cnVlOworCiAgICAgICAgIHBhZ2VfbGlzdF9mb3JfZWFjaCAoIHBh Z2UsICZkLT5wYWdlX2xpc3QgKQogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25n IG1mbiA9IG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgZGZuID0gbWZuX3RvX2dtZm4oZCwgbWZuKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBt YXBwaW5nID0gSU9NTVVGX3JlYWRhYmxlOwotICAgICAgICAgICAgaW50IHJldDsKLQotICAgICAg ICAgICAgaWYgKCAoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX2NvdW50X21hc2spID09 IDApIHx8Ci0gICAgICAgICAgICAgICAgICgocGFnZS0+dS5pbnVzZS50eXBlX2luZm8gJiBQR1Rf dHlwZV9tYXNrKQotICAgICAgICAgICAgICAgICAgPT0gUEdUX3dyaXRhYmxlX3BhZ2UpICkKLSAg ICAgICAgICAgICAgICBtYXBwaW5nIHw9IElPTU1VRl93cml0YWJsZTsKLQotICAgICAgICAgICAg cmV0ID0gaW9tbXVfbWFwKGQsIF9kZm4oZGZuKSwgX21mbihtZm4pLCAwLCBtYXBwaW5nLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZmbHVzaF9mbGFncyk7Ci0KLSAgICAgICAgICAgIGlm ICggIXJjICkKLSAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAgIHN3aXRjaCAo IHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzayApCisgICAgICAgICAgICB7 CisgICAgICAgICAgICBjYXNlIFBHVF9ub25lOgorICAgICAgICAgICAgICAgIGlmICggaXNfcHZf ZG9tYWluKGQpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VS VCghKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX2NvdW50X21hc2spKTsKKyAgICAgICAg ICAgICAgICAgICAgaWYgKCBnZXRfcGFnZV9hbmRfdHlwZShwYWdlLCBkLCBQR1Rfd3JpdGFibGVf cGFnZSkgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBw dXRfcGFnZV9hbmRfdHlwZShwYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoX2Zs YWdzIHw9IElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZTsKKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggIXJjICkKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJjID0gLUVCVVNZOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAg ICAgICAgICBjYXNlIFBHVF93cml0YWJsZV9wYWdlOgorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIG1mbl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOworICAgICAgICAgICAgICAgIGRm bl90IGRmbiA9IF9kZm4obWZuX3RvX2dtZm4oZCwgbWZuX3gobWZuKSkpOworICAgICAgICAgICAg ICAgIGludCByZXQgPSBpb21tdV9tYXAoZCwgZGZuLCBtZm4sIDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmx1c2hfZmxhZ3MpOworCisgICAg ICAgICAgICAgICAgaWYgKCAhcmMgKQorICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KIAogICAg ICAgICAgICAgaWYgKCAhKGkrKyAmIDB4ZmZmZmYpICkKICAgICAgICAgICAgICAgICBwcm9jZXNz X3BlbmRpbmdfc29mdGlycXMoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXNfY3B1KGlvbW11 X2RvbnRfZmx1c2hfaW90bGIpID0gZmFsc2U7CisKICAgICAgICAgLyogVXNlIHdoaWxlLWJyZWFr IHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgKi8KICAgICAgICAgd2hpbGUgKCBpb21tdV9pb3Rs Yl9mbHVzaF9hbGwoZCwgZmx1c2hfZmxhZ3MpICkKICAgICAgICAgICAgIGJyZWFrOwoKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== 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=-4.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 7A734C04AB4 for ; Tue, 14 May 2019 12:11:46 +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 520BA208CA for ; Tue, 14 May 2019 12:11:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 520BA208CA Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.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 1hQWHM-0006CQ-4W; Tue, 14 May 2019 12:11:32 +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 1hQWHL-0006CL-DD for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:11:31 +0000 X-Inumbo-ID: 65eab8c2-7641-11e9-a999-475e14e1efe4 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 65eab8c2-7641-11e9-a999-475e14e1efe4; Tue, 14 May 2019 12:11:27 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Tue, 14 May 2019 06:11:25 -0600 Message-Id: <5CDAB06B020000780022E990@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.0 Date: Tue, 14 May 2019 06:11:23 -0600 From: "Jan Beulich" To: "xen-devel" Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v2] IOMMU/x86: make page type checks consistent when mapping pages 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: George Dunlap , Andrew Cooper Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190514121123.eO5GKwR425WoPaGhd2yAHe25oxdERjMSuWFVZi-za4M@z> VGhlcmUgYXJlIGN1cnJlbnRseSB0aHJlZSBtb3JlIG9yIGxlc3MgZGlmZmVyZW50IGNoZWNrczoK LSBfZ2V0X3BhZ2VfdHlwZSgpIGFkanVzdHMgdGhlIElPTU1VIG1hcHBpbmdzIGFjY29yZGluZyB0 byB0aGUgbmV3IHR5cGUKICBhbG9uZSwKLSBhcmNoX2lvbW11X3BvcHVsYXRlX3BhZ2VfdGFibGUo KSB3YW50cyBqdXN0IHRoZSB0eXBlIHRvIGJlCiAgUEdUX3dyaXRhYmxlX3BhZ2UsCi0gaW9tbXVf aHdkb21faW5pdCgpIGFkZGl0aW9uYWxseSBwZXJtaXRzIGFsbCBvdGhlciB0eXBlcyB3aXRoIGEg dHlwZQogIHJlZmNvdW50IG9mIHplcm8uClRoZSBjYW5vbmljYWwgb25lIGlzIGluIF9nZXRfcGFn ZV90eXBlKCksIGFuZCBhcyBvZiBYU0EtMjg4CmFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJs ZSgpIGFsc28gaGFzIG5vIG5lZWQgYW55bW9yZSB0byBkZWFsIHdpdGgKUEdUX25vbmUgcGFnZXMu IEluIHRoZSBQViBEb20wIGNhc2UsIGhvd2V2ZXIsIFBHVF9ub25lIHBhZ2VzIGFyZSBzdGlsbApu ZWNlc3NhcnkgdG8gY29uc2lkZXIsIHNpbmNlIGluIHRoYXQgY2FzZSBwYWdlcyBkb24ndCBnZXQg aGFuZGVkIHRvCmd1ZXN0X3BoeXNtYXBfYWRkX2VudHJ5KCkuIEZ1cnRoZXJtb3JlLCB0aGUgZnVu Y3Rpb24gc28gZmFyIGFsc28KZXN0YWJsaXNoZWQgci9vIG1hcHBpbmdzLCB3aGljaCBpcyBub3Qg aW4gbGluZSB3aXRoIHRoZSBydWxlcyBzZXQgZm9ydGgKYnkgdGhlIFhTQS0yODggY2hhbmdlLgoK Rm9yIGFyY2hfaW9tbXVfcG9wdWxhdGVfcGFnZV90YWJsZSgpIHRvIG5vdCBlbmNvdW50ZXIgUEdU X25vbmUgcGFnZXMKYW55bW9yZSBldmVuIGluIGNhc2VzIHdoZXJlIHRoZSBJT01NVSBnZXRzIGVu YWJsZWQgZm9yIGEgZG9tYWluIG9ubHkKd2hlbiBpdCBpcyBhbHJlYWR5IHJ1bm5pbmcsIHJlcGxh Y2UgdGhlIElPTU1VIGRlcGVuZGVuY3kgaW4KZ3Vlc3RfcGh5c21hcF9hZGRfZW50cnkoKSdzIGhh bmRsaW5nIG9mIFBWIGd1ZXN0cyB0byBjaGVjayBqdXN0IHRoZQpzeXN0ZW0gd2lkZSBzdGF0ZSBp bnN0ZWFkIG9mIHRoZSBkb21haW4gcHJvcGVydHkuCgpVbmZvcnR1bmF0ZWx5IChwYXJ0aWFsbHkp IHJlcGxhY2luZyB0aGUgaW9tbXVfbWFwKCkgY2FsbCBpbgppb21tdV9od2RvbV9pbml0KCkgaW1w bGllcyByZXN1cnJlY3RpbmcgdGhlIGZsdXNoIHN1cHByZXNzaW9uIHRoYXQgZ290CnByZXZpb3Vz bHkgZWxpbWluYXRlZC4gTm90ZSB0aGF0IHRoZSBjYWxsIHRvIGlvbW11X21hcCgpIGNhbid0IGJl CnJlbW92ZWQgYXQgdGhpcyBwb2ludCBpbiB0aW1lIC0gRG9tMCdzIGluaXRpYWwgYWxsb2NhdGlv biBnZXRzIGl0cyBwYWdlCnR5cGVzIHNldCBiZWZvcmUgaW9tbXVfaHdkb21faW5pdCgpIHJ1bnMu CgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+Ci0tLQp2Mjog Rml4IElPVExCIGZsdXNoaW5nLiBFeGNsdWRlIFBWSC4gVXNlIHR5cGUgc2FmZSBsb2NhbCB2YXJp YWJsZXMuCgotLS0gYS94ZW4vYXJjaC94ODYvbW0vcDJtLmMKKysrIGIveGVuL2FyY2gveDg2L21t L3AybS5jCkBAIC04NzMsMTEgKzg3MywxMSBAQCBndWVzdF9waHlzbWFwX2FkZF9lbnRyeShzdHJ1 Y3QgZG9tYWluICpkCiAgICAgICAgICAqCiAgICAgICAgICAqIFJldGFpbiB0aGlzIHByb3BlcnR5 IGJ5IGdyYWJiaW5nIGEgd3JpdGFibGUgdHlwZSByZWYgYW5kIHRoZW4KICAgICAgICAgICogZHJv cHBpbmcgaXQgaW1tZWRpYXRlbHkuICBUaGUgcmVzdWx0IHdpbGwgYmUgcGFnZXMgdGhhdCBoYXZl IGEKLSAgICAgICAgICogd3JpdGFibGUgdHlwZSAoYW5kIGFuIElPTU1VIGVudHJ5KSwgYnV0IGEg Y291bnQgb2YgMCAoc3VjaCB0aGF0Ci0gICAgICAgICAqIGFueSBndWVzdC1yZXF1ZXN0ZWQgdHlw ZSBjaGFuZ2VzIHN1Y2NlZWQgYW5kIHJlbW92ZSB0aGUgSU9NTVUKLSAgICAgICAgICogZW50cnkp LgorICAgICAgICAgKiB3cml0YWJsZSB0eXBlIChhbmQgYW4gSU9NTVUgZW50cnkgaWYgbmVjZXNz YXJ5KSwgYnV0IGEgY291bnQgb2YgMAorICAgICAgICAgKiAoc3VjaCB0aGF0IGFueSBndWVzdC1y ZXF1ZXN0ZWQgdHlwZSBjaGFuZ2VzIHN1Y2NlZWQgYW5kIHJlbW92ZSB0aGUKKyAgICAgICAgICog SU9NTVUgZW50cnkpLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKCAhbmVlZF9pb21tdV9wdF9z eW5jKGQpIHx8IHQgIT0gcDJtX3JhbV9ydyApCisgICAgICAgIGlmICggIWlvbW11X2VuYWJsZWQg fHwgdCAhPSBwMm1fcmFtX3J3ICkKICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgIGZv ciAoIGkgPSAwOyBpIDwgKDFVTCA8PCBwYWdlX29yZGVyKTsgKytpLCArK3BhZ2UgKQotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvbW11LmMKQEAgLTE5MiwyOCArMTkyLDQ2IEBAIHZvaWQgX19od2RvbV9pbml0IGlvbW11 X2h3ZG9tX2luaXQoc3RydWMKICAgICAgICAgdW5zaWduZWQgaW50IGkgPSAwLCBmbHVzaF9mbGFn cyA9IDA7CiAgICAgICAgIGludCByYyA9IDA7CiAKKyAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9u dF9mbHVzaF9pb3RsYikgPSB0cnVlOworCiAgICAgICAgIHBhZ2VfbGlzdF9mb3JfZWFjaCAoIHBh Z2UsICZkLT5wYWdlX2xpc3QgKQogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25n IG1mbiA9IG1mbl94KHBhZ2VfdG9fbWZuKHBhZ2UpKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGxv bmcgZGZuID0gbWZuX3RvX2dtZm4oZCwgbWZuKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGludCBt YXBwaW5nID0gSU9NTVVGX3JlYWRhYmxlOwotICAgICAgICAgICAgaW50IHJldDsKLQotICAgICAg ICAgICAgaWYgKCAoKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX2NvdW50X21hc2spID09 IDApIHx8Ci0gICAgICAgICAgICAgICAgICgocGFnZS0+dS5pbnVzZS50eXBlX2luZm8gJiBQR1Rf dHlwZV9tYXNrKQotICAgICAgICAgICAgICAgICAgPT0gUEdUX3dyaXRhYmxlX3BhZ2UpICkKLSAg ICAgICAgICAgICAgICBtYXBwaW5nIHw9IElPTU1VRl93cml0YWJsZTsKLQotICAgICAgICAgICAg cmV0ID0gaW9tbXVfbWFwKGQsIF9kZm4oZGZuKSwgX21mbihtZm4pLCAwLCBtYXBwaW5nLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICZmbHVzaF9mbGFncyk7Ci0KLSAgICAgICAgICAgIGlm ICggIXJjICkKLSAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAgICAgICAgICAgIHN3aXRjaCAo IHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX3R5cGVfbWFzayApCisgICAgICAgICAgICB7 CisgICAgICAgICAgICBjYXNlIFBHVF9ub25lOgorICAgICAgICAgICAgICAgIGlmICggaXNfcHZf ZG9tYWluKGQpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIEFTU0VS VCghKHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvICYgUEdUX2NvdW50X21hc2spKTsKKyAgICAgICAg ICAgICAgICAgICAgaWYgKCBnZXRfcGFnZV9hbmRfdHlwZShwYWdlLCBkLCBQR1Rfd3JpdGFibGVf cGFnZSkgKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBw dXRfcGFnZV9hbmRfdHlwZShwYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsdXNoX2Zs YWdzIHw9IElPTU1VRl9yZWFkYWJsZSB8IElPTU1VRl93cml0YWJsZTsKKyAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggIXJjICkKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJjID0gLUVCVVNZOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLyogZmFsbCB0aHJvdWdoICovCisgICAg ICAgICAgICBjYXNlIFBHVF93cml0YWJsZV9wYWdlOgorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIG1mbl90IG1mbiA9IHBhZ2VfdG9fbWZuKHBhZ2UpOworICAgICAgICAgICAgICAgIGRm bl90IGRmbiA9IF9kZm4obWZuX3RvX2dtZm4oZCwgbWZuX3gobWZuKSkpOworICAgICAgICAgICAg ICAgIGludCByZXQgPSBpb21tdV9tYXAoZCwgZGZuLCBtZm4sIDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVUZfcmVhZGFibGUgfCBJT01NVUZfd3JpdGFibGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmx1c2hfZmxhZ3MpOworCisgICAg ICAgICAgICAgICAgaWYgKCAhcmMgKQorICAgICAgICAgICAgICAgICAgICByYyA9IHJldDsKKyAg ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KIAogICAg ICAgICAgICAgaWYgKCAhKGkrKyAmIDB4ZmZmZmYpICkKICAgICAgICAgICAgICAgICBwcm9jZXNz X3BlbmRpbmdfc29mdGlycXMoKTsKICAgICAgICAgfQogCisgICAgICAgIHRoaXNfY3B1KGlvbW11 X2RvbnRfZmx1c2hfaW90bGIpID0gZmFsc2U7CisKICAgICAgICAgLyogVXNlIHdoaWxlLWJyZWFr IHRvIGF2b2lkIGNvbXBpbGVyIHdhcm5pbmcgKi8KICAgICAgICAgd2hpbGUgKCBpb21tdV9pb3Rs Yl9mbHVzaF9hbGwoZCwgZmx1c2hfZmxhZ3MpICkKICAgICAgICAgICAgIGJyZWFrOwoKCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1h aWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54 ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==