From: Jozsef Kadlecsik Date: Mon, 20 Jan 2020 18:59:43 +0000 (+0100) Subject: Add compatibility support for bitmap_zalloc() and bitmap_zero() X-Git-Tag: v7.6~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f685a1f904daf5fe29adcabf9474c1c35f85db1;p=thirdparty%2Fipset.git Add compatibility support for bitmap_zalloc() and bitmap_zero() Signed-off-by: Jozsef Kadlecsik --- diff --git a/configure.ac b/configure.ac index a2694bbf..69a97a99 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 d71c3fdd..57c9996e 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) {