[SLOF] [PATCH v1 10/27] virtio: make virtio_vring_desc 1.0 aware

Alexey Kardashevskiy aik at ozlabs.ru
Fri Jan 15 12:15:50 AEDT 2016


On 01/14/2016 10:04 PM, Nikunj A Dadhania wrote:
> Alexey Kardashevskiy <aik at ozlabs.ru> writes:
>
>> On 01/13/2016 10:16 PM, Nikunj A Dadhania wrote:
>>> Signed-off-by: Nikunj A Dadhania <nikunj at linux.vnet.ibm.com>
>>> ---
>>>    lib/libvirtio/virtio.c | 14 +++++++++++---
>>>    1 file changed, 11 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/lib/libvirtio/virtio.c b/lib/libvirtio/virtio.c
>>> index aa4a45b..f95e86b 100644
>>> --- a/lib/libvirtio/virtio.c
>>> +++ b/lib/libvirtio/virtio.c
>>> @@ -235,14 +235,22 @@ struct vring_desc *virtio_get_vring_desc(struct virtio_device *dev, int queue)
>>>    {
>>>    	struct vring_desc *desc = 0;
>>>
>>> -	if (dev->type == VIRTIO_TYPE_PCI) {
>>> +	if (dev->type != VIRTIO_TYPE_PCI)
>>> +		return NULL;


[1]


>>> +	if (dev->is_modern) {
>>> +		void *q_sel = dev->common.addr + offset_of(struct virtio_dev_common, q_select);
>>> +		void *q_desc = dev->common.addr + offset_of(struct virtio_dev_common, q_desc);
>>> +
>>> +		ci_write_16(q_sel, cpu_to_le16(queue));
>>> +		eieio();
>>
>>
>> Here and in next patches I see this new eieio(), please merge similar
>> changes to one patch and add a commit log about this "make xxx 1.0 aware"
>> change.
>
> These are two different code path now:
>
> if (modern) {
>     select_queue_virtio_1_0()
>     eieio()
>     write_virtio_1_0()
> }
> else {
>    select_queue()
>    eieio()
>    write()
> }
>
> So the change should come with this patch and not separately. Am i
> missing something ?


Ah, I missed that old code did have eieio() already. Never mind.



>
>>
>>
>>> +		desc = (void *)(virtio_read64(q_desc));
>>> +	} else {
>>>    		ci_write_16(dev->base+VIRTIOHDR_QUEUE_SELECT,
>>>    			    cpu_to_le16(queue));
>>>    		eieio();
>>>    		desc = (void*)(4096L *
>>> -		   le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
>>> +			       le32_to_cpu(ci_read_32(dev->base+VIRTIOHDR_QUEUE_ADDRESS)));
>>
>> Unrelared change.
>
> Tab changes which wasnt correct.


Separate patch, please. You can merge all these code design fixes into one 
huge patch. [1] could go there too. Easier to read now and bisect later if 
functional changes are separated from cosmetic ones.


>
>>
>>
>>>    	}
>>> -
>>
>> Here too.
>>
>>
>>>    	return desc;
>>>    }
>>>
>>>
>>
>>
>> --
>> Alexey
>


-- 
Alexey


More information about the SLOF mailing list