mirror of
https://github.com/torvalds/linux.git
synced 2026-03-13 22:36:17 +01:00
netconsole: use netpoll_parse_ip_addr in local_ip_store
Replace manual IP address parsing with a call to netpoll_parse_ip_addr in remote_ip_store(), simplifying the code and reducing the chance of errors. The error message got removed, since it is not a good practice to pr_err() if used pass a wrong value in configfs. Signed-off-by: Breno Leitao <leitao@debian.org> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
60cb692141
commit
4aeb452c23
1 changed files with 5 additions and 17 deletions
|
|
@ -782,6 +782,7 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf,
|
|||
{
|
||||
struct netconsole_target *nt = to_target(item);
|
||||
ssize_t ret = -EINVAL;
|
||||
int ipv6;
|
||||
|
||||
mutex_lock(&dynamic_netconsole_mutex);
|
||||
if (nt->enabled) {
|
||||
|
|
@ -790,23 +791,10 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf,
|
|||
goto out_unlock;
|
||||
}
|
||||
|
||||
if (strnchr(buf, count, ':')) {
|
||||
const char *end;
|
||||
|
||||
if (in6_pton(buf, count, nt->np.remote_ip.in6.s6_addr, -1, &end) > 0) {
|
||||
if (*end && *end != '\n') {
|
||||
pr_err("invalid IPv6 address at: <%c>\n", *end);
|
||||
goto out_unlock;
|
||||
}
|
||||
nt->np.ipv6 = true;
|
||||
} else
|
||||
goto out_unlock;
|
||||
} else {
|
||||
if (!nt->np.ipv6)
|
||||
nt->np.remote_ip.ip = in_aton(buf);
|
||||
else
|
||||
goto out_unlock;
|
||||
}
|
||||
ipv6 = netpoll_parse_ip_addr(buf, &nt->np.remote_ip);
|
||||
if (ipv6 == -1)
|
||||
goto out_unlock;
|
||||
nt->np.ipv6 = !!ipv6;
|
||||
|
||||
ret = strnlen(buf, count);
|
||||
out_unlock:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue