• S
    conf: fix zPCI address auto-generation on s390 · 07659100
    Shalini Chellathurai Saroja 提交于
    Let us fix the issues with zPCI address validation and auto-generation
    on s390.
    
    Currently, there are two issues with handling the ZPCI address
    extension. Firstly, when the uid is to be auto-generated with a
    specified fid, .i.e.:
    
        ...
        <address type='pci'>
            <zpci fid='0x0000001f'/>
        </address>
        ...
    
    we expect uid='0x0001' (or the next available uid for the domain).
    However, we get a parsing error:
    
        $ virsh define zpci.xml
        error: XML error: Invalid PCI address uid='0x0000', must be > 0x0000
        and <= 0xffff
    
    Secondly, when the uid is specified explicitly with the invalid
    numerical value '0x0000', we actually expect the parsing error above.
    However, the domain is being defined and the uid value is silently
    changed to a valid value.
    
    The first issue is a bug and the second one is undesired behaviour, and
    both issues are related to how we (in-band) signal invalid values for
    uid and fid. So let's fix the XML parsing to do validation based on what
    is actually specified in the XML.
    
    The first issue is also related to the current code behaviour, which
    is, if either uid or fid is specified by the user, it is incorrectly
    assumed that both uid and fid are specified. This bug is fixed by
    identifying when the user specified ZPCI address is incomplete and
    auto-generating the missing ZPCI address.
    Signed-off-by: NBjoern Walk <bwalk@linux.ibm.com>
    Signed-off-by: NBoris Fiuczynski <fiuczy@linux.ibm.com>
    Signed-off-by: NShalini Chellathurai Saroja <shalini@linux.ibm.com>
    Reviewed-by: NAndrea Bolognani <abologna@redhat.com>
    07659100
qemu_validate.c 147.8 KB