[dpdk-dev] vring_init bug

Xie, Huawei huawei.xie at intel.com
Wed Sep 9 05:00:15 CEST 2015


static inline void
vring_init(struct vring *vr, unsigned int num, uint8_t *p,
    unsigned long align)
{
    vr->num = num;
    vr->desc = (struct vring_desc *) p;
    vr->avail = (struct vring_avail *) (p +
        num * sizeof(struct vring_desc));
    vr->used = (void *)
        RTE_ALIGN_CEIL((uintptr_t)(&vr->avail->ring[num]), align);
}

There is a bug in vr->used calculation. 2 bytes of used_event_idx isn't
considered. Would submit a fix.
__u16 available[num];
__u16 used_event_idx;



More information about the dev mailing list