AC_SUBST(HAVE_LOCKDEP_NFNL_IS_HELD, undef)
fi
+AC_MSG_CHECKING([kernel source for strscpy() in string.h])
+if test -f $ksourcedir/include/linux/timer.h && \
+ $GREP -q ' strscpy' $ksourcedir/include/linux/string.h; then
+ AC_MSG_RESULT(yes)
+ AC_SUBST(HAVE_STRSCPY, define)
+else
+ AC_MSG_RESULT(no)
+ AC_SUBST(HAVE_STRSCPY, 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_PASSING_EXTENDED_ACK_TO_CALLBACKS@ HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS
#@HAVE_TYPEDEF_SCTP_SCTPHDR_T@ HAVE_TYPEDEF_SCTP_SCTPHDR_T
#@HAVE_TIMER_SETUP@ HAVE_TIMER_SETUP
+#@HAVE_STRSCPY@ HAVE_STRSCPY
#@HAVE_LOCKDEP_NFNL_IS_HELD@ HAVE_LOCKDEP_NFNL_IS_HELD
#ifdef HAVE_EXPORT_SYMBOL_GPL_IN_MODULE_H
struct type *var = set->data
#endif
+#ifndef HAVE_STRSCPY
+#define strscpy(dst, src, n) (strncpy(dst, src, n) == (dst))
+#endif
+
#ifndef smp_mb__before_atomic
#define smp_mb__before_atomic() smp_mb()
#define smp_mb__after_atomic() smp_mb()