Thanks for the review and for updating the tags. :)
> On Dec 17, 2025, at 16:22, Markus Armbruster <[email protected]> wrote:
>
> Zesen Liu <[email protected]> writes:
>
>> When specifying lbr_fmt=VALUE in cpu options with an invalid VALUE,
>> error_setg() gets triggered twice, causing an assertion failure in
>> error_setv() which requires *errp to be NULL, preventing meaningful error
>> messages from being displayed.
>>
>> Fix this by checking visit_type_uint64()'s return value and returning early
>> on failure, consistent with other property setters like set_string().
>>
>
> Let's add
>
> Fixes: 18c22d7112a7 (qdev-properties: Add a new macro with bitmask check for
> uint64_t property)
> Cc: [email protected]
>
>> Signed-off-by: Zesen Liu <[email protected]>
>> ---
>> hw/core/qdev-properties.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c
>> index 422a486969..0930d64252 100644
>> --- a/hw/core/qdev-properties.c
>> +++ b/hw/core/qdev-properties.c
>> @@ -494,7 +494,9 @@ static void set_uint64_checkmask(Object *obj, Visitor
>> *v, const char *name,
>> const Property *prop = opaque;
>> uint64_t *ptr = object_field_prop_ptr(obj, prop);
>>
>> - visit_type_uint64(v, name, ptr, errp);
>> + if (!visit_type_uint64(v, name, ptr, errp)) {
>> + return;
>> + }
>> if (*ptr & ~prop->bitmask) {
>> error_setg(errp, "Property value for '%s' has bits outside mask
>> '0x%" PRIx64 "'",
>> name, prop->bitmask);
>
> Reviewed-by: Markus Armbruster <[email protected]>
>
> We haven't tagged rc4. I'll post a PR right away, so we have a chance
> to get this fix into 10.2.
>