> Should switching to bochsdrmfb be deferred until efifb gets properly
> destroyed? How?

Should be in do_remove_conflicting_framebuffers, everyone might run into
this.  So lets try wait for all (other) references went away:

diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
index d04554959ea7..2d4911cc7ec4 100644
--- a/drivers/video/fbdev/core/fbmem.c
+++ b/drivers/video/fbdev/core/fbmem.c
@@ -1726,7 +1726,9 @@ static void do_unregister_framebuffer(struct fb_info 
*fb_info)
        fbcon_fb_unregistered(fb_info);
        console_unlock();
 
-       /* this may free fb info */
+       while (atomic_read(&fb_info->count) > 1)
+               msleep(10);
+       /* this will free fb info */
        put_fb_info(fb_info);
 }
 

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to