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
> 

Reply via email to