diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/netfilter/nf_conntrack_proto.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c index a6defc793601..5886ba1d52a0 100644 --- a/net/netfilter/nf_conntrack_proto.c +++ b/net/netfilter/nf_conntrack_proto.c | |||
@@ -117,9 +117,13 @@ void nf_ct_l3proto_module_put(unsigned short l3proto) | |||
117 | { | 117 | { |
118 | struct nf_conntrack_l3proto *p; | 118 | struct nf_conntrack_l3proto *p; |
119 | 119 | ||
120 | /* rcu_read_lock not necessary since the caller holds a reference */ | 120 | /* rcu_read_lock not necessary since the caller holds a reference, but |
121 | * taken anyways to avoid lockdep warnings in __nf_ct_l3proto_find() | ||
122 | */ | ||
123 | rcu_read_lock(); | ||
121 | p = __nf_ct_l3proto_find(l3proto); | 124 | p = __nf_ct_l3proto_find(l3proto); |
122 | module_put(p->me); | 125 | module_put(p->me); |
126 | rcu_read_unlock(); | ||
123 | } | 127 | } |
124 | EXPORT_SYMBOL_GPL(nf_ct_l3proto_module_put); | 128 | EXPORT_SYMBOL_GPL(nf_ct_l3proto_module_put); |
125 | 129 | ||