[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CALzJLG9HLz3y9jdcz+OsUCLhQyTrJxW3PYMz8kYRGRqay2S=HA@mail.gmail.com>
Date: Tue, 11 Oct 2016 16:34:18 +0900
From: Saeed Mahameed <saeedm@....mellanox.co.il>
To: Tom Herbert <tom@...bertland.com>
Cc: Linux Kernel Network Developers <netdev@...r.kernel.org>,
Saeed Mahameed <saeedm@...lanox.com>
Subject: Re: BUILD_BUG_ON error in mlx5/core/pagealloc.c
On Tue, Oct 11, 2016 at 12:58 PM, Tom Herbert <tom@...bertland.com> wrote:
> On Mon, Oct 10, 2016 at 8:17 PM, Saeed Mahameed
> <saeedm@....mellanox.co.il> wrote:
>>
>>
>> On Tuesday, October 11, 2016, Tom Herbert <tom@...bertland.com> wrote:
>>>
>>> On Mon, Oct 10, 2016 at 4:41 PM, Tom Herbert <tom@...bertland.com> wrote:
>>> > I am hitting this in mlx5
>>> >
>>> > drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c: In function
>>> > ‘reclaim_pages_cmd.clone.0’:
>>> > drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c:346: error: call
>>> > to ‘__compiletime_assert_346’ declared with attribute error:
>>> > BUILD_BUG_ON failed: __mlx5_bit_off(manage_pages_out, pas[i]) % 64
>>> > drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c: In function
>>> > ‘give_pages’:
>>> > drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c:291: error: call
>>> > to ‘__compiletime_assert_291’ declared with attribute error:
>>> > BUILD_BUG_ON failed: __mlx5_bit_off(manage_pages_in, pas[i]) % 64
>>> >
>>>
>>> The expression in BUILD_BUG_ON expands to "((unsigned)(unsigned
>>> long)(&(((struct mlx5_ifc_manage_pages_in_bits *)0)->pas[i]))) % 64".
>>> The variable array index to pas makes this expression non-constant, I
>>> imagine that is where the problem lies.
>>>
>>> > Bisecting points to:
>>> >
>>> > commit a533ed5e179cd15512d40282617909d3482a771c
>>> > Author: Saeed Mahameed <saeedm@...lanox.com>
>>> > Date: Sun Jul 17 13:27:25 2016 +0300
>>> >
>>> > net/mlx5: Pages management commands via mlx5 ifc
>>
>>
>> Hi Tom,
>> We know about this issue, it happens only with gcc4.4 or gcc 4.2 i don't
>> remember exactly which.
>> Most likely it is a gcc issue.
>>
> I don't believe that is the case. As I pointed out this is giving
> BUILD_BUG_ON a non-constant expression. To fix this should just be a
> matter of using a constant argument for the BUILD_BUG_ON. AFAICT
Well, compilation work for us on most of our systems (where we have
newer gcc), something just doesn't add up here!
Anyway we didn't want to complicate the MACROs API and we wanted to
investigate a little bit more.
> there's only two instances of MLX5_SET64 where this can be a problem.
> I will post a fix shortly.
Thanks Tom, Just saw it, i will ack it.
Powered by blists - more mailing lists