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=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,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 2061CC64E7A for ; Tue, 1 Dec 2020 14:13:22 +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 933A520757 for ; Tue, 1 Dec 2020 14:13:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="eti1GvrL" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 933A520757 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=ZcX3Lte9Ju2Kcu9qSOffEbABeXWpPT830WarsbK6FWs=; b=eti1GvrLCaf6x+mPkYix9fnQj LHi4C6NIFyqk7maQ3Bn+ucmevZr2/O8PHYWLZiyI4XFKbP9mUk4oUdPweLD2dvsS0QMKEfnEBN5lP AOIg8VcgMo5YmKl7k5sPkGau+m8Ym1H9tUwv8tkcRWTdyVu7hpvQlbjj5U4kQufban6Pb4fQ7jDDt ua04ZRB7ziKIsqhXWUm5J6BnXDRyB4ZlMBn7Ugm6mCI1C29SVAZ4ZMfD/D/kVCwP0bUqVEaC7Ri+l jxzlDaAgtxEjcPcCUjWSYWp/fSZfDOIPe/8oT647EW+87Wx+1cMalMbwrhiR5mOBQkj0kV/n3LM+M +foOSbXnA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk6O3-0006b4-6d; Tue, 01 Dec 2020 14:12:11 +0000 Received: from szxga01-in.huawei.com ([45.249.212.187]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kk6Nv-0006TF-Jb for linux-arm-kernel@lists.infradead.org; Tue, 01 Dec 2020 14:12:09 +0000 Received: from dggeme717-chm.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4ClkXk3DWkzVkDQ; Tue, 1 Dec 2020 22:11:02 +0800 (CST) Received: from [10.174.186.123] (10.174.186.123) by dggeme717-chm.china.huawei.com (10.1.199.113) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1913.5; Tue, 1 Dec 2020 22:11:45 +0800 Subject: Re: [RFC PATCH 2/3] KVM: arm64: Fix handling of merging tables into a block entry To: Will Deacon References: <20201130121847.91808-1-wangyanan55@huawei.com> <20201130121847.91808-3-wangyanan55@huawei.com> <20201130133421.GB24837@willie-the-truck> <67e9e393-1836-eca7-4235-6f4a19fed652@huawei.com> <20201130160119.GA25051@willie-the-truck> <868a4403-10d3-80f3-4ae1-a490813c55e2@huawei.com> <20201201134606.GB26973@willie-the-truck> From: "wangyanan (Y)" Message-ID: <2e92a511-496c-d446-95f4-6211ec8b4bb6@huawei.com> Date: Tue, 1 Dec 2020 22:11:37 +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: <20201201134606.GB26973@willie-the-truck> Content-Language: en-US X-Originating-IP: [10.174.186.123] X-ClientProxiedBy: dggeme719-chm.china.huawei.com (10.1.199.115) To dggeme717-chm.china.huawei.com (10.1.199.113) X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201201_091204_729525_22D732DE X-CRM114-Status: GOOD ( 28.08 ) 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 , Marc Zyngier , wangjingyi11@huawei.com, Quentin Perret , lushenming@huawei.com, linux-kernel@vger.kernel.org, yezengruan@huawei.com, James Morse , linux-arm-kernel@lists.infradead.org, Catalin Marinas , 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 Ck9uIDIwMjAvMTIvMSAyMTo0NiwgV2lsbCBEZWFjb24gd3JvdGU6Cj4gT24gVHVlLCBEZWMgMDEs IDIwMjAgYXQgMTA6MzA6NDFBTSArMDgwMCwgd2FuZ3lhbmFuIChZKSB3cm90ZToKPj4gT24gMjAy MC8xMi8xIDA6MDEsIFdpbGwgRGVhY29uIHdyb3RlOgo+Pj4gT24gTW9uLCBOb3YgMzAsIDIwMjAg YXQgMTE6MjQ6MTlQTSArMDgwMCwgd2FuZ3lhbmFuIChZKSB3cm90ZToKPj4+PiBPbiAyMDIwLzEx LzMwIDIxOjM0LCBXaWxsIERlYWNvbiB3cm90ZToKPj4+Pj4gT24gTW9uLCBOb3YgMzAsIDIwMjAg YXQgMDg6MTg6NDZQTSArMDgwMCwgWWFuYW4gV2FuZyB3cm90ZToKPj4+Pj4+IGRpZmYgLS1naXQg YS9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jIGIvYXJjaC9hcm02NC9rdm0vaHlwL3BndGFi bGUuYwo+Pj4+Pj4gaW5kZXggNjk2YjZhYTgzZmFmLi5mZWM4ZGM5ZjJiYWEgMTAwNjQ0Cj4+Pj4+ PiAtLS0gYS9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jCj4+Pj4+PiArKysgYi9hcmNoL2Fy bTY0L2t2bS9oeXAvcGd0YWJsZS5jCj4+Pj4+PiBAQCAtNTAwLDYgKzUwMCw5IEBAIHN0YXRpYyBp bnQgc3RhZ2UyX21hcF93YWxrX3RhYmxlX3ByZSh1NjQgYWRkciwgdTY0IGVuZCwgdTMyIGxldmVs LAo+Pj4+Pj4gICAgIAlyZXR1cm4gMDsKPj4+Pj4+ICAgICB9Cj4+Pj4+PiArc3RhdGljIHZvaWQg c3RhZ2UyX2ZsdXNoX2RjYWNoZSh2b2lkICphZGRyLCB1NjQgc2l6ZSk7Cj4+Pj4+PiArc3RhdGlj IGJvb2wgc3RhZ2UyX3B0ZV9jYWNoZWFibGUoa3ZtX3B0ZV90IHB0ZSk7Cj4+Pj4+PiArCj4+Pj4+ PiAgICAgc3RhdGljIGludCBzdGFnZTJfbWFwX3dhbGtfbGVhZih1NjQgYWRkciwgdTY0IGVuZCwg dTMyIGxldmVsLCBrdm1fcHRlX3QgKnB0ZXAsCj4+Pj4+PiAgICAgCQkJCXN0cnVjdCBzdGFnZTJf bWFwX2RhdGEgKmRhdGEpCj4+Pj4+PiAgICAgewo+Pj4+Pj4gQEAgLTUwNyw5ICs1MTAsMTcgQEAg c3RhdGljIGludCBzdGFnZTJfbWFwX3dhbGtfbGVhZih1NjQgYWRkciwgdTY0IGVuZCwgdTMyIGxl dmVsLCBrdm1fcHRlX3QgKnB0ZXAsCj4+Pj4+PiAgICAgCXN0cnVjdCBwYWdlICpwYWdlID0gdmly dF90b19wYWdlKHB0ZXApOwo+Pj4+Pj4gICAgIAlpZiAoZGF0YS0+YW5jaG9yKSB7Cj4+Pj4+PiAt CQlpZiAoa3ZtX3B0ZV92YWxpZChwdGUpKQo+Pj4+Pj4gKwkJaWYgKGt2bV9wdGVfdmFsaWQocHRl KSkgewo+Pj4+Pj4gKwkJCWt2bV9zZXRfaW52YWxpZF9wdGUocHRlcCk7Cj4+Pj4+PiArCQkJa3Zt X2NhbGxfaHlwKF9fa3ZtX3RsYl9mbHVzaF92bWlkX2lwYSwgZGF0YS0+bW11LAo+Pj4+Pj4gKwkJ CQkgICAgIGFkZHIsIGxldmVsKTsKPj4+Pj4+ICAgICAJCQlwdXRfcGFnZShwYWdlKTsKPj4+Pj4g VGhpcyBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gbWU6IHRoZSBwYWdlLXRhYmxlIHBhZ2VzIHdlJ3Jl IHdhbGtpbmcgd2hlbiB0aGUKPj4+Pj4gYW5jaG9yIGlzIHNldCBhcmUgbm90IGFjY2Vzc2libGUg dG8gdGhlIGhhcmR3YXJlIHdhbGtlciBiZWNhdXNlIHdlIHVuaG9va2VkCj4+Pj4+IHRoZSBlbnRp cmUgc3ViLXRhYmxlIGluIHN0YWdlMl9tYXBfd2Fsa190YWJsZV9wcmUoKSwgd2hpY2ggaGFzIHRo ZSBuZWNlc3NhcnkKPj4+Pj4gVExCIGludmFsaWRhdGlvbi4KPj4+Pj4KPj4+Pj4gQXJlIHlvdSBz ZWVpbmcgYSBwcm9ibGVtIGluIHByYWN0aWNlIGhlcmU/Cj4+Pj4gWWVzLCBJIGluZGVlZCBmaW5k IGEgcHJvYmxlbSBpbiBwcmFjdGljZS4KPj4+Pgo+Pj4+IFdoZW4gdGhlIG1pZ3JhdGlvbiB3YXMg Y2FuY2VsbGVkLCBhIFRMQiBjb25mbGljIGFib3J0wqAgd2FzIGZvdW5kIGluIGd1ZXN0Lgo+Pj4+ Cj4+Pj4gVGhpcyBwcm9ibGVtIGlzIGZpeGVkIGJlZm9yZSByZXdvcmsgb2YgdGhlIHBhZ2UgdGFi bGUgY29kZSwgeW91IGNhbiBoYXZlIGEKPj4+PiBsb29rIGluIHRoZSBmb2xsb3dpbmcgdHdvIGxp bmtzOgo+Pj4+Cj4+Pj4gaHR0cHM6Ly9naXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5l bC9naXQvdG9ydmFsZHMvbGludXguZ2l0L2NvbW1pdC8/aWQ9M2MzNzM2Y2QzMmJmNTE5N2FlZDE0 MTBhZTgyNmQyZDI1NGE1YjI3Nwo+Pj4+Cj4+Pj4gaHR0cHM6Ly9saXN0cy5jcy5jb2x1bWJpYS5l ZHUvcGlwZXJtYWlsL2t2bWFybS8yMDE5LU1hcmNoLzAzNTAzMS5odG1sCj4+PiBPaywgbGV0J3Mg Z28gdGhyb3VnaCB0aGlzLCBiZWNhdXNlIEkgc3RpbGwgZG9uJ3Qgc2VlIHRoZSBidWcuIFBsZWFz ZSBjb3JyZWN0Cj4+PiBtZSBpZiB5b3Ugc3BvdCBhbnkgbWlzdGFrZXM6Cj4+Pgo+Pj4gICAgIDEu IFdlIGhhdmUgYSBibG9jayBtYXBwaW5nIGZvciBYID0+IFkKPj4+ICAgICAyLiBEaXJ0eSBsb2dn aW5nIGlzIGVuYWJsZWQsIHNvIHRoZSBibG9jayBtYXBwaW5nIGlzIHdyaXRlLXByb3RlY3RlZCBh bmQKPj4+ICAgICAgICBlbmRzIHVwIGJlaW5nIHNwbGl0IGludG8gcGFnZSBtYXBwaW5ncwo+Pj4g ICAgIDMuIERpcnR5IGxvZ2dpbmcgaXMgZGlzYWJsZWQgZHVlIHRvIGEgZmFpbGVkIG1pZ3JhdGlv bi4KPj4+Cj4+PiAtLS0gQXQgdGhpcyBwb2ludCwgSSB0aGluayB3ZSBhZ3JlZSB0aGF0IHRoZSBz dGF0ZSBvZiB0aGUgTU1VIGlzIGFscmlnaHQgLS0tCj4+Pgo+Pj4gICAgIDQuIFdlIHRha2UgYSBz dGFnZS0yIGZhdWx0IGFuZCB3YW50IHRvIHJlaW5zdGFsbCB0aGUgYmxvY2sgbWFwcGluZzoKPj4+ Cj4+PiAgICAgICAgYS4ga3ZtX3BndGFibGVfc3RhZ2UyX21hcCgpIGlzIGludm9rZWQgdG8gaW5z dGFsbCB0aGUgYmxvY2sgbWFwcGluZwo+Pj4gICAgICAgIGIuIHN0YWdlMl9tYXBfd2Fsa190YWJs ZV9wcmUoKSBmaW5kcyBhIHRhYmxlIHdoZXJlIHdlIHdvdWxkIGxpa2UgdG8KPj4+ICAgICAgICAg ICBpbnN0YWxsIHRoZSBibG9jazoKPj4+Cj4+PiAJaS4gICBUaGUgYW5jaG9yIGlzIHNldCB0byBw b2ludCBhdCB0aGlzIGVudHJ5Cj4+PiAJaWkuICBUaGUgZW50cnkgaXMgbWFkZSBpbnZhbGlkCj4+ PiAJaWlpLiBXZSBpbnZhbGlkYXRlIHRoZSBUTEIgZm9yIHRoZSBpbnB1dCBhZGRyZXNzLiBUaGlz IGlzCj4+PiAJICAgICBUTEJJIElQQVMyU0UxSVMgd2l0aG91dCBsZXZlbCBoaW50IGFuZCB0aGVu IFRMQkkgVk1BTExFMUlTLgo+Pj4KPj4+IAkqKiogQXQgdGhpcyBwb2ludCwgdGhlIHBhZ2UtdGFi bGUgcG9pbnRlZCB0byBieSB0aGUgb2xkIHRhYmxlIGVudHJ5Cj4+PiAJICAgIGlzIG5vdCByZWFj aGFibGUgdG8gdGhlIGhhcmR3YXJlIHdhbGtlciAqKioKPj4+Cj4+PiAgICAgICAgYy4gc3RhZ2Uy X21hcF93YWxrX2xlYWYoKSBpcyBjYWxsZWQgZm9yIGVhY2ggbGVhZiBlbnRyeSBpbiB0aGUKPj4+ ICAgICAgICAgICBub3ctdW5yZWFjaGFibGUgc3VidHJlZSwgZHJvcHBpbmcgcGFnZS1yZWZlcmVu Y2VzIGZvciBlYWNoIHZhbGlkCj4+PiAJZW50cnkgaXQgZmluZHMuCj4+PiAgICAgICAgZC4gc3Rh Z2UyX21hcF93YWxrX3RhYmxlX3Bvc3QoKSBpcyBldmVudHVhbGx5IGNhbGxlZCBmb3IgdGhlIGVu dHJ5Cj4+PiAgICAgICAgICAgd2hpY2ggd2UgY2xlYXJlZCBiYWNrIGluIGIuaWksIHNvIHdlIGlu c3RhbGwgdGhlIG5ldyBibG9jayBtYXBwaW5nLgo+Pj4KPj4+IFlvdSBhcmUgcHJvcG9zaW5nIHRv IGFkZCBhZGRpdGlvbmFsIFRMQiBpbnZhbGlkYXRpb24gdG8gKGMpLCBidXQgSSBkb24ndAo+Pj4g dGhpbmsgdGhhdCBpcyBuZWNlc3NhcnksIHRoYW5rcyB0byB0aGUgaW52YWxpZGF0aW9uIGFscmVh ZHkgcGVyZm9ybWVkIGluCj4+PiBiLmlpaS4gV2hhdCBhbSBJIG1pc3NpbmcgaGVyZT8KPj4gVGhl IHBvaW50IGlzIGF0IGIuaWlpIHdoZXJlIHRoZSBUTEJJIGlzIG5vdCBlbm91Z2guIFRoZXJlIGFy ZSBtYW55IHBhZ2UKPj4gbWFwcGluZ3MgdGhhdCB3ZSBuZWVkIHRvIG1lcmdlIGludG8gYSBibG9j ayBtYXBwaW5nLgo+Pgo+PiBXZSBpbnZhbGlkYXRlIHRoZSBUTEIgZm9yIHRoZSBpbnB1dCBhZGRy ZXNzIHdpdGhvdXQgbGV2ZWwgaGludCBhdCBiLmlpaSwgYnV0Cj4+IHRoaXMgb3BlcmF0aW9uIGp1 c3QgZmx1c2ggVExCIGZvciBvbmUgcGFnZSBtYXBwaW5nLCB0aGVyZQo+Pgo+PiBhcmUgc3RpbGwg c29tZSBUTEIgZW50cmllcyBmb3IgdGhlIG90aGVyIHBhZ2UgbWFwcGluZ3MgaW4gdGhlIGNhY2hl LCB0aGUgTU1VCj4+IGhhcmR3YXJlIHdhbGtlciBjYW4gc3RpbGwgaGl0IHRoZXNlIGVudHJpZXMg bmV4dCB0aW1lLgo+IEFoLCB5ZXMsIEkgc2VlLiBUaGFua3MuIEkgaGFkbid0IGNvbnNpZGVyZWQg dGhlIGNhc2Ugd2hlcmUgdGhlcmUgYXJlIHRhYmxlCj4gZW50cmllcyBiZW5lYXRoIHRoZSBhbmNo b3IuIFNvIGhvdyBhYm91dCB0aGUgZGlmZiBiZWxvdz8KPgo+IFdpbGwKPgo+IC0tLT44CgpIaSwg SSB0aGluayBpdCdzIGluYXBwcm9wcmlhdGUgdG8gcHV0IHRoZSBUTEJJIG9mIGFsbCB0aGUgbGVh ZiBlbnRyaWVzIAppbiBmdW5jdGlvbiBzdGFnZTJfbWFwX3dhbGtfdGFibGVfcG9zdCgpLAoKYmVj YXVzZSB0aGUgKnB0ZXAgbXVzdCBiZSBhbiB1cHBlciB0YWJsZSBlbnRyeSB3aGVuIHdlIGVudGVy IApzdGFnZTJfbWFwX3dhbGtfdGFibGVfcG9zdCgpLgoKV2Ugc2hvdWxkIG1ha2UgdGhlIFRMQkkg Zm9yIGV2ZXJ5IGxlYWYgZW50cnkgbm90IHRhYmxlIGVudHJ5IGluIHRoZSBsYXN0IApsb29rdXAg bGV2ZWwswqAganVzdCBhcyBJIGFtIHByb3Bvc2luZwoKdG8gYWRkIHRoZSBhZGRpdGlvbmFsIFRM QkkgaW4gZnVuY3Rpb24gc3RhZ2UyX21hcF93YWxrX2xlYWYoKS4KClRoYW5rcy4KCgpZYW5hbgoK Pgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybTY0L2t2bS9oeXAvcGd0YWJsZS5jIGIvYXJjaC9hcm02 NC9rdm0vaHlwL3BndGFibGUuYwo+IGluZGV4IDAyNzFiNGEzYjlmZS4uMTI1MjZkOGM3YWU0IDEw MDY0NAo+IC0tLSBhL2FyY2gvYXJtNjQva3ZtL2h5cC9wZ3RhYmxlLmMKPiArKysgYi9hcmNoL2Fy bTY0L2t2bS9oeXAvcGd0YWJsZS5jCj4gQEAgLTQ5Myw3ICs0OTMsNyBAQCBzdGF0aWMgaW50IHN0 YWdlMl9tYXBfd2Fsa190YWJsZV9wcmUodTY0IGFkZHIsIHU2NCBlbmQsIHUzMiBsZXZlbCwKPiAg IAkJcmV0dXJuIDA7Cj4gICAKPiAgIAlrdm1fc2V0X2ludmFsaWRfcHRlKHB0ZXApOwo+IC0Ja3Zt X2NhbGxfaHlwKF9fa3ZtX3RsYl9mbHVzaF92bWlkX2lwYSwgZGF0YS0+bW11LCBhZGRyLCAwKTsK PiArCS8qIFRMQiBpbnZhbGlkYXRpb24gaXMgZGVmZXJyZWQgdW50aWwgdGhlIF9wb3N0IGhhbmRs ZXIgKi8KPiAgIAlkYXRhLT5hbmNob3IgPSBwdGVwOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+IEBA IC01NDcsMTEgKzU0NywyMSBAQCBzdGF0aWMgaW50IHN0YWdlMl9tYXBfd2Fsa190YWJsZV9wb3N0 KHU2NCBhZGRyLCB1NjQgZW5kLCB1MzIgbGV2ZWwsCj4gICAJCQkJICAgICAgc3RydWN0IHN0YWdl Ml9tYXBfZGF0YSAqZGF0YSkKPiAgIHsKPiAgIAlpbnQgcmV0ID0gMDsKPiArCWt2bV9wdGVfdCBw dGUgPSAqcHRlcDsKPiAgIAo+ICAgCWlmICghZGF0YS0+YW5jaG9yKQo+ICAgCQlyZXR1cm4gMDsK PiAgIAo+IC0JZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25nKWt2bV9wdGVfZm9sbG93KCpwdGVwKSk7 Cj4gKwlrdm1fc2V0X2ludmFsaWRfcHRlKHB0ZXApOwo+ICsKPiArCS8qCj4gKwkgKiBJbnZhbGlk YXRlIHRoZSB3aG9sZSBzdGFnZS0yLCBhcyB3ZSBtYXkgaGF2ZSBudW1lcm91cyBsZWFmCj4gKwkg KiBlbnRyaWVzIGJlbG93IHVzIHdoaWNoIHdvdWxkIG90aGVyd2lzZSBuZWVkIGludmFsaWRhdGlu Zwo+ICsJICogaW5kaXZpZHVhbGx5Lgo+ICsJICovCj4gKwlrdm1fY2FsbF9oeXAoX19rdm1fdGxi X2ZsdXNoX3ZtaWQsIGRhdGEtPm1tdSk7Cj4gKwo+ICsJZnJlZV9wYWdlKCh1bnNpZ25lZCBsb25n KWt2bV9wdGVfZm9sbG93KHB0ZSkpOwo+ICAgCXB1dF9wYWdlKHZpcnRfdG9fcGFnZShwdGVwKSk7 Cj4gICAKPiAgIAlpZiAoZGF0YS0+YW5jaG9yID09IHB0ZXApIHsKPiAuCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==