Something updated in CI and we are again green: https://ci.linaro.org/job/odp-api-check/
Maxim. On 12/22/16 17:39, Savolainen, Petri (Nokia - FI/Espoo) wrote: > > >> -----Original Message----- >> From: Bill Fischofer [mailto:bill.fischo...@linaro.org] >> Sent: Thursday, December 22, 2016 4:20 PM >> To: Savolainen, Petri (Nokia - FI/Espoo) <petri.savolainen@nokia-bell- >> labs.com> >> Cc: Mike Holmes <mike.hol...@linaro.org>; Maxim Uvarov >> <maxim.uva...@linaro.org>; lng-odp <lng-odp@lists.linaro.org> >> Subject: Re: [lng-odp] [PATCHv2] linux-generic: packet: fix buggy compiler >> error >> >> On Thu, Dec 22, 2016 at 8:13 AM, Savolainen, Petri (Nokia - FI/Espoo) >> <petri.savolai...@nokia-bell-labs.com> wrote: >>> >>> >>>> -----Original Message----- >>>> From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf Of >> Mike >>>> Holmes >>>> Sent: Thursday, December 22, 2016 4:08 PM >>>> To: Maxim Uvarov <maxim.uva...@linaro.org> >>>> Cc: lng-odp <lng-odp@lists.linaro.org> >>>> Subject: Re: [lng-odp] [PATCHv2] linux-generic: packet: fix buggy >> compiler >>>> error >>>> >>>> On 22 December 2016 at 08:49, Maxim Uvarov <maxim.uva...@linaro.org> >>>> wrote: >>>> >>>>> On debian jessie gcc unable to compile current code >>>>> with error: >>>>> odp_packet.c: In function 'odp_packet_trunc_head': >>>>> odp_packet.c:314:46: error: array subscript is above array bounds >>>>> [-Werror=array-bounds] >>>>> to->buf_hdr.seg[i].len = from->buf_hdr.seg[num + i].len; >>>>> >>>>> The problem is that it breaks compilation only on .len line: >>>>> for (i = 0; i < num; i++) { >>>>> to->buf_hdr.seg[i].hdr = from->buf_hdr.seg[num + i].hdr; >>>>> to->buf_hdr.seg[i].data = from->buf_hdr.seg[num + i].data; >>>>> to->buf_hdr.seg[i].len = from->buf_hdr.seg[num + i].len; >>>>> } >>>>> >>>>> If that line is commented out compilation passes. If lines are >> reordered >>>>> than compilation also fails on .len line. Because there is no warning >> on >>>>> .hdr and .data it looks like compiler error. Additional check for >>>>> preconfigured value is workaround to that situation. >>>>> >>>>> Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> >>>>> >>>> >>>> Reviewed-by: Mike Holmes <mike.hol...@linaro.org> >>>> >>>> -O3 now passes for me on x86 gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 >> 20161005 >>>> >>> >>> I'll send shortly a patch set which modifies also this function. I think >> it should remove the issue also. >> >> Thanks, Petri. Can you also please take a look at my patch for Bug >> 2789, http://patches.opendataplane.org/patch/7696/ as this is also >> working in the new pool code area. >> > > The free_segments() issues is corrected. The trunc head/tail might not be ... > but on the other hand I'm not sure if zero length packets must be supported. > Trunc documentation allows that, but e.g. alloc does not. Zero length packets > are not very useful, so we could change API to get rid of the corner case. > > -Petri >