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 186ABC61DD3 for ; Tue, 1 Sep 2026 16:33:07 +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=Si4uIHvN4H7t+xbhI7ruIvKFimLCfKY1+t+58aDzGMo=; b=ayyzcYW20FGr82 y2B8nf2DeXPLQAJLYB0nZ4AWQmT7xGnq/reWBygsM3bT8uwHV4e56MA6EsNjeWR+yANSw9gZTUzPU pRxiPGVGJWzPovpUDK2Oj5XzqKXcvu7c6lF9w3mwffk4dBajEXkWf0PS8sIAeXaR9UoMM28/jeV+w 5yLnw3X47B6GNGffzPsPIJZ/CxMiKsSW+jDJT+WoExLKQrLA00AKq1wwo6SEzmJuqH/6G08WnIrU3 rPJ2j4yYMwTFIDWaf/74e3UeYTabmJgDXMwkwz2QjsDSfGBWd1Ud2P3HvEStecT2m0ciMDCx9ANZd hAeKgjN9CxYJjKMnJSBw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x1RQ2-0000000CfO6-3EKS; Tue, 01 Sep 2026 16:33:06 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x1RQ2-0000000CfNz-0dhd for linux-phy@lists.infradead.org; Tue, 01 Sep 2026 16:33:06 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 39AAE60267; Tue, 1 Sep 2026 16:33:05 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D8841F000E9; Tue, 1 Sep 2026 16:33:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788280384; bh=YJz8BbL1/lzpe86MseU3HV4c3Tlb2GBXlla8B3STk6E=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Dwz3dSFUTdbRNrChSM+WsLO1oh0ND20nFVKk7cgOmzW4m4it5LUcIn2LynWsVSMUT 4Po+kO3m34cG4NCpmuB6clIKEVlsdVGHx6bbmWFtAJVHrt53BHdqvlFhHRXJOeVTRX ZSlIMKX90VijLCUsG7ZTDjmtUA+3CBqUpmO+oOIHBQ/8iO6Nodndkj5NAZ233lFO3Q WuHSIKu2cU8Ok4CeCOst5G1EQJXhshwoekaFLez1XX1oqI+v9vJXct6BUSaqHd9RW3 hOt9CI4QgFeDoj1JLGUQo7Bj84U5DiZfruNPgxlUdSdrCpnUAmlFCodgbQtxxEndVE AQBIeA9wDJ9pA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v11 21/24] scsi: ufs: mediatek: Back up idle timer in per-instance struct To: "Louis-Alexis Eyraud" Cc: robh@kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, linux-scsi@vger.kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com, conor+dt@kernel.org In-Reply-To: <20260901-mt8196-ufs-v11-21-dbd007704490@collabora.com> References: <20260901-mt8196-ufs-v11-0-dbd007704490@collabora.com> <20260901-mt8196-ufs-v11-21-dbd007704490@collabora.com> Date: Tue, 01 Sep 2026 16:33:03 +0000 Message-Id: <20260901163304.6D8841F000E9@smtp.kernel.org> X-BeenThere: linux-phy@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux Phy 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-phy" Errors-To: linux-phy-bounces+linux-phy=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MiBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6CgpQcmUtZXhpc3RpbmcgaXNzdWVzOgot IFtIaWdoXSBBIGZhaWxlZCBwb3dlciBtb2RlIGNoYW5nZSB3aWxsIHBlcm1hbmVudGx5IGRpc2Fi bGUgdGhlIGF1dG8taGliZXJuOCB0aW1lciBkdWUgdG8gYnJpdHRsZSBiYWNrdXAvcmVzdG9yZSBs b2dpYy4KLSBbSGlnaF0gQ29uY3VycmVudCBzeXNmcyB3cml0ZSB0byBgYXV0b19oaWJlcm44YCBy YWNlcyB3aXRoIHBvd2VyIG1vZGUgY2hhbmdlcywgY2lyY3VtdmVudGluZyBoYXJkd2FyZSBjb25z dHJhaW50cyBhbmQgbG9zaW5nIHVzZXIgY29uZmlndXJhdGlvbi4KLS0KCmNvbW1pdCBkZWMyMTdh NjE2ZTM3YTZkNmM2MDc0ZjM1M2FjZTFmYzc0MzU5NmUyCkF1dGhvcjogTmljb2xhcyBGcmF0dGFy b2xpIDxuaWNvbGFzLmZyYXR0YXJvbGlAY29sbGFib3JhLmNvbT4KCnNjc2k6IHVmczogbWVkaWF0 ZWs6IEJhY2sgdXAgaWRsZSB0aW1lciBpbiBwZXItaW5zdGFuY2Ugc3RydWN0CgpUaGUgTWVkaWFU ZWsgVUZTIGRyaXZlciB1c2VzIGEgZnVuY3Rpb24tc2NvcGUgc3RhdGljIHZhcmlhYmxlIHRvIGJh Y2sgdXAKYSBoYXJkd2FyZSByZWdpc3RlciBhY3Jvc3MgYSBwb3dlciBjaGFuZ2UgaW4gdGhlCnVm c19tdGtfcHdyX2NoYW5nZV9ub3RpZnkgZnVuY3Rpb24uIFRoaXMgaXMgZGFuZ2Vyb3VzLCBhcyBp dCdzIG9ubHkKY29ycmVjdCBpZiBvbmx5IGV2ZXIgb25lIGluc3RhbmNlIG9mIHRoZSBkcml2ZXIg aXMgbG9hZGVkLCB3aGljaCBpc24ndAp0cnVlIGlmIHRoZXJlJ3MgbW9yZSB0aGFuIG9uZSBkZXZp Y2Ugb24gYSBTb0MgdGhhdCBuZWVkcyBpdCwgb3IgaXQKb3RoZXJ3aXNlIGdldHMgbG9hZGVkIGEg c2Vjb25kIHRpbWUuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Vmcy9ob3N0L3Vmcy1tZWRpYXRl ay5jIGIvZHJpdmVycy91ZnMvaG9zdC91ZnMtbWVkaWF0ZWsuYwo+IGluZGV4IGY0MDVmNTExZjQx ZmQuLjQ3ODJmZGY1NDg2NmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91ZnMvaG9zdC91ZnMtbWVk aWF0ZWsuYwo+ICsrKyBiL2RyaXZlcnMvdWZzL2hvc3QvdWZzLW1lZGlhdGVrLmMKPiBAQCAtMTQ0 MSwyNyArMTQ0MSwyNCBAQCBzdGF0aWMgaW50IHVmc19tdGtfcHdyX2NoYW5nZV9ub3RpZnkoc3Ry dWN0IHVmc19oYmEgKmhiYSwKPiAgCQkJCWVudW0gdWZzX25vdGlmeV9jaGFuZ2Vfc3RhdHVzIHN0 YWdlLAo+ICAJCQkJc3RydWN0IHVmc19wYV9sYXllcl9hdHRyICpkZXZfcmVxX3BhcmFtcykKPiAg ewo+IC0JaW50IHJldCA9IDA7Cj4gLQlzdGF0aWMgdTMyIHJlZzsKPiArCXN0cnVjdCB1ZnNfbXRr X2hvc3QgKmhvc3QgPSB1ZnNoY2RfZ2V0X3ZhcmlhbnQoaGJhKTsKPiAgCj4gIAlzd2l0Y2ggKHN0 YWdlKSB7Cj4gIAljYXNlIFBSRV9DSEFOR0U6Cj4gIAkJaWYgKHVmc2hjZF9pc19hdXRvX2hpYmVy bjhfc3VwcG9ydGVkKGhiYSkpIHsKPiAtCQkJcmVnID0gdWZzaGNkX3JlYWRsKGhiYSwgUkVHX0FV VE9fSElCRVJOQVRFX0lETEVfVElNRVIpOwo+ICsJCQlob3N0LT5haGl0ID0gdWZzaGNkX3JlYWRs KAo+ICsJCQkJaGJhLCBSRUdfQVVUT19ISUJFUk5BVEVfSURMRV9USU1FUik7Cj4gIAkJCXVmc19t dGtfYXV0b19oaWJlcm44X2Rpc2FibGUoaGJhKTsKPiAgCQl9CgpbU2V2ZXJpdHk6IEhpZ2hdClRo aXMgaXNuJ3QgYSBidWcgaW50cm9kdWNlZCBieSB0aGlzIHBhdGNoLCBidXQgZG9lcyB0aGlzIGJy aXR0bGUgY2FjaGluZyBsb2dpYwpyaXNrIHBlcm1hbmVudGx5IGRpc2FibGluZyB0aGUgYXV0by1o aWJlcm5hdGUgZmVhdHVyZT8KCkluIHVmc2hjZF9jaGFuZ2VfcG93ZXJfbW9kZSgpLCBQUkVfQ0hB TkdFIGlzIGNhbGxlZCBmaXJzdCwgd2hpY2ggcmVhZHMgdGhlCmhhcmR3YXJlIHRpbWVyIHZhbHVl IGFuZCBkaXNhYmxlcyBpdC4gSWYgdGhlIHN1YnNlcXVlbnQKdWZzaGNkX2RtZV9jaGFuZ2VfcG93 ZXJfbW9kZSgpIGZhaWxzIChlLmcuLCBkdWUgdG8gYSBVSUMgY29tbWFuZCB0aW1lb3V0KSwKUE9T VF9DSEFOR0UgaXMgYnlwYXNzZWQuCgpUaGlzIGxlYXZlcyB0aGUgaGFyZHdhcmUgdGltZXIgcGh5 c2ljYWxseSBkaXNhYmxlZCAoMCkuCgpPbiB0aGUgbmV4dCBwb3dlciBtb2RlIGNoYW5nZSBhdHRl bXB0LCBQUkVfQ0hBTkdFIHJlYWRzIHRoZSBub3ctZGlzYWJsZWQKdmFsdWUgKDApIGFuZCBvdmVy d3JpdGVzIGhvc3QtPmFoaXQgd2l0aCAwLiBXaGVuIFBPU1RfQ0hBTkdFIGV2ZW50dWFsbHkKc3Vj Y2VlZHMsIGl0IHJlc3RvcmVzIDAsIHBlcm1hbmVudGx5IGRpc2FibGluZyB0aGUgZmVhdHVyZSB1 bnRpbCBhIHJlYm9vdC4KCkNvdWxkIHdlIGluc3RlYWQgcmVzdG9yZSBmcm9tIHRoZSBjb3JlIGRy aXZlcidzIGhiYS0+YWhpdCwgd2hpY2ggcmVsaWFibHkKdHJhY2tzIHRoZSBjb25maWd1cmVkIHZh bHVlLCByYXRoZXIgdGhhbiBjYWNoaW5nIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBzdGF0ZQpoZXJl PwoKPiAtCQlyZXQgPSB1ZnNfbXRrX3ByZV9wd3JfY2hhbmdlKGhiYSwgZGV2X3JlcV9wYXJhbXMp Owo+IC0JCWJyZWFrOwo+ICsJCXJldHVybiB1ZnNfbXRrX3ByZV9wd3JfY2hhbmdlKGhiYSwgZGV2 X3JlcV9wYXJhbXMpOwo+ICAJY2FzZSBQT1NUX0NIQU5HRToKPiAgCQlpZiAodWZzaGNkX2lzX2F1 dG9faGliZXJuOF9zdXBwb3J0ZWQoaGJhKSkKPiAtCQkJdWZzaGNkX3dyaXRlbChoYmEsIHJlZywg UkVHX0FVVE9fSElCRVJOQVRFX0lETEVfVElNRVIpOwo+IC0JCWJyZWFrOwo+IC0JZGVmYXVsdDoK PiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWJyZWFrOwo+ICsJCQl1ZnNoY2Rfd3JpdGVsKGhiYSwg aG9zdC0+YWhpdCwKPiArCQkJCSAgICAgIFJFR19BVVRPX0hJQkVSTkFURV9JRExFX1RJTUVSKTsK CltTZXZlcml0eTogSGlnaF0KVGhpcyBpcyBhIHByZS1leGlzdGluZyBpc3N1ZSwgYnV0IGRvZXMg YmxpbmRseSByZXN0b3JpbmcgdGhpcyBjYWNoZWQgdmFsdWUgcmlzawpsb3NpbmcgdXNlciBjb25m aWd1cmF0aW9uIGFuZCB2aW9sYXRpbmcgaGFyZHdhcmUgY29uc3RyYWludHMgZHVyaW5nIGEgcmFj ZQp3aXRoIHN5c2ZzPwoKV2hlbiB1ZnNoY2RfZGV2ZnJlcV9zY2FsZSgpIGNoYW5nZXMgcG93ZXIg bW9kZXMsIGl0IGhvbGRzIGNsa19zY2FsaW5nX2xvY2sgYW5kCnNjYW5fbXV0ZXgsIGJ1dCBkb2Vz IG5vdCBhY3F1aXJlIGhiYS0+aG9zdF9zZW0uIENvbmN1cnJlbnRseSwgYSBzeXNmcyB3cml0ZSB0 bwp0aGUgYXV0b19oaWJlcm44IG5vZGUgaW52b2tlcyBhdXRvX2hpYmVybjhfc3RvcmUoKSwgd2hp Y2ggdXBkYXRlcyB0aGUgaGFyZHdhcmUKcmVnaXN0ZXIgdW5kZXIgaGJhLT5ob3N0X3NlbSBidXQg d2l0aG91dCBob2xkaW5nIGNsa19zY2FsaW5nX2xvY2suCgpJZiBhIHN5c2ZzIHdyaXRlIG9jY3Vy cyBpbW1lZGlhdGVseSBhZnRlciBQUkVfQ0hBTkdFIGRpc2FibGVkIHRoZQphdXRvLWhpYmVybmF0 ZSB0aW1lciwgdGhlIHRpbWVyIGlzIHJlLWVuYWJsZWQgZHVyaW5nCnVmc2hjZF9kbWVfY2hhbmdl X3Bvd2VyX21vZGUoKSwgdmlvbGF0aW5nIHRoZSBjb25zdHJhaW50IHRoaXMgZnVuY3Rpb24gaXMK dHJ5aW5nIHRvIGVuZm9yY2UuCgpGdXJ0aGVybW9yZSwgd2hlbiBQT1NUX0NIQU5HRSBleGVjdXRl cywgaXQgb3ZlcndyaXRlcyB0aGUgcmVnaXN0ZXIgd2l0aCB0aGUKc3RhbGUgaG9zdC0+YWhpdCB2 YWx1ZSwgY29tcGxldGVseSB1bmRvaW5nIHRoZSB1c2VyJ3Mgc3lzZnMgY29uZmlndXJhdGlvbi4K Cj4gKwkJcmV0dXJuIDA7Cj4gIAl9CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9z YXNoaWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwOTAxLW10ODE5Ni11ZnMtdjExLTAtZGJkMDA3NzA0 NDkwQGNvbGxhYm9yYS5jb20/cGFydD0yMQoKLS0gCmxpbnV4LXBoeSBtYWlsaW5nIGxpc3QKbGlu dXgtcGh5QGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cHM6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtcGh5Cg== 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 08E9548124E; Tue, 1 Sep 2026 16:33:05 +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=1788280386; cv=none; b=o205QyeEY7qn68E610Z2BMgOq9tLTBADxncc2Jrt1nT6dbRCNfbaxfdWmFYCNGdJbwevsjp9j3tqrDL+GY7gJxMsV02jm4TtFXPHPC9d/yhkW3JRmogkoY9vuuQIDTe/XNkjAOGH4UTGOOgYLMpFnhlb2qT2l1sfsSV8HXaKaCE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788280386; c=relaxed/simple; bh=GxO6TxUuUy0vtN0rYZD1huC+39hD0vWWQF52HK3/5Jo=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=JXdv2AHO4hRnDidkhd/HGaRRL7tQ9rMJltwvLDEf4gVOSoOgkYo4X88QQjZVyv0VeY7Ij5UNNKXsAOhC6L4nVJ+ohqLirID4g2xEvytEz2tE3gqVlB2Jtbufhf5WpzGldI1mmhVC8miTzyaVOg1pK2yY4uDLvXPxKFeTPW8SL/0= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Dwz3dSFU; 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="Dwz3dSFU" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6D8841F000E9; Tue, 1 Sep 2026 16:33:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788280384; bh=YJz8BbL1/lzpe86MseU3HV4c3Tlb2GBXlla8B3STk6E=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=Dwz3dSFUTdbRNrChSM+WsLO1oh0ND20nFVKk7cgOmzW4m4it5LUcIn2LynWsVSMUT 4Po+kO3m34cG4NCpmuB6clIKEVlsdVGHx6bbmWFtAJVHrt53BHdqvlFhHRXJOeVTRX ZSlIMKX90VijLCUsG7ZTDjmtUA+3CBqUpmO+oOIHBQ/8iO6Nodndkj5NAZ233lFO3Q WuHSIKu2cU8Ok4CeCOst5G1EQJXhshwoekaFLez1XX1oqI+v9vJXct6BUSaqHd9RW3 hOt9CI4QgFeDoj1JLGUQo7Bj84U5DiZfruNPgxlUdSdrCpnUAmlFCodgbQtxxEndVE AQBIeA9wDJ9pA== From: sashiko-bot@kernel.org Subject: Re: [PATCH v11 21/24] scsi: ufs: mediatek: Back up idle timer in per-instance struct Reply-To: sashiko-reviews@lists.linux.dev To: "Louis-Alexis Eyraud" Cc: robh@kernel.org, devicetree@vger.kernel.org, linux-phy@lists.infradead.org, vkoul@kernel.org, linux-scsi@vger.kernel.org, neil.armstrong@linaro.org, olteanv@gmail.com, conor+dt@kernel.org In-Reply-To: <20260901-mt8196-ufs-v11-21-dbd007704490@collabora.com> References: <20260901-mt8196-ufs-v11-0-dbd007704490@collabora.com> <20260901-mt8196-ufs-v11-21-dbd007704490@collabora.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Tue, 01 Sep 2026 16:33:03 +0000 Message-Id: <20260901163304.6D8841F000E9@smtp.kernel.org> Precedence: bulk X-Mailing-List: linux-scsi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 2 potential issue(= s) to consider: Pre-existing issues: - [High] A failed power mode change will permanently disable the auto-hiber= n8 timer due to brittle backup/restore logic. - [High] Concurrent sysfs write to `auto_hibern8` races with power mode cha= nges, circumventing hardware constraints and losing user configuration. -- commit dec217a616e37a6d6c6074f353ace1fc743596e2 Author: Nicolas Frattaroli scsi: ufs: mediatek: Back up idle timer in per-instance struct The MediaTek UFS driver uses a function-scope static variable to back up a hardware register across a power change in the ufs_mtk_pwr_change_notify function. This is dangerous, as it's only correct if only ever one instance of the driver is loaded, which isn't true if there's more than one device on a SoC that needs it, or it otherwise gets loaded a second time. > diff --git a/drivers/ufs/host/ufs-mediatek.c b/drivers/ufs/host/ufs-media= tek.c > index f405f511f41fd..4782fdf54866b 100644 > --- a/drivers/ufs/host/ufs-mediatek.c > +++ b/drivers/ufs/host/ufs-mediatek.c > @@ -1441,27 +1441,24 @@ static int ufs_mtk_pwr_change_notify(struct ufs_h= ba *hba, > enum ufs_notify_change_status stage, > struct ufs_pa_layer_attr *dev_req_params) > { > - int ret =3D 0; > - static u32 reg; > + struct ufs_mtk_host *host =3D ufshcd_get_variant(hba); > =20 > switch (stage) { > case PRE_CHANGE: > if (ufshcd_is_auto_hibern8_supported(hba)) { > - reg =3D ufshcd_readl(hba, REG_AUTO_HIBERNATE_IDLE_TIMER); > + host->ahit =3D ufshcd_readl( > + hba, REG_AUTO_HIBERNATE_IDLE_TIMER); > ufs_mtk_auto_hibern8_disable(hba); > } [Severity: High] This isn't a bug introduced by this patch, but does this brittle caching lo= gic risk permanently disabling the auto-hibernate feature? In ufshcd_change_power_mode(), PRE_CHANGE is called first, which reads the hardware timer value and disables it. If the subsequent ufshcd_dme_change_power_mode() fails (e.g., due to a UIC command timeout), POST_CHANGE is bypassed. This leaves the hardware timer physically disabled (0). On the next power mode change attempt, PRE_CHANGE reads the now-disabled value (0) and overwrites host->ahit with 0. When POST_CHANGE eventually succeeds, it restores 0, permanently disabling the feature until a reboot. Could we instead restore from the core driver's hba->ahit, which reliably tracks the configured value, rather than caching the physical hardware state here? > - ret =3D ufs_mtk_pre_pwr_change(hba, dev_req_params); > - break; > + return ufs_mtk_pre_pwr_change(hba, dev_req_params); > case POST_CHANGE: > if (ufshcd_is_auto_hibern8_supported(hba)) > - ufshcd_writel(hba, reg, REG_AUTO_HIBERNATE_IDLE_TIMER); > - break; > - default: > - ret =3D -EINVAL; > - break; > + ufshcd_writel(hba, host->ahit, > + REG_AUTO_HIBERNATE_IDLE_TIMER); [Severity: High] This is a pre-existing issue, but does blindly restoring this cached value = risk losing user configuration and violating hardware constraints during a race with sysfs? When ufshcd_devfreq_scale() changes power modes, it holds clk_scaling_lock = and scan_mutex, but does not acquire hba->host_sem. Concurrently, a sysfs write= to the auto_hibern8 node invokes auto_hibern8_store(), which updates the hardw= are register under hba->host_sem but without holding clk_scaling_lock. If a sysfs write occurs immediately after PRE_CHANGE disabled the auto-hibernate timer, the timer is re-enabled during ufshcd_dme_change_power_mode(), violating the constraint this function is trying to enforce. Furthermore, when POST_CHANGE executes, it overwrites the register with the stale host->ahit value, completely undoing the user's sysfs configuration. > + return 0; > } --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260901-mt8196-ufs= -v11-0-dbd007704490@collabora.com?part=3D21