Message ID | 1368091192-10245-2-git-send-email-yefremov.denis@gmail.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
> EXPORT_SYMBOL and inline directives are contradictory to each other. > The patch fixes this inconsistency. ... > -inline const struct nf_nat_l4proto * > +const struct nf_nat_l4proto * > __nf_nat_l4proto_find(u8 family, u8 protonum) > { > return rcu_dereference(nf_nat_l4protos[family][protonum]); If it makes sense to inline the local calls (ie the cost of the call is significant) then possibly add an inlined (or inlinable) static function that is called locally and by the exported one? I'm not sure that gcc is allowed to make the assumption that the local exported function will be called - and thus inline it. David -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c index 038eee5..38492e0 100644 --- a/net/netfilter/nf_nat_core.c +++ b/net/netfilter/nf_nat_core.c @@ -44,7 +44,7 @@ __nf_nat_l3proto_find(u8 family) return rcu_dereference(nf_nat_l3protos[family]); } -inline const struct nf_nat_l4proto * +const struct nf_nat_l4proto * __nf_nat_l4proto_find(u8 family, u8 protonum) { return rcu_dereference(nf_nat_l4protos[family][protonum]);
EXPORT_SYMBOL and inline directives are contradictory to each other. The patch fixes this inconsistency. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Denis Efremov <yefremov.denis@gmail.com> --- net/netfilter/nf_nat_core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)