Commit 88ff7334 authored by Robert Shearman's avatar Robert Shearman Committed by David S. Miller

net: Specify the owning module for lwtunnel ops

Modules implementing lwtunnel ops should not be allowed to unload
while there is state alive using those ops, so specify the owning
module for all lwtunnel ops.
Signed-off-by: default avatarRobert Shearman <rshearma@brocade.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 04d7f1fb
...@@ -44,6 +44,8 @@ struct lwtunnel_encap_ops { ...@@ -44,6 +44,8 @@ struct lwtunnel_encap_ops {
int (*get_encap_size)(struct lwtunnel_state *lwtstate); int (*get_encap_size)(struct lwtunnel_state *lwtstate);
int (*cmp_encap)(struct lwtunnel_state *a, struct lwtunnel_state *b); int (*cmp_encap)(struct lwtunnel_state *a, struct lwtunnel_state *b);
int (*xmit)(struct sk_buff *skb); int (*xmit)(struct sk_buff *skb);
struct module *owner;
}; };
#ifdef CONFIG_LWTUNNEL #ifdef CONFIG_LWTUNNEL
......
...@@ -386,6 +386,7 @@ static const struct lwtunnel_encap_ops bpf_encap_ops = { ...@@ -386,6 +386,7 @@ static const struct lwtunnel_encap_ops bpf_encap_ops = {
.fill_encap = bpf_fill_encap_info, .fill_encap = bpf_fill_encap_info,
.get_encap_size = bpf_encap_nlsize, .get_encap_size = bpf_encap_nlsize,
.cmp_encap = bpf_encap_cmp, .cmp_encap = bpf_encap_cmp,
.owner = THIS_MODULE,
}; };
static int __init bpf_lwt_init(void) static int __init bpf_lwt_init(void)
......
...@@ -313,6 +313,7 @@ static const struct lwtunnel_encap_ops ip_tun_lwt_ops = { ...@@ -313,6 +313,7 @@ static const struct lwtunnel_encap_ops ip_tun_lwt_ops = {
.fill_encap = ip_tun_fill_encap_info, .fill_encap = ip_tun_fill_encap_info,
.get_encap_size = ip_tun_encap_nlsize, .get_encap_size = ip_tun_encap_nlsize,
.cmp_encap = ip_tun_cmp_encap, .cmp_encap = ip_tun_cmp_encap,
.owner = THIS_MODULE,
}; };
static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = { static const struct nla_policy ip6_tun_policy[LWTUNNEL_IP6_MAX + 1] = {
...@@ -403,6 +404,7 @@ static const struct lwtunnel_encap_ops ip6_tun_lwt_ops = { ...@@ -403,6 +404,7 @@ static const struct lwtunnel_encap_ops ip6_tun_lwt_ops = {
.fill_encap = ip6_tun_fill_encap_info, .fill_encap = ip6_tun_fill_encap_info,
.get_encap_size = ip6_tun_encap_nlsize, .get_encap_size = ip6_tun_encap_nlsize,
.cmp_encap = ip_tun_cmp_encap, .cmp_encap = ip_tun_cmp_encap,
.owner = THIS_MODULE,
}; };
void __init ip_tunnel_core_init(void) void __init ip_tunnel_core_init(void)
......
...@@ -238,6 +238,7 @@ static const struct lwtunnel_encap_ops ila_encap_ops = { ...@@ -238,6 +238,7 @@ static const struct lwtunnel_encap_ops ila_encap_ops = {
.fill_encap = ila_fill_encap_info, .fill_encap = ila_fill_encap_info,
.get_encap_size = ila_encap_nlsize, .get_encap_size = ila_encap_nlsize,
.cmp_encap = ila_encap_cmp, .cmp_encap = ila_encap_cmp,
.owner = THIS_MODULE,
}; };
int ila_lwt_init(void) int ila_lwt_init(void)
......
...@@ -422,6 +422,7 @@ static const struct lwtunnel_encap_ops seg6_iptun_ops = { ...@@ -422,6 +422,7 @@ static const struct lwtunnel_encap_ops seg6_iptun_ops = {
.fill_encap = seg6_fill_encap_info, .fill_encap = seg6_fill_encap_info,
.get_encap_size = seg6_encap_nlsize, .get_encap_size = seg6_encap_nlsize,
.cmp_encap = seg6_encap_cmp, .cmp_encap = seg6_encap_cmp,
.owner = THIS_MODULE,
}; };
int __init seg6_iptunnel_init(void) int __init seg6_iptunnel_init(void)
......
...@@ -215,6 +215,7 @@ static const struct lwtunnel_encap_ops mpls_iptun_ops = { ...@@ -215,6 +215,7 @@ static const struct lwtunnel_encap_ops mpls_iptun_ops = {
.fill_encap = mpls_fill_encap_info, .fill_encap = mpls_fill_encap_info,
.get_encap_size = mpls_encap_nlsize, .get_encap_size = mpls_encap_nlsize,
.cmp_encap = mpls_encap_cmp, .cmp_encap = mpls_encap_cmp,
.owner = THIS_MODULE,
}; };
static int __init mpls_iptunnel_init(void) static int __init mpls_iptunnel_init(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment