]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
fbdev: kyro: Add missing PCI memory region request
authorGiovanni Di Santi <giovanni.disanti.lkl@gmail.com>
Wed, 9 Jul 2025 09:53:52 +0000 (11:53 +0200)
committerHelge Deller <deller@gmx.de>
Sun, 27 Jul 2025 17:56:51 +0000 (19:56 +0200)
The kyro framebuffer driver did not request its PCI memory regions,
which could lead to conflicts with other drivers.  This change
addresses the task "Request memory regions in all fbdev drivers"
from the file Documentation/gpu/todo.rst.

This is addressed by using the managed device functions pcim_enable_device()
and pcim_request_all_regions(). This simplifies the code by making error
handling and driver removal cleanup automatic for these resources.

Signed-off-by: Giovanni Di Santi <giovanni.disanti.lkl@gmail.com>
Signed-off-by: Helge Deller <deller@gmx.de>
drivers/video/fbdev/kyro/fbdev.c

index 08ee8baa79f8509653b337cf192e3121fd7ff790..86e5d60ed0ff941eae4dd0a480f9acf76f860f3b 100644 (file)
@@ -679,7 +679,8 @@ static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (err)
                return err;
 
-       if ((err = pci_enable_device(pdev))) {
+       err = pcim_enable_device(pdev);
+       if (err) {
                printk(KERN_WARNING "kyrofb: Can't enable pdev: %d\n", err);
                return err;
        }
@@ -688,6 +689,10 @@ static int kyrofb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (!info)
                return -ENOMEM;
 
+       err = pcim_request_all_regions(pdev, "kyrofb");
+       if (err)
+               goto out_free_fb;
+
        currentpar = info->par;
 
        kyro_fix.smem_start = pci_resource_start(pdev, 0);