diff options
-rw-r--r-- | configure.ac | 20 | ||||
-rw-r--r-- | kernel/include/linux/netfilter/ipset/ip_set_compat.h.in | 12 |
2 files changed, 32 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index a2694bb..69a97a9 100644 --- a/configure.ac +++ b/configure.ac @@ -429,6 +429,26 @@ else AC_SUBST(HAVE_KVFREE, undef) fi +AC_MSG_CHECKING([kernel source for bitmap_zalloc]) +if test -f $ksourcedir/include/linux/bitmap.h && \ + $GREP -q 'bitmap_zalloc' $ksourcedir/include/linux/bitmap.h; then + AC_MSG_RESULT(yes) + AC_SUBST(HAVE_BITMAP_ZALLOC, define) +else + AC_MSG_RESULT(no) + AC_SUBST(HAVE_BITMAP_ZALLOC, undef) +fi + +AC_MSG_CHECKING([kernel source for bitmap_zero]) +if test -f $ksourcedir/include/linux/bitmap.h && \ + $GREP -q 'bitmap_zero' $ksourcedir/include/linux/bitmap.h; then + AC_MSG_RESULT(yes) + AC_SUBST(HAVE_BITMAP_ZERO, define) +else + AC_MSG_RESULT(no) + AC_SUBST(HAVE_BITMAP_ZERO, undef) +fi + AC_MSG_CHECKING([kernel source for struct net in struct xt_mtchk_param]) if test -f $ksourcedir/include/linux/netfilter/x_tables.h && \ $AWK '/^struct xt_mtchk_param /,/^}/' $ksourcedir/include/linux/netfilter/x_tables.h | \ diff --git a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in index d71c3fd..57c9996 100644 --- a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in +++ b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in @@ -26,6 +26,8 @@ #@HAVE_RBTREE_POSTORDER_FOR_EACH_ENTRY_SAFE@ HAVE_RBTREE_POSTORDER_FOR_EACH_ENTRY_SAFE #@HAVE_KVCALLOC@ HAVE_KVCALLOC #@HAVE_KVFREE@ HAVE_KVFREE +#@HAVE_BITMAP_ZALLOC@ HAVE_BITMAP_ZALLOC +#@HAVE_BITMAP_ZERO@ HAVE_BITMAP_ZERO #@HAVE_XT_MTCHK_PARAM_STRUCT_NET@ HAVE_XT_MTCHK_PARAM_STRUCT_NET #@HAVE_TCF_EMATCH_OPS_CHANGE_ARG_NET@ HAVE_TCF_EMATCH_OPS_CHANGE_ARG_NET #@HAVE_TCF_EMATCH_STRUCT_NET@ HAVE_TCF_EMATCH_STRUCT_NET @@ -253,6 +255,16 @@ static inline void kvfree(const void *addr) } #endif +#ifndef HAVE_BITMAP_ZALLOC +#define bitmap_zalloc(nbits, flags) \ + kmalloc(BITS_TO_LONGS(nbits) * sizeof(unsigned long), (flags) | __GFP_ZERO) +#endif + +#ifndef HAVE_BITMAP_ZERO +#define bitmap_zero(dst, nbits) \ + memset(dst, 0, BITS_TO_LONGS(nbits) * sizeof(unsigned long)) +#endif + #ifndef HAVE_NLA_PUT_BE16 static inline int nla_put_be16(struct sk_buff *skb, int attrtype, __be16 value) { |