svn commit: r211157 - in head/sys: modules modules/if_carp net netinet netinet6

John Baldwin jhb at
Wed Aug 11 18:36:27 UTC 2010

Will Andrews wrote:
> Author: will
> Date: Wed Aug 11 00:51:50 2010
> New Revision: 211157
> URL:
> Log:
>   Allow carp(4) to be loaded as a kernel module.  Follow precedent set by
>   bridge(4), lagg(4) etc. and make use of function pointers and
>   pf_proto_register() to hook carp into the network stack.
>   Currently, because of the uncertainty about whether the unload path is free
>   of race condition panics, unloads are disallowed by default.  Compiling with
>   CARPMOD_CAN_UNLOAD in CFLAGS removes this anti foot shooting measure.
>   This commit requires IP6PROTOSPACER, introduced in r211115.

This doesn't compile due to duplicate function pointer definitions (e.g. 
  if_bridge.c and if_ether.c).  You should move all the function pointer 
definitions to net/if.c and add declarations for them to a header 
instead of a bunch of 'extern' declarations in if_carp.c itself.

John Baldwin

More information about the svn-src-all mailing list