On Thu, Apr 2, 2015 at 7:49 PM, Stuart Haslam <[email protected]> wrote: > Calling odp_pktio_inq_remdef() causes the pktio's inq_default to be set > to ODP_QUEUE_INVALID, but when the scheduler later polls the pktio it > fails to check the validity of inq_default and ends up passing a bogus > pointer to queue_enq_multi(). > > Signed-off-by: Stuart Haslam <[email protected]>
Reviewed-by: Ciprian Barbu <[email protected]> > --- > platform/linux-generic/odp_packet_io.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/platform/linux-generic/odp_packet_io.c > b/platform/linux-generic/odp_packet_io.c > index 45303f6..73a4be2 100644 > --- a/platform/linux-generic/odp_packet_io.c > +++ b/platform/linux-generic/odp_packet_io.c > @@ -685,6 +685,9 @@ int pktin_poll(pktio_entry_t *entry) > if (odp_unlikely(is_free(entry))) > return -1; > > + if (odp_unlikely(entry->s.inq_default == ODP_QUEUE_INVALID)) > + return -1; > + > num = odp_pktio_recv(entry->s.handle, pkt_tbl, QUEUE_MULTI_MAX); > > if (num < 0) { > -- > 2.1.1 > > _______________________________________________ > lng-odp mailing list > [email protected] > https://lists.linaro.org/mailman/listinfo/lng-odp _______________________________________________ lng-odp mailing list [email protected] https://lists.linaro.org/mailman/listinfo/lng-odp
