diff options
Diffstat (limited to 'net/ipv4/tcp_ulp.c')
-rw-r--r-- | net/ipv4/tcp_ulp.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/tcp_ulp.c b/net/ipv4/tcp_ulp.c index 622caa4039e0..a5995bb2eaca 100644 --- a/net/ipv4/tcp_ulp.c +++ b/net/ipv4/tcp_ulp.c | |||
@@ -51,7 +51,7 @@ static const struct tcp_ulp_ops *__tcp_ulp_find_autoload(const char *name) | |||
51 | #ifdef CONFIG_MODULES | 51 | #ifdef CONFIG_MODULES |
52 | if (!ulp && capable(CAP_NET_ADMIN)) { | 52 | if (!ulp && capable(CAP_NET_ADMIN)) { |
53 | rcu_read_unlock(); | 53 | rcu_read_unlock(); |
54 | request_module("%s", name); | 54 | request_module("tcp-ulp-%s", name); |
55 | rcu_read_lock(); | 55 | rcu_read_lock(); |
56 | ulp = tcp_ulp_find(name); | 56 | ulp = tcp_ulp_find(name); |
57 | } | 57 | } |
@@ -129,6 +129,8 @@ void tcp_cleanup_ulp(struct sock *sk) | |||
129 | if (icsk->icsk_ulp_ops->release) | 129 | if (icsk->icsk_ulp_ops->release) |
130 | icsk->icsk_ulp_ops->release(sk); | 130 | icsk->icsk_ulp_ops->release(sk); |
131 | module_put(icsk->icsk_ulp_ops->owner); | 131 | module_put(icsk->icsk_ulp_ops->owner); |
132 | |||
133 | icsk->icsk_ulp_ops = NULL; | ||
132 | } | 134 | } |
133 | 135 | ||
134 | /* Change upper layer protocol for socket */ | 136 | /* Change upper layer protocol for socket */ |