net: ipconfig: Avoid spurious blank lines in boot log
When dumping the name and NTP servers advertised by DHCP, a blank line is emitted if either of the lists is empty. This can lead to confusing issues such as the blank line getting flagged as warning. This happens because the blank line is the result of pr_cont("\n") and that may see its level corrupted by some other driver concurrently writing to the console. Fix this by making sure that the terminating newline is only emitted if at least one entry in the lists was printed before. Reported-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Link: https://lore.kernel.org/r/20201110073757.1284594-1-thierry.reding@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
203cb737fb
commit
c9f64d1fc1
|
@ -1441,7 +1441,7 @@ static int __init ip_auto_config(void)
|
||||||
int retries = CONF_OPEN_RETRIES;
|
int retries = CONF_OPEN_RETRIES;
|
||||||
#endif
|
#endif
|
||||||
int err;
|
int err;
|
||||||
unsigned int i;
|
unsigned int i, count;
|
||||||
|
|
||||||
/* Initialise all name servers and NTP servers to NONE (but only if the
|
/* Initialise all name servers and NTP servers to NONE (but only if the
|
||||||
* "ip=" or "nfsaddrs=" kernel command line parameters weren't decoded,
|
* "ip=" or "nfsaddrs=" kernel command line parameters weren't decoded,
|
||||||
|
@ -1575,7 +1575,7 @@ static int __init ip_auto_config(void)
|
||||||
if (ic_dev_mtu)
|
if (ic_dev_mtu)
|
||||||
pr_cont(", mtu=%d", ic_dev_mtu);
|
pr_cont(", mtu=%d", ic_dev_mtu);
|
||||||
/* Name servers (if any): */
|
/* Name servers (if any): */
|
||||||
for (i = 0; i < CONF_NAMESERVERS_MAX; i++) {
|
for (i = 0, count = 0; i < CONF_NAMESERVERS_MAX; i++) {
|
||||||
if (ic_nameservers[i] != NONE) {
|
if (ic_nameservers[i] != NONE) {
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
pr_info(" nameserver%u=%pI4",
|
pr_info(" nameserver%u=%pI4",
|
||||||
|
@ -1583,12 +1583,14 @@ static int __init ip_auto_config(void)
|
||||||
else
|
else
|
||||||
pr_cont(", nameserver%u=%pI4",
|
pr_cont(", nameserver%u=%pI4",
|
||||||
i, &ic_nameservers[i]);
|
i, &ic_nameservers[i]);
|
||||||
|
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
if (i + 1 == CONF_NAMESERVERS_MAX)
|
if ((i + 1 == CONF_NAMESERVERS_MAX) && count > 0)
|
||||||
pr_cont("\n");
|
pr_cont("\n");
|
||||||
}
|
}
|
||||||
/* NTP servers (if any): */
|
/* NTP servers (if any): */
|
||||||
for (i = 0; i < CONF_NTP_SERVERS_MAX; i++) {
|
for (i = 0, count = 0; i < CONF_NTP_SERVERS_MAX; i++) {
|
||||||
if (ic_ntp_servers[i] != NONE) {
|
if (ic_ntp_servers[i] != NONE) {
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
pr_info(" ntpserver%u=%pI4",
|
pr_info(" ntpserver%u=%pI4",
|
||||||
|
@ -1596,8 +1598,10 @@ static int __init ip_auto_config(void)
|
||||||
else
|
else
|
||||||
pr_cont(", ntpserver%u=%pI4",
|
pr_cont(", ntpserver%u=%pI4",
|
||||||
i, &ic_ntp_servers[i]);
|
i, &ic_ntp_servers[i]);
|
||||||
|
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
if (i + 1 == CONF_NTP_SERVERS_MAX)
|
if ((i + 1 == CONF_NTP_SERVERS_MAX) && count > 0)
|
||||||
pr_cont("\n");
|
pr_cont("\n");
|
||||||
}
|
}
|
||||||
#endif /* !SILENT */
|
#endif /* !SILENT */
|
||||||
|
|
Loading…
Reference in New Issue