diff options
| -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 | ||
