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 7B385CA5FF0 for ; Mon, 5 Oct 2026 08:26:40 +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:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jG2TVd/Pc9r+yO5QBGykHwcDS21rpZ+y4285DKBzIyI=; b=DoA9ev+XiwotuQ I00uKc+wbD6ILaDUNeZFuB4rgT//Ij3P7uo7ZDSHL5jPwwsbQOGYt5zMlfGBs0rElrP8mbZdYuRmO RYkY+XA5QHByz/1FFbmqImKpLTxCrJRrE2OZnT4h+/emxu+ZEMG2meR23m3xE5c0nxQBDR8NQkVY9 ZyEz9cIAWnw3i5vIV5H0Jo+CQ9ToDEu1xaM0VET1t8Yd69I9hRIbf0d0knd+cn/wlqekCFT57brI3 5ZSgJjZcnF+9xaq93CASIDIw3qoukd7FlElRy8lKqAvKqknVtLxWcw9Igve1nc+aUpipiC4qfiRt0 fvRORODDKQ0CdwhZvmiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDe1s-0000000Fsdi-3myv; Mon, 05 Oct 2026 08:26:36 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xDe1r-0000000Fsdb-1TXV for linux-mtd@lists.infradead.org; Mon, 05 Oct 2026 08:26:35 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id E716C43B7A; Mon, 5 Oct 2026 08:26:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1B581F000FF; Mon, 5 Oct 2026 08:26:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791188794; bh=xqk28xZRdSDRZtA317ls6P+30aviR4Fq7ab529tSLFY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=YiBcFX9XxA1jw2BijSs+c8QvPx4VTAqYHyWThLI0JjYs7Ab/4CDFB4FrpVqOpKfwN JrRZMXlMKsm2rXxJMQxjVeNAwvSX4tlDTDJV0L78OrlCu7lwwJ3tZEuU2osE1fjigx JOFBRUPH4a6R0fvrNEg29YsF85/xR4RpYhXu4QuSMHEhVo/CRsnRZUlZyH3jyEz5LS IcA6AG2/RuXWeNmsbrSyVjTYQ/+COWWxXUN9ckN/VG1EzPxUIaSAaAojJdG3xDcxXc Fpr0JZlJrvFevgSLTfcKFOF/k2TsdUV0S/K6AGYdVc+oXZ79GIyOuK+9UypeS5I938 Fl6HQQSX0zqvA== From: sashiko-bot@kernel.org Subject: Re: [PATCH 5/5] spi: cadence-xspi: Add support for panic writes To: "Miquel Raynal" , "Vignesh Raghavendra" , "Thomas Petazzoni" , "Michael Walle" , "Takahiro Kuwano" , "Richard Weinberger" , "Pratyush Yadav" , "Mark Brown" , "Paul Cercueil" Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, "Guilherme G . Piccoli" , "Tony Luck" , "Tanmay Jagdale" , linux-mtd@lists.infradead.org, "Kees Cook" In-Reply-To: <20261005081141.33688-6-paul.cercueil@bootlin.com> References: <20261005081141.33688-1-paul.cercueil@bootlin.com> <20261005081141.33688-6-paul.cercueil@bootlin.com> Date: Mon, 05 Oct 2026 08:26:33 +0000 Message-Id: <20261005082633.F1B581F000FF@smtp.kernel.org> 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 MyBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIHNwaTogY2FkZW5jZS14 c3BpOiBtaXNzaW5nIFBIWSB3YWtldXAgaW4gcGFuaWMgd3JpdGUgcGF0aAotIFtIaWdoXSBzcGk6 IGNhZGVuY2UteHNwaTogZGVhZGxvY2sgaW4gcGFuaWMgd3JpdGUgdmlhIGt0aW1lX2dldCgpCi0g W0hpZ2hdIHNwaTogY2FkZW5jZS14c3BpOiB1bm1hc2tlZCBpbnRlcnJ1cHRzIGxlYWsgaW4gcG9s bGluZyBtb2RlCi0tCgpjb21taXQgNjFhYWNhYWI0Y2E5ZTk1ZDlmMjllMmY5OTc1NGFjMDhjZjE4 NjE2ZQpBdXRob3I6IFRhbm1heSBKYWdkYWxlIDx0YW5tYXlAbWFydmVsbC5jb20+CgpzcGk6IGNh ZGVuY2UteHNwaTogQWRkIHN1cHBvcnQgZm9yIHBhbmljIHdyaXRlcwogICAgClRoaXMgY29tbWl0 IGFkZHMgc3VwcG9ydCBmb3IgcGFuaWMgd3JpdGVzIHRvIHRoZSBDYWRlbmNlIFhTUEkgZHJpdmVy IGJ5CmNoZWNraW5nIHRoZSBwYW5pYyBmbGFnIG9uIG1lbW9yeSBvcGVyYXRpb25zLiBXaGVuIGEg cGFuaWMgd3JpdGUgaXMgcmVxdWVzdGVkLAp0aGUgZHJpdmVyIG9wZXJhdGVzIHdpdGhvdXQgcmVs eWluZyBvbiBpbnRlcnJ1cHRzIG9yIHNsZWVwaW5nLgoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9z cGkvc3BpLWNhZGVuY2UteHNwaS5jIGIvZHJpdmVycy9zcGkvc3BpLWNhZGVuY2UteHNwaS5jCj4g aW5kZXggMDllZDJhZmJkNGFmMy4uMGI3MTYyNzQwOTQwZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L3NwaS9zcGktY2FkZW5jZS14c3BpLmMKPiArKysgYi9kcml2ZXJzL3NwaS9zcGktY2FkZW5jZS14 c3BpLmMKPiBAQCAtMzUwLDEwICszNTAsMTEgQEAgc3RydWN0IGNkbnNfeHNwaV9kZXYgewo+ICAJ dm9pZCAoKnNldF9pbnRlcnJ1cHRzX2hhbmRsZXIpKHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpjZG5z X3hzcGksIGJvb2wgZW5hYmxlZCk7Cj4gIAo+ICAJYm9vbCB4ZmVyX2luX3Byb2dyZXNzOwo+ICsJ Ym9vbCBwYW5pY193cml0ZTsKPiAgCWludCBjdXJyZW50X3hmZXJfcXdvcmQ7Cj4gIH07Cj4gIAo+ IC1zdGF0aWMgaW50IGNkbnNfeHNwaV93YWl0X2Zvcl9jb250cm9sbGVyX2lkbGUoc3RydWN0IGNk bnNfeHNwaV9kZXYgKmNkbnNfeHNwaSkKPiArc3RhdGljIGludCBjZG5zX3hzcGlfd2FpdF9mb3Jf Y29udHJvbGxlcl9pZGxlKHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpjZG5zX3hzcGksIGJvb2wgc2xl ZXApCj4gIHsKPiAgCXUzMiBjdHJsX3N0YXQ7Cj4gIAo+IEBAIC0zNjIsNyArMzYzLDcgQEAgc3Rh dGljIGludCBjZG5zX3hzcGlfd2FpdF9mb3JfY29udHJvbGxlcl9pZGxlKHN0cnVjdCBjZG5zX3hz cGlfZGV2ICpjZG5zX3hzcGkpCj4gIAkJCQkJICBjdHJsX3N0YXQsCj4gIAkJCQkJICAoKGN0cmxf c3RhdCAmCj4gIAkJCQkJICAgIENETlNfWFNQSV9DVFJMX0JVU1kpID09IDApLAo+IC0JCQkJCSAg MTAwLCAxMDAwKTsKPiArCQkJCQkgIHNsZWVwID8gMTAwIDogMCwgMTAwMCk7CgpbU2V2ZXJpdHk6 IEhpZ2hdCkRvZXMgdGhpcyBjb2RlIGNhdXNlIGEgZGVhZGxvY2sgZHVyaW5nIGEga2VybmVsIHBh bmljPwoKcmVhZGxfcmVsYXhlZF9wb2xsX3RpbWVvdXQoKSBleHBhbmRzIHRvIHJlYWRfcG9sbF90 aW1lb3V0KCksIHdoaWNoIGV2YWx1YXRlcwprdGltZV9nZXQoKSB0byBlbmZvcmNlIHRoZSB0aW1l b3V0LCBldmVuIHdoZW4gdGhlIGRlbGF5IGlzIDAuIElmIGFub3RoZXIgQ1BVCndhcyBoYWx0ZWQg YnkgYW4gTk1JIG9yIElQSSB3aGlsZSBob2xkaW5nIHRoZSB3cml0ZSBsb2NrIGZvciB0aGUgdGlt ZWtlZXBpbmcKc2VxdWVuY2UgbG9jayAodGtfY29yZS5zZXEpIGR1cmluZyB0aGUgcGFuaWMsIGNh bGxpbmcga3RpbWVfZ2V0KCkgd2lsbCBoYW5nCnRoZSBzeXN0ZW0uCgpTaG91bGQgdGhpcyB1c2Ug cmVhZGxfcmVsYXhlZF9wb2xsX3RpbWVvdXRfYXRvbWljKCkgaW5zdGVhZCB0byBhdm9pZAp0aW1l a2VlcGluZyBmdW5jdGlvbnMgZHVyaW5nIGEgcGFuaWM/CgpbIC4uLiBdCj4gQEAgLTU4NiwyMyAr NTg3LDIzIEBAIHN0YXRpYyBpbnQgY2Ruc194c3BpX3NlbmRfc3RpZ19jb21tYW5kKHN0cnVjdCBj ZG5zX3hzcGlfZGV2ICpjZG5zX3hzcGksCj4gIAo+ICAJCWNkbnNfeHNwaV90cmlnZ2VyX2NvbW1h bmQoY2Ruc194c3BpLCBjbWRfcmVncyk7Cj4gIAo+IC0JCWlmIChjZG5zX3hzcGktPmlycSA+PSAw KSB7Cj4gKwkJaWYgKGNkbnNfeHNwaS0+aXJxID49IDAgJiYgIW9wLT5wYW5pY193cml0ZSkgewo+ ICAJCQl3YWl0X2Zvcl9jb21wbGV0aW9uKCZjZG5zX3hzcGktPnNkbWFfY29tcGxldGUpOwo+ICAJ CQlpZiAoY2Ruc194c3BpLT5zZG1hX2Vycm9yKSB7Cj4gIAkJCQljZG5zX3hzcGktPnNldF9pbnRl cnJ1cHRzX2hhbmRsZXIoY2Ruc194c3BpLCBmYWxzZSk7Cj4gIAkJCQlyZXR1cm4gLUVJTzsKPiAg CQkJfQo+IC0JCX0gZWxzZSBpZiAoIWNkbnNfeHNwaV9pc19zZG1hX3JlYWR5KGNkbnNfeHNwaSwg dHJ1ZSkpIHsKPiArCQl9IGVsc2UgaWYgKCFjZG5zX3hzcGlfaXNfc2RtYV9yZWFkeShjZG5zX3hz cGksICFvcC0+cGFuaWNfd3JpdGUpKSB7Cj4gIAkJCXJldHVybiAtRUlPOwo+ICAJCX0KPiAgCj4g IAkJY2Ruc194c3BpLT5zZG1hX2hhbmRsZXIoY2Ruc194c3BpKTsKPiAgCX0KPiAgCj4gLQlpZiAo Y2Ruc194c3BpLT5pcnEgPj0gMCkgewo+ICsJaWYgKGNkbnNfeHNwaS0+aXJxID49IDAgJiYgIW9w LT5wYW5pY193cml0ZSkgewo+ICAJCXdhaXRfZm9yX2NvbXBsZXRpb24oJmNkbnNfeHNwaS0+Y21k X2NvbXBsZXRlKTsKPiAgCQljZG5zX3hzcGktPnNldF9pbnRlcnJ1cHRzX2hhbmRsZXIoY2Ruc194 c3BpLCBmYWxzZSk7Cj4gLQl9IGVsc2UgaWYgKCFjZG5zX3hzcGlfaXNfc3RpZ19yZWFkeShjZG5z X3hzcGksIHRydWUpKSB7Cj4gKwl9IGVsc2UgaWYgKCFjZG5zX3hzcGlfaXNfc3RpZ19yZWFkeShj ZG5zX3hzcGksICFvcC0+cGFuaWNfd3JpdGUpKSB7Cj4gIAkJcmV0dXJuIC1FSU87Cj4gIAl9Cgpb U2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBsZWFrIHVubWFza2VkIGludGVycnVwdHMgaW4gcG9s bGluZyBtb2RlPwoKRWFybGllciBpbiBjZG5zX3hzcGlfc2VuZF9zdGlnX2NvbW1hbmQoKSwgaW50 ZXJydXB0cyBhcmUgdW5jb25kaXRpb25hbGx5CmVuYWJsZWQ6CgogICAgY2Ruc194c3BpLT5zZXRf aW50ZXJydXB0c19oYW5kbGVyKGNkbnNfeHNwaSwgdHJ1ZSk7CgpJZiB0aGUgY29udHJvbGxlciBp cyBpbiBwb2xsaW5nIG1vZGUgKGlycSA8IDApLCB0aGlzIGNvZGUgdGFrZXMgdGhlIGVsc2UtaWYK YnJhbmNoLiBXaGV0aGVyIGNkbnNfeHNwaV9pc19zdGlnX3JlYWR5KCkgc3VjY2VlZHMgb3IgZmFp bHMsIHRoZSBmdW5jdGlvbgpyZXR1cm5zIHdpdGhvdXQgY2FsbGluZyBjZG5zX3hzcGktPnNldF9p bnRlcnJ1cHRzX2hhbmRsZXIoY2Ruc194c3BpLCBmYWxzZSkuCgpXaWxsIHRoaXMgY2F1c2UgYW4g dW5oYW5kbGVkIGludGVycnVwdCBzdG9ybSBpZiB0aGUgaGFyZHdhcmUgSVJRIGxpbmUKaXMgcGh5 c2ljYWxseSBzaGFyZWQgd2l0aCBvdGhlciBkZXZpY2VzPwoKWyAuLi4gXQo+IEBAIC02MjIsNiAr NjIzLDggQEAgc3RhdGljIGludCBjZG5zX3hzcGlfbWVtX29wKHN0cnVjdCBjZG5zX3hzcGlfZGV2 ICpjZG5zX3hzcGksCj4gIAlpZiAoY2Ruc194c3BpLT5jdXJfY3MgIT0gc3BpX2dldF9jaGlwc2Vs ZWN0KG1lbS0+c3BpLCAwKSkKPiAgCQljZG5zX3hzcGktPmN1cl9jcyA9IHNwaV9nZXRfY2hpcHNl bGVjdChtZW0tPnNwaSwgMCk7Cj4gIAo+ICsJY2Ruc194c3BpLT5wYW5pY193cml0ZSA9IG9wLT5w YW5pY193cml0ZTsKPiArCj4gIAlyZXR1cm4gY2Ruc194c3BpX3NlbmRfc3RpZ19jb21tYW5kKGNk bnNfeHNwaSwgb3AsCj4gIAkJCQkJICAgKGRpciAhPSBTUElfTUVNX05PX0RBVEEpKTsKPiAgfQoK W1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgZW50cnkgcG9pbnQgZmFpbCB0byB3YWtlIHVwIHRo ZSBQSFkgZnJvbSBzdXNwZW5kIGR1cmluZyBhIHBhbmljCndyaXRlPwoKSWYgdGhlIHN5c3RlbSBw YW5pY3Mgd2hpbGUgdGhlIGRldmljZSBpcyBzdXNwZW5kZWQsIHRoZSBjb250cm9sbGVyIHdpbGwK YXR0ZW1wdCB0byBleGVjdXRlIFNUSUcgY29tbWFuZHMgd2hpbGUgdGhlIFBIWSBpcyBzdGlsbCBz dXNwZW5kZWQsIHdoaWNoCmNvdWxkIGxlYWQgdG8gYnVzIGZhdWx0cyBvciBoYXJkd2FyZSBsb2Nr dXBzLgoKU2hvdWxkIHRoaXMgcGF0aCBjYWxsIGNkbnNfeHNwaV9jb25maWd1cmVfcGh5KCkgdG8g d2FrZSB1cCB0aGUgUEhZIGJlZm9yZQpzZW5kaW5nIGNvbW1hbmRzIGR1cmluZyBhIHBhbmljIHdy aXRlPwoKWyAuLi4gXQo+IEBAIC04MzEsOSArODM0LDExIEBAIHN0YXRpYyBib29sIGNkbnNfeHNw aV9pc19kbGxfbG9ja2VkKHN0cnVjdCBjZG5zX3hzcGlfZGV2ICpjZG5zX3hzcGkpCj4gIHsKPiAg CXUzMiBkbGxfbG9jazsKPiAgCj4gKwkvKiBCdXN5LXdhaXQgaW4gY2FzZSB3ZSB3YWtlIHVwIHRo ZSBQSFkgZnJvbSBzdXNwZW5kIHRvIGRvIGEgcGFuaWMgd3JpdGUgKi8KPiAgCXJldHVybiAhcmVh ZGxfcmVsYXhlZF9wb2xsX3RpbWVvdXQoY2Ruc194c3BpLT5pb2Jhc2UgKwo+ICAJCUNETlNfWFNQ SV9JTlRSX1NUQVRVU19SRUcsCj4gLQkJZGxsX2xvY2ssICgoZGxsX2xvY2sgJiBDRE5TX1hTUElf RExMX0xPQ0spID09IDEpLCAxMCwgMTAwMDApOwo+ICsJCWRsbF9sb2NrLCAoKGRsbF9sb2NrICYg Q0ROU19YU1BJX0RMTF9MT0NLKSA9PSAxKSwKPiArCQljZG5zX3hzcGktPnBhbmljX3dyaXRlID8g MCA6IDEwLCAxMDAwMCk7Cj4gIH0KCltTZXZlcml0eTogSGlnaF0KSXMgdGhpcyBjb2RlIHJlYWNo YWJsZSBkdXJpbmcgYSBwYW5pYyB3cml0ZT8KClRoZSBjb21tZW50IGluZGljYXRlcyB0aGlzIGhh bmRsZXMgd2FraW5nIHVwIHRoZSBQSFkgZHVyaW5nIGEgcGFuaWMgd3JpdGUuCkhvd2V2ZXIsIHRo aXMgZnVuY3Rpb24gaXMgb25seSBjYWxsZWQgZnJvbSBjZG5zX3hzcGlfY29uZmlndXJlX3BoeSgp LCB3aGljaAppcyBlbnRpcmVseSBvbWl0dGVkIGZyb20gdGhlIGNkbnNfeHNwaV9tZW1fb3AoKSBw YW5pYyB3cml0ZSBleGVjdXRpb24gcGF0aC4KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRw czovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjEwMDUwODExNDEuMzM2ODgtMS1wYXVsLmNl cmN1ZWlsQGJvb3RsaW4uY29tP3BhcnQ9NQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlz dApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2970F31578E; Mon, 5 Oct 2026 08:26:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791188796; cv=none; b=fTGM/OxZVvgLCiEyr+pn1MzvbkEcoORsMg8+pRvdkVhI+GJObuspFiFHmq2goyvu5dnhy9VXr6DFOJtHvjEdqU9unXgfyOSOrQI3yr4fnHrpbTp47xRXXx5OWo5Vt8WUEcfMVKvYmkHlE/MLYtZ1z7mqTcHGlL6mD/duCwTYbp8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1791188796; c=relaxed/simple; bh=Sn3eYayrOBPCyjo2eZpCtuKeZxDukyJIWkj/nzdogTw=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=H9qPnLvP/lLhPT6ALZR67rlGeWfRhP3kb7WV7ZI2ENwaiF+SpYHtruqjc0zDypBvIeaaNxkcZUAufZ/Yd2MHJt+G2QdalGsfdTwf0xD39Auo13CzZfGHXjHD2zjVr0gIJOoAi9u2I7Koagqpm3cVlv6rccH19nrFrIYqB4at7oE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=YiBcFX9X; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="YiBcFX9X" Received: by smtp.kernel.org (Postfix) with ESMTPSA id F1B581F000FF; Mon, 5 Oct 2026 08:26:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1791188794; bh=xqk28xZRdSDRZtA317ls6P+30aviR4Fq7ab529tSLFY=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=YiBcFX9XxA1jw2BijSs+c8QvPx4VTAqYHyWThLI0JjYs7Ab/4CDFB4FrpVqOpKfwN JrRZMXlMKsm2rXxJMQxjVeNAwvSX4tlDTDJV0L78OrlCu7lwwJ3tZEuU2osE1fjigx JOFBRUPH4a6R0fvrNEg29YsF85/xR4RpYhXu4QuSMHEhVo/CRsnRZUlZyH3jyEz5LS IcA6AG2/RuXWeNmsbrSyVjTYQ/+COWWxXUN9ckN/VG1EzPxUIaSAaAojJdG3xDcxXc Fpr0JZlJrvFevgSLTfcKFOF/k2TsdUV0S/K6AGYdVc+oXZ79GIyOuK+9UypeS5I938 Fl6HQQSX0zqvA== From: sashiko-bot@kernel.org Subject: Re: [PATCH 5/5] spi: cadence-xspi: Add support for panic writes Reply-To: sashiko-reviews@lists.linux.dev To: "Miquel Raynal" , "Vignesh Raghavendra" , "Thomas Petazzoni" , "Michael Walle" , "Takahiro Kuwano" , "Richard Weinberger" , "Pratyush Yadav" , "Mark Brown" , "Paul Cercueil" Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org, "Guilherme G . Piccoli" , "Tony Luck" , "Tanmay Jagdale" , linux-mtd@lists.infradead.org, "Kees Cook" In-Reply-To: <20261005081141.33688-6-paul.cercueil@bootlin.com> References: <20261005081141.33688-1-paul.cercueil@bootlin.com> <20261005081141.33688-6-paul.cercueil@bootlin.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 05 Oct 2026 08:26:33 +0000 Message-Id: <20261005082633.F1B581F000FF@smtp.kernel.org> Precedence: bulk X-Mailing-List: linux-spi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 3 potential issue(= s) to consider: - [High] spi: cadence-xspi: missing PHY wakeup in panic write path - [High] spi: cadence-xspi: deadlock in panic write via ktime_get() - [High] spi: cadence-xspi: unmasked interrupts leak in polling mode -- commit 61aacaab4ca9e95d9f29e2f99754ac08cf18616e Author: Tanmay Jagdale spi: cadence-xspi: Add support for panic writes =20 This commit adds support for panic writes to the Cadence XSPI driver by checking the panic flag on memory operations. When a panic write is request= ed, the driver operates without relying on interrupts or sleeping. > diff --git a/drivers/spi/spi-cadence-xspi.c b/drivers/spi/spi-cadence-xsp= i.c > index 09ed2afbd4af3..0b7162740940f 100644 > --- a/drivers/spi/spi-cadence-xspi.c > +++ b/drivers/spi/spi-cadence-xspi.c > @@ -350,10 +350,11 @@ struct cdns_xspi_dev { > void (*set_interrupts_handler)(struct cdns_xspi_dev *cdns_xspi, bool en= abled); > =20 > bool xfer_in_progress; > + bool panic_write; > int current_xfer_qword; > }; > =20 > -static int cdns_xspi_wait_for_controller_idle(struct cdns_xspi_dev *cdns= _xspi) > +static int cdns_xspi_wait_for_controller_idle(struct cdns_xspi_dev *cdns= _xspi, bool sleep) > { > u32 ctrl_stat; > =20 > @@ -362,7 +363,7 @@ static int cdns_xspi_wait_for_controller_idle(struct = cdns_xspi_dev *cdns_xspi) > ctrl_stat, > ((ctrl_stat & > CDNS_XSPI_CTRL_BUSY) =3D=3D 0), > - 100, 1000); > + sleep ? 100 : 0, 1000); [Severity: High] Does this code cause a deadlock during a kernel panic? readl_relaxed_poll_timeout() expands to read_poll_timeout(), which evaluates ktime_get() to enforce the timeout, even when the delay is 0. If another CPU was halted by an NMI or IPI while holding the write lock for the timekeeping sequence lock (tk_core.seq) during the panic, calling ktime_get() will hang the system. Should this use readl_relaxed_poll_timeout_atomic() instead to avoid timekeeping functions during a panic? [ ... ] > @@ -586,23 +587,23 @@ static int cdns_xspi_send_stig_command(struct cdns_= xspi_dev *cdns_xspi, > =20 > cdns_xspi_trigger_command(cdns_xspi, cmd_regs); > =20 > - if (cdns_xspi->irq >=3D 0) { > + if (cdns_xspi->irq >=3D 0 && !op->panic_write) { > wait_for_completion(&cdns_xspi->sdma_complete); > if (cdns_xspi->sdma_error) { > cdns_xspi->set_interrupts_handler(cdns_xspi, false); > return -EIO; > } > - } else if (!cdns_xspi_is_sdma_ready(cdns_xspi, true)) { > + } else if (!cdns_xspi_is_sdma_ready(cdns_xspi, !op->panic_write)) { > return -EIO; > } > =20 > cdns_xspi->sdma_handler(cdns_xspi); > } > =20 > - if (cdns_xspi->irq >=3D 0) { > + if (cdns_xspi->irq >=3D 0 && !op->panic_write) { > wait_for_completion(&cdns_xspi->cmd_complete); > cdns_xspi->set_interrupts_handler(cdns_xspi, false); > - } else if (!cdns_xspi_is_stig_ready(cdns_xspi, true)) { > + } else if (!cdns_xspi_is_stig_ready(cdns_xspi, !op->panic_write)) { > return -EIO; > } [Severity: High] Does this leak unmasked interrupts in polling mode? Earlier in cdns_xspi_send_stig_command(), interrupts are unconditionally enabled: cdns_xspi->set_interrupts_handler(cdns_xspi, true); If the controller is in polling mode (irq < 0), this code takes the else-if branch. Whether cdns_xspi_is_stig_ready() succeeds or fails, the function returns without calling cdns_xspi->set_interrupts_handler(cdns_xspi, false). Will this cause an unhandled interrupt storm if the hardware IRQ line is physically shared with other devices? [ ... ] > @@ -622,6 +623,8 @@ static int cdns_xspi_mem_op(struct cdns_xspi_dev *cdn= s_xspi, > if (cdns_xspi->cur_cs !=3D spi_get_chipselect(mem->spi, 0)) > cdns_xspi->cur_cs =3D spi_get_chipselect(mem->spi, 0); > =20 > + cdns_xspi->panic_write =3D op->panic_write; > + > return cdns_xspi_send_stig_command(cdns_xspi, op, > (dir !=3D SPI_MEM_NO_DATA)); > } [Severity: High] Does this entry point fail to wake up the PHY from suspend during a panic write? If the system panics while the device is suspended, the controller will attempt to execute STIG commands while the PHY is still suspended, which could lead to bus faults or hardware lockups. Should this path call cdns_xspi_configure_phy() to wake up the PHY before sending commands during a panic write? [ ... ] > @@ -831,9 +834,11 @@ static bool cdns_xspi_is_dll_locked(struct cdns_xspi= _dev *cdns_xspi) > { > u32 dll_lock; > =20 > + /* Busy-wait in case we wake up the PHY from suspend to do a panic writ= e */ > return !readl_relaxed_poll_timeout(cdns_xspi->iobase + > CDNS_XSPI_INTR_STATUS_REG, > - dll_lock, ((dll_lock & CDNS_XSPI_DLL_LOCK) =3D=3D 1), 10, 10000); > + dll_lock, ((dll_lock & CDNS_XSPI_DLL_LOCK) =3D=3D 1), > + cdns_xspi->panic_write ? 0 : 10, 10000); > } [Severity: High] Is this code reachable during a panic write? The comment indicates this handles waking up the PHY during a panic write. However, this function is only called from cdns_xspi_configure_phy(), which is entirely omitted from the cdns_xspi_mem_op() panic write execution path. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261005081141.3368= 8-1-paul.cercueil@bootlin.com?part=3D5