svn commit: r308675 - stable/11/sys/dev/mlx5/mlx5_core
Hans Petter Selasky
hselasky at FreeBSD.org
Tue Nov 15 08:51:30 UTC 2016
Author: hselasky
Date: Tue Nov 15 08:51:29 2016
New Revision: 308675
URL: https://svnweb.freebsd.org/changeset/base/308675
Log:
MFC r308411:
Ensure the firmware is notified of any host memory allocation
failures. Else firmware commands may time out waiting for host
memory.
Sponsored by: Mellanox Technologies
Modified:
stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
Directory Properties:
stable/11/ (props changed)
Modified: stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c
==============================================================================
--- stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c Tue Nov 15 08:50:42 2016 (r308674)
+++ stable/11/sys/dev/mlx5/mlx5_core/mlx5_pagealloc.c Tue Nov 15 08:51:29 2016 (r308675)
@@ -246,13 +246,14 @@ static int give_pages(struct mlx5_core_d
int inlen;
u64 addr;
int err;
- int i;
+ int i = 0;
inlen = sizeof(*in) + npages * sizeof(in->pas[0]);
in = mlx5_vzalloc(inlen);
if (!in) {
mlx5_core_warn(dev, "vzalloc failed %d\n", inlen);
- return -ENOMEM;
+ err = -ENOMEM;
+ goto out_alloc;
}
memset(&out, 0, sizeof(out));
@@ -263,7 +264,7 @@ retry:
if (err == -ENOMEM)
err = alloc_system_page(dev, func_id);
if (err)
- goto out_4k;
+ goto out_alloc;
goto retry;
}
@@ -301,12 +302,11 @@ out_alloc:
memset(&out, 0, sizeof(out));
nin->hdr.opcode = cpu_to_be16(MLX5_CMD_OP_MANAGE_PAGES);
nin->hdr.opmod = cpu_to_be16(MLX5_PAGES_CANT_GIVE);
+ nin->func_id = cpu_to_be16(func_id);
if (mlx5_cmd_exec(dev, nin, sizeof(*nin), &out, sizeof(out)))
mlx5_core_warn(dev, "page notify failed\n");
kfree(nin);
}
-
-out_4k:
for (i--; i >= 0; i--)
free_4k(dev, be64_to_cpu(in->pas[i]));
out_free:
More information about the svn-src-stable
mailing list