compile fixups for netfilter
This commit is contained in:
@@ -716,6 +716,12 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
|
|||||||
#define RCU_INIT_POINTER(p, v) \
|
#define RCU_INIT_POINTER(p, v) \
|
||||||
p = (typeof(*v) __force __rcu *)(v)
|
p = (typeof(*v) __force __rcu *)(v)
|
||||||
|
|
||||||
|
#define rcu_assign_pointer_nonull(p, v) \
|
||||||
|
({ \
|
||||||
|
if (!__builtin_constant_p(v)) \
|
||||||
|
smp_wmb(); \
|
||||||
|
(p) = (v); \
|
||||||
|
})
|
||||||
/* Infrastructure to implement the synchronize_() primitives. */
|
/* Infrastructure to implement the synchronize_() primitives. */
|
||||||
|
|
||||||
struct rcu_synchronize {
|
struct rcu_synchronize {
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ static void __exit nf_nat_amanda_fini(void)
|
|||||||
static int __init nf_nat_amanda_init(void)
|
static int __init nf_nat_amanda_init(void)
|
||||||
{
|
{
|
||||||
BUG_ON(nf_nat_amanda_hook != NULL);
|
BUG_ON(nf_nat_amanda_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_amanda_hook, help);
|
rcu_assign_pointer_nonull(nf_nat_amanda_hook, help);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -525,7 +525,7 @@ EXPORT_SYMBOL(nf_nat_protocol_register);
|
|||||||
void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto)
|
void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto)
|
||||||
{
|
{
|
||||||
spin_lock_bh(&nf_nat_lock);
|
spin_lock_bh(&nf_nat_lock);
|
||||||
rcu_assign_pointer(nf_nat_protos[proto->protonum],
|
rcu_assign_pointer_nonull(nf_nat_protos[proto->protonum],
|
||||||
&nf_nat_unknown_protocol);
|
&nf_nat_unknown_protocol);
|
||||||
spin_unlock_bh(&nf_nat_lock);
|
spin_unlock_bh(&nf_nat_lock);
|
||||||
synchronize_rcu();
|
synchronize_rcu();
|
||||||
@@ -736,10 +736,10 @@ static int __init nf_nat_init(void)
|
|||||||
/* Sew in builtin protocols. */
|
/* Sew in builtin protocols. */
|
||||||
spin_lock_bh(&nf_nat_lock);
|
spin_lock_bh(&nf_nat_lock);
|
||||||
for (i = 0; i < MAX_IP_NAT_PROTO; i++)
|
for (i = 0; i < MAX_IP_NAT_PROTO; i++)
|
||||||
rcu_assign_pointer(nf_nat_protos[i], &nf_nat_unknown_protocol);
|
rcu_assign_pointer_nonull(nf_nat_protos[i], &nf_nat_unknown_protocol);
|
||||||
rcu_assign_pointer(nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp);
|
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp);
|
||||||
rcu_assign_pointer(nf_nat_protos[IPPROTO_UDP], &nf_nat_protocol_udp);
|
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_UDP], &nf_nat_protocol_udp);
|
||||||
rcu_assign_pointer(nf_nat_protos[IPPROTO_ICMP], &nf_nat_protocol_icmp);
|
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_ICMP], &nf_nat_protocol_icmp);
|
||||||
spin_unlock_bh(&nf_nat_lock);
|
spin_unlock_bh(&nf_nat_lock);
|
||||||
|
|
||||||
/* Initialize fake conntrack so that NAT will skip it */
|
/* Initialize fake conntrack so that NAT will skip it */
|
||||||
@@ -748,12 +748,12 @@ static int __init nf_nat_init(void)
|
|||||||
l3proto = nf_ct_l3proto_find_get((u_int16_t)AF_INET);
|
l3proto = nf_ct_l3proto_find_get((u_int16_t)AF_INET);
|
||||||
|
|
||||||
BUG_ON(nf_nat_seq_adjust_hook != NULL);
|
BUG_ON(nf_nat_seq_adjust_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_seq_adjust_hook, nf_nat_seq_adjust);
|
rcu_assign_pointer_nonull(nf_nat_seq_adjust_hook, nf_nat_seq_adjust);
|
||||||
BUG_ON(nfnetlink_parse_nat_setup_hook != NULL);
|
BUG_ON(nfnetlink_parse_nat_setup_hook != NULL);
|
||||||
rcu_assign_pointer(nfnetlink_parse_nat_setup_hook,
|
rcu_assign_pointer_nonull(nfnetlink_parse_nat_setup_hook,
|
||||||
nfnetlink_parse_nat_setup);
|
nfnetlink_parse_nat_setup);
|
||||||
BUG_ON(nf_ct_nat_offset != NULL);
|
BUG_ON(nf_ct_nat_offset != NULL);
|
||||||
rcu_assign_pointer(nf_ct_nat_offset, nf_nat_get_offset);
|
rcu_assign_pointer_nonull(nf_ct_nat_offset, nf_nat_get_offset);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup_extend:
|
cleanup_extend:
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ static void __exit nf_nat_ftp_fini(void)
|
|||||||
static int __init nf_nat_ftp_init(void)
|
static int __init nf_nat_ftp_init(void)
|
||||||
{
|
{
|
||||||
BUG_ON(nf_nat_ftp_hook != NULL);
|
BUG_ON(nf_nat_ftp_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_ftp_hook, nf_nat_ftp);
|
rcu_assign_pointer_nonull(nf_nat_ftp_hook, nf_nat_ftp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -581,15 +581,15 @@ static int __init init(void)
|
|||||||
BUG_ON(nat_callforwarding_hook != NULL);
|
BUG_ON(nat_callforwarding_hook != NULL);
|
||||||
BUG_ON(nat_q931_hook != NULL);
|
BUG_ON(nat_q931_hook != NULL);
|
||||||
|
|
||||||
rcu_assign_pointer(set_h245_addr_hook, set_h245_addr);
|
rcu_assign_pointer_nonull(set_h245_addr_hook, set_h245_addr);
|
||||||
rcu_assign_pointer(set_h225_addr_hook, set_h225_addr);
|
rcu_assign_pointer_nonull(set_h225_addr_hook, set_h225_addr);
|
||||||
rcu_assign_pointer(set_sig_addr_hook, set_sig_addr);
|
rcu_assign_pointer_nonull(set_sig_addr_hook, set_sig_addr);
|
||||||
rcu_assign_pointer(set_ras_addr_hook, set_ras_addr);
|
rcu_assign_pointer_nonull(set_ras_addr_hook, set_ras_addr);
|
||||||
rcu_assign_pointer(nat_rtp_rtcp_hook, nat_rtp_rtcp);
|
rcu_assign_pointer_nonull(nat_rtp_rtcp_hook, nat_rtp_rtcp);
|
||||||
rcu_assign_pointer(nat_t120_hook, nat_t120);
|
rcu_assign_pointer_nonull(nat_t120_hook, nat_t120);
|
||||||
rcu_assign_pointer(nat_h245_hook, nat_h245);
|
rcu_assign_pointer_nonull(nat_h245_hook, nat_h245);
|
||||||
rcu_assign_pointer(nat_callforwarding_hook, nat_callforwarding);
|
rcu_assign_pointer_nonull(nat_callforwarding_hook, nat_callforwarding);
|
||||||
rcu_assign_pointer(nat_q931_hook, nat_q931);
|
rcu_assign_pointer_nonull(nat_q931_hook, nat_q931);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ static void __exit nf_nat_irc_fini(void)
|
|||||||
static int __init nf_nat_irc_init(void)
|
static int __init nf_nat_irc_init(void)
|
||||||
{
|
{
|
||||||
BUG_ON(nf_nat_irc_hook != NULL);
|
BUG_ON(nf_nat_irc_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_irc_hook, help);
|
rcu_assign_pointer_nonull(nf_nat_irc_hook, help);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -282,16 +282,16 @@ static int __init nf_nat_helper_pptp_init(void)
|
|||||||
nf_nat_need_gre();
|
nf_nat_need_gre();
|
||||||
|
|
||||||
BUG_ON(nf_nat_pptp_hook_outbound != NULL);
|
BUG_ON(nf_nat_pptp_hook_outbound != NULL);
|
||||||
rcu_assign_pointer(nf_nat_pptp_hook_outbound, pptp_outbound_pkt);
|
rcu_assign_pointer_nonull(nf_nat_pptp_hook_outbound, pptp_outbound_pkt);
|
||||||
|
|
||||||
BUG_ON(nf_nat_pptp_hook_inbound != NULL);
|
BUG_ON(nf_nat_pptp_hook_inbound != NULL);
|
||||||
rcu_assign_pointer(nf_nat_pptp_hook_inbound, pptp_inbound_pkt);
|
rcu_assign_pointer_nonull(nf_nat_pptp_hook_inbound, pptp_inbound_pkt);
|
||||||
|
|
||||||
BUG_ON(nf_nat_pptp_hook_exp_gre != NULL);
|
BUG_ON(nf_nat_pptp_hook_exp_gre != NULL);
|
||||||
rcu_assign_pointer(nf_nat_pptp_hook_exp_gre, pptp_exp_gre);
|
rcu_assign_pointer_nonull(nf_nat_pptp_hook_exp_gre, pptp_exp_gre);
|
||||||
|
|
||||||
BUG_ON(nf_nat_pptp_hook_expectfn != NULL);
|
BUG_ON(nf_nat_pptp_hook_expectfn != NULL);
|
||||||
rcu_assign_pointer(nf_nat_pptp_hook_expectfn, pptp_nat_expected);
|
rcu_assign_pointer_nonull(nf_nat_pptp_hook_expectfn, pptp_nat_expected);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -547,13 +547,13 @@ static int __init nf_nat_sip_init(void)
|
|||||||
BUG_ON(nf_nat_sdp_port_hook != NULL);
|
BUG_ON(nf_nat_sdp_port_hook != NULL);
|
||||||
BUG_ON(nf_nat_sdp_session_hook != NULL);
|
BUG_ON(nf_nat_sdp_session_hook != NULL);
|
||||||
BUG_ON(nf_nat_sdp_media_hook != NULL);
|
BUG_ON(nf_nat_sdp_media_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_sip_hook, ip_nat_sip);
|
rcu_assign_pointer_nonull(nf_nat_sip_hook, ip_nat_sip);
|
||||||
rcu_assign_pointer(nf_nat_sip_seq_adjust_hook, ip_nat_sip_seq_adjust);
|
rcu_assign_pointer_nonull(nf_nat_sip_seq_adjust_hook, ip_nat_sip_seq_adjust);
|
||||||
rcu_assign_pointer(nf_nat_sip_expect_hook, ip_nat_sip_expect);
|
rcu_assign_pointer_nonull(nf_nat_sip_expect_hook, ip_nat_sip_expect);
|
||||||
rcu_assign_pointer(nf_nat_sdp_addr_hook, ip_nat_sdp_addr);
|
rcu_assign_pointer_nonull(nf_nat_sdp_addr_hook, ip_nat_sdp_addr);
|
||||||
rcu_assign_pointer(nf_nat_sdp_port_hook, ip_nat_sdp_port);
|
rcu_assign_pointer_nonull(nf_nat_sdp_port_hook, ip_nat_sdp_port);
|
||||||
rcu_assign_pointer(nf_nat_sdp_session_hook, ip_nat_sdp_session);
|
rcu_assign_pointer_nonull(nf_nat_sdp_session_hook, ip_nat_sdp_session);
|
||||||
rcu_assign_pointer(nf_nat_sdp_media_hook, ip_nat_sdp_media);
|
rcu_assign_pointer_nonull(nf_nat_sdp_media_hook, ip_nat_sdp_media);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -284,7 +284,7 @@ static int __init nf_nat_standalone_init(void)
|
|||||||
|
|
||||||
#ifdef CONFIG_XFRM
|
#ifdef CONFIG_XFRM
|
||||||
BUG_ON(ip_nat_decode_session != NULL);
|
BUG_ON(ip_nat_decode_session != NULL);
|
||||||
rcu_assign_pointer(ip_nat_decode_session, nat_decode_session);
|
rcu_assign_pointer_nonull(ip_nat_decode_session, nat_decode_session);
|
||||||
#endif
|
#endif
|
||||||
ret = nf_nat_rule_init();
|
ret = nf_nat_rule_init();
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ static void __exit nf_nat_tftp_fini(void)
|
|||||||
static int __init nf_nat_tftp_init(void)
|
static int __init nf_nat_tftp_init(void)
|
||||||
{
|
{
|
||||||
BUG_ON(nf_nat_tftp_hook != NULL);
|
BUG_ON(nf_nat_tftp_hook != NULL);
|
||||||
rcu_assign_pointer(nf_nat_tftp_hook, help);
|
rcu_assign_pointer_nonull(nf_nat_tftp_hook, help);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1576,8 +1576,8 @@ int nf_conntrack_init(struct net *net)
|
|||||||
|
|
||||||
if (net_eq(net, &init_net)) {
|
if (net_eq(net, &init_net)) {
|
||||||
/* For use by REJECT target */
|
/* For use by REJECT target */
|
||||||
rcu_assign_pointer(ip_ct_attach, nf_conntrack_attach);
|
rcu_assign_pointer_nonull(ip_ct_attach, nf_conntrack_attach);
|
||||||
rcu_assign_pointer(nf_ct_destroy, destroy_conntrack);
|
rcu_assign_pointer_nonull(nf_ct_destroy, destroy_conntrack);
|
||||||
|
|
||||||
/* Howto get NAT offsets */
|
/* Howto get NAT offsets */
|
||||||
rcu_assign_pointer(nf_ct_nat_offset, NULL);
|
rcu_assign_pointer(nf_ct_nat_offset, NULL);
|
||||||
|
|||||||
@@ -207,7 +207,7 @@ void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
|
|||||||
BUG_ON(rcu_dereference_protected(nf_ct_l3protos[proto->l3proto],
|
BUG_ON(rcu_dereference_protected(nf_ct_l3protos[proto->l3proto],
|
||||||
lockdep_is_held(&nf_ct_proto_mutex)
|
lockdep_is_held(&nf_ct_proto_mutex)
|
||||||
) != proto);
|
) != proto);
|
||||||
rcu_assign_pointer(nf_ct_l3protos[proto->l3proto],
|
rcu_assign_pointer_nonull(nf_ct_l3protos[proto->l3proto],
|
||||||
&nf_conntrack_l3proto_generic);
|
&nf_conntrack_l3proto_generic);
|
||||||
nf_ct_l3proto_unregister_sysctl(proto);
|
nf_ct_l3proto_unregister_sysctl(proto);
|
||||||
mutex_unlock(&nf_ct_proto_mutex);
|
mutex_unlock(&nf_ct_proto_mutex);
|
||||||
@@ -322,7 +322,7 @@ int nf_conntrack_l4proto_register(struct nf_conntrack_l4proto *l4proto)
|
|||||||
if (l4proto->nlattr_tuple_size)
|
if (l4proto->nlattr_tuple_size)
|
||||||
l4proto->nla_size += 3 * l4proto->nlattr_tuple_size();
|
l4proto->nla_size += 3 * l4proto->nlattr_tuple_size();
|
||||||
|
|
||||||
rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
rcu_assign_pointer_nonull(nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
||||||
l4proto);
|
l4proto);
|
||||||
|
|
||||||
out_unlock:
|
out_unlock:
|
||||||
@@ -342,7 +342,7 @@ void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
|
|||||||
nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
||||||
lockdep_is_held(&nf_ct_proto_mutex)
|
lockdep_is_held(&nf_ct_proto_mutex)
|
||||||
) != l4proto);
|
) != l4proto);
|
||||||
rcu_assign_pointer(nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
rcu_assign_pointer_nonull(nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
||||||
&nf_conntrack_l4proto_generic);
|
&nf_conntrack_l4proto_generic);
|
||||||
nf_ct_l4proto_unregister_sysctl(l4proto);
|
nf_ct_l4proto_unregister_sysctl(l4proto);
|
||||||
mutex_unlock(&nf_ct_proto_mutex);
|
mutex_unlock(&nf_ct_proto_mutex);
|
||||||
@@ -367,7 +367,7 @@ int nf_conntrack_proto_init(void)
|
|||||||
return err;
|
return err;
|
||||||
|
|
||||||
for (i = 0; i < AF_MAX; i++)
|
for (i = 0; i < AF_MAX; i++)
|
||||||
rcu_assign_pointer(nf_ct_l3protos[i],
|
rcu_assign_pointer_nonull(nf_ct_l3protos[i],
|
||||||
&nf_conntrack_l3proto_generic);
|
&nf_conntrack_l3proto_generic);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1265,7 +1265,7 @@ static void if_tag_stat_update(const char *ifname, uid_t uid,
|
|||||||
struct data_counters *uid_tag_counters;
|
struct data_counters *uid_tag_counters;
|
||||||
struct sock_tag *sock_tag_entry;
|
struct sock_tag *sock_tag_entry;
|
||||||
struct iface_stat *iface_entry;
|
struct iface_stat *iface_entry;
|
||||||
struct tag_stat *new_tag_stat;
|
struct tag_stat *new_tag_stat=0;
|
||||||
MT_DEBUG("qtaguid: if_tag_stat_update(ifname=%s "
|
MT_DEBUG("qtaguid: if_tag_stat_update(ifname=%s "
|
||||||
"uid=%u sk=%p dir=%d proto=%d bytes=%d)\n",
|
"uid=%u sk=%p dir=%d proto=%d bytes=%d)\n",
|
||||||
ifname, uid, sk, direction, proto, bytes);
|
ifname, uid, sk, direction, proto, bytes);
|
||||||
|
|||||||
@@ -675,7 +675,7 @@ struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
|
|||||||
if (qdisc == NULL)
|
if (qdisc == NULL)
|
||||||
qdisc = &noop_qdisc;
|
qdisc = &noop_qdisc;
|
||||||
dev_queue->qdisc_sleeping = qdisc;
|
dev_queue->qdisc_sleeping = qdisc;
|
||||||
rcu_assign_pointer(dev_queue->qdisc, &noop_qdisc);
|
rcu_assign_pointer_nonull(dev_queue->qdisc, &noop_qdisc);
|
||||||
|
|
||||||
spin_unlock_bh(root_lock);
|
spin_unlock_bh(root_lock);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user