Skip to content
  • Kevin Wolf's avatar
    3257b854
    qdev: Make netdev properties work as list elements · 3257b854
    Kevin Wolf authored
    
    
    The 'name' parameter of QOM setters is primarily used to specify the name
    of the currently parsed input element in the visitor interface. For
    top-level qdev properties, this is always set and matches 'prop->name'.
    
    However, for list elements it is NULL, because each element of a list
    doesn't have a separate name. Passing a non-NULL value runs into
    assertion failures in the visitor code.
    
    Therefore, using 'name' in error messages is not right for property
    types that are used in lists, because "(null)" (or even a segfault)
    isn't very helpful to identify what QEMU is complaining about.
    
    Change netdev properties to use 'prop->name' instead, which will contain
    the name of the array property after switching array properties to lists
    in the external interface. (This is still not perfect, as it doesn't
    identify which element in the list caused the error, but strictly better
    than before.)
    
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    Message-ID: <20231109174240.72376-11-kwolf@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    3257b854
    qdev: Make netdev properties work as list elements
    Kevin Wolf authored
    
    
    The 'name' parameter of QOM setters is primarily used to specify the name
    of the currently parsed input element in the visitor interface. For
    top-level qdev properties, this is always set and matches 'prop->name'.
    
    However, for list elements it is NULL, because each element of a list
    doesn't have a separate name. Passing a non-NULL value runs into
    assertion failures in the visitor code.
    
    Therefore, using 'name' in error messages is not right for property
    types that are used in lists, because "(null)" (or even a segfault)
    isn't very helpful to identify what QEMU is complaining about.
    
    Change netdev properties to use 'prop->name' instead, which will contain
    the name of the array property after switching array properties to lists
    in the external interface. (This is still not perfect, as it doesn't
    identify which element in the list caused the error, but strictly better
    than before.)
    
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
    Message-ID: <20231109174240.72376-11-kwolf@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@linaro.org>
    Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
Loading