AC_SUBST(HAVE_RCUPDATE_WAIT_H, undef)
fi
+AC_MSG_CHECKING([kernel source for lockdep_set_class in lockdep.h])
+if test -f $ksourcedir/include/linux/lockdep.h && \
+ $GREP -q 'define lockdep_set_class' $ksourcedir/include/linux/lockdep.h; then
+ AC_MSG_RESULT(yes)
+ AC_SUBST(HAVE_LOCKDEP_SET_CLASS, define)
+else
+ AC_MSG_RESULT(no)
+ AC_SUBST(HAVE_LOCKDEP_SET_CLASS, undef)
+fi
+
AC_MSG_CHECKING([kernel source for struct net_generic])
if test -f $ksourcedir/include/net/netns/generic.h && \
$GREP -q 'struct net_generic' $ksourcedir/include/net/netns/generic.h; then
#@HAVE_NLMSG_UNICAST@ HAVE_NLMSG_UNICAST
#@HAVE_NF_BRIDGE_GET_PYSINDEV_NET@ HAVE_NF_BRIDGE_GET_PYSINDEV_NET
#@HAVE_RCUPDATE_WAIT_H@ HAVE_RCUPDATE_WAIT_H
+#@HAVE_LOCKDEP_SET_CLASS@ HAVE_LOCKDEP_SET_CLASS
#ifdef HAVE_EXPORT_SYMBOL_GPL_IN_MODULE_H
#include <linux/module.h>
return true;
}
+#ifdef HAVE_LOCKDEP_SET_CLASS
static struct lock_class_key list_set_lockdep_key;
+#endif
static int
list_set_create(struct net *net, struct ip_set *set, struct nlattr *tb[],
if (size < IP_SET_LIST_MIN_SIZE)
size = IP_SET_LIST_MIN_SIZE;
+#ifdef HAVE_LOCKDEP_SET_CLASS
lockdep_set_class(&set->lock, &list_set_lockdep_key);
+#endif
set->variant = &set_variant;
set->dsize = ip_set_elem_len(set, tb, sizeof(struct set_elem),
__alignof__(struct set_elem));