Commit a6c05c3d authored by Simon Horman's avatar Simon Horman Committed by David S. Miller

[IPV4]: Fix ip command line processing.

Recently the documentation in Documentation/nfsroot.txt was
update to note that in fact ip=off and ip=::::::off as the
latter is ignored and the default (on) is used.

This was certainly a step in the direction of reducing confusion.
But it seems to me that the code ought to be fixed up so that
ip=::::::off actually turns off ip autoconfiguration.

This patch also notes more specifically that ip=on (aka ip=::::::on)
is the default.
Signed-off-by: default avatarSimon Horman <horms@verge.net.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent ecef969e
...@@ -97,10 +97,6 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> ...@@ -97,10 +97,6 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
autoconfiguration will take place. The most common way to use this autoconfiguration will take place. The most common way to use this
is "ip=dhcp". is "ip=dhcp".
Note that "ip=off" is not the same thing as "ip=::::::off", because in
the latter autoconfiguration will take place if any of DHCP, BOOTP or RARP
are compiled in the kernel.
<client-ip> IP address of the client. <client-ip> IP address of the client.
Default: Determined using autoconfiguration. Default: Determined using autoconfiguration.
...@@ -150,6 +146,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf> ...@@ -150,6 +146,7 @@ ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
off or none: don't use autoconfiguration off or none: don't use autoconfiguration
on or any: use any protocol available in the kernel on or any: use any protocol available in the kernel
(default)
dhcp: use DHCP dhcp: use DHCP
bootp: use BOOTP bootp: use BOOTP
rarp: use RARP rarp: use RARP
......
...@@ -1403,6 +1403,10 @@ static int __init ic_proto_name(char *name) ...@@ -1403,6 +1403,10 @@ static int __init ic_proto_name(char *name)
if (!strcmp(name, "on") || !strcmp(name, "any")) { if (!strcmp(name, "on") || !strcmp(name, "any")) {
return 1; return 1;
} }
if (!strcmp(name, "off") || !strcmp(name, "none")) {
ic_enable = 0;
return 1;
}
#ifdef CONFIG_IP_PNP_DHCP #ifdef CONFIG_IP_PNP_DHCP
else if (!strcmp(name, "dhcp")) { else if (!strcmp(name, "dhcp")) {
ic_proto_enabled &= ~IC_RARP; ic_proto_enabled &= ~IC_RARP;
...@@ -1437,12 +1441,6 @@ static int __init ip_auto_config_setup(char *addrs) ...@@ -1437,12 +1441,6 @@ static int __init ip_auto_config_setup(char *addrs)
ic_set_manually = 1; ic_set_manually = 1;
ic_enable = (*addrs &&
(strcmp(addrs, "off") != 0) &&
(strcmp(addrs, "none") != 0));
if (!ic_enable)
return 1;
if (ic_proto_name(addrs)) if (ic_proto_name(addrs))
return 1; return 1;
......
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