On 21/11/2017 11:52, Cornelia Huck wrote:
> On Thu, 16 Nov 2017 18:51:48 +0100
> Pierre Morel <pmorel@linux.vnet.ibm.com> wrote:
>
>> This patch fixes the following BUG:
>> Even a guest is able to detect virtio_pci device, the init function
>> the Linux virtio_pci driver will hang because zPCI does not support
>> the subregions used by virtio_pci.
>>
>> It follows that right now the PCI support is very limited
>> (e.g. pass through of a host vfio device)
>> To enable features like virtio-pci several modifications needs to be
>> done.
>>
>> As already stated above, Virtio-PCI uses subregions, which may eventually
>> be discontinuous inside bars instead of a single flat region often used
>> by real devices.
>> The address offset being formerly calculated from the BAR base address
>> must be adapted to the subregions instead of to the single region.
>>
>> This patch provides the new calculation for the three kind of BAR
>> access, zPCI STORE, zPCI LOAD and zPCI STORE BLOCK done by zPCI.
>>
>> We use the opportunity to
>> - enhance the fault detection for zPCI STORE and LOAD,
>> - enhance the fault detection and to provide the maximum STORE BLOCK
>> block size, maxstbl, for zPCI STORE BLOCK
>> - factor out part of the code used to calculate the offset and
>> access the BARs,
>> - factor out the code for endianess conversion.
>
> I'll play with this a bit, but I think this is good for s390-next.
>
> [I'd still like to play with this under tcg as well to make sure we are
> endian-clean, but I'm making slower progress there than I hoped.]
>
OK, thanks.
I wait for the answers for the points I am still not sure, (#define and
broken English) and send a v3 with the corrections.
Best regards,
Pierre
--
Pierre Morel
Linux/KVM/QEMU in Böblingen - Germany