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

Reply via email to