• Daniel Vetter's avatar
    vt: Fix up unregistration of vt drivers · d9c660e7
    Daniel Vetter authored
    A bunch of issues:
    - We should not kick out the default console (which is tracked in
      conswitchp), so check for that.
    - Add better error codes so callers can differentiate between "something
      went wrong" and "your driver isn't registered already". i915 needs
      that so it doesn't fall over when reloading the driver and hence
      vga_con is already unregistered.
    - There's a mess with the driver flags: What we need to check for is
      that the driver isn't used any more, i.e. unbound completely (FLAG_INIT).
      And not whether it's the boot console or not (which is the only one
      which doesn't have FLAG_MODULE). Otherwise there's no way to kick
      out the boot console, which i915 wants to do to prevent havoc with
      vga_con interferring (which tends to hang machines).
    
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
    Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    d9c660e7
vt.c 100 KB