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.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_1 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 5BD98C4361B for ; Mon, 14 Dec 2020 07:22:25 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 1212A22597 for ; Mon, 14 Dec 2020 07:22:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1212A22597 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=huawei.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=WGDhVx1XIZi//U40ny7PUk/e2dA0Fy66mP/koNPeas0=; b=MHdDZ3iIf32G730DItAV69k6l 9u1CbaqqpvJPqiIYSn3TnLes3WQRU/nYDFyJLBZJ1UtI32DPa/okVatf1KSuqVFPp+cBEpvaOPk19 fDSgshZRYMUbXc7eom/r02Y4lPdAYSXqnk25yvkVRZ+KV2//FOns18xiEnqX4TizDbU6sBM2VvDtB ZyxFeKHd80mwJ6VAXUPJqjLmqx3HJm6cxKtsUakZn7ej4Ta+GChWf3TyLfVcW+Xkc/Nw0+WpMd1dq /iv2Poa2UOGO8yC2/X2fsrkddPJ5XPFzFmHXxvmacELiZoaSDZVGxRJpJQpUSY4Ia83JF1tO6wuIH yHM/D7+0Q==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1koiAN-0001ye-G7; Mon, 14 Dec 2020 07:21:07 +0000 Received: from szxga02-in.huawei.com ([45.249.212.188]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1koiAI-0001xR-O7 for linux-arm-kernel@lists.infradead.org; Mon, 14 Dec 2020 07:21:05 +0000 Received: from dggeme703-chm.china.huawei.com (unknown [172.30.72.57]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4CvXpv1Phzz53MJ; Mon, 14 Dec 2020 15:20:23 +0800 (CST) Received: from [10.174.187.128] (10.174.187.128) by dggeme703-chm.china.huawei.com (10.1.199.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Mon, 14 Dec 2020 15:20:56 +0800 Subject: Re: [RFC PATCH] KVM: arm64: Add prejudgement for relaxing permissions only case in stage2 translation fault handler To: Will Deacon , Marc Zyngier References: <20201211080115.21460-1-wangyanan55@huawei.com> <20201211080115.21460-2-wangyanan55@huawei.com> <8d006755e5afce7e49b03993316c4fcc@kernel.org> <20201211100026.GA11352@willie-the-truck> From: "wangyanan (Y)" Message-ID: <2ab9323a-40a1-d223-f692-0a19207e16a9@huawei.com> Date: Mon, 14 Dec 2020 15:20:56 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.4.0 MIME-Version: 1.0 In-Reply-To: <20201211100026.GA11352@willie-the-truck> Content-Language: en-US X-Originating-IP: [10.174.187.128] X-ClientProxiedBy: dggeme719-chm.china.huawei.com (10.1.199.115) To dggeme703-chm.china.huawei.com (10.1.199.99) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201214_022103_354543_803D87E5 X-CRM114-Status: GOOD ( 21.77 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: jiangkunkun@huawei.com, Gavin Shan , Suzuki K Poulose , Catalin Marinas , wangjingyi11@huawei.com, Quentin Perret , lushenming@huawei.com, linux-kernel@vger.kernel.org, yezengruan@huawei.com, James Morse , linux-arm-kernel@lists.infradead.org, yuzenghui@huawei.com, wanghaibin.wang@huawei.com, zhukeqian1@huawei.com, Julien Thierry Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgV2lsbCwgTWFyYywKCk9uIDIwMjAvMTIvMTEgMTg6MDAsIFdpbGwgRGVhY29uIHdyb3RlOgo+ IE9uIEZyaSwgRGVjIDExLCAyMDIwIGF0IDA5OjQ5OjI4QU0gKzAwMDAsIE1hcmMgWnluZ2llciB3 cm90ZToKPj4gT24gMjAyMC0xMi0xMSAwODowMSwgWWFuYW4gV2FuZyB3cm90ZToKPj4+IEBAIC00 NjEsMjUgKzQ2Miw1NiBAQCBzdGF0aWMgaW50IHN0YWdlMl9tYXBfc2V0X3Byb3RfYXR0cihlbnVt Cj4+PiBrdm1fcGd0YWJsZV9wcm90IHByb3QsCj4+PiAgIAlyZXR1cm4gMDsKPj4+ICAgfQo+Pj4K Pj4+ICtzdGF0aWMgYm9vbCBzdGFnZTJfc2V0X3ZhbGlkX2xlYWZfcHRlX3ByZSh1NjQgYWRkciwg dTMyIGxldmVsLAo+Pj4gKwkJCQkJICBrdm1fcHRlX3QgKnB0ZXAsIGt2bV9wdGVfdCBuZXcsCj4+ PiArCQkJCQkgIHN0cnVjdCBzdGFnZTJfbWFwX2RhdGEgKmRhdGEpCj4+PiArewo+Pj4gKwlrdm1f cHRlX3Qgb2xkID0gKnB0ZXAsIG9sZF9hdHRyLCBuZXdfYXR0cjsKPj4+ICsKPj4+ICsJaWYgKChv bGQgXiBuZXcpICYgKH5LVk1fUFRFX0xFQUZfQVRUUl9QRVJNUykpCj4+PiArCQlyZXR1cm4gZmFs c2U7Cj4+PiArCj4+PiArCS8qCj4+PiArCSAqIFNraXAgdXBkYXRpbmcgaWYgd2UgYXJlIHRyeWlu ZyB0byByZWNyZWF0ZSBleGFjdGx5IHRoZSBzYW1lIG1hcHBpbmcKPj4+ICsJICogb3IgdG8gcmVk dWNlIHRoZSBhY2Nlc3MgcGVybWlzc2lvbnMgb25seS4gQW5kIHVwZGF0ZSB0aGUgdmFsaWQgbGVh Zgo+Pj4gKwkgKiBQVEUgd2l0aG91dCBicmVhay1iZWZvcmUtbWFrZSBpZiB3ZSBhcmUgdHJ5aW5n IHRvIGFkZCBtb3JlIGFjY2Vzcwo+Pj4gKwkgKiBwZXJtaXNzaW9ucyBvbmx5Lgo+Pj4gKwkgKi8K Pj4+ICsJb2xkX2F0dHIgPSAob2xkICYgS1ZNX1BURV9MRUFGX0FUVFJfUEVSTVMpIF4KPj4+IEtW TV9QVEVfTEVBRl9BVFRSX0hJX1MyX1hOOwo+Pj4gKwluZXdfYXR0ciA9IChuZXcgJiBLVk1fUFRF X0xFQUZfQVRUUl9QRVJNUykgXgo+Pj4gS1ZNX1BURV9MRUFGX0FUVFJfSElfUzJfWE47Cj4+PiAr CWlmIChuZXdfYXR0ciA8PSBvbGRfYXR0cikKPj4+ICsJCXJldHVybiB0cnVlOwo+Pj4gKwo+Pj4g KwlXUklURV9PTkNFKCpwdGVwLCBuZXcpOwo+Pj4gKwlrdm1fY2FsbF9oeXAoX19rdm1fdGxiX2Zs dXNoX3ZtaWRfaXBhLCBkYXRhLT5tbXUsIGFkZHIsIGxldmVsKTsKPj4gSSB0aGluayB3aGF0IGJv dGhlcnMgbWUgdGhlIG1vc3QgaGVyZSBpcyB0aGF0IHdlIGFyZSB0dXJuaW5nIGEgbWFwcGluZyBp bnRvCj4+IGEgcGVybWlzc2lvbiB1cGRhdGUsIHdoaWNoIG1ha2VzIHRoZSBjb2RlIHJlYWxseSBo YXJkIHRvIHJlYWQsIGFuZCBtaXhlcwo+PiB0d28gdGhpbmdzIHRoYXQgd2VyZSBzbyBmYXIgc2Vw YXJhdGUuCj4+Cj4+IEkgd29uZGVyIHdoZXRoZXIgd2Ugc2hvdWxkIGluc3RlYWQgYWJvcnQgdGhl IHVwZGF0ZSBhbmQgc2ltcGx5IHRha2UgdGhlCj4+IGZhdWx0Cj4+IGFnYWluLCBpZiB3ZSBldmVy IG5lZWQgdG8gZG8gaXQuCj4gVGhhdCdzIGEgbmljZSBpZGVhLiBJZiB3ZSBjb3VsZCBlbmZvcmNl IHRoYXQgd2UgZG9uJ3QgYWx0ZXIgcGVybWlzc2lvbnMgb24KPiB0aGUgbWFwIHBhdGgsIGFuZCBp bnN0ZWFkIGp1c3QgcmV0dXJuIGUuZy4gLUVBR0FJTiB0aGVuIHRoYXQgd291bGQgYmUgYQo+IHZl cnkgbmVhdCBzb2x1dGlvbiBhbmQgd291bGQgY2VtZW50IHRoZSBwZXJtaXNzaW9uIHZzIHRyYW5z bGF0aW9uIGZhdWx0Cj4gZGl2aXNpb24uCgpJIGFncmVlIHdpdGggdGhhdCB3ZSBjYW4gaW5kZWVk IHNpbXBsaWZ5IHRoZSBjb2RlLCBzZXBhcmF0ZSAKcGVybWlzc2lvbi1yZWxheGluZyBhbmQKCm1h cHBpbmcgYnkgdGhlICpzdHJhaWdodGx5IHJldHVybiogd2F5LCBhbHRob3VnaCB0aGUgY29zdCBp cyBvbmUgbW9yZSAKdkNQVSB0cmFwIG9uCgpwZXJtaXNzaW9uIGZhdWx0IG5leHQgdGltZSBwb3Nz aWJseS4KClNvIGhvdyBhYm91dCB0aGUgbmV3IHR3byBkaWZmcyBiZWxvdz8gSSBzcGxpdCB0aGVt IGludG8gdHdvIHBhdGNoZXMgd2l0aCAKZGlmZmVyZW50IGFpbXMuCgpUaGFua3MsCgpZYW5hbi4K CgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rdm0vaHlwL3BndGFibGUuYyBiL2FyY2gvYXJtNjQv a3ZtL2h5cC9wZ3RhYmxlLmMKaW5kZXggMjNhMDFkZmNiMjdhLi5hNzRhNjIyODMwMTIgMTAwNjQ0 Ci0tLSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKKysrIGIvYXJjaC9hcm02NC9rdm0v aHlwL3BndGFibGUuYwpAQCAtMTcwLDEwICsxNzAsOSBAQCBzdGF0aWMgdm9pZCBrdm1fc2V0X3Rh YmxlX3B0ZShrdm1fcHRlX3QgKnB0ZXAsIAprdm1fcHRlX3QgKmNoaWxkcCkKIMKgwqDCoMKgwqDC oMKgIHNtcF9zdG9yZV9yZWxlYXNlKHB0ZXAsIHB0ZSk7CiDCoH0KCi1zdGF0aWMgYm9vbCBrdm1f c2V0X3ZhbGlkX2xlYWZfcHRlKGt2bV9wdGVfdCAqcHRlcCwgdTY0IHBhLCBrdm1fcHRlX3QgYXR0 ciwKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1MzIgbGV2ZWwpCitzdGF0aWMga3ZtX3B0ZV90IGt2bV9pbml0X3ZhbGlk X2xlYWZfcHRlKHU2NCBwYSwga3ZtX3B0ZV90IGF0dHIsIHUzMiBsZXZlbCkKIMKgewotwqDCoMKg wqDCoMKgIGt2bV9wdGVfdCBvbGQgPSAqcHRlcCwgcHRlID0ga3ZtX3BoeXNfdG9fcHRlKHBhKTsK K8KgwqDCoMKgwqDCoCBrdm1fcHRlX3QgcHRlID0ga3ZtX3BoeXNfdG9fcHRlKHBhKTsKIMKgwqDC oMKgwqDCoMKgIHU2NCB0eXBlID0gKGxldmVsID09IEtWTV9QR1RBQkxFX01BWF9MRVZFTFMgLSAx KSA/IApLVk1fUFRFX1RZUEVfUEFHRSA6CktWTV9QVEVfVFlQRV9CTE9DSzsKCkBAIC0xODEsMTIg KzE4MCw3IEBAIHN0YXRpYyBib29sIGt2bV9zZXRfdmFsaWRfbGVhZl9wdGUoa3ZtX3B0ZV90ICpw dGVwLCAKdTY0IHBhLCBrdm1fcHRlX3QgYXR0ciwKIMKgwqDCoMKgwqDCoMKgIHB0ZSB8PSBGSUVM RF9QUkVQKEtWTV9QVEVfVFlQRSwgdHlwZSk7CiDCoMKgwqDCoMKgwqDCoCBwdGUgfD0gS1ZNX1BU RV9WQUxJRDsKCi3CoMKgwqDCoMKgwqAgLyogVG9sZXJhdGUgS1ZNIHJlY3JlYXRpbmcgdGhlIGV4 YWN0IHNhbWUgbWFwcGluZy4gKi8KLcKgwqDCoMKgwqDCoCBpZiAoa3ZtX3B0ZV92YWxpZChvbGQp KQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gb2xkID09IHB0ZTsKLQotwqDC oMKgwqDCoMKgIHNtcF9zdG9yZV9yZWxlYXNlKHB0ZXAsIHB0ZSk7Ci3CoMKgwqDCoMKgwqAgcmV0 dXJuIHRydWU7CivCoMKgwqDCoMKgwqAgcmV0dXJuIHB0ZTsKIMKgfQoKIMKgc3RhdGljIGludCBr dm1fcGd0YWJsZV92aXNpdG9yX2NiKHN0cnVjdCBrdm1fcGd0YWJsZV93YWxrX2RhdGEgKmRhdGEs IAp1NjQgYWRkciwKQEAgLTM0MSwxMiArMzM1LDE3IEBAIHN0YXRpYyBpbnQgaHlwX21hcF9zZXRf cHJvdF9hdHRyKGVudW0gCmt2bV9wZ3RhYmxlX3Byb3QgcHJvdCwKIMKgc3RhdGljIGJvb2wgaHlw X21hcF93YWxrZXJfdHJ5X2xlYWYodTY0IGFkZHIsIHU2NCBlbmQsIHUzMiBsZXZlbCwKIMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAga3ZtX3B0ZV90ICpwdGVwLCBzdHJ1Y3QgCmh5cF9tYXBfZGF0YSAqZGF0YSkKIMKg eworwqDCoMKgwqDCoMKgIGt2bV9wdGVfdCBuZXcsIG9sZCA9ICpwdGVwOwogwqDCoMKgwqDCoMKg wqAgdTY0IGdyYW51bGUgPSBrdm1fZ3JhbnVsZV9zaXplKGxldmVsKSwgcGh5cyA9IGRhdGEtPnBo eXM7CgogwqDCoMKgwqDCoMKgwqAgaWYgKCFrdm1fYmxvY2tfbWFwcGluZ19zdXBwb3J0ZWQoYWRk ciwgZW5kLCBwaHlzLCBsZXZlbCkpCiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIGZhbHNlOwoKLcKgwqDCoMKgwqDCoCBXQVJOX09OKCFrdm1fc2V0X3ZhbGlkX2xlYWZfcHRl KHB0ZXAsIHBoeXMsIGRhdGEtPmF0dHIsIGxldmVsKSk7CivCoMKgwqDCoMKgwqAgLyogVG9sZXJh dGUgS1ZNIHJlY3JlYXRpbmcgdGhlIGV4YWN0IHNhbWUgbWFwcGluZy4gKi8KK8KgwqDCoMKgwqDC oCBuZXcgPSBrdm1faW5pdF92YWxpZF9sZWFmX3B0ZShwaHlzLCBkYXRhLT5hdHRyLCBsZXZlbCk7 CivCoMKgwqDCoMKgwqAgaWYgKG9sZCAhPSBuZXcgJiYgIVdBUk5fT04oa3ZtX3B0ZV92YWxpZChv bGQpKSkKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc21wX3N0b3JlX3JlbGVhc2UocHRl cCwgbmV3KTsKKwogwqDCoMKgwqDCoMKgwqAgZGF0YS0+cGh5cyArPSBncmFudWxlOwogwqDCoMKg wqDCoMKgwqAgcmV0dXJuIHRydWU7CiDCoH0KQEAgLTQ2NSwyMSArNDY0LDI5IEBAIHN0YXRpYyBi b29sIHN0YWdlMl9tYXBfd2Fsa2VyX3RyeV9sZWFmKHU2NCBhZGRyLCAKdTY0IGVuZCwgdTMyIGxl dmVsLAogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdm1fcHRlX3QgKnB0ZXAsCiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHN0cnVjdCBzdGFnZTJfbWFwX2RhdGEgKmRhdGEpCiDCoHsKK8KgwqDCoMKgwqDCoCBr dm1fcHRlX3QgbmV3LCBvbGQgPSAqcHRlcDsKIMKgwqDCoMKgwqDCoMKgIHU2NCBncmFudWxlID0g a3ZtX2dyYW51bGVfc2l6ZShsZXZlbCksIHBoeXMgPSBkYXRhLT5waHlzOworwqDCoMKgwqDCoMKg IHN0cnVjdCBwYWdlICpwYWdlID0gdmlydF90b19wYWdlKHB0ZXApOwoKIMKgwqDCoMKgwqDCoMKg IGlmICgha3ZtX2Jsb2NrX21hcHBpbmdfc3VwcG9ydGVkKGFkZHIsIGVuZCwgcGh5cywgbGV2ZWwp KQogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKCi3CoMKgwqDC oMKgwqAgaWYgKGt2bV9wdGVfdmFsaWQoKnB0ZXApKQotwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBwdXRfcGFnZSh2aXJ0X3RvX3BhZ2UocHRlcCkpOworwqDCoMKgwqDCoMKgIG5ldyA9IGt2 bV9pbml0X3ZhbGlkX2xlYWZfcHRlKHBoeXMsIGRhdGEtPmF0dHIsIGxldmVsKTsKK8KgwqDCoMKg wqDCoCBpZiAoa3ZtX3B0ZV92YWxpZChvbGQpKSB7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8qIFRvbGVyYXRlIEtWTSByZWNyZWF0aW5nIHRoZSBleGFjdCBzYW1lIG1hcHBpbmcuICov CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChvbGQgPT0gbmV3KQorwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBvdXQ7CgotwqDCoMKgwqDC oMKgIGlmIChrdm1fc2V0X3ZhbGlkX2xlYWZfcHRlKHB0ZXAsIHBoeXMsIGRhdGEtPmF0dHIsIGxl dmVsKSkKLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBvdXQ7CivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIC8qIFRoZXJlJ3MgYW4gZXhpc3RpbmcgZGlmZmVyZW50IHZhbGlk IGxlYWYgZW50cnksIHNvIApwZXJmb3JtCivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KiBicmVhay1iZWZvcmUtbWFrZS4KK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwor wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdm1fc2V0X2ludmFsaWRfcHRlKHB0ZXApOwor wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBrdm1fY2FsbF9oeXAoX19rdm1fdGxiX2ZsdXNo X3ZtaWRfaXBhLCBkYXRhLT5tbXUsIGFkZHIsIApsZXZlbCk7CivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHB1dF9wYWdlKHBhZ2UpOworwqDCoMKgwqDCoMKgIH0KCi3CoMKgwqDCoMKgwqAg LyogVGhlcmUncyBhbiBleGlzdGluZyB2YWxpZCBsZWFmIGVudHJ5LCBzbyBwZXJmb3JtIApicmVh ay1iZWZvcmUtbWFrZSAqLwotwqDCoMKgwqDCoMKgIGt2bV9zZXRfaW52YWxpZF9wdGUocHRlcCk7 Ci3CoMKgwqDCoMKgwqAga3ZtX2NhbGxfaHlwKF9fa3ZtX3RsYl9mbHVzaF92bWlkX2lwYSwgZGF0 YS0+bW11LCBhZGRyLCBsZXZlbCk7Ci3CoMKgwqDCoMKgwqAga3ZtX3NldF92YWxpZF9sZWFmX3B0 ZShwdGVwLCBwaHlzLCBkYXRhLT5hdHRyLCBsZXZlbCk7CivCoMKgwqDCoMKgwqAgc21wX3N0b3Jl X3JlbGVhc2UocHRlcCwgbmV3KTsKK8KgwqDCoMKgwqDCoCBnZXRfcGFnZShwYWdlKTsKIMKgb3V0 OgogwqDCoMKgwqDCoMKgwqAgZGF0YS0+cGh5cyArPSBncmFudWxlOwogwqDCoMKgwqDCoMKgwqAg cmV0dXJuIHRydWU7CkBAIC01MjEsNyArNTI4LDcgQEAgc3RhdGljIGludCBzdGFnZTJfbWFwX3dh bGtfbGVhZih1NjQgYWRkciwgdTY0IGVuZCwgCnUzMiBsZXZlbCwga3ZtX3B0ZV90ICpwdGVwLAog wqDCoMKgwqDCoMKgwqAgfQoKIMKgwqDCoMKgwqDCoMKgIGlmIChzdGFnZTJfbWFwX3dhbGtlcl90 cnlfbGVhZihhZGRyLCBlbmQsIGxldmVsLCBwdGVwLCBkYXRhKSkKLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZ290byBvdXRfZ2V0X3BhZ2U7CivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHJldHVybiAwOwoKIMKgwqDCoMKgwqDCoMKgIGlmIChXQVJOX09OKGxldmVsID09IEtWTV9Q R1RBQkxFX01BWF9MRVZFTFMgLSAxKSkKIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy ZXR1cm4gLUVJTlZBTDsKQEAgLTU0NSw5ICs1NTIsOCBAQCBzdGF0aWMgaW50IHN0YWdlMl9tYXBf d2Fsa19sZWFmKHU2NCBhZGRyLCB1NjQgZW5kLCAKdTMyIGxldmVsLCBrdm1fcHRlX3QgKnB0ZXAs CiDCoMKgwqDCoMKgwqDCoCB9CgogwqDCoMKgwqDCoMKgwqAga3ZtX3NldF90YWJsZV9wdGUocHRl cCwgY2hpbGRwKTsKLQotb3V0X2dldF9wYWdlOgogwqDCoMKgwqDCoMKgwqAgZ2V0X3BhZ2UocGFn ZSk7CisKIMKgwqDCoMKgwqDCoMKgIHJldHVybiAwOwogwqB9CgoKZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMgYi9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jCmlu ZGV4IGE3NGE2MjI4MzAxMi4uZTNjNjEzMzU2N2M0IDEwMDY0NAotLS0gYS9hcmNoL2FybTY0L2t2 bS9oeXAvcGd0YWJsZS5jCisrKyBiL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKQEAgLTQ1 LDYgKzQ1LDEwIEBACgogwqAjZGVmaW5lIEtWTV9QVEVfTEVBRl9BVFRSX0hJX1MyX1hOwqDCoMKg wqAgQklUKDU0KQoKKyNkZWZpbmUgS1ZNX1BURV9MRUFGX0FUVFJfUzJfUEVSTVMgKEtWTV9QVEVf TEVBRl9BVFRSX0xPX1MyX1MyQVBfUiB8IFwKKyDCoCDCoCDCoMKgIEtWTV9QVEVfTEVBRl9BVFRS X0xPX1MyX1MyQVBfVyB8IFwKKyBLVk1fUFRFX0xFQUZfQVRUUl9ISV9TMl9YTikKKwogwqBzdHJ1 Y3Qga3ZtX3BndGFibGVfd2Fsa19kYXRhIHsKIMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBrdm1fcGd0 YWJsZcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqcGd0OwogwqDCoMKgwqDC oMKgwqAgc3RydWN0IGt2bV9wZ3RhYmxlX3dhbGtlcsKgwqDCoMKgwqDCoCAqd2Fsa2VyOwpAQCAt NDczLDggKzQ3NywxMyBAQCBzdGF0aWMgYm9vbCBzdGFnZTJfbWFwX3dhbGtlcl90cnlfbGVhZih1 NjQgYWRkciwgCnU2NCBlbmQsIHUzMiBsZXZlbCwKCiDCoMKgwqDCoMKgwqDCoCBuZXcgPSBrdm1f aW5pdF92YWxpZF9sZWFmX3B0ZShwaHlzLCBkYXRhLT5hdHRyLCBsZXZlbCk7CiDCoMKgwqDCoMKg wqDCoCBpZiAoa3ZtX3B0ZV92YWxpZChvbGQpKSB7Ci3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIC8qIFRvbGVyYXRlIEtWTSByZWNyZWF0aW5nIHRoZSBleGFjdCBzYW1lIG1hcHBpbmcuICov Ci3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChvbGQgPT0gbmV3KQorwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAvKgorwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICog U2tpcCB1cGRhdGluZyB0aGUgUFRFIHdpdGggYnJlYWstYmVmb3JlLW1ha2UgaWYgd2UgCmFyZSB0 cnlpbmcKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIHRvIHJlY3JlYXRlIHRoZSBl eGFjdCBzYW1lIG1hcHBpbmcgb3Igb25seSBjaGFuZ2UgdGhlIAphY2Nlc3MKK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAqIHBlcm1pc3Npb25zLiBBY3R1YWxseSwgY2hhbmdlIG9mIHBl cm1pc3Npb25zIHdpbGwgYmUgCmhhbmRsZWQKK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAqIHRocm91Z2ggdGhlIHJlbGF4X3Blcm1zIHBhdGggbmV4dCB0aW1lIGlmIG5lY2Vzc2FyeS4K K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLworwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAoISgob2xkIF4gbmV3KSAmICh+S1ZNX1BURV9MRUFGX0FUVFJfUzJfUEVSTVMp KSkKIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBv dXQ7CgogwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8qIFRoZXJlJ3MgYW4gZXhpc3Rp bmcgZGlmZmVyZW50IHZhbGlkIGxlYWYgZW50cnksIHNvIApwZXJmb3JtCgoKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1h aWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==