提交 b0118ced 编写于 作者: S Shay Drory 提交者: Saeed Mahameed

net/mlx5: fw_tracer, allow 0 size string DBs

Device can expose string DB of size 0 which means this string DB is
currently not in use. Therefore, allow for 0 size string DBs.
Signed-off-by: NShay Drory <shayd@nvidia.com>
Reviewed-by: NMoshe Shemesh <moshe@nvidia.com>
Signed-off-by: NSaeed Mahameed <saeedm@nvidia.com>
上级 988c2352
...@@ -233,6 +233,8 @@ static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer) ...@@ -233,6 +233,8 @@ static int mlx5_fw_tracer_allocate_strings_db(struct mlx5_fw_tracer *tracer)
int i; int i;
for (i = 0; i < num_string_db; i++) { for (i = 0; i < num_string_db; i++) {
if (!string_db_size_out[i])
continue;
tracer->str_db.buffer[i] = kzalloc(string_db_size_out[i], GFP_KERNEL); tracer->str_db.buffer[i] = kzalloc(string_db_size_out[i], GFP_KERNEL);
if (!tracer->str_db.buffer[i]) if (!tracer->str_db.buffer[i])
goto free_strings_db; goto free_strings_db;
...@@ -278,6 +280,8 @@ static void mlx5_tracer_read_strings_db(struct work_struct *work) ...@@ -278,6 +280,8 @@ static void mlx5_tracer_read_strings_db(struct work_struct *work)
} }
for (i = 0; i < num_string_db; i++) { for (i = 0; i < num_string_db; i++) {
if (!tracer->str_db.size_out[i])
continue;
offset = 0; offset = 0;
MLX5_SET(mtrc_stdb, in, string_db_index, i); MLX5_SET(mtrc_stdb, in, string_db_index, i);
num_of_reads = tracer->str_db.size_out[i] / num_of_reads = tracer->str_db.size_out[i] /
...@@ -384,6 +388,8 @@ static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer ...@@ -384,6 +388,8 @@ static struct tracer_string_format *mlx5_tracer_get_string(struct mlx5_fw_tracer
str_ptr = tracer_event->string_event.string_param; str_ptr = tracer_event->string_event.string_param;
for (i = 0; i < tracer->str_db.num_string_db; i++) { for (i = 0; i < tracer->str_db.num_string_db; i++) {
if (!tracer->str_db.size_out[i])
continue;
if (str_ptr > tracer->str_db.base_address_out[i] && if (str_ptr > tracer->str_db.base_address_out[i] &&
str_ptr < tracer->str_db.base_address_out[i] + str_ptr < tracer->str_db.base_address_out[i] +
tracer->str_db.size_out[i]) { tracer->str_db.size_out[i]) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册