Skip to content
  • Christian Borntraeger's avatar
    Support default block interfaces per QEMUMachine · 2d0d2837
    Christian Borntraeger authored
    
    
    There are QEMUMachines that have neither IF_IDE nor IF_SCSI as a
    default/standard interface to their block devices / drives. Therefore,
    this patch introduces a new field default_block_type per QEMUMachine
    struct. The prior use_scsi field becomes thereby obsolete and is
    replaced through .default_block_type = IF_SCSI.
    
    This patch also changes the default for s390x to IF_VIRTIO and
    removes an early hack that converts IF_IDE drives.
    Other parties have already claimed interest (e.g. IF_SD for exynos)
    
    To create a sane default, for machines that dont specify a
    default_block_type, this patch makes IF_IDE = 0 and IF_NONE = 1.
    I checked all users of IF_NONE (blockdev.c and ww/device-hotplug.c)
    as well as IF_IDE and it seems that it is ok to change the defines -
    in other words, I found no obvious (to me) assumption in the code
    regarding IF_NONE==0. IF_NONE is only set if there is an
    explicit if=none. Without if=* the interface becomes IF_DEFAULT.
    
    I would suggest to have some additional care, e.g. by letting
    this patch sit some days in the block tree.
    
    Based on an initial patch from Einar Lueck <elelueck@de.ibm.com>
    
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    CC: Igor Mitsyanko <i.mitsyanko@samsung.com>
    CC: Markus Armbruster <armbru@redhat.com>
    CC: Kevin Wolf <kwolf@redhat.com>
    Reviewed-by: default avatarAlexander Graf <agraf@suse.de>
    Acked-by: default avatarIgor Mitsyanko <i.mitsyanko@samsung.com>
    Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
    2d0d2837