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=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_2 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 0C1C4C10F27 for ; Mon, 9 Mar 2020 11:20:40 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 C84CC2051A for ; Mon, 9 Mar 2020 11:20:39 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="TQop0+tU"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="JTxEF3Xs" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C84CC2051A Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:References:Mime-Version:In-Reply-To: Date:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uee8tbY2iT8yJL7A4TKnfrsJrMwmh08YxMgUSQEPrfA=; b=TQop0+tUxqfqDE fSmJeGjFu5iPknmIC6jpZJnV+MKBl7Vlfls3x4zPPGVDYbeANGJbL6avWuM9GsyqActISMVEfUW9y Q2bgFNIi8o6PBfDRCK5ZXN7RlNa4vO+gR5/O5wPpS7GRLbSJZr4m8Ab7NVIesq5An1z/CJ9XyKd4y AkmMq6RfKd2Wg4bbxL1ghp7qZzzun4xBRyFZ0Jg4zqlgGk41QOGjZI+DdWH3qxhds9a7RyGjXCOXz 5dY0MxYFlZo2SRclpTjq/ZzEUD9SqOtEYoAmWbqiMdYKBXBVvTiD9of60mCz3PosSKS+nPzqs4B5p LlL/DsGGSKvYXF/unm/Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1jBGSM-000261-N2; Mon, 09 Mar 2020 11:20:22 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by bombadil.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1jBGSI-00024h-M6 for linux-mtd@lists.infradead.org; Mon, 09 Mar 2020 11:20:21 +0000 Received: from epcas1p4.samsung.com (unknown [182.195.41.48]) by mailout2.samsung.com (KnoxPortal) with ESMTP id 20200309112014epoutp02021274bfabdfd675ab42d9dabc2782cc~6nssgwIG_0191001910epoutp02c for ; Mon, 9 Mar 2020 11:20:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20200309112014epoutp02021274bfabdfd675ab42d9dabc2782cc~6nssgwIG_0191001910epoutp02c DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1583752814; bh=z4rFFuEObU2xLi6rfDKZPdyVQoD/mlisBDKw4ZFFrB8=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=JTxEF3XsvWCIurLoouBPtYtR3oGz6AC+Qg0UtGXHM0fLQZQw4/ZrqOX7t4G1Uuo8V aVyvGsgfmuZ/IfTEBdsspHD32zRiJlSRN3tuwvtI3zqO8dmeVSNpb5BGOtOTWFDqIe b4MFvJmRhT7Uvw9ilVPoeHRePrSt6wghVLlLFRfk= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p1.samsung.com (KnoxPortal) with ESMTP id 20200309112014epcas1p16a8e429435e064dd2625511716c2e97f~6nssWpqmU0561005610epcas1p1F; Mon, 9 Mar 2020 11:20:14 +0000 (GMT) Received: from epsmges1p4.samsung.com (unknown [182.195.40.161]) by epsnrtp4.localdomain (Postfix) with ESMTP id 48bbNs14JTzMqYkk; Mon, 9 Mar 2020 11:20:13 +0000 (GMT) Received: from epcas1p4.samsung.com ( [182.195.41.48]) by epsmges1p4.samsung.com (Symantec Messaging Gateway) with SMTP id 93.B9.48019.C66266E5; Mon, 9 Mar 2020 20:20:12 +0900 (KST) Received: from epsmtrp2.samsung.com (unknown [182.195.40.14]) by epcas1p1.samsung.com (KnoxPortal) with ESMTPA id 20200309112012epcas1p143e04181e80cc0df08127dac332380a0~6nsqznIma0958209582epcas1p1g; Mon, 9 Mar 2020 11:20:12 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200309112012epsmtrp232358f8698615c5c7043d35f399fdd71~6nsqy8oPs0571105711epsmtrp2x; Mon, 9 Mar 2020 11:20:12 +0000 (GMT) X-AuditID: b6c32a38-257ff7000001bb93-84-5e66266cca2f Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id FC.10.10238.C66266E5; Mon, 9 Mar 2020 20:20:12 +0900 (KST) Received: from asdf (unknown [10.88.100.192]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20200309112012epsmtip17879f3242ff2739a1159ce6bad63417b~6nsqlgOJ02223322233epsmtip1G; Mon, 9 Mar 2020 11:20:12 +0000 (GMT) Message-ID: Subject: Re: [PATCH 1/3] mtd: spi-nor: reimplement block protection handling From: Jungseung Lee To: "chenxiang (M)" , Tudor Ambarus , Vignesh Raghavendra , linux-mtd@lists.infradead.org, js07.lee@gmail.com, Michael Walle Date: Mon, 09 Mar 2020 20:20:11 +0900 In-Reply-To: <61b1cc1a-1b2d-9537-3bb3-8a7b5157d7df@hisilicon.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOJsWRmVeSWpSXmKPExsWy7bCmgW6OWlqcwd52bYvr164wWmza38Rq 8XfOOyaL3U3L2C0ObzzDZPH29AZ2i49LHCz+n/3A7sDhsXPWXXaPx3M3snu0HHnL6rF5Sb3H nR9LGT2O39jO5HFgbwtbAHtUjk1GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJe Ym6qrZKLT4CuW2YO0FFKCmWJOaVAoYDE4mIlfTubovzSklSFjPziElul1IKUnAJDgwK94sTc 4tK8dL3k/FwrQwMDI1OgyoScjKmT/jMVtIVXzGx8x9TAuNSui5GTQ0LARGL68W7mLkYuDiGB HYwSL++3sEM4nxgldq/bzQjhfGOUWPvtClAZB1jL8l0eEPG9jBJb/69ng3AeMUp0/N/FDjKX V8BD4vXPz8wgtrCAj8S0rp1MIDabgJbEjd+bWEFsEYH7jBIn5weD2MwCbhKHl1wHq2ERUJVY dOIQWA2ngKPEmYdH2CBu1ZF4e6qPBeQIXgFBib87hCFa5SWat84Ge0FC4DmbxPHdJ5gh6l0k 2v8tYoewhSVeHd8CZUtJfH63F2pmscTOlRPZIZpbGCUeLV8CVWQs8e7tWrCPmQU0Jdbv0ocI K0rs/D2XEWIxn8S7rz2skEDhlehoE4IoUZJ486CFBcKWkLjwuJcVwvaQWNNyHhqgu5gkNjQ1 sU1gVJiF8M4sJO/MQli8gJF5FaNYakFxbnpqsWGBCXIEb2IEJ1Itix2Me875HGIU4GBU4uF9 IJ8aJ8SaWFZcmXuIUYKDWUmEt1ErOU6INyWxsiq1KD++qDQntfgQoykwsCcyS4km5wOTfF5J vKGpkbGxsYWJmbmZqbGSOO/DSM04IYH0xJLU7NTUgtQimD4mDk6pBkaW1VpfNlV+212rsf3a y4bF7BmGa5+xOlSdKOrjYTpQvPyLvV7zm9TMR3oS11bX3JoqfFxnftk3Md4DevqOWm8K0zln ej5nN4pxyXuiN5VbZ+6doieW1TesncsjJ7RPu+52eKXKae+q+iOlz59yrkzgDlp17Prv77mr 7gcJrTb/Kt9sV9oXvlyJpTgj0VCLuag4EQCeEVyZugMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrBLMWRmVeSWpSXmKPExsWy7bCSnG6OWlqcwbWjghbXr11htNi0v4nV 4u+cd0wWu5uWsVsc3niGyeLt6Q3sFh+XOFj8P/uB3YHDY+esu+wej+duZPdoOfKW1WPzknqP Oz+WMnocv7GdyePA3ha2APYoLpuU1JzMstQifbsEroypk/4zFbSFV8xsfMfUwLjUrouRg0NC wERi+S6PLkYuDiGB3YwSN1oWsXUxcgLFJSQe7fzCAlEjLHH4cDFEzQNGicYNu8BqeAU8JF7/ /MwMYgsL+EhM69rJBGKzCWhJ3Pi9iRWkQUTgPiNQ0VWwImYBN4nDS66DFbEIqEosOnGIFcTm FHCUOPPwCBvEhoNMEm9vTGaFaNCUaN3+mx3iIh2Jt6f6wC7iFRCU+LtDGKJEXqJ562zmCYyC s5B0zEKomoWkagEj8ypGydSC4tz03GLDAsO81HK94sTc4tK8dL3k/NxNjOD40NLcwXh5Sfwh RgEORiUe3gfyqXFCrIllxZW5hxglOJiVRHgbtZLjhHhTEiurUovy44tKc1KLDzFKc7AoifM+ zTsWKSSQnliSmp2aWpBaBJNl4uCUamAMStqtNV10y4b6H9EntrNKBv7Pmn0xIKPNy/n1vMw5 0zYuD9JfO+XG40lLAlYn6QsUzNzHqHclacrGyzN43XcqLL34t/eicQ7XZAn9YtOjPTO3qMwQ aFdnfJe2+feejv6afcrKYc0LZJeoiQu7lB/huHOW/fd6ea44i3PpZdcfLA/g+MpwkVVXiaU4 I9FQi7moOBEASQdbVYsCAAA= X-CMS-MailID: 20200309112012epcas1p143e04181e80cc0df08127dac332380a0 X-Msg-Generator: CA X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20200304110830epcas1p168bd480847959dc497ac5cc272fa2f80 References: <20200304110800.20658-1-js07.lee@samsung.com> <3b7e6d52-e7e2-c444-1d59-5225a7260ea4@hisilicon.com> <23f0694c111ca096917ea69ef984e4e3b3cc22c4.camel@samsung.com> <61b1cc1a-1b2d-9537-3bb3-8a7b5157d7df@hisilicon.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20200309_042019_147236_7111D031 X-CRM114-Status: GOOD ( 39.71 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: John Garry , Linuxarm Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGksCgoyMDIwLTAzLTA5IChNb24pLCAxNTo1MCArMDgwMCwgY2hlbnhpYW5nIChNKToKPiBIaSBK dW5nc2V1bmcsCj4gCj4g5ZyoIDIwMjAvMy83IDE2OjI0LCBKdW5nc2V1bmcgTGVlIOWGmemBkzoK PiA+IEhpLAo+ID4gCj4gPiAyMDIwLTAzLTA2IChGcmkpLCAyMDoxOSArMDgwMCwgY2hlbnhpYW5n IChNKToKPiA+ID4gSGkgSnVuZ3NldW5nLAo+ID4gPiAKPiA+ID4g5ZyoIDIwMjAvMy80IDE5OjA3 LCBKdW5nc2V1bmcgTGVlIOWGmemBkzoKPiA+ID4gPiBUaGUgY3VycmVudCBtYWlubGluZSBsb2Nr aW5nIHdhcyByZXN0cmljdGVkIGFuZCBjb3VsZCBvbmx5IGJlCj4gPiA+ID4gYXBwbGllZAo+ID4g PiA+IHRvIGZsYXNoZXMgdGhhdCBoYXMgMyBibG9jayBwcm90ZWN0aW9uIGJpdCBhbmQgZml4ZWQg bG9ja2luZwo+ID4gPiA+IHJhdGlvLgo+ID4gPiA+IAo+ID4gPiA+IEEgbmV3IG1ldGhvZCBvZiBu b3JtYWxpemF0aW9uIHdhcyByZWFjaGVkIGF0IHRoZSBlbmQgb2YgdGhlCj4gPiA+ID4gZGlzY3Vz c2lvbiBbMV0uCj4gPiA+ID4gCj4gPiA+ID4gICAgICAoMSkgLSBpZiBicCBzbG90IGlzIGluc3Vm ZmljaWVudC4KPiA+ID4gPiAgICAgICgyKSAtIGlmIGJwIHNsb3QgaXMgc3VmZmljaWVudC4KPiA+ ID4gPiAKPiA+ID4gPiAgICAgIGlmIChicF9zbG90c19uZWVkZWQgPiBicF9zbG90cykgICAgLy8g KDEpCj4gPiA+ID4gICAgICAgICAgbWluX3Byb3RfbGVuZ3RoID0gc2VjdG9yX3NpemUgPDwgKGJw X3Nsb3RzX25lZWRlZCAtCj4gPiA+ID4gYnBfc2xvdHMpOwo+ID4gPiA+ICAgICAgZWxzZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAoMikKPiA+ID4gPiAgICAgICAgICBtaW5fcHJv dF9sZW5ndGggPSBzZWN0b3Jfc2l6ZTsKPiA+ID4gPiAKPiA+ID4gPiBUaGlzIHBhdGNoIGNoYW5n ZXMgYmxvY2sgcHJvdGVjdGlvbiBoYW5kbGluZyBsb2dpYyBiYXNlZCBvbgo+ID4gPiA+IG1pbl9w cm90X2xlbmd0aC4KPiA+ID4gPiBJdCBpcyBzdWl0YWJsZSBmb3IgdGhlIG92ZXJhbGwgZmxhc2hl cyB3aXRoIGV4Y2VwdGlvbiBvZiBzb21lCj4gPiA+ID4gY29ybmVyIGNhc2UKPiA+ID4gPiBhbmQg ZWFzeSB0byBleHRlbmQgYW5kIGFwcGx5IGZvciB0aGUgY2FzZSBvZiAyYml0IG9yIDRiaXQgYmxv Y2sKPiA+ID4gPiBwcm90ZWN0aW9uLgo+ID4gPiA+IAo+ID4gPiA+IFsxXQo+ID4gPiA+IApodHRw czovL3Byb3RlY3QyLmZpcmVleWUuY29tL3VybD9rPWU4MGIxZjFhLWI1ZGIxN2YyLWU4MGE5NDU1 LTAwMGJhYmZmMzJlMy1kYWRjMzBkMTE3NmY2Mzc0JnU9aHR0cDovL2xpc3RzLmluZnJhZGVhZC5v cmcvcGlwZXJtYWlsL2xpbnV4LW10ZC8yMDIwLUZlYnJ1YXJ5LzA5MzkzNC5odG1sCj4gPiA+IAo+ ID4gPiAgIAo+ID4gPiBJIGhhdmUgdGVzdGVkIHRoZSBwYXRjaHNldCBvbiBvbmUgb2YgbXkgYm9h cmQgKHRoZXJlIGlzIG1pY3Jvbgo+ID4gPiBmbGFzaAo+ID4gPiBuMjVxMTI4YTExIHdoaWNoIHN1 cHBvcnRzIDRiaXQgQlAsIGFuZCBhbHNvIGJwMyBpcyBvbiBiaXQ2IG9mIFNSLAo+ID4gPiBUQgo+ ID4gPiBiaXQgaXMgb24gYml0NSBvZiBTUiksIHNvCj4gPiA+IGkgbW9kaWZ5IHRoZSBjb2RlIGFz IGZvbGxvd3MgdG8gZW5hYmxlIHRoZSBsb2NrL3VubG9jayBvZgo+ID4gPiBuMjVxMTI4YTExLgo+ ID4gPiAtICAgICAgIHsgIm4yNXExMjhhMTEiLCAgSU5GTygweDIwYmIxOCwgMCwgNjQgKiAxMDI0 LCAgMjU2LAo+ID4gPiBTRUNUXzRLIHwKPiA+ID4gU1BJX05PUl9RVUFEX1JFQUQpIH0sCj4gPiA+ ICsgICAgICAgeyAibjI1cTEyOGExMSIsICBJTkZPKDB4MjBiYjE4LCAwLCA2NCAqIDEwMjQsICAy NTYsCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIFNFQ1RfNEsgfCBTUElfTk9SX1FVQURf UkVBRCB8Cj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIFVTRV9GU1IgfCBTUElfTk9SX0hB U19MT0NLIHwKPiA+ID4gU1BJX05PUl9IQVNfVEIgfAo+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICBTUElfTk9SX0hBU19CUDMgfCBTUElfTk9SX0JQM19TUl9CSVQ2KSB9LAo+ID4gPiAKPiA+ ID4gVGhlcmUgYXJlIHR3byBpc3N1ZXMgaSBtZXQ6Cj4gPiA+ICgxKSBpIGxvY2svdW5sb2NrIHRo ZSBmdWxsIHJlZ2lvbiBvZiB0aGUgZmxhc2gsIGxvY2sgaXMgdmFsaWQsCj4gPiA+IGJ1dAo+ID4g PiB0aGVyZSBpcyBlcnJvciB3aGVuIHVubG9jayB0aGUgZmxhc2gsIGkgcXVlcnkgdGhlIHN0YXR1 cyBvZiBpdCBpcwo+ID4gPiB1bmxvY2sgKHRoZSBpc3N1ZSBpIHRoaW5rIGl0IGlzCj4gPiA+IHRo ZSBzYW1lIGFzIHRoZSBpc3N1ZSBKb2huIGhhcyByZXBvcnRlZCBiZWZvcmUKPiA+ID4gCmh0dHBz Oi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LW10ZC9jMWE5MmM4OS0wMjBkLTA4NDctYjdiZi00MWRi ZmQ5Yjk3MmVAbWljcm9jaGlwLmNvbS8KPiA+ID4gKSwKPiA+ID4gICAKPiA+ID4gaSBzY3JlZW5z aG90IHRoZSBsb2cgb2YgdGhlIG9wZXJhdGlvbiBhcyBmb2xsb3dzOgo+ID4gPiAKPiA+IAo+ID4g TG9va3MgbGlrZSB0aGUgdW5sb2NrIG9wZXJhdGlvbiB3YXMgYWN0dWFsbHkgZG9uZSAoYXMgY2Fu IGJlCj4gPiBjaGVja2VkCj4gPiBmcm9tIHRoZSBmb2xsb3dpbmcgcXVlcnkgb2YgdGhlIHN0YXR1 cykgYnV0IGFuIGVycm9yIGlzIGNvbWluZyB3aXRoCj4gPiBFSU8uCj4gPiAKPiA+IEkgdGhpbmsg YW5vdGhlciBwYXJ0IG9mIHNyIGhhbmRsaW5nIGlzIHJlbGF0ZWQgd2l0aCB5b3VyIGNhc2UuCj4g PiAobWF5YmUKPiA+IFNSIHJlYWQgYmFjayB0ZXN0ID8pCj4gCj4gWWVzLCAgaXQgaXMgdGhlIGlz c3VlIG9mIFNSIHJlYWQgYmFjayB0ZXN0OiAgaXQgd3JpdGVzIDBYMiAoYml0IFdFTAo+IGlzIAo+ IHNldCksIGJ1dCBpdCByZWFkcyBiYWNrIDB4MCAoYml0IFdFTCBpcyBjbGVhcmVkKS4KPiAKCgo+ ID4gCj4gPiBJZiB5b3UgY2FuIGR1bXAgdGhlIHNyIHZhbHVlICYgZGV2X2RiZyBtc2csIGl0IHdp bGwgYmUgaGVscGZ1bCB0bwo+ID4gZGVmaW5lIHRoaXMgaXNzdWUuCj4gPiAKPiA+ID4gKDIpIGkg dHJ5IHRvIGxvY2sgcGFydCBvZiB0aGUgZmxhc2ggcmVnaW9uIHN1Y2ggYXMgLi9mbGFzaF9sb2Nr Cj4gPiA+IC9kZXYvbXRkMCAweGMwMDAwMCAxMCwgaXQgcmVwb3J0cyBpbnZhbGlkIGFyZ3VtZW50 LAo+ID4gPiBhbmQgaSBhbSBub3Qgc3VyZSB3aGV0aGVyIGl0IGlzIHNvbWV0aGluZyB3cm9uZyB3 aXRoIG15Cj4gPiA+IG9wZXJhdGlvbi4KPiA+ID4gCj4gPiAKPiA+IEl0IGlzIHVuYWJsZSB0byBs b2NrIHN1Y2ggcmVnaW9uIHNpbmNlIHRoZSBzcGkgZmxhc2ggZG9lc24ndAo+ID4gc3VwcG9ydAo+ ID4gaXQuIG9ubHkgd2UgY2FuIGxvY2sgaXQgZnJvbSB0aGUgdG9wIG9yIHRoZSBib3R0b20uCj4g PiAKPiA+IGxpa2UgdGhpcyBmb3IgbjI1cTEyOGExMSwKPiA+IAo+ID4gZmxhc2hfbG9jayAvZGV2 L210ZDAgMHhmZjAwMDAgMHgxMAo+ID4gZmxhc2hfbG9jayAvZGV2L210ZDAgMHgwIDB4MTAKPiAK PiBEbyB5b3UgbWVhbiBpZiBsb2NrL3VubGNvayBmcm9tIHRvcCwgIHRoZSBhZGRyZXNzIG9mIGxv Y2svdW5sb2NrIAo+IGNvbW1hbmRzIHNob3VsZCBiZSB0aGUgYWRkcmVzcyBvZiAyNTV0aCBibG9j ayAoMHhmZjAwMDApLCAyNTR0aCAKPiBibG9jaygweGZlMDAwMCksIDI1Mm5kIGJsb2NrKDB4ZmMw MDAwKSwgLi4uLiwgMTI4dGggYmxvY2sgKDB4ODAwMDAwKT8KPiBJZiBsb2NrL3VubG9jayBmcm9t IGJvdHRvbSwgdGhlIGFkZHJlc3Mgb2YgbG9jay91bmxvY2sgY29tbWFuZHMKPiBzaG91bGQgCj4g YmUgYWx3YXlzIHRoZSBhZGRyZXNzIG9mIDB0aCBibG9jayAoMHgwKT8KPiAKCkknbSBub3QgZnVs bHkgdW5kZXJzdGFuZGluZyB0aGUgdXNhZ2Ugb2YgZmxhc2hfbG9jaywgYnV0IGl0IHdvdWxkIGJl CmJldHRlciB0byB1c2Ugc3VjaCBhZGRyZXNzZXMgZm9yIGxvY2svdW5sb2NraW5nIHRvIG1ha2Ug aXQgdW5kZXIKY29udHJvbC4KClRoZXJlIGFyZSBzb21lIGFtYmlndW91cyBwYXJ0cyB0byBleHBs YWluIHRoYXQgc2luY2Ugc29tZSBsb2NrL3VubG9jawpvcGVyYXRpb24gaXMgc3RpbGwgd29ya2lu ZyB3ZWxsIHdpdGhvdXQgdGhlIGFkZHJlc3Nlcy4KCkxPQ0sgCi0gUmV0dXJuIHN1Y2Nlc3MgaWYg dGhlIHJlcXVlc3RlZCBhcmVhIGlzIGFscmVhZHkgbG9ja2VkLgotIElmIHJlcXVlc3RlZCBhcmVh IGlzIG5vdCBmdWxseSBtYXRjaGVkIHdpdGggbG9ja2luZyBwb3J0aW9uIG9mIHRoZQpmbGFzaCwg bG9jayB0aGUgc29tZSBvZiBwb3J0aW9uIGluY2x1ZGluZyB0aGUgcmVxdWVzdCBhcmVhLgoKVU5M T0NLIAogLSB1bmxvY2sgb3BlcmF0aW9uIHJldHVybiBzdWNjZXNzIGlmIHRoZSByZXF1ZXN0ZWQg YXJlYSBpcyBhbHJlYWR5CnVubG9ja2VkLgoKIC0gdW5sb2NrIG9wZXJhdGlvbiB0cnkgdG8gdW5s b2NrIGFsbCBwb3J0aW9ucyBpbmNsdWRlcyB0aGUgcmVxdWVzdAphcmVhLiAoQnV0IHVzZXIgd2ls bCBub3Qga25vd2luZyB3ZWxsKQoKCgo+ID4gCj4gPiBOb3RlIHRoZSBibG9jayBjb3VudCBvZiBl eGFtcGxlcyBpcyAweDEwIG5vdCAxMC4gVGhlIGxvY2tpbmcgdHJ5Cj4gPiB3aXRoCj4gPiBibG9j ayBjb3VudCB1bmRlciBtaW5pbXVtIGJsb2NrIHByb3RlY3Rpb24gbGVuZ3RoIHdpbGwgYmUgZmFp bGVkLgo+ID4gCj4gPiBUaGFua3MsCj4gPiAKPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKdW5nc2V1 bmcgTGVlIDxqczA3LmxlZUBzYW1zdW5nLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiAgIGRyaXZl cnMvbXRkL3NwaS1ub3Ivc3BpLW5vci5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysrLS0tLS0K PiA+ID4gPiAtLS0KPiA+ID4gPiAtLS0tLS0KPiA+ID4gPiAgIDEgZmlsZSBjaGFuZ2VkLCA2NiBp bnNlcnRpb25zKCspLCA0NCBkZWxldGlvbnMoLSkKPiA+ID4gPiAKPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9tdGQvc3BpLW5vci9zcGktbm9yLmMgYi9kcml2ZXJzL210ZC9zcGktCj4gPiA+ ID4gbm9yL3NwaS1ub3IuYwo+ID4gPiA+IGluZGV4IGNhZjBjMTA5Y2NhMC4uYzU4YzI3NTUyYTc0 IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbXRkL3NwaS1ub3Ivc3BpLW5vci5jCj4gPiA+ ID4gKysrIGIvZHJpdmVycy9tdGQvc3BpLW5vci9zcGktbm9yLmMKPiA+ID4gPiBAQCAtMTc4NCwy OSArMTc4NCw2NCBAQCBzdGF0aWMgaW50IHNwaV9ub3JfZXJhc2Uoc3RydWN0Cj4gPiA+ID4gbXRk X2luZm8KPiA+ID4gPiAqbXRkLCBzdHJ1Y3QgZXJhc2VfaW5mbyAqaW5zdHIpCj4gPiA+ID4gICAJ cmV0dXJuIHJldDsKPiA+ID4gPiAgIH0KPiA+ID4gPiAgIAo+ID4gPiA+ICtzdGF0aWMgdTggc3Bp X25vcl9nZXRfYnBfbWFzayhzdHJ1Y3Qgc3BpX25vciAqbm9yKQo+ID4gPiA+ICt7Cj4gPiA+ID4g KwlyZXR1cm4gU1JfQlAyIHwgU1JfQlAxIHwgU1JfQlAwOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+ ID4gPiA+ICtzdGF0aWMgdTggc3BpX25vcl9nZXRfdGJfbWFzayhzdHJ1Y3Qgc3BpX25vciAqbm9y KQo+ID4gPiA+ICt7Cj4gPiA+ID4gKwlpZiAobm9yLT5mbGFncyAmIFNOT1JfRl9IQVNfU1JfVEJf QklUNikKPiA+ID4gPiArCQlyZXR1cm4gU1JfVEJfQklUNjsKPiA+ID4gPiArCWVsc2UKPiA+ID4g PiArCQlyZXR1cm4gU1JfVEJfQklUNTsKPiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3Rh dGljIGludCBzdG1fZ2V0X21pbl9wcm90X2xlbmd0aChzdHJ1Y3Qgc3BpX25vciAqbm9yKQo+ID4g PiA+ICt7Cj4gPiA+ID4gKwlpbnQgYnBfc2xvdHMsIGJwX3Nsb3RzX25lZWRlZDsKPiA+ID4gPiAr CXU4IG1hc2sgPSBzcGlfbm9yX2dldF9icF9tYXNrKG5vcik7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJ YnBfc2xvdHMgPSAobWFzayA+PiBTUl9CUF9TSElGVCkgKyAxOwo+ID4gPiA+ICsKPiA+ID4gPiAr CS8qIFJlc2VydmVkIG9uZSBmb3IgInByb3RlY3Qgbm9uZSIgYW5kIG9uZSBmb3IgInByb3RlY3QK PiA+ID4gPiBhbGwiLgo+ID4gPiA+ICovCj4gPiA+ID4gKwlicF9zbG90cyA9IGJwX3Nsb3RzIC0g MjsKPiA+ID4gPiArCj4gPiA+ID4gKwlicF9zbG90c19uZWVkZWQgPSBpbG9nMihub3ItPmluZm8t Pm5fc2VjdG9ycyk7Cj4gPiA+ID4gKwo+ID4gPiA+ICsJaWYgKGJwX3Nsb3RzX25lZWRlZCA+IGJw X3Nsb3RzKQo+ID4gPiA+ICsJCXJldHVybiBub3ItPmluZm8tPnNlY3Rvcl9zaXplIDw8Cj4gPiA+ ID4gKwkJCShicF9zbG90c19uZWVkZWQgLSBicF9zbG90cyk7Cj4gPiA+ID4gKwllbHNlCj4gPiA+ ID4gKwkJcmV0dXJuIG5vci0+aW5mby0+c2VjdG9yX3NpemU7Cj4gPiA+ID4gK30KPiA+ID4gPiAr Cj4gPiA+ID4gICBzdGF0aWMgdm9pZCBzdG1fZ2V0X2xvY2tlZF9yYW5nZShzdHJ1Y3Qgc3BpX25v ciAqbm9yLCB1OCBzciwKPiA+ID4gPiBsb2ZmX3QgKm9mcywKPiA+ID4gPiAgIAkJCQkgdWludDY0 X3QgKmxlbikKPiA+ID4gPiAgIHsKPiA+ID4gPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9ICZu b3ItPm10ZDsKPiA+ID4gPiAtCXU4IG1hc2sgPSBTUl9CUDIgfCBTUl9CUDEgfCBTUl9CUDA7Cj4g PiA+ID4gLQl1OCB0Yl9tYXNrID0gU1JfVEJfQklUNTsKPiA+ID4gPiAtCWludCBwb3c7Cj4gPiA+ ID4gKwlpbnQgbWluX3Byb3RfbGVuOwo+ID4gPiA+ICsJdTggbWFzayA9IHNwaV9ub3JfZ2V0X2Jw X21hc2sobm9yKTsKPiA+ID4gPiArCXU4IHRiX21hc2sgPSBzcGlfbm9yX2dldF90Yl9tYXNrKG5v cik7Cj4gPiA+ID4gKwl1OCBicCA9IChzciAmIG1hc2spID4+IFNSX0JQX1NISUZUOwo+ID4gPiA+ ICAgCj4gPiA+ID4gLQlpZiAobm9yLT5mbGFncyAmIFNOT1JfRl9IQVNfU1JfVEJfQklUNikKPiA+ ID4gPiAtCQl0Yl9tYXNrID0gU1JfVEJfQklUNjsKPiA+ID4gPiAtCj4gPiA+ID4gLQlpZiAoIShz ciAmIG1hc2spKSB7Cj4gPiA+ID4gKwlpZiAoIWJwKSB7Cj4gPiA+ID4gICAJCS8qIE5vIHByb3Rl Y3Rpb24gKi8KPiA+ID4gPiAgIAkJKm9mcyA9IDA7Cj4gPiA+ID4gICAJCSpsZW4gPSAwOwo+ID4g PiA+IC0JfSBlbHNlIHsKPiA+ID4gPiAtCQlwb3cgPSAoKHNyICYgbWFzaykgXiBtYXNrKSA+PiBT Ul9CUF9TSElGVDsKPiA+ID4gPiAtCQkqbGVuID0gbXRkLT5zaXplID4+IHBvdzsKPiA+ID4gPiAt CQlpZiAobm9yLT5mbGFncyAmIFNOT1JfRl9IQVNfU1JfVEIgJiYgc3IgJgo+ID4gPiA+IHRiX21h c2spCj4gPiA+ID4gLQkJCSpvZnMgPSAwOwo+ID4gPiA+IC0JCWVsc2UKPiA+ID4gPiAtCQkJKm9m cyA9IG10ZC0+c2l6ZSAtICpsZW47Cj4gPiA+ID4gKwkJcmV0dXJuOwo+ID4gPiA+ICAgCX0KPiA+ ID4gPiArCj4gPiA+ID4gKwltaW5fcHJvdF9sZW4gPSBzdG1fZ2V0X21pbl9wcm90X2xlbmd0aChu b3IpOwo+ID4gPiA+ICsJKmxlbiA9IG1pbl9wcm90X2xlbiA8PCAoYnAgLSAxKTsKPiA+ID4gPiAr Cj4gPiA+ID4gKwlpZiAoKmxlbiA+IG10ZC0+c2l6ZSkKPiA+ID4gPiArCQkqbGVuID0gbXRkLT5z aXplOwo+ID4gPiA+ICsKPiA+ID4gPiArCWlmIChub3ItPmZsYWdzICYgU05PUl9GX0hBU19TUl9U QiAmJiBzciAmIHRiX21hc2spCj4gPiA+ID4gKwkJKm9mcyA9IDA7Cj4gPiA+ID4gKwllbHNlCj4g PiA+ID4gKwkJKm9mcyA9IG10ZC0+c2l6ZSAtICpsZW47Cj4gPiA+ID4gICB9Cj4gPiA+ID4gICAK PiA+ID4gPiAgIC8qCj4gPiA+ID4gQEAgLTE4ODAsOCArMTkxNSw5IEBAIHN0YXRpYyBpbnQgc3Rt X2xvY2soc3RydWN0IHNwaV9ub3IgKm5vciwKPiA+ID4gPiBsb2ZmX3Qgb2ZzLCB1aW50NjRfdCBs ZW4pCj4gPiA+ID4gICB7Cj4gPiA+ID4gICAJc3RydWN0IG10ZF9pbmZvICptdGQgPSAmbm9yLT5t dGQ7Cj4gPiA+ID4gICAJaW50IHJldCwgc3RhdHVzX29sZCwgc3RhdHVzX25ldzsKPiA+ID4gPiAt CXU4IG1hc2sgPSBTUl9CUDIgfCBTUl9CUDEgfCBTUl9CUDA7Cj4gPiA+ID4gLQl1OCB0Yl9tYXNr ID0gU1JfVEJfQklUNTsKPiA+ID4gPiArCWludCBtaW5fcHJvdF9sZW47Cj4gPiA+ID4gKwl1OCBt YXNrID0gc3BpX25vcl9nZXRfYnBfbWFzayhub3IpOwo+ID4gPiA+ICsJdTggdGJfbWFzayA9IHNw aV9ub3JfZ2V0X3RiX21hc2sobm9yKTsKPiA+ID4gPiAgIAl1OCBwb3csIHZhbDsKPiA+ID4gPiAg IAlsb2ZmX3QgbG9ja19sZW47Cj4gPiA+ID4gICAJYm9vbCBjYW5fYmVfdG9wID0gdHJ1ZSwgY2Fu X2JlX2JvdHRvbSA9IG5vci0+ZmxhZ3MgJgo+ID4gPiA+IFNOT1JfRl9IQVNfU1JfVEI7Cj4gPiA+ ID4gQEAgLTE5MTgsMjAgKzE5NTQsMTQgQEAgc3RhdGljIGludCBzdG1fbG9jayhzdHJ1Y3Qgc3Bp X25vcgo+ID4gPiA+ICpub3IsCj4gPiA+ID4gbG9mZl90IG9mcywgdWludDY0X3QgbGVuKQo+ID4g PiA+ICAgCWVsc2UKPiA+ID4gPiAgIAkJbG9ja19sZW4gPSBvZnMgKyBsZW47Cj4gPiA+ID4gICAK PiA+ID4gPiAtCWlmIChub3ItPmZsYWdzICYgU05PUl9GX0hBU19TUl9UQl9CSVQ2KQo+ID4gPiA+ IC0JCXRiX21hc2sgPSBTUl9UQl9CSVQ2Owo+ID4gPiA+ICsJaWYgKGxvY2tfbGVuID09IG10ZC0+ c2l6ZSkgewo+ID4gPiA+ICsJCXZhbCA9IG1hc2s7IC8qIGZ1bGx5IGxvY2tlZCAqLwo+ID4gPiA+ ICsJfSBlbHNlIHsKPiA+ID4gPiArCQltaW5fcHJvdF9sZW4gPSBzdG1fZ2V0X21pbl9wcm90X2xl bmd0aChub3IpOwo+ID4gPiA+ICsJCXBvdyA9IGlsb2cyKGxvY2tfbGVuKSAtIGlsb2cyKG1pbl9w cm90X2xlbikgKwo+ID4gPiA+IDE7Cj4gPiA+ID4gKwkJdmFsID0gcG93IDw8IFNSX0JQX1NISUZU Owo+ID4gPiA+ICsJfQo+ID4gPiA+ICAgCj4gPiA+ID4gLQkvKgo+ID4gPiA+IC0JICogTmVlZCBz bWFsbGVzdCBwb3cgc3VjaCB0aGF0Ogo+ID4gPiA+IC0JICoKPiA+ID4gPiAtCSAqICAgMSAvICgy XnBvdykgPD0gKGxlbiAvIHNpemUpCj4gPiA+ID4gLQkgKgo+ID4gPiA+IC0JICogc28gKGFzc3Vt aW5nIHBvd2VyLW9mLTIgc2l6ZSkgd2UgZG86Cj4gPiA+ID4gLQkgKgo+ID4gPiA+IC0JICogICBw b3cgPSBjZWlsKGxvZzIoc2l6ZSAvIGxlbikpID0gbG9nMihzaXplKSAtCj4gPiA+ID4gZmxvb3Io bG9nMihsZW4pKQo+ID4gPiA+IC0JICovCj4gPiA+ID4gLQlwb3cgPSBpbG9nMihtdGQtPnNpemUp IC0gaWxvZzIobG9ja19sZW4pOwo+ID4gPiA+IC0JdmFsID0gbWFzayAtIChwb3cgPDwgU1JfQlBf U0hJRlQpOwo+ID4gPiA+ICAgCWlmICh2YWwgJiB+bWFzaykKPiA+ID4gPiAgIAkJcmV0dXJuIC1F SU5WQUw7Cj4gPiA+ID4gICAJLyogRG9uJ3QgImxvY2siIHdpdGggbm8gcmVnaW9uISAqLwo+ID4g PiA+IEBAIC0xOTY2LDggKzE5OTYsOSBAQCBzdGF0aWMgaW50IHN0bV91bmxvY2soc3RydWN0IHNw aV9ub3IKPiA+ID4gPiAqbm9yLAo+ID4gPiA+IGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikKPiA+ ID4gPiAgIHsKPiA+ID4gPiAgIAlzdHJ1Y3QgbXRkX2luZm8gKm10ZCA9ICZub3ItPm10ZDsKPiA+ ID4gPiAgIAlpbnQgcmV0LCBzdGF0dXNfb2xkLCBzdGF0dXNfbmV3Owo+ID4gPiA+IC0JdTggbWFz ayA9IFNSX0JQMiB8IFNSX0JQMSB8IFNSX0JQMDsKPiA+ID4gPiAtCXU4IHRiX21hc2sgPSBTUl9U Ql9CSVQ1Owo+ID4gPiA+ICsJaW50IG1pbl9wcm90X2xlbjsKPiA+ID4gPiArCXU4IG1hc2sgPSBz cGlfbm9yX2dldF9icF9tYXNrKG5vcik7Cj4gPiA+ID4gKwl1OCB0Yl9tYXNrID0gc3BpX25vcl9n ZXRfdGJfbWFzayhub3IpOwo+ID4gPiA+ICAgCXU4IHBvdywgdmFsOwo+ID4gPiA+ICAgCWxvZmZf dCBsb2NrX2xlbjsKPiA+ID4gPiAgIAlib29sIGNhbl9iZV90b3AgPSB0cnVlLCBjYW5fYmVfYm90 dG9tID0gbm9yLT5mbGFncyAmCj4gPiA+ID4gU05PUl9GX0hBU19TUl9UQjsKPiA+ID4gPiBAQCAt MjAwNCwyMiArMjAzNSwxMyBAQCBzdGF0aWMgaW50IHN0bV91bmxvY2soc3RydWN0IHNwaV9ub3IK PiA+ID4gPiAqbm9yLAo+ID4gPiA+IGxvZmZfdCBvZnMsIHVpbnQ2NF90IGxlbikKPiA+ID4gPiAg IAllbHNlCj4gPiA+ID4gICAJCWxvY2tfbGVuID0gb2ZzOwo+ID4gPiA+ICAgCj4gPiA+ID4gLQlp ZiAobm9yLT5mbGFncyAmIFNOT1JfRl9IQVNfU1JfVEJfQklUNikKPiA+ID4gPiAtCQl0Yl9tYXNr ID0gU1JfVEJfQklUNjsKPiA+ID4gPiAtCS8qCj4gPiA+ID4gLQkgKiBOZWVkIGxhcmdlc3QgcG93 IHN1Y2ggdGhhdDoKPiA+ID4gPiAtCSAqCj4gPiA+ID4gLQkgKiAgIDEgLyAoMl5wb3cpID49IChs ZW4gLyBzaXplKQo+ID4gPiA+IC0JICoKPiA+ID4gPiAtCSAqIHNvIChhc3N1bWluZyBwb3dlci1v Zi0yIHNpemUpIHdlIGRvOgo+ID4gPiA+IC0JICoKPiA+ID4gPiAtCSAqICAgcG93ID0gZmxvb3Io bG9nMihzaXplIC8gbGVuKSkgPSBsb2cyKHNpemUpIC0KPiA+ID4gPiBjZWlsKGxvZzIobGVuKSkK PiA+ID4gPiAtCSAqLwo+ID4gPiA+IC0JcG93ID0gaWxvZzIobXRkLT5zaXplKSAtIG9yZGVyX2Jh c2VfMihsb2NrX2xlbik7Cj4gPiA+ID4gICAJaWYgKGxvY2tfbGVuID09IDApIHsKPiA+ID4gPiAg IAkJdmFsID0gMDsgLyogZnVsbHkgdW5sb2NrZWQgKi8KPiA+ID4gPiAgIAl9IGVsc2Ugewo+ID4g PiA+IC0JCXZhbCA9IG1hc2sgLSAocG93IDw8IFNSX0JQX1NISUZUKTsKPiA+ID4gPiArCQltaW5f cHJvdF9sZW4gPSBzdG1fZ2V0X21pbl9wcm90X2xlbmd0aChub3IpOwo+ID4gPiA+ICsJCXBvdyA9 IGlsb2cyKGxvY2tfbGVuKSAtIGlsb2cyKG1pbl9wcm90X2xlbikgKwo+ID4gPiA+IDE7Cj4gPiA+ ID4gKwkJdmFsID0gcG93IDw8IFNSX0JQX1NISUZUOwo+ID4gPiA+ICsKPiA+ID4gPiAgIAkJLyog U29tZSBwb3dlci1vZi10d28gc2l6ZXMgYXJlIG5vdCBzdXBwb3J0ZWQgKi8KPiA+ID4gPiAgIAkJ aWYgKHZhbCAmIH5tYXNrKQo+ID4gPiA+ICAgCQkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+IAo+ID4g PiAgIAo+ID4gCj4gPiAuCj4gPiAKPiAKPiAKPiAKCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1c3Npb24gbWFpbGlu ZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgt bXRkLwo=