summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2017-09-11 21:12:13 +0200
committerJozsef Kadlecsik <kadlec@blackhole.kfki.hu>2017-09-11 21:12:13 +0200
commit54185b4302638bda745b7459ed618bb072b41c71 (patch)
tree954f375827861e076a825c8d40c7ae9a02d871e7
parentd88c5b79db7f84c6bce15b0d7cf461d725cb8824 (diff)
Backport patch: sctp: remove the typedef sctp_sctphdr_t
-rw-r--r--configure.ac10
-rw-r--r--kernel/include/linux/netfilter/ipset/ip_set_compat.h.in1
-rw-r--r--kernel/net/netfilter/ipset/ip_set_getport.c5
3 files changed, 16 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 26883d7..d88d5b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -579,6 +579,16 @@ else
AC_SUBST(HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS, undef)
fi
+AC_MSG_CHECKING([kernel source for no typedef sctp_sctphdr_t])
+if test -f $ksourcedir/include/linux/sctp.h && \
+ $GREP -q '^typedef struct sctphdr' $ksourcedir/include/linux/sctp.h; then
+ AC_MSG_RESULT(yes)
+ AC_SUBST(HAVE_TYPEDEF_SCTP_SCTPHDR_T, define)
+else
+ AC_MSG_RESULT(no)
+ AC_SUBST(HAVE_TYPEDEF_SCTP_SCTPHDR_T, 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
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 667a6b0..2630600 100644
--- a/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
+++ b/kernel/include/linux/netfilter/ipset/ip_set_compat.h.in
@@ -42,6 +42,7 @@
#@HAVE_NETLINK_EXTENDED_ACK@ HAVE_NETLINK_EXTENDED_ACK
#@HAVE_PASSING_EXTENDED_ACK_TO_PARSERS@ HAVE_PASSING_EXTENDED_ACK_TO_PARSERS
#@HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS@ HAVE_PASSING_EXTENDED_ACK_TO_CALLBACKS
+#@HAVE_TYPEDEF_SCTP_SCTPHDR_T@ HAVE_TYPEDEF_SCTP_SCTPHDR_T
#ifdef HAVE_EXPORT_SYMBOL_GPL_IN_MODULE_H
#include <linux/module.h>
diff --git a/kernel/net/netfilter/ipset/ip_set_getport.c b/kernel/net/netfilter/ipset/ip_set_getport.c
index 528e94c..8614bcd 100644
--- a/kernel/net/netfilter/ipset/ip_set_getport.c
+++ b/kernel/net/netfilter/ipset/ip_set_getport.c
@@ -39,8 +39,13 @@ get_port(const struct sk_buff *skb, int protocol, unsigned int protooff,
break;
}
case IPPROTO_SCTP: {
+#ifdef HAVE_TYPEDEF_SCTP_SCTPHDR_T
sctp_sctphdr_t _sh;
const sctp_sctphdr_t *sh;
+#else
+ struct sctphdr _sh;
+ const struct sctphdr *sh;
+#endif
sh = skb_header_pointer(skb, protooff, sizeof(_sh), &_sh);
if (!sh)