Allow mlx4 devices to switch from Ethernet to Infiniband (and vice versa):
- Fix sysctl wrapper for sysfs attributes to properly handle new string values similar to sysctl_handle_string() (only copyin the user's supplied length and nul-terminate the string). - Don't check for a trailing newline when evaluating the desired operating mode of a mlx4 device. PR: kern/179999 Submitted by: Shahar Klein <shahark@mellanox.com> MFC after: 1 week
This commit is contained in:
parent
c64bc3a076
commit
335349690f
@ -479,11 +479,11 @@ static ssize_t set_port_type(struct device *dev,
|
|||||||
int i;
|
int i;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
|
||||||
if (!strcmp(buf, "ib\n"))
|
if (!strcmp(buf, "ib"))
|
||||||
info->tmp_type = MLX4_PORT_TYPE_IB;
|
info->tmp_type = MLX4_PORT_TYPE_IB;
|
||||||
else if (!strcmp(buf, "eth\n"))
|
else if (!strcmp(buf, "eth"))
|
||||||
info->tmp_type = MLX4_PORT_TYPE_ETH;
|
info->tmp_type = MLX4_PORT_TYPE_ETH;
|
||||||
else if (!strcmp(buf, "auto\n"))
|
else if (!strcmp(buf, "auto"))
|
||||||
info->tmp_type = MLX4_PORT_TYPE_AUTO;
|
info->tmp_type = MLX4_PORT_TYPE_AUTO;
|
||||||
else {
|
else {
|
||||||
mlx4_err(mdev, "%s is not supported port type\n", buf);
|
mlx4_err(mdev, "%s is not supported port type\n", buf);
|
||||||
|
@ -104,10 +104,15 @@ sysctl_handle_attr(SYSCTL_HANDLER_ARGS)
|
|||||||
error = SYSCTL_OUT(req, buf, len);
|
error = SYSCTL_OUT(req, buf, len);
|
||||||
if (error || !req->newptr || ops->store == NULL)
|
if (error || !req->newptr || ops->store == NULL)
|
||||||
goto out;
|
goto out;
|
||||||
error = SYSCTL_IN(req, buf, PAGE_SIZE);
|
len = req->newlen - req->newidx;
|
||||||
|
if (len >= PAGE_SIZE)
|
||||||
|
error = EINVAL;
|
||||||
|
else
|
||||||
|
error = SYSCTL_IN(req, buf, len);
|
||||||
if (error)
|
if (error)
|
||||||
goto out;
|
goto out;
|
||||||
len = ops->store(kobj, attr, buf, req->newlen);
|
((char *)buf)[len] = '\0';
|
||||||
|
len = ops->store(kobj, attr, buf, len);
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
error = -len;
|
error = -len;
|
||||||
out:
|
out:
|
||||||
|
Loading…
Reference in New Issue
Block a user