diff options
Diffstat (limited to 'net/ipv4/tcp_ulp.c')
| -rw-r--r-- | net/ipv4/tcp_ulp.c | 14 | 
1 files changed, 7 insertions, 7 deletions
diff --git a/net/ipv4/tcp_ulp.c b/net/ipv4/tcp_ulp.c index 2417f55374c5..6bb9e14c710a 100644 --- a/net/ipv4/tcp_ulp.c +++ b/net/ipv4/tcp_ulp.c @@ -122,14 +122,14 @@ int tcp_set_ulp(struct sock *sk, const char *name)  	ulp_ops = __tcp_ulp_find_autoload(name);  	if (!ulp_ops) -		err = -ENOENT; -	else -		err = ulp_ops->init(sk); +		return -ENOENT; -	if (err) -		goto out; +	err = ulp_ops->init(sk); +	if (err) { +		module_put(ulp_ops->owner); +		return err; +	}  	icsk->icsk_ulp_ops = ulp_ops; - out: -	return err; +	return 0;  }  |