mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-05-24 10:39:52 +00:00
netpoll: fix netconsole IPv6 setup
Currently, to make netconsole start over IPv6, the source address needs to be specified. Without a source address, netpoll_parse_options assumes we're setting up over IPv4 and the destination IPv6 address is rejected. Check if the IP version has been forced by a source address before checking for a version mismatch when parsing the destination address. Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Acked-by: Cong Wang <cwang@twopensource.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
440b87eac4
commit
00fe11b3c6
1 changed files with 3 additions and 1 deletions
|
@ -948,6 +948,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)
|
||||||
{
|
{
|
||||||
char *cur=opt, *delim;
|
char *cur=opt, *delim;
|
||||||
int ipv6;
|
int ipv6;
|
||||||
|
bool ipversion_set = false;
|
||||||
|
|
||||||
if (*cur != '@') {
|
if (*cur != '@') {
|
||||||
if ((delim = strchr(cur, '@')) == NULL)
|
if ((delim = strchr(cur, '@')) == NULL)
|
||||||
|
@ -960,6 +961,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)
|
||||||
cur++;
|
cur++;
|
||||||
|
|
||||||
if (*cur != '/') {
|
if (*cur != '/') {
|
||||||
|
ipversion_set = true;
|
||||||
if ((delim = strchr(cur, '/')) == NULL)
|
if ((delim = strchr(cur, '/')) == NULL)
|
||||||
goto parse_failed;
|
goto parse_failed;
|
||||||
*delim = 0;
|
*delim = 0;
|
||||||
|
@ -1002,7 +1004,7 @@ int netpoll_parse_options(struct netpoll *np, char *opt)
|
||||||
ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip);
|
ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip);
|
||||||
if (ipv6 < 0)
|
if (ipv6 < 0)
|
||||||
goto parse_failed;
|
goto parse_failed;
|
||||||
else if (np->ipv6 != (bool)ipv6)
|
else if (ipversion_set && np->ipv6 != (bool)ipv6)
|
||||||
goto parse_failed;
|
goto parse_failed;
|
||||||
else
|
else
|
||||||
np->ipv6 = (bool)ipv6;
|
np->ipv6 = (bool)ipv6;
|
||||||
|
|
Loading…
Add table
Reference in a new issue