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=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS 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 A09B2C433DF for ; Mon, 8 Jun 2020 13:07:50 +0000 (UTC) Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (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 657FB2076C; Mon, 8 Jun 2020 13:07:50 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sourceforge.net header.i=@sourceforge.net header.b="ObiA/kQT"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=sf.net header.i=@sf.net header.b="XXlTX5ug"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="up27qK9d" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 657FB2076C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=linux-f2fs-devel-bounces@lists.sourceforge.net Received: from [127.0.0.1] (helo=sfs-ml-1.v29.lw.sourceforge.com) by sfs-ml-1.v29.lw.sourceforge.com with esmtp (Exim 4.90_1) (envelope-from ) id 1jiHVF-0003x2-AW; Mon, 08 Jun 2020 13:07:49 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-1.v29.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jiHVE-0003wq-CU for linux-f2fs-devel@lists.sourceforge.net; Mon, 08 Jun 2020 13:07:48 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=In-Reply-To:Content-Transfer-Encoding:Content-Type: MIME-Version:References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=4MvahGenOGrK7TaF9Mk5ljP0kbkHWqkjmsJDndwmKU8=; b=ObiA/kQTw9ijpBBid7A3G7xPrM VmcgNU0rFg0Rl5dtTVhLllopZY2IFvrfOYucBR8Dh7c3RaD/30H9s3SJz7udCC3pE0exYhG4CEXQb vgpdFxx6jUsM14CyMCrCIztWA3qaLV50du2yxiZI+hT7zaw6tfZQ+rbMM+IFkcGKSZNw=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=In-Reply-To:Content-Transfer-Encoding:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=4MvahGenOGrK7TaF9Mk5ljP0kbkHWqkjmsJDndwmKU8=; b=XXlTX5ugnLA0fZOFCt04d3RQy6 +jdX+ZK+B3OI03nIvqnCXw88OU43U5bCgs/dhael/KseCVoJmA/3eL5074BAf2AWD44SzxAW6yMSB xVI0RcoWzDTt1pBB220iX29AtqLeX7P6fXBB7zdR/hQocEQRaX3N0MAVExQoT5vjzhcU=; Received: from mail.kernel.org ([198.145.29.99]) by sfi-mx-4.v28.lw.sourceforge.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92.2) id 1jiHVB-00GSjS-66 for linux-f2fs-devel@lists.sourceforge.net; Mon, 08 Jun 2020 13:07:48 +0000 Received: from localhost (unknown [104.132.1.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DF8992076C; Mon, 8 Jun 2020 13:07:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1591621655; bh=WB42G6Tb4c/hJxVzP2PTv/3cpqzVlOE3T/nUkDmSCgs=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=up27qK9dq0dyu3RAw1CCL3tMTsF6AVIa6Twt+CAmjxZp5hKJ6QzCByVPjjgh49wvR 6ZWiKIYU5+fKvsOwTY+eaWQM2qunLX55Vyt3uyfpdS6SJUCOMJWEjQggm74wrb56B+ k6qBvMzsxYEu+COmBkFjalENt/u20aSWH0QsXBVY= Date: Mon, 8 Jun 2020 06:07:34 -0700 From: Jaegeuk Kim To: Chao Yu Message-ID: <20200608130734.GB200855@google.com> References: <20200605042746.201180-1-daeho43@gmail.com> <36d3c98e-24bb-988c-57a3-82730cc75cbc@huawei.com> <3eade7bf-ce66-e502-24e7-e3a1e548dd77@huawei.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <3eade7bf-ce66-e502-24e7-e3a1e548dd77@huawei.com> X-Headers-End: 1jiHVB-00GSjS-66 Subject: Re: [f2fs-dev] [PATCH] f2fs: add F2FS_IOC_TRIM_FILE ioctl X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-f2fs-devel@lists.sourceforge.net, kernel-team@android.com, Daeho Jeong , linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net T24gMDYvMDgsIENoYW8gWXUgd3JvdGU6Cj4gT24gMjAyMC82LzggMTU6MTksIERhZWhvIEplb25n IHdyb3RlOgo+ID4gWWVzLCBJIGFncmVlIHdpdGggeW91IGFib3V0IGVhY2ggdmVuZG9yIGhhcyBk aWZmZXJlbnQgaW1wbGVtZW50YXRpb24gb24gZGlzY2FyZC4KPiA+IFNvLCB3ZSBtaWdodCBiZSBn b25uYSB1c2UgdGhlIGNvbWJpbmF0aW9uIG9mIHplcm9pbmcgYW5kIHNlbmQgZGlzY2FyZHMKPiA+ IGZvciBhIG1vcmUKPiA+IHNlY3VyZSBzb2x1dGlvbi4gOikKPiAKPiBJSVJDLCBjdXJyZW50IHNv bHV0aW9uIGlzOgo+IAo+IC0gcGluIGZpbGUKPiAtIGdldCBhbGwgYmxvY2sgYWRkcmVzc2VzIG9m IGZpbGUKPiAtIHdyaXRlIHplcm8gdG8gYmxvY2sgYWRkcmVzc2VzCj4gLSBpc3N1ZSBkaXNjYXJk Cj4gCj4gSXMgdGhhdCBjb3JyZWN0Pwo+IAo+IENvdWxkIHdlIGhhbmRsZSB0aG9zZSBsb2dpYyAo emVybyBvdXQgJiBkaXNjYXJkKSBpbiBuZXcgaW50ZXJmYWNlCj4gKG1heSBiZSBuYW1lZCBhcyB7 RjJGUyxFWFQ0fV9JT0NfU0VDX1RSSU1fRklMRSk/IHRoZW4gdXNlcnNwYWNlIGxvZ2ljCj4gY291 bGQgYmUgcXVpdGUgc2ltcGxlIGxhdGVyLCBhbmQgYWxzbyBtZW1jcHkgY291bGQgYmUgYXZvaWQg dG8gbWFrZQo+IGRlc3RydWN0aW9uIHByb2Nlc3MgbW9yZSBlZmZpY2llbnQuCgpXaGF0IGFib3V0 IGFkZGluZyBhIGZsYWcgdG8gZGV0ZXJtaW5lIGNhbGxpbmcgdW5tYXAgYW5kL29yIHplcm8gb3V0 PwoKPiAKPiBKdXN0IHJhdyBwcm9wb3NhbC4gOikKPiAKPiBUaGFua3MsCj4gCj4gPiBJIHRoaW5r IHdlIHN0aWxsIG5lZWQgYSBkaXNjYXJkIGludGVyZmFjZSB0byB1bm1hcCBmcm9tIHRoZSBtYXBw aW5nCj4gPiB0YWJsZSBvZiB0aGUgc3RvcmFnZSBkZXZpY2Ugc2lkZS4KPiA+IAo+ID4gVGhhbmtz LAo+ID4gCj4gPiAyMDIw64WEIDbsm5QgOOydvCAo7JuUKSDsmKTtm4QgMzo1NywgQ2hhbyBZdSA8 eXVjaGFvMEBodWF3ZWkuY29tPuuLmOydtCDsnpHshLE6Cj4gPj4KPiA+PiBPbiAyMDIwLzYvOCAx MTozNiwgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gPj4+IFllcywgdGhpcyBpcyBmb3Igc2VjdXJpdHkg a2V5IGRlc3RydWN0aW9uLgo+ID4+Pgo+ID4+PiBBRkFJSywgZGlzY2FyZCB3aWxsIHVubWFwIHRo ZSBkYXRhIGJsb2NrIGFuZCwgYWZ0ZXIgZG9uZSBpdCwKPiA+Pj4gd2UgY2FuIHJlYWQgZWl0aGVy IHplcm8gZGF0YSBvciBnYXJiYWdlIGRhdGEgZnJvbSB0aGF0IGJsb2NrIGRlcGVuZGluZwo+ID4+ PiBvbiBlTU1DL1VGUy4KPiA+Pgo+ID4+IFNpbmNlIHNwZWMgZGlkbid0IHJlc3RyaWN0IGhvdyB2 ZW5kb3IgaW1wbGVtZW50IHRoZSBlcmFzZSBpbnRlcmZhY2UsIHNvCj4gPj4gaW4gb3JkZXIgdG8g ZW5oYW5jZSBwZXJmb3JtYW5jZSBvZiBkaXNjYXJkIGludGVyZmFjZSwgdmVuZG9yIGNvdWxkIGlt cGxlbWVudAo+ID4+IGl0IGFzIGFuIGFzeW5jIG9uZSwgd2hpY2ggbWF5IG5vdCB6ZXJvIG1hcHBp bmcgZW50cnkoTDEgdGFibGUpLCBpbnN0ZWFkLCBpdAo+ID4+IGNvdWxkIHNldCByZWxhdGVkIGJp dG1hcCB0byBpbnZhbGlkIHRoYXQgbWFwcGluZyBlbnRyeSwgdGhhbiBsYXRlciBpZiBkZXZpY2UK PiA+PiBhbGxvdyB1c2VyIHRvIGFjY2VzcyB0aGF0IGludmFsaWQgbWFwcGluZyBlbnRyeSwga2V5 IGluZm8gbWF5IGJlIGV4cGxvc2VkLAo+ID4+Cj4gPj4gSXQncyBjb21wbGV0ZWx5IHVwIHRvIGhv dyB2ZW5kb3IgaW1wbGVtZW50IHRoZSBpbnRlcmZhY2UsIHNvIEkgdGhpbmsgdGhlcmUgaXMKPiA+ PiBzdGlsbCByaXNrIHRvIHVzZSBkaXNjYXJkLgo+ID4+Cj4gPj4gVGhhbmtzLAo+ID4+Cj4gPj4+ IEluIGEgdmlldyBwb2ludCBvZiByZWFkIGRhdGEsIGl0IG1pZ2h0IGJlIHRoZSBzYW1lIHdpdGgg emVyb2luZyB0aGUgZGF0YSBibG9jay4KPiA+Pj4gSG93ZXZlciwgc2luY2Ugd2UgY2FuIGV2ZW4g dW5tYXAgdGhhdCBibG9jaywgSSBiZWxpZXZlIGRpc2NhcmQgaXMKPiA+Pj4gc2FmZXIgdGhhbiB6 ZXJvaW5nIG91dC4KPiA+Pj4KPiA+Pj4gMjAyMOuFhCA27JuUIDjsnbwgKOyblCkg7Jik7KCEIDEx OjQ2LCBDaGFvIFl1IDx5dWNoYW8wQGh1YXdlaS5jb20+64uY7J20IOyekeyEsToKPiA+Pj4+Cj4g Pj4+PiBPbiAyMDIwLzYvNSAxMjoyNywgRGFlaG8gSmVvbmcgd3JvdGU6Cj4gPj4+Pj4gRnJvbTog RGFlaG8gSmVvbmcgPGRhZWhvamVvbmdAZ29vZ2xlLmNvbT4KPiA+Pj4+Pgo+ID4+Pj4+IEFkZGVk IGEgbmV3IGlvY3RsIHRvIHNlbmQgZGlzY2FyZCBjb21tYW5kcyB0byB3aG9sZSBkYXRhIGFyZWEg b2YKPiA+Pj4+PiBhIHJlZ3VsYXIgZmlsZSBmb3Igc2VjdXJpdHkgcmVhc29uLgo+ID4+Pj4KPiA+ Pj4+IEkgZ3Vlc3MgdGhpcyBpbnRlcmZhY2UgaXMgaW50cm9kdWNlZCBmb3Igc2VjdXJpdHkga2V5 IGRlc3RydWN0aW9uLCBpZiBJJ20KPiA+Pj4+IHJpZ2h0LCBob3dldmVyLCBJSVJDLCBkaXNjYXJk KGVyYXNlKSBzZW1hbnRpY3MgaW4gZU1NQy9VRlMgc3BlYyB3b24ndAo+ID4+Pj4gZ3VhcmFudGVl IHRoYXQgZGF0YSB3aGljaCB3YXMgZGlzY2FyZCBjb3VsZCBiZSB6ZXJvZWQgb3V0LCBzbyBhZnRl ciBkaXNjYXJkLAo+ID4+Pj4gdGhlIGtleSBzdGlsbCBoYXZlIHJpc2sgb2YgZXhwb3N1cmUuIFNv IGluc3RlYWQsIHNob3VsZCB3ZSB1c2Ugc2JfaXNzdWVfemVyb291dCgpPwo+ID4+Pj4KPiA+Pj4+ IFRoYW5rcywKPiA+Pj4+Cj4gPj4+Pj4KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBEYWVobyBKZW9u ZyA8ZGFlaG9qZW9uZ0Bnb29nbGUuY29tPgo+ID4+Pj4+IC0tLQo+ID4+Pj4+ICBmcy9mMmZzL2Yy ZnMuaCB8ICAgMSArCj4gPj4+Pj4gIGZzL2YyZnMvZmlsZS5jIHwgMTI5ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+Pj4+PiAgMiBmaWxlcyBjaGFu Z2VkLCAxMzAgaW5zZXJ0aW9ucygrKQo+ID4+Pj4+Cj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2ZzL2Yy ZnMvZjJmcy5oIGIvZnMvZjJmcy9mMmZzLmgKPiA+Pj4+PiBpbmRleCBjODEyZmI4ZTJkOWMuLjlh ZTgxZDBmZWZhMCAxMDA2NDQKPiA+Pj4+PiAtLS0gYS9mcy9mMmZzL2YyZnMuaAo+ID4+Pj4+ICsr KyBiL2ZzL2YyZnMvZjJmcy5oCj4gPj4+Pj4gQEAgLTQzNCw2ICs0MzQsNyBAQCBzdGF0aWMgaW5s aW5lIGJvb2wgX19oYXNfY3Vyc3VtX3NwYWNlKHN0cnVjdCBmMmZzX2pvdXJuYWwgKmpvdXJuYWws Cj4gPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfSU9SKEYyRlNf SU9DVExfTUFHSUMsIDE4LCBfX3U2NCkKPiA+Pj4+PiAgI2RlZmluZSBGMkZTX0lPQ19SRVNFUlZF X0NPTVBSRVNTX0JMT0NLUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAo+ID4+Pj4+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX0lPUihGMkZTX0lPQ1RMX01BR0lD LCAxOSwgX191NjQpCj4gPj4+Pj4gKyNkZWZpbmUgRjJGU19JT0NfVFJJTV9GSUxFICAgICAgICAg ICBfSU8oRjJGU19JT0NUTF9NQUdJQywgMjApCj4gPj4+Pj4KPiA+Pj4+PiAgI2RlZmluZSBGMkZT X0lPQ19HRVRfVk9MVU1FX05BTUUgICAgIEZTX0lPQ19HRVRGU0xBQkVMCj4gPj4+Pj4gICNkZWZp bmUgRjJGU19JT0NfU0VUX1ZPTFVNRV9OQU1FICAgICBGU19JT0NfU0VURlNMQUJFTAo+ID4+Pj4+ IGRpZmYgLS1naXQgYS9mcy9mMmZzL2ZpbGUuYyBiL2ZzL2YyZnMvZmlsZS5jCj4gPj4+Pj4gaW5k ZXggZGZhMWFjMmQ3NTFhLi41ODUwN2JiNTY0OWMgMTAwNjQ0Cj4gPj4+Pj4gLS0tIGEvZnMvZjJm cy9maWxlLmMKPiA+Pj4+PiArKysgYi9mcy9mMmZzL2ZpbGUuYwo+ID4+Pj4+IEBAIC0zNzQ5LDYg KzM3NDksMTMyIEBAIHN0YXRpYyBpbnQgZjJmc19yZXNlcnZlX2NvbXByZXNzX2Jsb2NrcyhzdHJ1 Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gPj4+Pj4gICAgICAgcmV0dXJuIHJl dDsKPiA+Pj4+PiAgfQo+ID4+Pj4+Cj4gPj4+Pj4gK3N0YXRpYyBpbnQgZjJmc190cmltX2ZpbGUo c3RydWN0IGZpbGUgKmZpbHApCj4gPj4+Pj4gK3sKPiA+Pj4+PiArICAgICBzdHJ1Y3QgaW5vZGUg Kmlub2RlID0gZmlsZV9pbm9kZShmaWxwKTsKPiA+Pj4+PiArICAgICBzdHJ1Y3QgZjJmc19zYl9p bmZvICpzYmkgPSBGMkZTX0lfU0IoaW5vZGUpOwo+ID4+Pj4+ICsgICAgIHN0cnVjdCBhZGRyZXNz X3NwYWNlICptYXBwaW5nID0gaW5vZGUtPmlfbWFwcGluZzsKPiA+Pj4+PiArICAgICBzdHJ1Y3Qg YmlvICpiaW8gPSBOVUxMOwo+ID4+Pj4+ICsgICAgIHN0cnVjdCBibG9ja19kZXZpY2UgKnByZXZf YmRldiA9IE5VTEw7Cj4gPj4+Pj4gKyAgICAgbG9mZl90IGZpbGVfc2l6ZTsKPiA+Pj4+PiArICAg ICBwZ29mZl90IGluZGV4LCBwZ19zdGFydCA9IDAsIHBnX2VuZDsKPiA+Pj4+PiArICAgICBibG9j a190IHByZXZfYmxvY2sgPSAwLCBsZW4gPSAwOwo+ID4+Pj4+ICsgICAgIGludCByZXQgPSAwOwo+ ID4+Pj4+ICsKPiA+Pj4+PiArICAgICBpZiAoIWYyZnNfaHdfc3VwcG9ydF9kaXNjYXJkKHNiaSkp Cj4gPj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVPUE5PVFNVUFA7Cj4gPj4+Pj4gKwo+ID4+ Pj4+ICsgICAgIGlmICghU19JU1JFRyhpbm9kZS0+aV9tb2RlKSB8fCBmMmZzX2lzX2F0b21pY19m aWxlKGlub2RlKSB8fAo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBmMmZzX2NvbXByZXNz ZWRfZmlsZShpbm9kZSkpCj4gPj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ Pj4+PiArCj4gPj4+Pj4gKyAgICAgaWYgKGYyZnNfcmVhZG9ubHkoc2JpLT5zYikpCj4gPj4+Pj4g KyAgICAgICAgICAgICByZXR1cm4gLUVST0ZTOwo+ID4+Pj4+ICsKPiA+Pj4+PiArICAgICByZXQg PSBtbnRfd2FudF93cml0ZV9maWxlKGZpbHApOwo+ID4+Pj4+ICsgICAgIGlmIChyZXQpCj4gPj4+ Pj4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4+Pj4+ICsKPiA+Pj4+PiArICAgICBpbm9k ZV9sb2NrKGlub2RlKTsKPiA+Pj4+PiArCj4gPj4+Pj4gKyAgICAgZmlsZV9zaXplID0gaV9zaXpl X3JlYWQoaW5vZGUpOwo+ID4+Pj4+ICsgICAgIGlmICghZmlsZV9zaXplKQo+ID4+Pj4+ICsgICAg ICAgICAgICAgZ290byBlcnI7Cj4gPj4+Pj4gKyAgICAgcGdfZW5kID0gKHBnb2ZmX3Qpcm91bmRf dXAoZmlsZV9zaXplLCBQQUdFX1NJWkUpID4+IFBBR0VfU0hJRlQ7Cj4gPj4+Pj4gKwo+ID4+Pj4+ ICsgICAgIHJldCA9IGYyZnNfY29udmVydF9pbmxpbmVfaW5vZGUoaW5vZGUpOwo+ID4+Pj4+ICsg ICAgIGlmIChyZXQpCj4gPj4+Pj4gKyAgICAgICAgICAgICBnb3RvIGVycjsKPiA+Pj4+PiArCj4g Pj4+Pj4gKyAgICAgZG93bl93cml0ZSgmRjJGU19JKGlub2RlKS0+aV9nY19yd3NlbVtXUklURV0p Owo+ID4+Pj4+ICsgICAgIGRvd25fd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfbW1hcF9zZW0pOwo+ ID4+Pj4+ICsKPiA+Pj4+PiArICAgICByZXQgPSBmaWxlbWFwX3dyaXRlX2FuZF93YWl0KG1hcHBp bmcpOwo+ID4+Pj4+ICsgICAgIGlmIChyZXQpCj4gPj4+Pj4gKyAgICAgICAgICAgICBnb3RvIG91 dDsKPiA+Pj4+PiArCj4gPj4+Pj4gKyAgICAgdHJ1bmNhdGVfaW5vZGVfcGFnZXMobWFwcGluZywg MCk7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsgICAgIGZvciAoaW5kZXggPSBwZ19zdGFydDsgaW5kZXgg PCBwZ19lbmQ7KSB7Cj4gPj4+Pj4gKyAgICAgICAgICAgICBzdHJ1Y3QgZG5vZGVfb2ZfZGF0YSBk bjsKPiA+Pj4+PiArICAgICAgICAgICAgIHVuc2lnbmVkIGludCBlbmRfb2Zmc2V0Owo+ID4+Pj4+ ICsKPiA+Pj4+PiArICAgICAgICAgICAgIHNldF9uZXdfZG5vZGUoJmRuLCBpbm9kZSwgTlVMTCwg TlVMTCwgMCk7Cj4gPj4+Pj4gKyAgICAgICAgICAgICByZXQgPSBmMmZzX2dldF9kbm9kZV9vZl9k YXRhKCZkbiwgaW5kZXgsIExPT0tVUF9OT0RFKTsKPiA+Pj4+PiArICAgICAgICAgICAgIGlmIChy ZXQpCj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGdvdG8gb3V0Owo+ID4+Pj4+ICsKPiA+ Pj4+PiArICAgICAgICAgICAgIGVuZF9vZmZzZXQgPSBBRERSU19QRVJfUEFHRShkbi5ub2RlX3Bh Z2UsIGlub2RlKTsKPiA+Pj4+PiArICAgICAgICAgICAgIGlmIChwZ19lbmQgPCBlbmRfb2Zmc2V0 ICsgaW5kZXgpCj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGVuZF9vZmZzZXQgPSBwZ19l bmQgLSBpbmRleDsKPiA+Pj4+PiArCj4gPj4+Pj4gKyAgICAgICAgICAgICBmb3IgKDsgZG4ub2Zz X2luX25vZGUgPCBlbmRfb2Zmc2V0Owo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRuLm9mc19pbl9ub2RlKyssIGluZGV4KyspIHsKPiA+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGJsb2NrX2RldmljZSAqY3VyX2JkZXY7Cj4gPj4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgIGJsb2NrX3QgYmxrYWRkciA9IGYyZnNfZGF0YV9ibGthZGRyKCZkbik7Cj4gPj4+ Pj4gKwo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICBpZiAoX19pc192YWxpZF9kYXRhX2Js a2FkZHIoYmxrYWRkcikpIHsKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp ZiAoIWYyZnNfaXNfdmFsaWRfYmxrYWRkcihGMkZTX0lfU0IoaW5vZGUpLAo+ID4+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxrYWRkciwgREFUQV9HRU5FUklDX0VO SEFOQ0UpKSB7Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSAtRUZTQ09SUlVQVEVEOwo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ290byBvdXQ7Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKPiA+Pj4+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKPiA+Pj4+PiArCj4gPj4+Pj4gKyAgICAgICAg ICAgICAgICAgICAgIGN1cl9iZGV2ID0gZjJmc190YXJnZXRfZGV2aWNlKHNiaSwgYmxrYWRkciwg TlVMTCk7Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgIGlmIChmMmZzX2lzX211bHRpX2Rl dmljZShzYmkpKSB7Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGkg PSBmMmZzX3RhcmdldF9kZXZpY2VfaW5kZXgoc2JpLCBibGthZGRyKTsKPiA+Pj4+PiArCj4gPj4+ Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmxrYWRkciAtPSBGREVWKGkpLnN0YXJ0 X2JsazsKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgfQo+ID4+Pj4+ICsKPiA+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbikgewo+ID4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChwcmV2X2JkZXYgPT0gY3VyX2JkZXYgJiYKPiA+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsa2FkZHIgPT0gcHJldl9ibG9jayArIGxl bikgewo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKys7 Cj4gPj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiA+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IF9fYmxrZGV2X2lzc3Vl X2Rpc2NhcmQocHJldl9iZGV2LAo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTRUNUT1JfRlJPTV9CTE9DSyhwcmV2X2Jsb2NrKSwKPiA+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVE9SX0ZST01f QkxPQ0sobGVuKSwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR0ZQX05PRlMsIDAsICZiaW8pOwo+ID4+Pj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKHJldCkKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7Cj4gPj4+Pj4gKz4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSAwOwo+ID4+Pj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIH0KPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgfQo+ID4+Pj4+ICsK PiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgaWYgKCFsZW4pIHsKPiA+Pj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2JkZXYgPSBjdXJfYmRldjsKPiA+Pj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2Jsb2NrID0gYmxrYWRkcjsKPiA+Pj4+PiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSAxOwo+ID4+Pj4+ICsgICAgICAgICAg ICAgICAgICAgICB9Cj4gPj4+Pj4gKyAgICAgICAgICAgICB9Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsg ICAgICAgICAgICAgZjJmc19wdXRfZG5vZGUoJmRuKTsKPiA+Pj4+PiArICAgICB9Cj4gPj4+Pj4g Kwo+ID4+Pj4+ICsgICAgIGlmIChsZW4pCj4gPj4+Pj4gKyAgICAgICAgICAgICByZXQgPSBfX2Js a2Rldl9pc3N1ZV9kaXNjYXJkKHByZXZfYmRldiwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFNFQ1RPUl9GUk9NX0JMT0NLKHByZXZfYmxvY2spLAo+ID4+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0VDVE9SX0ZST01fQkxPQ0so bGVuKSwKPiA+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9O T0ZTLCAwLCAmYmlvKTsKPiA+Pj4+PiArb3V0Ogo+ID4+Pj4+ICsgICAgIGlmIChiaW8pIHsKPiA+ Pj4+PiArICAgICAgICAgICAgIHJldCA9IHN1Ym1pdF9iaW9fd2FpdChiaW8pOwo+ID4+Pj4+ICsg ICAgICAgICAgICAgYmlvX3B1dChiaW8pOwo+ID4+Pj4+ICsgICAgIH0KPiA+Pj4+PiArCj4gPj4+ Pj4gKyAgICAgdXBfd3JpdGUoJkYyRlNfSShpbm9kZSktPmlfbW1hcF9zZW0pOwo+ID4+Pj4+ICsg ICAgIHVwX3dyaXRlKCZGMkZTX0koaW5vZGUpLT5pX2djX3J3c2VtW1dSSVRFXSk7Cj4gPj4+Pj4g K2VycjoKPiA+Pj4+PiArICAgICBpbm9kZV91bmxvY2soaW5vZGUpOwo+ID4+Pj4+ICsgICAgIG1u dF9kcm9wX3dyaXRlX2ZpbGUoZmlscCk7Cj4gPj4+Pj4gKwo+ID4+Pj4+ICsgICAgIHJldHVybiBy ZXQ7Cj4gPj4+Pj4gK30KPiA+Pj4+PiArCj4gPj4+Pj4gIGxvbmcgZjJmc19pb2N0bChzdHJ1Y3Qg ZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpCj4gPj4+Pj4g IHsKPiA+Pj4+PiAgICAgICBpZiAodW5saWtlbHkoZjJmc19jcF9lcnJvcihGMkZTX0lfU0IoZmls ZV9pbm9kZShmaWxwKSkpKSkKPiA+Pj4+PiBAQCAtMzgzNSw2ICszOTYxLDggQEAgbG9uZyBmMmZz X2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25n IGFyZykKPiA+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiBmMmZzX3JlbGVhc2VfY29tcHJlc3Nf YmxvY2tzKGZpbHAsIGFyZyk7Cj4gPj4+Pj4gICAgICAgY2FzZSBGMkZTX0lPQ19SRVNFUlZFX0NP TVBSRVNTX0JMT0NLUzoKPiA+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiBmMmZzX3Jlc2VydmVf Y29tcHJlc3NfYmxvY2tzKGZpbHAsIGFyZyk7Cj4gPj4+Pj4gKyAgICAgY2FzZSBGMkZTX0lPQ19U UklNX0ZJTEU6Cj4gPj4+Pj4gKyAgICAgICAgICAgICByZXR1cm4gZjJmc190cmltX2ZpbGUoZmls cCk7Cj4gPj4+Pj4gICAgICAgZGVmYXVsdDoKPiA+Pj4+PiAgICAgICAgICAgICAgIHJldHVybiAt RU5PVFRZOwo+ID4+Pj4+ICAgICAgIH0KPiA+Pj4+PiBAQCAtNDAwNCw2ICs0MTMyLDcgQEAgbG9u ZyBmMmZzX2NvbXBhdF9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlsZSwgdW5zaWduZWQgaW50IGNtZCwg dW5zaWduZWQgbG9uZyBhcmcpCj4gPj4+Pj4gICAgICAgY2FzZSBGMkZTX0lPQ19HRVRfQ09NUFJF U1NfQkxPQ0tTOgo+ID4+Pj4+ICAgICAgIGNhc2UgRjJGU19JT0NfUkVMRUFTRV9DT01QUkVTU19C TE9DS1M6Cj4gPj4+Pj4gICAgICAgY2FzZSBGMkZTX0lPQ19SRVNFUlZFX0NPTVBSRVNTX0JMT0NL UzoKPiA+Pj4+PiArICAgICBjYXNlIEYyRlNfSU9DX1RSSU1fRklMRToKPiA+Pj4+PiAgICAgICAg ICAgICAgIGJyZWFrOwo+ID4+Pj4+ICAgICAgIGRlZmF1bHQ6Cj4gPj4+Pj4gICAgICAgICAgICAg ICByZXR1cm4gLUVOT0lPQ1RMQ01EOwo+ID4+Pj4+Cj4gPj4+IC4KPiA+Pj4KPiA+IC4KPiA+IAo+ IAo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g TGludXgtZjJmcy1kZXZlbCBtYWlsaW5nIGxpc3QKPiBMaW51eC1mMmZzLWRldmVsQGxpc3RzLnNv dXJjZWZvcmdlLm5ldAo+IGh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3Rp bmZvL2xpbnV4LWYyZnMtZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpMaW51eC1mMmZzLWRldmVsIG1haWxpbmcgbGlzdApMaW51eC1mMmZzLWRl dmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9s aXN0cy9saXN0aW5mby9saW51eC1mMmZzLWRldmVsCg==