net/bnxt: fix CLANG compilation error
Checks
Commit Message
Fix a compilation error seen with CLANG.
The current code causes a typedef redefinition error because
'p__LINE__' is a C11 feature. Fixing it by defining it to something
which is not already defined in the language.
Fixes: 3ca9012a81f9 ("net/bnxt: add initial TruFlow core session open")
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Suggested-by: Lance Richardson <lance.richardson@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
---
drivers/net/bnxt/tf_core/hwrm_tf.h | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Comments
On Mon, Apr 20, 2020 at 8:28 AM Ajit Khaparde
<ajit.khaparde@broadcom.com> wrote:
>
> Fix a compilation error seen with CLANG.
> The current code causes a typedef redefinition error because
> 'p__LINE__' is a C11 feature. Fixing it by defining it to something
> which is not already defined in the language.
Can't you reuse the RTE_BUILD_BUG_ON macro instead of redefining this
in your driver?
If the EAL macro is not enough, I suppose we could improve it.
On 4/20/2020 8:14 AM, David Marchand wrote:
> On Mon, Apr 20, 2020 at 8:28 AM Ajit Khaparde
> <ajit.khaparde@broadcom.com> wrote:
>>
>> Fix a compilation error seen with CLANG.
>> The current code causes a typedef redefinition error because
>> 'p__LINE__' is a C11 feature. Fixing it by defining it to something
>> which is not already defined in the language.
>
> Can't you reuse the RTE_BUILD_BUG_ON macro instead of redefining this
> in your driver?
> If the EAL macro is not enough, I suppose we could improve it.
>
Will squash it on next-net to fix the build error. +1 to using
'RTE_BUILD_BUG_ON' comment if it possible but it can be done as incremental patch.
On Mon, Apr 20, 2020 at 2:22 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
> On 4/20/2020 8:14 AM, David Marchand wrote:
> > On Mon, Apr 20, 2020 at 8:28 AM Ajit Khaparde
> > <ajit.khaparde@broadcom.com> wrote:
> >>
> >> Fix a compilation error seen with CLANG.
> >> The current code causes a typedef redefinition error because
> >> 'p__LINE__' is a C11 feature. Fixing it by defining it to something
> >> which is not already defined in the language.
> >
> > Can't you reuse the RTE_BUILD_BUG_ON macro instead of redefining this
> > in your driver?
> > If the EAL macro is not enough, I suppose we could improve it.
> >
>
> Will squash it on next-net to fix the build error. +1 to using
> 'RTE_BUILD_BUG_ON' comment if it possible but it can be done as incremental patch.
Ack.
On 4/20/2020 1:23 PM, David Marchand wrote:
> On Mon, Apr 20, 2020 at 2:22 PM Ferruh Yigit <ferruh.yigit@intel.com> wrote:
>> On 4/20/2020 8:14 AM, David Marchand wrote:
>>> On Mon, Apr 20, 2020 at 8:28 AM Ajit Khaparde
>>> <ajit.khaparde@broadcom.com> wrote:
>>>>
>>>> Fix a compilation error seen with CLANG.
>>>> The current code causes a typedef redefinition error because
>>>> 'p__LINE__' is a C11 feature. Fixing it by defining it to something
>>>> which is not already defined in the language.
>>>
>>> Can't you reuse the RTE_BUILD_BUG_ON macro instead of redefining this
>>> in your driver?
>>> If the EAL macro is not enough, I suppose we could improve it.
>>>
>>
>> Will squash it on next-net to fix the build error. +1 to using
>> 'RTE_BUILD_BUG_ON' comment if it possible but it can be done as incremental patch.
>
> Ack.
>
Squashed into relevant commit in next-net, thanks.
@@ -37,7 +37,11 @@ typedef enum tf_subtype {
#define TF_MAX_REQ_SIZE 104
/* u32_t tlv_resp_value[170]; */
#define TF_MAX_RESP_SIZE 680
-#define BUILD_BUG_ON(condition) typedef char p__LINE__[(condition) ? 1 : -1]
+
+#define __BUILD_BUG_ON(condition, line) \
+ char p##line[(condition) ? 1 : -1]
+#define _BUILD_BUG_ON(condition, line) __BUILD_BUG_ON(condition, line)
+#define BUILD_BUG_ON(condition) _BUILD_BUG_ON(condition, __LINE__)
/* Use this to allocate/free any kind of
* indexes over HWRM and fill the parms pointer