hyperv-fb: kick off efifb early
authorGerd Hoffmann <kraxel@redhat.com>
Wed, 26 Feb 2014 10:51:25 +0000 (11:51 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 28 Feb 2014 23:31:39 +0000 (15:31 -0800)
Remove firmware framebuffer before initializing hyperv-fb.  Needed
on gen2 virtual machines.   Letting register_framebuffer handle the
switchover results in efifb still being active while hyperv graphics
are initialized, which in turn can make the linux kernel hang.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
Acked-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/video/hyperv_fb.c

index b7b3dd0..e23392e 100644 (file)
@@ -679,6 +679,8 @@ static int hvfb_getmem(struct fb_info *info)
        if (gen2vm) {
                info->apertures->ranges[0].base = screen_info.lfb_base;
                info->apertures->ranges[0].size = screen_info.lfb_size;
+               remove_conflicting_framebuffers(info->apertures,
+                                               KBUILD_MODNAME, false);
        } else {
                info->apertures->ranges[0].base = pci_resource_start(pdev, 0);
                info->apertures->ranges[0].size = pci_resource_len(pdev, 0);