]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: dwc: Avoid dwc_pcie_rasdes_debugfs_deinit() NULL dereference when no RAS DES...
authorShuvam Pandey <shuvampandey1@gmail.com>
Mon, 18 May 2026 16:59:17 +0000 (22:44 +0545)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 11 Jun 2026 22:05:08 +0000 (17:05 -0500)
dwc_pcie_rasdes_debugfs_init() returns success when the controller has no
RAS DES capability, leaving pci->debugfs->rasdes_info unset. The common
debugfs teardown path still calls dwc_pcie_rasdes_debugfs_deinit(), which
dereferences rasdes_info unconditionally.

Return early when no RAS DES state was allocated. In that case no RAS DES
mutex was initialized, so there is nothing to destroy.

Fixes: 4fbfa17f9a07 ("PCI: dwc: Add debugfs based Silicon Debug support for DWC")
Signed-off-by: Shuvam Pandey <shuvampandey1@gmail.com>
[mani: reworded subject]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/0f97352506d8d813f70f441de4d63fcd5b7d1c3e.1779123847.git.shuvampandey1@gmail.com
drivers/pci/controller/dwc/pcie-designware-debugfs.c

index ddbce69b2e9f818be7bd50ce5d1c3466770ff62c..c24cbc4677a34f34b2655907bdda704b0c635a8a 100644 (file)
@@ -550,6 +550,9 @@ static void dwc_pcie_rasdes_debugfs_deinit(struct dw_pcie *pci)
 {
        struct dwc_pcie_rasdes_info *rinfo = pci->debugfs->rasdes_info;
 
+       if (!rinfo)
+               return;
+
        mutex_destroy(&rinfo->reg_event_lock);
 }