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) \
|
||||
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. */
|
||||
|
||||
struct rcu_synchronize {
|
||||
|
||||
@@ -77,7 +77,7 @@ static void __exit nf_nat_amanda_fini(void)
|
||||
static int __init nf_nat_amanda_init(void)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -525,7 +525,7 @@ EXPORT_SYMBOL(nf_nat_protocol_register);
|
||||
void nf_nat_protocol_unregister(const struct nf_nat_protocol *proto)
|
||||
{
|
||||
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);
|
||||
spin_unlock_bh(&nf_nat_lock);
|
||||
synchronize_rcu();
|
||||
@@ -736,10 +736,10 @@ static int __init nf_nat_init(void)
|
||||
/* Sew in builtin protocols. */
|
||||
spin_lock_bh(&nf_nat_lock);
|
||||
for (i = 0; i < MAX_IP_NAT_PROTO; i++)
|
||||
rcu_assign_pointer(nf_nat_protos[i], &nf_nat_unknown_protocol);
|
||||
rcu_assign_pointer(nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp);
|
||||
rcu_assign_pointer(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[i], &nf_nat_unknown_protocol);
|
||||
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_TCP], &nf_nat_protocol_tcp);
|
||||
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_UDP], &nf_nat_protocol_udp);
|
||||
rcu_assign_pointer_nonull(nf_nat_protos[IPPROTO_ICMP], &nf_nat_protocol_icmp);
|
||||
spin_unlock_bh(&nf_nat_lock);
|
||||
|
||||
/* 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);
|
||||
|
||||
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);
|
||||
rcu_assign_pointer(nfnetlink_parse_nat_setup_hook,
|
||||
rcu_assign_pointer_nonull(nfnetlink_parse_nat_setup_hook,
|
||||
nfnetlink_parse_nat_setup);
|
||||
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;
|
||||
|
||||
cleanup_extend:
|
||||
|
||||
@@ -120,7 +120,7 @@ static void __exit nf_nat_ftp_fini(void)
|
||||
static int __init nf_nat_ftp_init(void)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -581,15 +581,15 @@ static int __init init(void)
|
||||
BUG_ON(nat_callforwarding_hook != NULL);
|
||||
BUG_ON(nat_q931_hook != NULL);
|
||||
|
||||
rcu_assign_pointer(set_h245_addr_hook, set_h245_addr);
|
||||
rcu_assign_pointer(set_h225_addr_hook, set_h225_addr);
|
||||
rcu_assign_pointer(set_sig_addr_hook, set_sig_addr);
|
||||
rcu_assign_pointer(set_ras_addr_hook, set_ras_addr);
|
||||
rcu_assign_pointer(nat_rtp_rtcp_hook, nat_rtp_rtcp);
|
||||
rcu_assign_pointer(nat_t120_hook, nat_t120);
|
||||
rcu_assign_pointer(nat_h245_hook, nat_h245);
|
||||
rcu_assign_pointer(nat_callforwarding_hook, nat_callforwarding);
|
||||
rcu_assign_pointer(nat_q931_hook, nat_q931);
|
||||
rcu_assign_pointer_nonull(set_h245_addr_hook, set_h245_addr);
|
||||
rcu_assign_pointer_nonull(set_h225_addr_hook, set_h225_addr);
|
||||
rcu_assign_pointer_nonull(set_sig_addr_hook, set_sig_addr);
|
||||
rcu_assign_pointer_nonull(set_ras_addr_hook, set_ras_addr);
|
||||
rcu_assign_pointer_nonull(nat_rtp_rtcp_hook, nat_rtp_rtcp);
|
||||
rcu_assign_pointer_nonull(nat_t120_hook, nat_t120);
|
||||
rcu_assign_pointer_nonull(nat_h245_hook, nat_h245);
|
||||
rcu_assign_pointer_nonull(nat_callforwarding_hook, nat_callforwarding);
|
||||
rcu_assign_pointer_nonull(nat_q931_hook, nat_q931);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ static void __exit nf_nat_irc_fini(void)
|
||||
static int __init nf_nat_irc_init(void)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -282,16 +282,16 @@ static int __init nf_nat_helper_pptp_init(void)
|
||||
nf_nat_need_gre();
|
||||
|
||||
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);
|
||||
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);
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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_session_hook != NULL);
|
||||
BUG_ON(nf_nat_sdp_media_hook != NULL);
|
||||
rcu_assign_pointer(nf_nat_sip_hook, ip_nat_sip);
|
||||
rcu_assign_pointer(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(nf_nat_sdp_addr_hook, ip_nat_sdp_addr);
|
||||
rcu_assign_pointer(nf_nat_sdp_port_hook, ip_nat_sdp_port);
|
||||
rcu_assign_pointer(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_sip_hook, ip_nat_sip);
|
||||
rcu_assign_pointer_nonull(nf_nat_sip_seq_adjust_hook, ip_nat_sip_seq_adjust);
|
||||
rcu_assign_pointer_nonull(nf_nat_sip_expect_hook, ip_nat_sip_expect);
|
||||
rcu_assign_pointer_nonull(nf_nat_sdp_addr_hook, ip_nat_sdp_addr);
|
||||
rcu_assign_pointer_nonull(nf_nat_sdp_port_hook, ip_nat_sdp_port);
|
||||
rcu_assign_pointer_nonull(nf_nat_sdp_session_hook, ip_nat_sdp_session);
|
||||
rcu_assign_pointer_nonull(nf_nat_sdp_media_hook, ip_nat_sdp_media);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -284,7 +284,7 @@ static int __init nf_nat_standalone_init(void)
|
||||
|
||||
#ifdef CONFIG_XFRM
|
||||
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
|
||||
ret = nf_nat_rule_init();
|
||||
if (ret < 0) {
|
||||
|
||||
@@ -43,7 +43,7 @@ static void __exit nf_nat_tftp_fini(void)
|
||||
static int __init nf_nat_tftp_init(void)
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@@ -1576,8 +1576,8 @@ int nf_conntrack_init(struct net *net)
|
||||
|
||||
if (net_eq(net, &init_net)) {
|
||||
/* For use by REJECT target */
|
||||
rcu_assign_pointer(ip_ct_attach, nf_conntrack_attach);
|
||||
rcu_assign_pointer(nf_ct_destroy, destroy_conntrack);
|
||||
rcu_assign_pointer_nonull(ip_ct_attach, nf_conntrack_attach);
|
||||
rcu_assign_pointer_nonull(nf_ct_destroy, destroy_conntrack);
|
||||
|
||||
/* Howto get NAT offsets */
|
||||
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],
|
||||
lockdep_is_held(&nf_ct_proto_mutex)
|
||||
) != proto);
|
||||
rcu_assign_pointer(nf_ct_l3protos[proto->l3proto],
|
||||
rcu_assign_pointer_nonull(nf_ct_l3protos[proto->l3proto],
|
||||
&nf_conntrack_l3proto_generic);
|
||||
nf_ct_l3proto_unregister_sysctl(proto);
|
||||
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)
|
||||
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);
|
||||
|
||||
out_unlock:
|
||||
@@ -342,7 +342,7 @@ void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
|
||||
nf_ct_protos[l4proto->l3proto][l4proto->l4proto],
|
||||
lockdep_is_held(&nf_ct_proto_mutex)
|
||||
) != 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_ct_l4proto_unregister_sysctl(l4proto);
|
||||
mutex_unlock(&nf_ct_proto_mutex);
|
||||
@@ -367,7 +367,7 @@ int nf_conntrack_proto_init(void)
|
||||
return err;
|
||||
|
||||
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);
|
||||
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 sock_tag *sock_tag_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 "
|
||||
"uid=%u sk=%p dir=%d proto=%d bytes=%d)\n",
|
||||
ifname, uid, sk, direction, proto, bytes);
|
||||
|
||||
@@ -675,7 +675,7 @@ struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
|
||||
if (qdisc == NULL)
|
||||
qdisc = &noop_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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user