[ovs-dev] [PATCH] datapath: Fix circular dependency between bug.h and kernel.h.

Pravin Shelar pshelar at nicira.com
Tue Mar 5 23:44:57 UTC 2013


On Tue, Mar 5, 2013 at 3:01 PM, Palo Andi <andi at dis.uniroma1.it> wrote:
> Hi Jesse,
> thank you for the patch. It resolved the previous error. Now I get:
>
> CC [M]  /home/andi/Desktop/openvswitch_last/datapath/linux/flow.o
>   CC [M]  /home/andi/Desktop/openvswitch_last/datapath/linux/genl_exec.o
>   CC [M]  /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.o
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c: In function
> 'ovs_tnl_get_src_port':
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:216: error:
> implicit declaration of function 'inet_get_local_port_range'
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c: In function
> 'ovs_tnl_send':
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:293: error:
> 'IP_DF' undeclared (first use in this function)
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:293: error:
> (Each undeclared identifier is reported only once
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:293: error: for
> each function it appears in.)
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:294: error:
> implicit declaration of function 'ip_select_ident'
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:296: error:
> implicit declaration of function 'IPCB'
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:296: error:
> invalid type argument of 'unary *'
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:296: error:
> invalid type argument of 'unary *'
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:296: warning:
> passing argument 1 of 'memset' makes pointer from integer without a cast
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:296: warning:
> passing argument 1 of '__builtin_memset' makes pointer from integer without
> a cast
> /home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.c:298: error:
> implicit declaration of function 'ip_local_out'
> make[5]: *** [/home/andi/Desktop/openvswitch_last/datapath/linux/tunnel.o]
> Error 1
> make[4]: *** [_module_/home/andi/Desktop/openvswitch_last/datapath/linux]
> Error 2
> make[4]: Leaving directory
> `/home/andi/Desktop/dd_ins/src/linux/brcm/linux-2.6.23'
> make[3]: *** [default] Error 2
> make[3]: Leaving directory
> `/home/andi/Desktop/openvswitch_last/datapath/linux'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/home/andi/Desktop/openvswitch_last/datapath'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/home/andi/Desktop/openvswitch_last'
> make: *** [all] Error 2
>
> I checked but ip.h does not contain( at least ) the definition for
> 'inet_get_local_port_range' in kernel version 2.6.23.
> Unfortunately I am stuck with this version, because this is the latest
> kernel supported by dd-wrt.
>

inet_get_local_port_range() definition is not required with 2.6.23.
I have sent fix for other errors. Let me know if you see any other issues.

Thanks,
Pravin.

> On 6 March 2013 09:15, Jesse Gross <jesse at nicira.com> wrote:
>>
>> In Linux 3.4 the definition for BUILD_BUG_ON_NOT_POWER_OF_2 was
>> moved from kernel.h to bug.h.  On various kernels these header
>> files include each other in various orders (often through a
>> long chain of other header files), which can create circular
>> dependency issues.  Since we not longer need this definition,
>> this simply removes the backport.
>>
>> Reported-by: Palo Andi <andi at dis.uniroma1.it>
>> Signed-off-by: Jesse Gross <jesse at nicira.com>
>> ---
>>  datapath/linux/Modules.mk                    |    1 -
>>  datapath/linux/compat/include/linux/bug.h    |   12 ------------
>>  datapath/linux/compat/include/linux/kernel.h |    4 ----
>>  3 files changed, 17 deletions(-)
>>  delete mode 100644 datapath/linux/compat/include/linux/bug.h
>>
>> diff --git a/datapath/linux/Modules.mk b/datapath/linux/Modules.mk
>> index 4fabc45..60351ce 100644
>> --- a/datapath/linux/Modules.mk
>> +++ b/datapath/linux/Modules.mk
>> @@ -14,7 +14,6 @@ openvswitch_sources += \
>>         linux/compat/workqueue.c
>>  openvswitch_headers += \
>>         linux/compat/include/asm/percpu.h \
>> -       linux/compat/include/linux/bug.h \
>>         linux/compat/include/linux/compiler.h \
>>         linux/compat/include/linux/compiler-gcc.h \
>>         linux/compat/include/linux/cpumask.h \
>> diff --git a/datapath/linux/compat/include/linux/bug.h
>> b/datapath/linux/compat/include/linux/bug.h
>> deleted file mode 100644
>> index d24e68e..0000000
>> --- a/datapath/linux/compat/include/linux/bug.h
>> +++ /dev/null
>> @@ -1,12 +0,0 @@
>> -#ifndef __BUG_H_WRAPPER
>> -#define __BUG_H_WRAPPER 1
>> -
>> -#include_next <linux/bug.h>
>> -
>> -#ifndef BUILD_BUG_ON_NOT_POWER_OF_2
>> -/* Force a compilation error if a constant expression is not a power of 2
>> */
>> -#define BUILD_BUG_ON_NOT_POWER_OF_2(n)                 \
>> -       BUILD_BUG_ON((n) == 0 || (((n) & ((n) - 1)) != 0))
>> -#endif
>> -
>> -#endif
>> diff --git a/datapath/linux/compat/include/linux/kernel.h
>> b/datapath/linux/compat/include/linux/kernel.h
>> index 069839b..2fa5cc8 100644
>> --- a/datapath/linux/compat/include/linux/kernel.h
>> +++ b/datapath/linux/compat/include/linux/kernel.h
>> @@ -7,10 +7,6 @@
>>  #endif
>>
>>  #include <linux/version.h>
>> -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)
>> -/* BUILD_BUG_ON_NOT_POWER_OF_2 definition */
>> -#include <linux/bug.h>
>> -#endif
>>
>>  #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
>>  #undef pr_emerg
>> --
>> 1.7.10.4
>>
>
>
>
> --
> -------------------------------------------------------------------------
> University of Rome "La Sapienza"
>
> Ing Andi Palo
> PhD student
> Department of Computer, Control and Management Engineering (DIAG)
>
> Via Ariosto, 25 - 00185 Rome - Italy
> Tel: +39 06 77274034
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>



More information about the dev mailing list