The request_module() is quite expensive and triggers the usermode helper in userspace. Instead, load only if the module is not present and keep module references to avoid problems. The first patch standardize the module alias which is already there, but not in a formal way. The second patch adds an API to point to the NAT helper. The third patch will register each NAT helper using the new API. The last patch fixes openvswitch to use the new API to load and reference the NAT helper and also report an error if the operation fails. Flavio Leitner (4): netfilter: use macros to create module aliases. netfilter: add API to manage NAT helpers. netfilter: nf_nat: register NAT helpers. openvswitch: load and reference the NAT helper. include/net/netfilter/nf_conntrack_helper.h | 24 ++++++ net/ipv4/netfilter/nf_nat_h323.c | 2 +- net/ipv4/netfilter/nf_nat_pptp.c | 2 +- net/netfilter/nf_conntrack_amanda.c | 8 +- net/netfilter/nf_conntrack_ftp.c | 18 +++-- net/netfilter/nf_conntrack_helper.c | 86 +++++++++++++++++++++ net/netfilter/nf_conntrack_irc.c | 6 +- net/netfilter/nf_conntrack_sane.c | 12 +-- net/netfilter/nf_conntrack_sip.c | 28 +++---- net/netfilter/nf_conntrack_tftp.c | 18 +++-- net/netfilter/nf_nat_amanda.c | 9 ++- net/netfilter/nf_nat_ftp.c | 9 ++- net/netfilter/nf_nat_irc.c | 9 ++- net/netfilter/nf_nat_sip.c | 9 ++- net/netfilter/nf_nat_tftp.c | 9 ++- net/openvswitch/conntrack.c | 26 +++++-- 16 files changed, 225 insertions(+), 50 deletions(-) -- 2.20.1