[dpdk-dev] [PATCH 4/4] virtio/vdev: add a new vdev named eth_cvio

Tan, Jianfeng jianfeng.tan at intel.com
Tue Jan 12 09:39:34 CET 2016


Hi Fedin,

On 1/12/2016 3:45 PM, Pavel Fedin wrote:
>   Hello!
>
>   See inline
>
>> ...
>>   	}
>>
>> +	struct rte_mbuf *m = NULL;
>> +	if (dev->dev_type == RTE_ETH_DEV_PCI)
>> +		vq->offset = (uintptr_t)&m->buf_addr;
>> +#ifdef RTE_VIRTIO_VDEV
>> +	else {
>> +		vq->offset = (uintptr_t)&m->buf_physaddr;
>   Not sure, but shouldn't these be swapped? Originally, for PCI devices, we used buf_physaddr.

Oops, seems that you are right. I'm trying to figure out why I can rx/tx 
pkts using the wrong version.

>>   #define VIRTIO_READ_REG_1(hw, reg) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	inb((VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_read(hw, reg)
>> +	:virtio_ioport_read(hw, reg))
>>   #define VIRTIO_WRITE_REG_1(hw, reg, value) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	outb_p((unsigned char)(value), (VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_write(hw, reg, value)
>> +	:virtio_ioport_write(hw, reg, value))
>>
>>   #define VIRTIO_READ_REG_2(hw, reg) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	inw((VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_read(hw, reg)
>> +	:virtio_ioport_read(hw, reg))
>>   #define VIRTIO_WRITE_REG_2(hw, reg, value) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	outw_p((unsigned short)(value), (VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_write(hw, reg, value)
>> +	:virtio_ioport_write(hw, reg, value))
>>
>>   #define VIRTIO_READ_REG_4(hw, reg) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	inl((VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_read(hw, reg)
>> +	:virtio_ioport_read(hw, reg))
>>   #define VIRTIO_WRITE_REG_4(hw, reg, value) \
>> -	(hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>> +	((hw->io_base != VIRTIO_VDEV_IO_BASE) ? \
>>   	outl_p((unsigned int)(value), (VIRTIO_PCI_REG_ADDR((hw), (reg)))) \
>> -	:virtio_ioport_write(hw, reg, value)
>> +	:virtio_ioport_write(hw, reg, value))
>   These bracket fixups should be squashed into #3
>

I'll rewrite this into function pointers according to Yuanhan's patch 
for virtio 1.0.

Thanks,
Jianfeng



More information about the dev mailing list