@@ -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");
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@gmail.com> --- drivers/gpu/drm/mgag200/mgag200_main.c | 9 --------- 1 file changed, 9 deletions(-)