We already call remove_conflicting_framebuffers() on PCI BAR0 during
pci-probe, no need to do that again during device loading.

This avoids calling into remove_conflicting_framebuffers() from within DRM
->load() callback, which might deadlock, once we make this call remove
DRM-backed sysfb-devices, too.

Signed-off-by: David Herrmann <dh.herrmann at gmail.com>
---
 drivers/gpu/drm/mgag200/mgag200_main.c | 9 ---------
 1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/mgag200/mgag200_main.c 
b/drivers/gpu/drm/mgag200/mgag200_main.c
index 26868e5..0ee093c 100644
--- a/drivers/gpu/drm/mgag200/mgag200_main.c
+++ b/drivers/gpu/drm/mgag200/mgag200_main.c
@@ -117,20 +117,11 @@ static int mga_probe_vram(struct mga_device *mdev, void 
__iomem *mem)
 static int mga_vram_init(struct mga_device *mdev)
 {
        void __iomem *mem;
-       struct apertures_struct *aper = alloc_apertures(1);
-       if (!aper)
-               return -ENOMEM;

        /* BAR 0 is VRAM */
        mdev->mc.vram_base = pci_resource_start(mdev->dev->pdev, 0);
        mdev->mc.vram_window = pci_resource_len(mdev->dev->pdev, 0);

-       aper->ranges[0].base = mdev->mc.vram_base;
-       aper->ranges[0].size = mdev->mc.vram_window;
-
-       remove_conflicting_framebuffers(aper, "mgafb", true);
-       kfree(aper);
-
        if (!devm_request_mem_region(mdev->dev->dev, mdev->mc.vram_base, 
mdev->mc.vram_window,
                                "mgadrmfb_vram")) {
                DRM_ERROR("can't reserve VRAM\n");
-- 
1.8.5.3

Reply via email to