rdma: Make get_port_from_argv() returns valid port in strict port mode
When strict_port is set, make get_port_from_argv() returns failure if no valid port is specified. Signed-off-by: Mark Zhang <markz@mellanox.com> Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
This commit is contained in:
parent
887fc739eb
commit
cbe10b4e44
|
|
@ -56,7 +56,7 @@ bool rd_no_arg(struct rd *rd)
|
||||||
* mlx5_1/1 | 1 | false
|
* mlx5_1/1 | 1 | false
|
||||||
* mlx5_1/- | 0 | false
|
* mlx5_1/- | 0 | false
|
||||||
*
|
*
|
||||||
* In strict mode, /- will return error.
|
* In strict port mode, a non-0 port must be provided
|
||||||
*/
|
*/
|
||||||
static int get_port_from_argv(struct rd *rd, uint32_t *port,
|
static int get_port_from_argv(struct rd *rd, uint32_t *port,
|
||||||
bool *is_dump_all, bool strict_port)
|
bool *is_dump_all, bool strict_port)
|
||||||
|
|
@ -64,7 +64,7 @@ static int get_port_from_argv(struct rd *rd, uint32_t *port,
|
||||||
char *slash;
|
char *slash;
|
||||||
|
|
||||||
*port = 0;
|
*port = 0;
|
||||||
*is_dump_all = true;
|
*is_dump_all = strict_port ? false : true;
|
||||||
|
|
||||||
slash = strchr(rd_argv(rd), '/');
|
slash = strchr(rd_argv(rd), '/');
|
||||||
/* if no port found, return 0 */
|
/* if no port found, return 0 */
|
||||||
|
|
@ -83,6 +83,9 @@ static int get_port_from_argv(struct rd *rd, uint32_t *port,
|
||||||
if (!*port && strlen(slash))
|
if (!*port && strlen(slash))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
if (strict_port && (*port == 0))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue