From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xu, Quan" Subject: [Patch v6 11/11] vt-d: add __must_check annotation to IOMMU flush pointers and handlers Date: Tue, 31 May 2016 21:57:36 +0800 Message-ID: <1464703056-4741-12-git-send-email-quan.xu@intel.com> References: <1464703056-4741-1-git-send-email-quan.xu@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1464703056-4741-1-git-send-email-quan.xu@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , dario.faggioli@citrix.com, Feng Wu , Jan Beulich , Quan Xu List-Id: xen-devel@lists.xenproject.org RnJvbTogUXVhbiBYdSA8cXVhbi54dUBpbnRlbC5jb20+CgpTaWduZWQtb2ZmLWJ5OiBRdWFuIFh1 IDxxdWFuLnh1QGludGVsLmNvbT4KCkNDOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ CkNDOiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KQ0M6IEZlbmcgV3UgPGZlbmcu d3VAaW50ZWwuY29tPgotLS0KIHhlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jICB8 IDQwICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogeGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL2lvbW11LmggIHwgMTEgKysrKysrLS0tLQogeGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL3FpbnZhbC5jIHwgMTQgKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAz NCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jCmluZGV4IDJjYzJjOTMuLjMyMjAyYjYgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5jCkBAIC0zMzUsMTAgKzMzNSw5IEBAIHN0YXRpYyB2b2lkIGlvbW11X2ZsdXNoX3dyaXRl X2J1ZmZlcihzdHJ1Y3QgaW9tbXUgKmlvbW11KQogfQogCiAvKiByZXR1cm4gdmFsdWUgZGV0ZXJt aW5lIGlmIHdlIG5lZWQgYSB3cml0ZSBidWZmZXIgZmx1c2ggKi8KLXN0YXRpYyBpbnQgZmx1c2hf Y29udGV4dF9yZWcoCi0gICAgdm9pZCAqX2lvbW11LAotICAgIHUxNiBkaWQsIHUxNiBzb3VyY2Vf aWQsIHU4IGZ1bmN0aW9uX21hc2ssIHU2NCB0eXBlLAotICAgIGludCBmbHVzaF9ub25fcHJlc2Vu dF9lbnRyeSkKK3N0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGZsdXNoX2NvbnRleHRfcmVnKHZvaWQg Kl9pb21tdSwgdTE2IGRpZCwgdTE2IHNvdXJjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHU4IGZ1bmN0aW9uX21hc2ssIHU2NCB0eXBlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX25vbl9wcmVzZW50 X2VudHJ5KQogewogICAgIHN0cnVjdCBpb21tdSAqaW9tbXUgPSAoc3RydWN0IGlvbW11ICopIF9p b21tdTsKICAgICB1NjQgdmFsID0gMDsKQEAgLTM4OSw3ICszODgsNyBAQCBzdGF0aWMgaW50IGZs dXNoX2NvbnRleHRfcmVnKAogfQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVz aF9jb250ZXh0X2dsb2JhbChzdHJ1Y3QgaW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsdXNoX25vbl9wcmVzZW50X2Vu dHJ5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbF90IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5KQogewogICAgIHN0cnVjdCBpb21tdV9mbHVz aCAqZmx1c2ggPSBpb21tdV9nZXRfZmx1c2goaW9tbXUpOwogICAgIHJldHVybiBmbHVzaC0+Y29u dGV4dChpb21tdSwgMCwgMCwgMCwgRE1BX0NDTURfR0xPQkFMX0lOVkwsCkBAIC0zOTksNyArMzk4 LDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfY29udGV4dF9nbG9iYWwo c3RydWN0IGlvbW11ICppb21tdSwKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGlvbW11X2ZsdXNo X2NvbnRleHRfZGV2aWNlKHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MTYgZGlkLCB1MTYgc291cmNlX2lkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggZnVu Y3Rpb25fbWFzaywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBmbHVzaF9ub25fcHJlc2VudF9lbnRyeSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBmbHVzaF9ub25fcHJlc2VudF9l bnRyeSkKIHsKICAgICBzdHJ1Y3QgaW9tbXVfZmx1c2ggKmZsdXNoID0gaW9tbXVfZ2V0X2ZsdXNo KGlvbW11KTsKICAgICByZXR1cm4gZmx1c2gtPmNvbnRleHQoaW9tbXUsIGRpZCwgc291cmNlX2lk LCBmdW5jdGlvbl9tYXNrLApAQCAtNDA4LDkgKzQwNywxMCBAQCBzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBpb21tdV9mbHVzaF9jb250ZXh0X2RldmljZShzdHJ1Y3QgaW9tbXUgKmlvbW11LAogfQog CiAvKiByZXR1cm4gdmFsdWUgZGV0ZXJtaW5lIGlmIHdlIG5lZWQgYSB3cml0ZSBidWZmZXIgZmx1 c2ggKi8KLXN0YXRpYyBpbnQgZmx1c2hfaW90bGJfcmVnKHZvaWQgKl9pb21tdSwgdTE2IGRpZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgIHU2NCBhZGRyLCB1bnNpZ25lZCBpbnQgc2l6ZV9v cmRlciwgdTY0IHR5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmx1c2hfbm9u X3ByZXNlbnRfZW50cnksIGludCBmbHVzaF9kZXZfaW90bGIpCitzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBmbHVzaF9pb3RsYl9yZWcodm9pZCAqX2lvbW11LCB1MTYgZGlkLCB1NjQgYWRkciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2l6ZV9v cmRlciwgdTY0IHR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbF90IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90bGIpCiB7CiAgICAgc3RydWN0IGlv bW11ICppb21tdSA9IChzdHJ1Y3QgaW9tbXUgKikgX2lvbW11OwogICAgIGludCB0bGJfb2Zmc2V0 ID0gZWNhcF9pb3RsYl9vZmZzZXQoaW9tbXUtPmVjYXApOwpAQCAtNDc1LDggKzQ3NSw4IEBAIHN0 YXRpYyBpbnQgZmx1c2hfaW90bGJfcmVnKHZvaWQgKl9pb21tdSwgdTE2IGRpZCwKIH0KIAogc3Rh dGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfZ2xvYmFsKHN0cnVjdCBpb21t dSAqaW9tbXUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbHVzaF9kZXZfaW90bGIpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX25vbl9w cmVzZW50X2VudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90bGIpCiB7CiAgICAgc3RydWN0IGlvbW11X2ZsdXNo ICpmbHVzaCA9IGlvbW11X2dldF9mbHVzaChpb21tdSk7CiAgICAgaW50IHN0YXR1czsKQEAgLTQ5 NCw4ICs0OTQsOCBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYl9n bG9iYWwoc3RydWN0IGlvbW11ICppb21tdSwKIH0KIAogc3RhdGljIGludCBfX211c3RfY2hlY2sg aW9tbXVfZmx1c2hfaW90bGJfZHNpKHN0cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZsdXNoX25vbl9w cmVzZW50X2VudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGludCBmbHVzaF9kZXZfaW90bGIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90 bGIpCiB7CiAgICAgc3RydWN0IGlvbW11X2ZsdXNoICpmbHVzaCA9IGlvbW11X2dldF9mbHVzaChp b21tdSk7CiAgICAgaW50IHN0YXR1czsKQEAgLTUxNCw4ICs1MTQsOCBAQCBzdGF0aWMgaW50IF9f bXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsYl9kc2koc3RydWN0IGlvbW11ICppb21tdSwgdTE2 IGRpZCwKIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bGJfcHNpKHN0 cnVjdCBpb21tdSAqaW9tbXUsIHUxNiBkaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdTY0IGFkZHIsIHVuc2lnbmVkIGludCBvcmRlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZmx1c2hfbm9uX3ByZXNl bnRfZW50cnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aW50IGZsdXNoX2Rldl9pb3RsYikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sX3QgZmx1c2hfbm9uX3ByZXNlbnRfZW50cnksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYikK IHsKICAgICBzdHJ1Y3QgaW9tbXVfZmx1c2ggKmZsdXNoID0gaW9tbXVfZ2V0X2ZsdXNoKGlvbW11 KTsKICAgICBpbnQgc3RhdHVzOwpAQCAtNTQ5LDcgKzU0OSw3IEBAIHN0YXRpYyBpbnQgX19tdXN0 X2NoZWNrIGlvbW11X2ZsdXNoX2FsbCh2b2lkKQogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZHJoZDsKICAgICBzdHJ1Y3QgaW9tbXUgKmlvbW11OwotICAgIGludCBmbHVzaF9kZXZfaW90 bGI7CisgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYjsKICAgICBpbnQgcmMgPSAwOwogCiAgICAg Zmx1c2hfYWxsX2NhY2hlKCk7CkBAIC01OTcsNyArNTk3LDcgQEAgc3RhdGljIGludCBfX211c3Rf Y2hlY2sgaW9tbXVfZmx1c2hfaW90bGIoc3RydWN0IGRvbWFpbiAqZCwKICAgICBzdHJ1Y3QgZG9t YWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRyaGQ7CiAgICAgc3RydWN0IGlvbW11ICppb21tdTsKLSAgICBpbnQgZmx1c2hfZGV2X2lvdGxi OworICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90bGI7CiAgICAgaW50IGlvbW11X2RvbWlkOwogICAg IGludCByYyA9IDA7CiAKQEAgLTE0NTUsNyArMTQ1NSw3IEBAIGludCBkb21haW5fY29udGV4dF9t YXBwaW5nX29uZSgKICAgICAgKi8KICAgICBpZiAoIHJjIDw9IDAgKQogICAgIHsKLSAgICAgICAg aW50IGZsdXNoX2Rldl9pb3RsYiA9IGZpbmRfYXRzX2Rldl9kcmhkKGlvbW11KSA/IDEgOiAwOwor ICAgICAgICBib29sX3QgZmx1c2hfZGV2X2lvdGxiID0gZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUp ID8gMSA6IDA7CiAgICAgICAgIGludCByZXQ7CiAKICAgICAgICAgcmV0ID0gaW9tbXVfZmx1c2hf aW90bGJfZHNpKGlvbW11LCAwLCAxLCBmbHVzaF9kZXZfaW90bGIpOwpAQCAtMTYxOCw3ICsxNjE4 LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICAgKi8KICAgICBpZiAoIHJj IDw9IDAgKQogICAgIHsKLSAgICAgICAgaW50IGZsdXNoX2Rldl9pb3RsYiA9IGZpbmRfYXRzX2Rl dl9kcmhkKGlvbW11KSA/IDEgOiAwOworICAgICAgICBib29sX3QgZmx1c2hfZGV2X2lvdGxiID0g ZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpID8gMSA6IDA7CiAgICAgICAgIGludCByZXQ7CiAKICAg ICAgICAgcmV0ID0gaW9tbXVfZmx1c2hfaW90bGJfZHNpKGlvbW11LCBpb21tdV9kb21pZCwgMCwg Zmx1c2hfZGV2X2lvdGxiKTsKQEAgLTE4NTAsNyArMTg1MCw3IEBAIGludCBpb21tdV9wdGVfZmx1 c2goc3RydWN0IGRvbWFpbiAqZCwgdTY0IGdmbiwgdTY0ICpwdGUsCiAgICAgc3RydWN0IGFjcGlf ZHJoZF91bml0ICpkcmhkOwogICAgIHN0cnVjdCBpb21tdSAqaW9tbXUgPSBOVUxMOwogICAgIHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwotICAgIGludCBmbHVzaF9kZXZf aW90bGI7CisgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYjsKICAgICBpbnQgaW9tbXVfZG9taWQ7 CiAgICAgaW50IHJjID0gMDsKIApkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmggYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAppbmRleCBj NTVlZTA4Li5lNmNmNzM4IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtNTE0 LDEwICs1MTQsMTMgQEAgc3RydWN0IGlyX2N0cmwgewogfTsKIAogc3RydWN0IGlvbW11X2ZsdXNo IHsKLSAgICBpbnQgKCpjb250ZXh0KSh2b2lkICppb21tdSwgdTE2IGRpZCwgdTE2IHNvdXJjZV9p ZCwKLSAgICAgICAgICAgICAgICAgICB1OCBmdW5jdGlvbl9tYXNrLCB1NjQgdHlwZSwgaW50IG5v bl9wcmVzZW50X2VudHJ5X2ZsdXNoKTsKLSAgICBpbnQgKCppb3RsYikodm9pZCAqaW9tbXUsIHUx NiBkaWQsIHU2NCBhZGRyLCB1bnNpZ25lZCBpbnQgc2l6ZV9vcmRlciwKLSAgICAgICAgICAgICAg ICAgdTY0IHR5cGUsIGludCBmbHVzaF9ub25fcHJlc2VudF9lbnRyeSwgaW50IGZsdXNoX2Rldl9p b3RsYik7CisgICAgaW50IF9fbXVzdF9jaGVjayAoKmNvbnRleHQpKHZvaWQgKmlvbW11LCB1MTYg ZGlkLCB1MTYgc291cmNlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBm dW5jdGlvbl9tYXNrLCB1NjQgdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ym9vbF90IG5vbl9wcmVzZW50X2VudHJ5X2ZsdXNoKTsKKyAgICBpbnQgX19tdXN0X2NoZWNrICgq aW90bGIpKHZvaWQgKmlvbW11LCB1MTYgZGlkLCB1NjQgYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzaXplX29yZGVyLCB1NjQgdHlwZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBmbHVzaF9ub25fcHJlc2VudF9lbnRyeSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90bGIpOwogfTsK IAogc3RydWN0IGludGVsX2lvbW11IHsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9xaW52YWwuYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xaW52YWwuYwpp bmRleCBiODFiMGJkLi5hYTc4NDFhIDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvcWludmFsLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3FpbnZhbC5j CkBAIC0yNzQsOSArMjc0LDkgQEAgaW50IGlvbW11X2ZsdXNoX2llY19pbmRleChzdHJ1Y3QgaW9t bXUgKmlvbW11LCB1OCBpbSwgdTE2IGlpZHgpCiAgICByZXR1cm4gX19pb21tdV9mbHVzaF9pZWMo aW9tbXUsIElFQ19JTkRFWF9JTlZMLCBpbSwgaWlkeCk7CiB9CiAKLXN0YXRpYyBpbnQgZmx1c2hf Y29udGV4dF9xaSgKLSAgICB2b2lkICpfaW9tbXUsIHUxNiBkaWQsIHUxNiBzaWQsIHU4IGZtLCB1 NjQgdHlwZSwKLSAgICBpbnQgZmx1c2hfbm9uX3ByZXNlbnRfZW50cnkpCitzdGF0aWMgaW50IF9f bXVzdF9jaGVjayBmbHVzaF9jb250ZXh0X3FpKHZvaWQgKl9pb21tdSwgdTE2IGRpZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTE2IHNpZCwgdTggZm0sIHU2NCB0 eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sX3QgZmx1 c2hfbm9uX3ByZXNlbnRfZW50cnkpCiB7CiAgICAgaW50IHJldCA9IDA7CiAgICAgc3RydWN0IGlv bW11ICppb21tdSA9IChzdHJ1Y3QgaW9tbXUgKilfaW9tbXU7CkBAIC0zMDUsMTAgKzMwNSwxMCBA QCBzdGF0aWMgaW50IGZsdXNoX2NvbnRleHRfcWkoCiAgICAgcmV0dXJuIHJldDsKIH0KIAotc3Rh dGljIGludCBmbHVzaF9pb3RsYl9xaSgKLSAgICB2b2lkICpfaW9tbXUsIHUxNiBkaWQsCi0gICAg dTY0IGFkZHIsIHVuc2lnbmVkIGludCBzaXplX29yZGVyLCB1NjQgdHlwZSwKLSAgICBpbnQgZmx1 c2hfbm9uX3ByZXNlbnRfZW50cnksIGludCBmbHVzaF9kZXZfaW90bGIpCitzdGF0aWMgaW50IF9f bXVzdF9jaGVjayBmbHVzaF9pb3RsYl9xaSh2b2lkICpfaW9tbXUsIHUxNiBkaWQsIHU2NCBhZGRy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IHNp emVfb3JkZXIsIHU2NCB0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbF90IGZsdXNoX25vbl9wcmVzZW50X2VudHJ5LAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYikKIHsKICAgICB1OCBkciA9 IDAsIGR3ID0gMDsKICAgICBpbnQgcmV0ID0gMDsKLS0gCjEuOS4xCgoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK