netfilter: ip6_tables: ip6t_ext_hdr is now static inline
We may hit this in xt_LOG: net/built-in.o:xt_LOG.c:function dump_ipv6_packet: error: undefined reference to 'ip6t_ext_hdr' happens with these config options: CONFIG_NETFILTER_XT_TARGET_LOG=y CONFIG_IP6_NF_IPTABLES=m ip6t_ext_hdr is fairly small and it is called in the packet path. Make it static inline. Reported-by: Simon Kirby <sim@netnation.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
@@ -287,7 +287,17 @@ extern unsigned int ip6t_do_table(struct sk_buff *skb,
|
|||||||
struct xt_table *table);
|
struct xt_table *table);
|
||||||
|
|
||||||
/* Check for an extension */
|
/* Check for an extension */
|
||||||
extern int ip6t_ext_hdr(u8 nexthdr);
|
static inline int
|
||||||
|
ip6t_ext_hdr(u8 nexthdr)
|
||||||
|
{ return (nexthdr == IPPROTO_HOPOPTS) ||
|
||||||
|
(nexthdr == IPPROTO_ROUTING) ||
|
||||||
|
(nexthdr == IPPROTO_FRAGMENT) ||
|
||||||
|
(nexthdr == IPPROTO_ESP) ||
|
||||||
|
(nexthdr == IPPROTO_AH) ||
|
||||||
|
(nexthdr == IPPROTO_NONE) ||
|
||||||
|
(nexthdr == IPPROTO_DSTOPTS);
|
||||||
|
}
|
||||||
|
|
||||||
/* find specified header and get offset to it */
|
/* find specified header and get offset to it */
|
||||||
extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
|
extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
|
||||||
int target, unsigned short *fragoff);
|
int target, unsigned short *fragoff);
|
||||||
|
@@ -78,19 +78,6 @@ EXPORT_SYMBOL_GPL(ip6t_alloc_initial_table);
|
|||||||
|
|
||||||
Hence the start of any table is given by get_table() below. */
|
Hence the start of any table is given by get_table() below. */
|
||||||
|
|
||||||
/* Check for an extension */
|
|
||||||
int
|
|
||||||
ip6t_ext_hdr(u8 nexthdr)
|
|
||||||
{
|
|
||||||
return (nexthdr == IPPROTO_HOPOPTS) ||
|
|
||||||
(nexthdr == IPPROTO_ROUTING) ||
|
|
||||||
(nexthdr == IPPROTO_FRAGMENT) ||
|
|
||||||
(nexthdr == IPPROTO_ESP) ||
|
|
||||||
(nexthdr == IPPROTO_AH) ||
|
|
||||||
(nexthdr == IPPROTO_NONE) ||
|
|
||||||
(nexthdr == IPPROTO_DSTOPTS);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns whether matches rule or not. */
|
/* Returns whether matches rule or not. */
|
||||||
/* Performance critical - called for every packet */
|
/* Performance critical - called for every packet */
|
||||||
static inline bool
|
static inline bool
|
||||||
@@ -2366,7 +2353,6 @@ int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
|
|||||||
EXPORT_SYMBOL(ip6t_register_table);
|
EXPORT_SYMBOL(ip6t_register_table);
|
||||||
EXPORT_SYMBOL(ip6t_unregister_table);
|
EXPORT_SYMBOL(ip6t_unregister_table);
|
||||||
EXPORT_SYMBOL(ip6t_do_table);
|
EXPORT_SYMBOL(ip6t_do_table);
|
||||||
EXPORT_SYMBOL(ip6t_ext_hdr);
|
|
||||||
EXPORT_SYMBOL(ipv6_find_hdr);
|
EXPORT_SYMBOL(ipv6_find_hdr);
|
||||||
|
|
||||||
module_init(ip6_tables_init);
|
module_init(ip6_tables_init);
|
||||||
|
Reference in New Issue
Block a user