diff options
Diffstat (limited to 'net/core/netpoll.c')
| -rw-r--r-- | net/core/netpoll.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/net/core/netpoll.c b/net/core/netpoll.c index c03f3dec4763..a664f7829a6d 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c @@ -948,6 +948,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)  {  	char *cur=opt, *delim;  	int ipv6; +	bool ipversion_set = false;  	if (*cur != '@') {  		if ((delim = strchr(cur, '@')) == NULL) @@ -960,6 +961,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)  	cur++;  	if (*cur != '/') { +		ipversion_set = true;  		if ((delim = strchr(cur, '/')) == NULL)  			goto parse_failed;  		*delim = 0; @@ -1002,7 +1004,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)  	ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip);  	if (ipv6 < 0)  		goto parse_failed; -	else if (np->ipv6 != (bool)ipv6) +	else if (ipversion_set && np->ipv6 != (bool)ipv6)  		goto parse_failed;  	else  		np->ipv6 = (bool)ipv6; |