]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/xe/configfs: Fix pci_dev reference leak
authorMichal Wajdeczko <michal.wajdeczko@intel.com>
Tue, 22 Jul 2025 14:10:54 +0000 (16:10 +0200)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 28 Jul 2025 14:22:48 +0000 (10:22 -0400)
We are using pci_get_domain_bus_and_slot() function to verify if
the given config directory name matches any existing PCI device,
but we missed to call matching pci_dev_put() to release reference.

While around, also change error code in case of no device match,
to make it more specific than generic formatting error.

Fixes: 16280ded45fb ("drm/xe: Add configfs to enable survivability mode")
Signed-off-by: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
Link: https://lore.kernel.org/r/20250722141059.30707-2-michal.wajdeczko@intel.com
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
(cherry picked from commit 0bdd05c2a82bbf2419415d012fd4f5faeca7f1af)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
drivers/gpu/drm/xe/xe_configfs.c

index 8ec1ff1e4e808b37999032295d3c4c43a3b1fc96..e9b46a2d00195a69c7cb616930232c853392426b 100644 (file)
@@ -267,7 +267,8 @@ static struct config_group *xe_config_make_device_group(struct config_group *gro
 
        pdev = pci_get_domain_bus_and_slot(domain, bus, PCI_DEVFN(slot, function));
        if (!pdev)
-               return ERR_PTR(-EINVAL);
+               return ERR_PTR(-ENODEV);
+       pci_dev_put(pdev);
 
        dev = kzalloc(sizeof(*dev), GFP_KERNEL);
        if (!dev)