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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 90BAECCA464 for ; Fri, 16 Oct 2026 10:50:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KPyDStPjb4/cVk7WHg8Z9f/M00J4pmbcBxqdwAd5DZw=; b=fmgq5sN9WGskA9 xEEBQNckiKYJAxhmhka3riZsL+ilDTBB9ReyFYaEF+y5zdvgyl3G1qvyxDOxyszX/dNe4T1jnbjlh EuONz0X9aWFnQogYXfVzU2NUInN4RpJpfX9k+U7EQZSV57CuBA7kSjZEhCRPs/M1kYrDNYLE06lZS 3R703v6TA01sTdaA9Fl0vlL600D2GZIzsthcOpEpe06BhDvgL0qLkqHrnCoj5kpj6A5tcqiMlU3+v S76sP0GiotRoNBWz438dKdOKMevp724+XdN6kaE4X/54B5TrqzTm36Ud+qkjZuaq7epnfbpl/0Rpr DfNoFIPbiqZzZW72DCOg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHfVu-00000002ipH-0eXA; Fri, 16 Oct 2026 10:50:14 +0000 Received: from tor.source.kernel.org ([172.105.4.254]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xHfVs-00000002ip4-2kHp for linux-mtd@lists.infradead.org; Fri, 16 Oct 2026 10:50:12 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id C5F9E601FE; Fri, 16 Oct 2026 10:50:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B0E901F000C4; Fri, 16 Oct 2026 10:50:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792147811; bh=5gfXG2mGTj6yxPRQUqvYyLHzJmf+c5cgIoViaOEn8g4=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=XQMubKm3l8JmqhfhU2IOpiLzSN0gp9fw58S9jgHdn16/oyVoBee1cehay+FLQzm8E O3y7+f3MQtG7zzg+QMNaXrg4BCPtBZ1WRz76ggkqFNBzptd+6nDz1KhjPe9P6byC10 vk1KahNJL85RaDWrsGXdofSLpfUUyVXcd9bhuv+d7WJXUMen99TcplMslmj3JFahX4 8353SvBj1vpENGkKEOOpJUfc2SYBQa/msPqD8zKpksigaIgLgSDCzjUHM2KmE9qROS D09C9b1J/OdFQ96qo3fNQMcn+prxwmTXE1e36OOhcK3xyBUTvJ+3PdbVVBr7VvYf// r4BCEOxEX43BA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v4 6/7] spi: cadence-xspi: Add support for panic writes To: "Paul Cercueil" , "Pratyush Yadav" , "Michael Walle" , "Takahiro Kuwano" , "Miquel Raynal" , "Richard Weinberger" , "Vignesh Raghavendra" , "Mark Brown" Cc: "Kees Cook" , "Tony Luck" , "Guilherme G . Piccoli" , "Thomas Petazzoni" , linux-mtd@lists.infradead.org, "Bharat Bhushan" , "Sunil Kovvuri Goutham" , "Tanmay Jagdale" In-Reply-To: <20261016102917.171095-7-paul.cercueil@bootlin.com> References: <20261016102917.171095-1-paul.cercueil@bootlin.com> <20261016102917.171095-7-paul.cercueil@bootlin.com> Date: Fri, 16 Oct 2026 10:50:10 +0000 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 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 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHNwaTogY2FkZW5jZS14 c3BpOiBtaXNzaW5nIGludGVycnVwdCBzdGF0dXMgY2xlYXIgY2F1c2VzIHByZW1hdHVyZSBTRE1B IHJlYWRpbmVzcwotIFtIaWdoXSBzcGk6IGNhZGVuY2UteHNwaTogc2hhcmVkIElSUSBzdGVhbHMg U0RNQV9UUklHR0VSIGZyb20gcG9sbGluZyBsb29wCi0gW0hpZ2hdIHNwaTogY2FkZW5jZS14c3Bp OiAxbXMgdGltZW91dCBjYXVzZXMgcGFuaWMgd3JpdGVzIHRvIGZhaWwgaWYgY29udHJvbGxlciBp cyBidXN5Ci0gW0hpZ2hdIHNwaTogY2FkZW5jZS14c3BpOiBtaXNzaW5nIHJlaW5pdF9jb21wbGV0 aW9uKCkgYWxsb3dzIHByZW1hdHVyZSBjb21wbGV0aW9uCi0gW01lZGl1bV0gc3BpOiBjYWRlbmNl LXhzcGk6IFNETUEgcG9sbGluZyBpZ25vcmVzIGVycm9yIHN0YXR1cwotLQoKY29tbWl0IDdmNWIw ZTAxZmE2NjgzZjBlYjIxYWYxM2U3MDE0YTg0YmRiYjM4MWQKQXV0aG9yOiBUYW5tYXkgSmFnZGFs ZSA8dGFubWF5QG1hcnZlbGwuY29tPgoKc3BpOiBjYWRlbmNlLXhzcGk6IEFkZCBzdXBwb3J0IGZv ciBwYW5pYyB3cml0ZXMKCkFkdmVydGlzZSBzdXBwb3J0IGZvciBwYW5pYyB3cml0ZXMuIFdoZW4g YSBtZW1vcnkgb3AgaXMgcmVjZWl2ZWQgd2l0aAp0aGUgJ3BhbmljJyBmbGFnIHNldCwgdGhlIGRy aXZlciB3aWxsIHRoZW4gd29yayB3aXRob3V0IHJlbHlpbmcgb24KaW50ZXJydXB0cyBhbmQgd2l0 aG91dCBzbGVlcGluZy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXhz cGkuYyBiL2RyaXZlcnMvc3BpL3NwaS1jYWRlbmNlLXhzcGkuYwo+IGluZGV4IDJhMmE0MGJmMGE0 YzQuLmE3ZmQ3MTVjNDVkNWYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2Ut eHNwaS5jCj4gKysrIGIvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UteHNwaS5jCj4gQEAgLTM1Myw0 MCArMzU3LDMzIEBAIHN0cnVjdCBjZG5zX3hzcGlfZGV2IHsKPiAgCWludCBjdXJyZW50X3hmZXJf cXdvcmQ7Cj4gIH07Cj4gIAo+IC1zdGF0aWMgaW50IGNkbnNfeHNwaV93YWl0X2Zvcl9jb250cm9s bGVyX2lkbGUoc3RydWN0IGNkbnNfeHNwaV9kZXYgKmNkbnNfeHNwaSkKPiArc3RhdGljIGludCBj ZG5zX3hzcGlfd2FpdF9mb3JfY29udHJvbGxlcl9pZGxlKHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpj ZG5zX3hzcGksIGJvb2wgc2xlZXApCj4gIHsKPiAgCXUzMiBjdHJsX3N0YXQ7Cj4gIAo+IC0JcmV0 dXJuIHJlYWRsX3JlbGF4ZWRfcG9sbF90aW1lb3V0KGNkbnNfeHNwaS0+aW9iYXNlICsKPiAtCQkJ CQkgIENETlNfWFNQSV9DVFJMX1NUQVRVU19SRUcsCj4gLQkJCQkJICBjdHJsX3N0YXQsCj4gLQkJ CQkJICAoKGN0cmxfc3RhdCAmCj4gLQkJCQkJICAgIENETlNfWFNQSV9DVFJMX0JVU1kpID09IDAp LAo+IC0JCQkJCSAgMTAwLCAxMDAwKTsKPiArCXJldHVybiBjZG5zX3JlYWRsX3BvbGwoY2Ruc194 c3BpLT5pb2Jhc2UgKyBDRE5TX1hTUElfQ1RSTF9TVEFUVVNfUkVHLAo+ICsJCQkgICAgICAgY3Ry bF9zdGF0LCAhKGN0cmxfc3RhdCAmIENETlNfWFNQSV9DVFJMX0JVU1kpLAo+ICsJCQkgICAgICAg MTAwLCAxMDAwLCBzbGVlcCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyAxMDAwdXMgdGlt ZW91dCBjYXVzZSBwYW5pYyB3cml0ZXMgdG8gZmFpbCBpZiB0aGUgY29udHJvbGxlciBpcyBidXN5 PwoKSWYgYSBrZXJuZWwgcGFuaWMgb2NjdXJzIHdoaWxlIHRoZSBjb250cm9sbGVyIGlzIGV4ZWN1 dGluZyBhIGxhcmdlIGRhdGEKdHJhbnNmZXIsIHRoZSBoYXJkd2FyZSBtaWdodCBzdGlsbCBiZSBi dXN5IGZpbmlzaGluZyB0aGUgaW50ZXJydXB0ZWQgdHJhbnNmZXIuCgpUaGUgMW1zIHRpbWVvdXQg aGVyZSB3aWxsIGNhdXNlIHRoZSBmdW5jdGlvbiB0byBmYWlsIHdpdGggLUVUSU1FRE9VVCwgaW5z dGFudGx5CmFib3J0aW5nIHRoZSBwYW5pYyB3cml0ZS4KCj4gIH0KPiAgCj4gIHN0YXRpYyBib29s IGNkbnNfeHNwaV9pc19zdGlnX3JlYWR5KHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpjZG5zX3hzcGks IGJvb2wgc2xlZXApCj4gIHsKPiAgCXUzMiBjdHJsX3N0YXQ7Cj4gIAo+IC0JcmV0dXJuICFyZWFk bF9yZWxheGVkX3BvbGxfdGltZW91dAo+IC0JCShjZG5zX3hzcGktPmlvYmFzZSArIENETlNfWFNQ SV9DVFJMX1NUQVRVU19SRUcsCj4gLQkJY3RybF9zdGF0LAo+IC0JCSgoY3RybF9zdGF0ICYgQklU KDMpKSA9PSAwKSwKPiAtCQlzbGVlcCA/IE1SVkxfWFNQSV9QT0xMX0RFTEFZX1VTIDogMCwKPiAt CQlzbGVlcCA/IE1SVkxfWFNQSV9QT0xMX1RJTUVPVVRfVVMgOiAwKTsKPiArCXJldHVybiAhY2Ru c19yZWFkbF9wb2xsKGNkbnNfeHNwaS0+aW9iYXNlICsgQ0ROU19YU1BJX0NUUkxfU1RBVFVTX1JF RywKPiArCQkJCWN0cmxfc3RhdCwgIShjdHJsX3N0YXQgJiBCSVQoMykpLAo+ICsJCQkJTVJWTF9Y U1BJX1BPTExfREVMQVlfVVMsCj4gKwkJCQlNUlZMX1hTUElfUE9MTF9USU1FT1VUX1VTLCBzbGVl cCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyB0aW1lb3V0IGFsc28gY2F1c2UgaXNzdWVz IGZvciBwYW5pYyB3cml0ZXM/CgpTVElHIGNvbW1hbmQgY29tcGxldGlvbiBhbHNvIHJlbGllcyBv biBhIDEwMDB1cyB0aW1lb3V0ICh2aWEKTVJWTF9YU1BJX1BPTExfVElNRU9VVF9VUyksIHdoaWNo IG1pZ2h0IGJlIGluc3VmZmljaWVudCBmb3IgbGFyZ2UgZGF0YQp0cmFuc2ZlcnMgZHVyaW5nIGEg cGFuaWMgd3JpdGUuCgo+ICB9Cj4gIAo+ICBzdGF0aWMgYm9vbCBjZG5zX3hzcGlfaXNfc2RtYV9y ZWFkeShzdHJ1Y3QgY2Ruc194c3BpX2RldiAqY2Ruc194c3BpLCBib29sIHNsZWVwKQo+ICB7Cj4g IAl1MzIgY3RybF9zdGF0Owo+ICAKPiAtCWlmIChyZWFkbF9yZWxheGVkX3BvbGxfdGltZW91dAo+ IC0JICAgIChjZG5zX3hzcGktPmlvYmFzZSArIENETlNfWFNQSV9JTlRSX1NUQVRVU19SRUcsCj4g LQkgICAgIGN0cmxfc3RhdCwKPiAtCSAgICAgKGN0cmxfc3RhdCAmIENETlNfWFNQSV9TRE1BX1RS SUdHRVIpLAo+IC0JICAgICBzbGVlcCA/IE1SVkxfWFNQSV9QT0xMX0RFTEFZX1VTIDogMCwKPiAt CSAgICAgc2xlZXAgPyBNUlZMX1hTUElfUE9MTF9USU1FT1VUX1VTIDogMCkpIHsKPiArCWlmIChj ZG5zX3JlYWRsX3BvbGwoY2Ruc194c3BpLT5pb2Jhc2UgKyBDRE5TX1hTUElfSU5UUl9TVEFUVVNf UkVHLAo+ICsJCQkgICAgY3RybF9zdGF0LCAoY3RybF9zdGF0ICYgQ0ROU19YU1BJX1NETUFfVFJJ R0dFUiksCj4gKwkJCSAgICBNUlZMX1hTUElfUE9MTF9ERUxBWV9VUywgTVJWTF9YU1BJX1BPTExf VElNRU9VVF9VUywKPiArCQkJICAgIHNsZWVwKSkgewoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRo aXMgcG9sbGluZyBsb29wIHJlbHkgb24gYSBoYXJkd2FyZSBiaXQgdGhhdCBjb3VsZCBiZSBzdG9s ZW4gYnkgdGhlCnNoYXJlZCBJUlEgaGFuZGxlcj8KCklmIGEgY29uY3VycmVudCBpbnRlcnJ1cHQg ZnJvbSBhbm90aGVyIGRldmljZSBvbiB0aGUgc2FtZSBzaGFyZWQgSVJRIGxpbmUKaW52b2tlcyBj ZG5zX3hzcGlfaXJxX2hhbmRsZXIoKSwgaXQgdW5jb25kaXRpb25hbGx5IGNsZWFycyB0aGUgcmF3 IGludGVycnVwdApzdGF0dXM6CgpjZG5zX3hzcGlfaXJxX2hhbmRsZXIoKQogICAgaXJxX3N0YXR1 cyA9IHJlYWRsKGNkbnNfeHNwaS0+aW9iYXNlICsgQ0ROU19YU1BJX0lOVFJfU1RBVFVTX1JFRyk7 CiAgICB3cml0ZWwoaXJxX3N0YXR1cywgY2Ruc194c3BpLT5pb2Jhc2UgKyBDRE5TX1hTUElfSU5U Ul9TVEFUVVNfUkVHKTsKClRoaXMgc3RlYWxzIHRoZSBTRE1BX1RSSUdHRVIgYml0IHdpdGhvdXQg dmVyaWZ5aW5nIGlmIGludGVycnVwdHMgd2VyZSBhY3R1YWxseQplbmFibGVkLCB3aGljaCB3b3Vs ZCBjYXVzZSB0aGlzIGFjdGl2ZSBwb2xsaW5nIGxvb3AgdG8gdGltZSBvdXQgYW5kIGZhaWwgdGhl CnRyYW5zZmVyLgoKW1NldmVyaXR5OiBNZWRpdW1dCkRvZXMgdGhpcyBTRE1BIHBvbGxpbmcgaWdu b3JlIHRoZSBlcnJvciBzdGF0dXM/CgpUaGlzIGxvZ2ljIGV4cGxpY2l0bHkgY2hlY2tzIG9ubHkg Zm9yIHRoZSB0cmlnZ2VyIGJpdCBhbmQgaWdub3JlcwpDRE5TX1hTUElfU0RNQV9FUlJPUi4gSWYg dGhlIGhhcmR3YXJlIGFzc2VydHMgb25seSB0aGUgZXJyb3IgYml0IG9uIGZhaWx1cmUsCnRoZSBk cml2ZXIgd2lsbCBuZWVkbGVzc2x5IHdhaXQgZm9yIHRoZSBmdWxsIHRpbWVvdXQgaW5zdGVhZCBv ZiBmYWlsaW5nIGZhc3QuCgpBZGRpdGlvbmFsbHksIGlmIHRoZSBoYXJkd2FyZSBhc3NlcnRzIGJv dGggdGhlIHRyaWdnZXIgYW5kIGVycm9yIGJpdHMKc2ltdWx0YW5lb3VzbHkgb24gYSBmYWlsdXJl LCB0aGUgZHJpdmVyIHdpbGwgbWF0Y2ggdGhlIHRyaWdnZXIgYml0LCByZXR1cm4KdHJ1ZSwgYW5k IHRyZWF0IHRoZSBmYWlsZWQgdHJhbnNhY3Rpb24gYXMgc3VjY2Vzc2Z1bCwgcG90ZW50aWFsbHkg bGVhZGluZyB0bwpzaWxlbnQgZGF0YSBjb3JydXB0aW9uLgoKPiAgCQlyZXR1cm4gZmFsc2U7Cj4g IAl9CgpbIC4uLiBdCgo+IEBAIC01NTcsMTQgKzU1NCwxNCBAQCBzdGF0aWMgaW50IGNkbnNfeHNw aV9zZW5kX3N0aWdfY29tbWFuZChzdHJ1Y3QgY2Ruc194c3BpX2RldiAqY2Ruc194c3BpLAo+ICAJ aW50IHJldDsKPiAgCWludCBkdW1teWJ5dGVzID0gb3AtPmR1bW15Lm5ieXRlczsKPiAgCj4gLQly ZXQgPSBjZG5zX3hzcGlfd2FpdF9mb3JfY29udHJvbGxlcl9pZGxlKGNkbnNfeHNwaSk7Cj4gKwly ZXQgPSBjZG5zX3hzcGlfd2FpdF9mb3JfY29udHJvbGxlcl9pZGxlKGNkbnNfeHNwaSwgIW9wLT5w YW5pY193cml0ZSk7Cj4gIAlpZiAocmV0IDwgMCkKPiAgCQlyZXR1cm4gLUVJTzsKPiAgCj4gIAl3 cml0ZWwoRklFTERfUFJFUChDRE5TX1hTUElfQ1RSTF9XT1JLX01PREUsIENETlNfWFNQSV9XT1JL X01PREVfU1RJRyksCj4gIAkgICAgICAgY2Ruc194c3BpLT5pb2Jhc2UgKyBDRE5TX1hTUElfQ1RS TF9DT05GSUdfUkVHKTsKPiAgCj4gLQlpZiAoY2Ruc194c3BpLT5pcnEgPj0gMCkKPiArCWlmIChj ZG5zX3hzcGktPmlycSA+PSAwICYmICFvcC0+cGFuaWNfd3JpdGUpCj4gIAkJY2Ruc194c3BpLT5z ZXRfaW50ZXJydXB0c19oYW5kbGVyKGNkbnNfeHNwaSwgdHJ1ZSk7CgpbU2V2ZXJpdHk6IEhpZ2hd CkRvZXMgdGhpcyBtaXNzIGNsZWFyaW5nIHN0YWxlIGludGVycnVwdCBzdGF0dXMgYml0cyBsZWZ0 IGJlaGluZCBmcm9tIGFuCmludGVycnVwdGVkIGNvbW1hbmQ/CgpEdXJpbmcgYSBwYW5pYyB3cml0 ZSwgbm9ybWFsIGludGVycnVwdCBoYW5kbGluZyBpcyBieXBhc3NlZC4gSWYgYSBwYW5pYyBvY2N1 cnMKd2hpbGUgYSBwcmV2aW91cyBTUEkgY29tbWFuZCB3YXMgZXhlY3V0aW5nLCB0aGUgQ0ROU19Y U1BJX0lOVFJfU1RBVFVTX1JFRyB3aWxsCmhhdmUgc3RhbGUgZmxhZ3Mgc2V0LgoKV2hlbiB0aGUg cGFuaWMgd3JpdGUgaXNzdWVzIGEgbmV3IGNvbW1hbmQsIGNkbnNfeHNwaV9pc19zZG1hX3JlYWR5 KCkgd2lsbAppbW1lZGlhdGVseSByZWFkIHRoaXMgc3RhbGUgZmxhZywgY2xlYXIgaXQsIGFuZCBy ZXR1cm4gdHJ1ZS4KClRoaXMgY2F1c2VzIHRoZSBkcml2ZXIgdG8gcHJlbWF0dXJlbHkgaW50ZXJh Y3Qgd2l0aCB0aGUgU0RNQSBidWZmZXIgYmVmb3JlIHRoZQpuZXcgY29tbWFuZCdzIFNETUEgcGhh c2UgaXMgYWN0dWFsbHkgcmVhZHksIHdoaWNoIGNvdWxkIGNvcnJ1cHQgdGhlIHBhbmljIHdyaXRl CmRhdGEuCgo+ICAJY2Ruc194c3BpLT5zZG1hX2Vycm9yID0gZmFsc2U7Cj4gIAo+IEBAIC01OTUs MjMgKzU5MiwyMyBAQCBzdGF0aWMgaW50IGNkbnNfeHNwaV9zZW5kX3N0aWdfY29tbWFuZChzdHJ1 Y3QgY2Ruc194c3BpX2RldiAqY2Ruc194c3BpLAo+ICAKPiAgCQljZG5zX3hzcGlfdHJpZ2dlcl9j b21tYW5kKGNkbnNfeHNwaSwgY21kX3JlZ3MpOwo+ICAKPiAtCQlpZiAoY2Ruc194c3BpLT5pcnEg Pj0gMCkgewo+ICsJCWlmIChjZG5zX3hzcGktPmlycSA+PSAwICYmICFvcC0+cGFuaWNfd3JpdGUp IHsKPiAgCQkJd2FpdF9mb3JfY29tcGxldGlvbigmY2Ruc194c3BpLT5zZG1hX2NvbXBsZXRlKTsK PiAgCQkJaWYgKGNkbnNfeHNwaS0+c2RtYV9lcnJvcikgewo+ICAJCQkJY2Ruc194c3BpLT5zZXRf aW50ZXJydXB0c19oYW5kbGVyKGNkbnNfeHNwaSwgZmFsc2UpOwo+ICAJCQkJcmV0dXJuIC1FSU87 Cj4gIAkJCX0KCltTZXZlcml0eTogSGlnaF0KQXJlIHdlIG1pc3NpbmcgYSByZWluaXRfY29tcGxl dGlvbigpIGNhbGwgaGVyZT8KCldoZW4gdGhpcyBlcnJvciBwYXRoIGlzIHRha2VuLCBjbWRfY29t cGxldGUgaXMgbm90IHdhaXRlZCB1cG9uLiBJZiB0aGUgaGFyZHdhcmUKc3Vic2VxdWVudGx5IGFz c2VydHMgdGhlIFNUSUdfRE9ORSBpbnRlcnJ1cHQsIGNtZF9jb21wbGV0ZSBpcyBjb21wbGV0ZWQs CmxlYXZpbmcgdGhlIGNvbXBsZXRpb24gY291bnQgYXQgMS4KCj4gLQkJfSBlbHNlIGlmICghY2Ru c194c3BpX2lzX3NkbWFfcmVhZHkoY2Ruc194c3BpLCB0cnVlKSkgewo+ICsJCX0gZWxzZSBpZiAo IWNkbnNfeHNwaV9pc19zZG1hX3JlYWR5KGNkbnNfeHNwaSwgIW9wLT5wYW5pY193cml0ZSkpIHsK PiAgCQkJcmV0dXJuIC1FSU87Cj4gIAkJfQo+ICAKPiAgCQljZG5zX3hzcGktPnNkbWFfaGFuZGxl cihjZG5zX3hzcGkpOwo+ICAJfQo+ICAKPiAtCWlmIChjZG5zX3hzcGktPmlycSA+PSAwKSB7Cj4g KwlpZiAoY2Ruc194c3BpLT5pcnEgPj0gMCAmJiAhb3AtPnBhbmljX3dyaXRlKSB7Cj4gIAkJd2Fp dF9mb3JfY29tcGxldGlvbigmY2Ruc194c3BpLT5jbWRfY29tcGxldGUpOwoKW1NldmVyaXR5OiBI aWdoXQpUaGlzIHdhaXQgd2lsbCByZXR1cm4gaW1tZWRpYXRlbHkgaWYgYSBwcmV2aW91cyBhYm9y dGVkIGNvbW1hbmQgbGVmdCBhIGxpbmdlcmluZwpjb21wbGV0aW9uIGNvdW50LCBjYXVzaW5nIHRo ZSBuZXcgY29tbWFuZCB0byBwcmVtYXR1cmVseSBjb250aW51ZSBleGVjdXRpb24uCgpTaG91bGQg d2UgY2FsbCByZWluaXRfY29tcGxldGlvbigpIGJlZm9yZSB0cmlnZ2VyaW5nIGNvbW1hbmRzPwoK PiAgCQljZG5zX3hzcGktPnNldF9pbnRlcnJ1cHRzX2hhbmRsZXIoY2Ruc194c3BpLCBmYWxzZSk7 Cj4gLQl9IGVsc2UgaWYgKCFjZG5zX3hzcGlfaXNfc3RpZ19yZWFkeShjZG5zX3hzcGksIHRydWUp KSB7Cj4gKwl9IGVsc2UgaWYgKCFjZG5zX3hzcGlfaXNfc3RpZ19yZWFkeShjZG5zX3hzcGksICFv cC0+cGFuaWNfd3JpdGUpKSB7Cj4gIAkJcmV0dXJuIC1FSU87Cj4gIAl9CgotLSAKU2FzaGlrbyBB SSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYxMDE2MTAyOTE3 LjE3MTA5NS0xLXBhdWwuY2VyY3VlaWxAYm9vdGxpbi5jb20/cGFydD02CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXggTVREIGRpc2N1 c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtbXRkLwo=