Skip to content
  • Markus Armbruster's avatar
    qdev: Replace no_user by cannot_instantiate_with_device_add_yet · efec3dd6
    Markus Armbruster authored
    In an ideal world, machines can be built by wiring devices together
    with configuration, not code.  Unfortunately, that's not the world we
    live in right now.  We still have quite a few devices that need to be
    wired up by code.  If you try to device_add such a device, it'll fail
    in sometimes mysterious ways.  If you're lucky, you get an
    unmysterious immediate crash.
    
    To protect users from such badness, DeviceClass member no_user used to
    make device models unavailable with -device / device_add, but that
    regressed in commit 18b6dade
    
    .  The device model is still omitted from
    help, but is available anyway.
    
    Attempts to fix the regression have been rejected with the argument
    that the purpose of no_user isn't clear, and it's prone to misuse.
    
    This commit clarifies no_user's purpose.  Anthony suggested to rename
    it cannot_instantiate_with_device_add_yet_due_to_internal_bugs, which
    I shorten somewhat to keep checkpatch happy.  While there, make it
    bool.
    
    Every use of cannot_instantiate_with_device_add_yet gets a FIXME
    comment asking for rationale.  The next few commits will clean them
    all up, either by providing a rationale, or by getting rid of the use.
    
    With that done, the regression fix is hopefully acceptable.
    
    Signed-off-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Reviewed-by: default avatarMarcel Apfelbaum <marcel.a@redhat.com>
    Signed-off-by: default avatarAndreas Färber <afaerber@suse.de>
    efec3dd6