It seems counter.h is included before systm.h where critical_* are declared.
On 04.12.2016 16:12, Andrey Chernov wrote:> On recent i386 -stable I got:
>
> ...
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/t4_vf.c -o t4_vf.o
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/t4_vf.c:37:
> In file included from @/sys/counter.h:35:
> ./machine/counter.h:170:3: error: implicit declaration of function
> 'critical_enter' is invalid in C99
> [-Werror,-Wimplicit-function-declaration]
> critical_enter();
> ^
> ./machine/counter.h:172:3: error: implicit declaration of function
> 'critical_exit' is invalid in C99
> [-Werror,-Wimplicit-function-declaration]
> critical_exit();
> ^
> ./machine/counter.h:172:3: note: did you mean 'critical_enter'?
> ./machine/counter.h:170:3: note: 'critical_enter' declared here
> critical_enter();
> ^
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/t4_vf.c:47:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/common/common.h:33:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/common/t4_hw.h:33:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/osdep.h:39:
> @/sys/systm.h:196:6: error: conflicting types for 'critical_enter'
> void critical_enter(void);
> ^
> ./machine/counter.h:170:3: note: previous implicit declaration is here
> critical_enter();
> ^
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/t4_vf.c:47:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/common/common.h:33:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/common/t4_hw.h:33:
> In file included from
> /usr/src/sys/modules/cxgbe/if_cxgbev/../../../dev/cxgbe/osdep.h:39:
> @/sys/systm.h:197:6: error: conflicting types for 'critical_exit'
> void critical_exit(void);
> ^
> ./machine/counter.h:172:3: note: previous implicit declaration is here
> critical_exit();
> ^
> 4 errors generated.
> *** Error code 1
>
> Stop.
>