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 BAD21C44520 for ; Mon, 20 Jul 2026 15:19:55 +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=vuhvo2lzwAcp+5hQ/QXwtC3O+M3isfzFRY5AAgiU3Ks=; b=N/SPpQ3hkcoCf0 TPDYOwYbXGZ5tE4+3Ci2iKfCyS4rJYbeX+5wi8SwVtq3DEYtvPoi2KZz8euPST17a2m/pwx6NX2ii gMV5rxmZSxmQmvQMd8n1X9jTWwGyf+xJcwujlUqVWIpn3W1Pxpr4VgOVkc6Z+xcp24ubPJVuR4CuR ctXnVHUFRj/3mdMRW47oWM/l78cpymas/j02n8jFH75BvMjNM1r1MrLz2I0Owfsf0bjo0ib78QLct K2ZNYzzdBX2fKnPb5NKchsOnnK7L3XNtOM5c44jdJVI7PVj0pxvvv73c0ZYda4Y+076drCyijwJeH Awu7gPMApE19K5Nmu5lg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wlpmd-00000007A7w-1PH8; Mon, 20 Jul 2026 15:19:55 +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 1wlpmb-00000007A7j-35EE for linux-amlogic@lists.infradead.org; Mon, 20 Jul 2026 15:19:53 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 7603743CA3; Mon, 20 Jul 2026 15:19:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B2BF1F00A3A; Mon, 20 Jul 2026 15:19:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784560793; bh=sQmSXD0739fsNdmNYjSP3MawCSiQllwIQnGyyfhhTv8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=GFd++oL3rilWcDeFxUH0TGprXPkkTKlFjixJDEiHmC7+nYH2l+LV1xAH3RG+sQS9U Ctu5qR/qIjLaRq9/I8fX7DGwKVKJIgpfO09vpUsKCtdglkxOtU1xXjJ934m49VbwSo x6oeltyZUuTGBkAl1ha4/bY1sVviHrHV6Ta8p/g1Dawu0VsBRCdZBxoyF5PDYXPPcN BE0+YRnLZEElSsbX2YUpD4WAYfzP8jI3w28hPWs/oGbvu2bBOkBhMdEbX+KZPtMgYU W6ni6hsV66nrcag2ABO3wal+yYT2jniZZ3ULh+U9W2guwRA/feM8nKN6zK1O/Z5zkh mNP+adlqOzZkw== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 11/16] PCI: dwc: qcom: Use cached PCIe capability offset To: "Hans Zhang" <18255117159@163.com> Cc: linux-amlogic@lists.infradead.org, Frank.Li@kernel.org, imx@lists.linux.dev, linux-pci@vger.kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260720150619.24733-12-18255117159@163.com> References: <20260720150619.24733-1-18255117159@163.com> <20260720150619.24733-12-18255117159@163.com> Date: Mon, 20 Jul 2026 15:19:52 +0000 Message-Id: <20260720151953.0B2BF1F00A3A@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: 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-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIFRoZSBgcGNpLT5wY2ll X2NhcGAgZmllbGQgcmVtYWlucyB1bmluaXRpYWxpemVkICgwKSB3aGVuIHVzZWQgaW4gYC5wb3N0 X2luaXRgIGNhbGxiYWNrcywgbGVhZGluZyB0byBjb3JydXB0aW9uIG9mIHRoZSBzdGFuZGFyZCBQ Q0kgY29uZmlndXJhdGlvbiBoZWFkZXIuCi0tCgotLS0gUGF0Y2ggWzExXTogW1BBVENIIHYzIDEx LzE2XSBQQ0k6IGR3YzogcWNvbTogVXNlIGNhY2hlZCBQQ0llIGNhcGFiaWxpdHkgb2Zmc2V0IC0t LQpjb21taXQgZGRmOGNhYTAwMzk5MTg1MjA0ODFjMWNmZjdiOWU4MGNiZjhlZTIxMgpBdXRob3I6 IEhhbnMgWmhhbmcgPDE4MjU1MTE3MTU5QDE2My5jb20+CgpQQ0k6IGR3YzogcWNvbTogVXNlIGNh Y2hlZCBQQ0llIGNhcGFiaWxpdHkgb2Zmc2V0CiAgICAKVGhpcyBjb21taXQgdXBkYXRlcyB0aGUg UXVhbGNvbW0gUENJZSBkcml2ZXIgdG8gdXNlIHRoZSBjYWNoZWQgUENJZSBjYXBhYmlsaXR5Cm9m ZnNldCAocGNpLT5wY2llX2NhcCkgaW5zdGVhZCBvZiByZXBlYXRlZGx5IGNhbGxpbmcgZHdfcGNp ZV9maW5kX2NhcGFiaWxpdHkoKS4KSXQgYWltcyB0byBvcHRpbWl6ZSBjYXBhYmlsaXR5IGxvb2t1 cHMgZHVyaW5nIGluaXRpYWxpemF0aW9uIGFuZCBsaW5rIHVwZGF0ZXMuCgo+IGR3X3BjaWVfaG9z dF9pbml0KCkgY2FjaGVzIHRoZSBvZmZzZXQgYWZ0ZXIgLmluaXQsIHNvIC5wb3N0X2luaXQgY2Fs bGJhY2tzCj4gYW5kIGxhdGVyIGZ1bmN0aW9ucyAoLmxpbmtfdXAsIGljY19vcHBfdXBkYXRlKSBj YW4gdXNlIHBjaS0+cGNpZV9jYXAKPiBkaXJlY3RseS4gRm9yIC5pbml0IGl0c2VsZiwgd2UgbXVz dCBjYWxsIGR3X3BjaWVfZ2V0X3BjaWVfY2FwKCkgaW5zaWRlCj4gcWNvbV9wY2llX2hvc3RfaW5p dCgpIHRvIG9idGFpbiB0aGUgb2Zmc2V0IChoYXJkd2FyZSBpcyBhbHJlYWR5IGVuYWJsZWQpLgoK SXMgdGhlcmUgYSBjb25mdXNpb24gaGVyZSBiZXR3ZWVuIGR3X3BjaWVfaG9zdF9vcHMtPnBvc3Rf aW5pdCBhbmQKcWNvbV9wY2llX29wcy0+cG9zdF9pbml0PwoKVGhlIGNvbW1pdCBtZXNzYWdlIGNv cnJlY3RseSBub3RlcyB0aGF0IGR3X3BjaWVfaG9zdF9pbml0KCkgY2FjaGVzIHRoZSBvZmZzZXQK YWZ0ZXIgZHdfcGNpZV9ob3N0X29wcy0+aW5pdCByZXR1cm5zLiBIb3dldmVyLCB0aGUgLnBvc3Rf aW5pdCBjYWxsYmFja3MKbW9kaWZpZWQgaW4gdGhpcyBwYXRjaCBiZWxvbmcgdG8gc3RydWN0IHFj b21fcGNpZV9vcHMuCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9w Y2llLXFjb20uYyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtcWNvbS5jCj4gaW5k ZXggZDhlYjUyODU3ZjY5Yy4uYmQzODNkN2NiMDJiMSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3Bj aS9jb250cm9sbGVyL2R3Yy9wY2llLXFjb20uYwo+ICsrKyBiL2RyaXZlcnMvcGNpL2NvbnRyb2xs ZXIvZHdjL3BjaWUtcWNvbS5jCj4gQEAgLTM2MCw3ICszNjAsNiBAQCBzdGF0aWMgdm9pZCBxY29t X3BjaWVfY2xlYXJfYXNwbV9sMHMoc3RydWN0IGR3X3BjaWUgKnBjaSkKPiAgCj4gIHN0YXRpYyB2 b2lkIHFjb21fcGNpZV9zZXRfc2xvdF9uY2NzKHN0cnVjdCBkd19wY2llICpwY2kpCj4gIHsKPiAt CXUxNiBvZmZzZXQgPSBkd19wY2llX2ZpbmRfY2FwYWJpbGl0eShwY2ksIFBDSV9DQVBfSURfRVhQ KTsKPiAgCXUzMiB2YWw7Cj4gIAo+ICAJZHdfcGNpZV9kYmlfcm9fd3JfZW4ocGNpKTsKPiBAQCAt MzcwLDkgKzM2OSw5IEBAIHN0YXRpYyB2b2lkIHFjb21fcGNpZV9zZXRfc2xvdF9uY2NzKHN0cnVj dCBkd19wY2llICpwY2kpCj4gIAkgKiBub3RpZmljYXRpb25zIGZvciB0aGUgSG90LVBsdWcgY29t bWFuZHMuIFNvIHNldCB0aGUgTkNDUyBmaWVsZCB0bwo+ICAJICogYXZvaWQgd2FpdGluZyBmb3Ig dGhlIGNvbXBsZXRpb25zLgo+ICAJICovCj4gLQl2YWwgPSByZWFkbChwY2ktPmRiaV9iYXNlICsg b2Zmc2V0ICsgUENJX0VYUF9TTFRDQVApOwo+ICsJdmFsID0gcmVhZGwocGNpLT5kYmlfYmFzZSAr IHBjaS0+cGNpZV9jYXAgKyBQQ0lfRVhQX1NMVENBUCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIHBj aS0+cGNpZV9jYXAgaW5pdGlhbGl6ZWQgd2hlbiB0aGlzIGlzIGNhbGxlZD8KCkxvb2tpbmcgYXQg cWNvbV9wY2llX2hvc3RfaW5pdCgpLCBpdCBjYWxscyBwY2llLT5jZmctPm9wcy0+cG9zdF9pbml0 KHBjaWUpCmJlZm9yZSBpdCBjYWxscyBxY29tX3BjaWVfY2xlYXJfYXNwbV9sMHMoKSB3aGVyZSBk d19wY2llX2dldF9wY2llX2NhcCgpIGlzCmZpbmFsbHkgZXhlY3V0ZWQ6CgpxY29tX3BjaWVfaG9z dF9pbml0KCkKICBwY2llLT5jZmctPm9wcy0+cG9zdF9pbml0KHBjaWUpIAogICAgcWNvbV9wY2ll X3NldF9zbG90X25jY3MocGNpZS0+cGNpKQogICAgICB2YWwgPSByZWFkbChwY2ktPmRiaV9iYXNl ICsgcGNpLT5wY2llX2NhcCArIFBDSV9FWFBfU0xUQ0FQKTsKICAuLi4KICBxY29tX3BjaWVfY2xl YXJfYXNwbV9sMHMocGNpZS0+cGNpKQogICAgb2Zmc2V0ID0gZHdfcGNpZV9nZXRfcGNpZV9jYXAo cGNpKTsKClNpbmNlIHBjaS0+cGNpZV9jYXAgaXMgMCBkdXJpbmcgcWNvbV9wY2llX29wcy0+cG9z dF9pbml0LCB3b24ndCB0aGlzIGFjY2VzcwpzdGFuZGFyZCBQQ0kgY29uZmlndXJhdGlvbiBzcGFj ZSAobGlrZSBvZmZzZXQgMHgxNCBmb3IgUENJX0VYUF9TTFRDQVAsIHdoaWNoCmlzIEJBUjEpIGlu c3RlYWQgb2YgdGhlIFBDSWUgY2FwYWJpbGl0eSByZWdpc3RlcnM/Cgo+ICAJdmFsIHw9IFBDSV9F WFBfU0xUQ0FQX05DQ1M7Cj4gLQl3cml0ZWwodmFsLCBwY2ktPmRiaV9iYXNlICsgb2Zmc2V0ICsg UENJX0VYUF9TTFRDQVApOwo+ICsJd3JpdGVsKHZhbCwgcGNpLT5kYmlfYmFzZSArIHBjaS0+cGNp ZV9jYXAgKyBQQ0lfRVhQX1NMVENBUCk7Cj4gIAo+ICAJZHdfcGNpZV9kYmlfcm9fd3JfZGlzKHBj aSk7Cj4gIH0KClsgLi4uIF0KCj4gQEAgLTkzNSw3ICs5MzQsNyBAQCBzdGF0aWMgaW50IHFjb21f cGNpZV9pbml0XzJfM18zKHN0cnVjdCBxY29tX3BjaWUgKnBjaWUpCj4gIHN0YXRpYyBpbnQgcWNv bV9wY2llX3Bvc3RfaW5pdF8yXzNfMyhzdHJ1Y3QgcWNvbV9wY2llICpwY2llKQo+ICB7Cj4gIAlz dHJ1Y3QgZHdfcGNpZSAqcGNpID0gcGNpZS0+cGNpOwo+IC0JdTE2IG9mZnNldCA9IGR3X3BjaWVf ZmluZF9jYXBhYmlsaXR5KHBjaSwgUENJX0NBUF9JRF9FWFApOwo+ICsJdTggb2Zmc2V0ID0gcGNp LT5wY2llX2NhcDsKPiAgCXUzMiB2YWw7CgpbU2V2ZXJpdHk6IEhpZ2hdCkRvZXMgdGhpcyBhbHNv IHN1ZmZlciBmcm9tIHRoZSBzYW1lIGluaXRpYWxpemF0aW9uIG9yZGVyaW5nIGlzc3VlPwoKU2lu Y2UgcWNvbV9wY2llX3Bvc3RfaW5pdF8yXzNfMygpIGlzIGNhbGxlZCBieSBxY29tX3BjaWVfaG9z dF9pbml0KCkgYmVmb3JlCnBjaS0+cGNpZV9jYXAgaXMgcG9wdWxhdGVkLCBvZmZzZXQgd2lsbCBi ZSAwIGhlcmUsIGNhdXNpbmcgdGhlIHN1YnNlcXVlbnQKd3JpdGVzIHRvIFBDSUVfQ0FQX1NMT1Rf VkFMIGFuZCBQQ0lfRVhQX0xOS0NBUCB0byBvdmVyd3JpdGUgc3RhbmRhcmQgUENJCmhlYWRlciBm aWVsZHMuCgo+ICAKPiAgCS8qIEZvcmNlIFBIWSBvdXQgb2YgbG93ZXN0IHBvd2VyIHN0YXRlICov CgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNoaWtvLmRldi8jL3BhdGNoc2V0 LzIwMjYwNzIwMTUwNjE5LjI0NzMzLTEtMTgyNTUxMTcxNTlAMTYzLmNvbT9wYXJ0PTExCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hbWxvZ2lj IG1haWxpbmcgbGlzdApsaW51eC1hbWxvZ2ljQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xp c3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hbWxvZ2ljCg== 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 A3EF129BDBF; Mon, 20 Jul 2026 15:19:53 +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=1784560794; cv=none; b=Ba0miQCHITsSGhSJRW3dSs3JJbu19Vbo7+j0LBey4doyMTf3UNb9FzMgjRg6uSZ2Q2tiUdLKottfb4e33fWUr7rhsMzMqFjaP8STn8zXyIjwSLrknZ7O/3r3kAKb02KooRmCqhnth1ezw6TGMPrYHJWQHvl9QFFCw7bkKe4XA6o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784560794; c=relaxed/simple; bh=kyB7NVODiWaRCg2lYTNpUSRXz7RC9zgrYyYCmcI/xo4=; h=From:Subject:To:Cc:In-Reply-To:References:Content-Type:Date: Message-Id; b=U9VQxLvxsRqCtPlEoXJda69niVws3hgl09mKdjv3R9fWHqKFkhhflwCnsVDP5szN1saYyCd1Qaep+ys4iNgbMQ/fusiaNdbtGxpfk8fXm/8F6RA7krMIy/wMaXyH605hqUFRQ+5RLRzdmhBY97X1FkPwO8saQAqD10P5sAWMdEI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=GFd++oL3; 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="GFd++oL3" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0B2BF1F00A3A; Mon, 20 Jul 2026 15:19:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1784560793; bh=sQmSXD0739fsNdmNYjSP3MawCSiQllwIQnGyyfhhTv8=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=GFd++oL3rilWcDeFxUH0TGprXPkkTKlFjixJDEiHmC7+nYH2l+LV1xAH3RG+sQS9U Ctu5qR/qIjLaRq9/I8fX7DGwKVKJIgpfO09vpUsKCtdglkxOtU1xXjJ934m49VbwSo x6oeltyZUuTGBkAl1ha4/bY1sVviHrHV6Ta8p/g1Dawu0VsBRCdZBxoyF5PDYXPPcN BE0+YRnLZEElSsbX2YUpD4WAYfzP8jI3w28hPWs/oGbvu2bBOkBhMdEbX+KZPtMgYU W6ni6hsV66nrcag2ABO3wal+yYT2jniZZ3ULh+U9W2guwRA/feM8nKN6zK1O/Z5zkh mNP+adlqOzZkw== From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 11/16] PCI: dwc: qcom: Use cached PCIe capability offset Reply-To: sashiko-reviews@lists.linux.dev To: "Hans Zhang" <18255117159@163.com> Cc: linux-amlogic@lists.infradead.org, Frank.Li@kernel.org, imx@lists.linux.dev, linux-pci@vger.kernel.org, neil.armstrong@linaro.org In-Reply-To: <20260720150619.24733-12-18255117159@163.com> References: <20260720150619.24733-1-18255117159@163.com> <20260720150619.24733-12-18255117159@163.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Mon, 20 Jul 2026 15:19:52 +0000 Message-Id: <20260720151953.0B2BF1F00A3A@smtp.kernel.org> Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Thank you for your contribution! Sashiko AI review found 1 potential issue(= s) to consider: - [High] The `pci->pcie_cap` field remains uninitialized (0) when used in `= .post_init` callbacks, leading to corruption of the standard PCI configurat= ion header. -- --- Patch [11]: [PATCH v3 11/16] PCI: dwc: qcom: Use cached PCIe capability= offset --- commit ddf8caa0039918520481c1cff7b9e80cbf8ee212 Author: Hans Zhang <18255117159@163.com> PCI: dwc: qcom: Use cached PCIe capability offset =20 This commit updates the Qualcomm PCIe driver to use the cached PCIe capabil= ity offset (pci->pcie_cap) instead of repeatedly calling dw_pcie_find_capabilit= y(). It aims to optimize capability lookups during initialization and link updat= es. > dw_pcie_host_init() caches the offset after .init, so .post_init callbacks > and later functions (.link_up, icc_opp_update) can use pci->pcie_cap > directly. For .init itself, we must call dw_pcie_get_pcie_cap() inside > qcom_pcie_host_init() to obtain the offset (hardware is already enabled). Is there a confusion here between dw_pcie_host_ops->post_init and qcom_pcie_ops->post_init? The commit message correctly notes that dw_pcie_host_init() caches the offs= et after dw_pcie_host_ops->init returns. However, the .post_init callbacks modified in this patch belong to struct qcom_pcie_ops. > diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/control= ler/dwc/pcie-qcom.c > index d8eb52857f69c..bd383d7cb02b1 100644 > --- a/drivers/pci/controller/dwc/pcie-qcom.c > +++ b/drivers/pci/controller/dwc/pcie-qcom.c > @@ -360,7 +360,6 @@ static void qcom_pcie_clear_aspm_l0s(struct dw_pcie *= pci) > =20 > static void qcom_pcie_set_slot_nccs(struct dw_pcie *pci) > { > - u16 offset =3D dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); > u32 val; > =20 > dw_pcie_dbi_ro_wr_en(pci); > @@ -370,9 +369,9 @@ static void qcom_pcie_set_slot_nccs(struct dw_pcie *p= ci) > * notifications for the Hot-Plug commands. So set the NCCS field to > * avoid waiting for the completions. > */ > - val =3D readl(pci->dbi_base + offset + PCI_EXP_SLTCAP); > + val =3D readl(pci->dbi_base + pci->pcie_cap + PCI_EXP_SLTCAP); [Severity: High] Is pci->pcie_cap initialized when this is called? Looking at qcom_pcie_host_init(), it calls pcie->cfg->ops->post_init(pcie) before it calls qcom_pcie_clear_aspm_l0s() where dw_pcie_get_pcie_cap() is finally executed: qcom_pcie_host_init() pcie->cfg->ops->post_init(pcie)=20 qcom_pcie_set_slot_nccs(pcie->pci) val =3D readl(pci->dbi_base + pci->pcie_cap + PCI_EXP_SLTCAP); ... qcom_pcie_clear_aspm_l0s(pcie->pci) offset =3D dw_pcie_get_pcie_cap(pci); Since pci->pcie_cap is 0 during qcom_pcie_ops->post_init, won't this access standard PCI configuration space (like offset 0x14 for PCI_EXP_SLTCAP, which is BAR1) instead of the PCIe capability registers? > val |=3D PCI_EXP_SLTCAP_NCCS; > - writel(val, pci->dbi_base + offset + PCI_EXP_SLTCAP); > + writel(val, pci->dbi_base + pci->pcie_cap + PCI_EXP_SLTCAP); > =20 > dw_pcie_dbi_ro_wr_dis(pci); > } [ ... ] > @@ -935,7 +934,7 @@ static int qcom_pcie_init_2_3_3(struct qcom_pcie *pci= e) > static int qcom_pcie_post_init_2_3_3(struct qcom_pcie *pcie) > { > struct dw_pcie *pci =3D pcie->pci; > - u16 offset =3D dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); > + u8 offset =3D pci->pcie_cap; > u32 val; [Severity: High] Does this also suffer from the same initialization ordering issue? Since qcom_pcie_post_init_2_3_3() is called by qcom_pcie_host_init() before pci->pcie_cap is populated, offset will be 0 here, causing the subsequent writes to PCIE_CAP_SLOT_VAL and PCI_EXP_LNKCAP to overwrite standard PCI header fields. > =20 > /* Force PHY out of lowest power state */ --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20260720150619.2473= 3-1-18255117159@163.com?part=3D11