Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vdpa/mlx5: Fix incorrect error code reporting in query_virtqueues

When query_virtqueues() fails, the error log prints the variable err
instead of cmd->err. Since err may still be zero at this point, the
log message can misleadingly report a success value 0 even though the
command actually failed.

Even worse, once err is set to the first failure, subsequent logs
print that same stale value. This makes the error reporting appear
one step behind the actual failing queue index, which is confusing
and misleading.

Fix the log to report cmd->err, which reflects the real failure code
returned by the firmware.

Fixes: 1fcdf43ea69e ("vdpa/mlx5: Use async API for vq query command")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Message-Id: <20250929134258.80956-1-alok.a.tiwari@oracle.com>

authored by

Alok Tiwari and committed by
Michael S. Tsirkin
f0ea2e91 deb55fc9

+1 -1
+1 -1
drivers/vdpa/mlx5/net/mlx5_vnet.c
··· 1256 1256 int vq_idx = start_vq + i; 1257 1257 1258 1258 if (cmd->err) { 1259 - mlx5_vdpa_err(mvdev, "query vq %d failed, err: %d\n", vq_idx, err); 1259 + mlx5_vdpa_err(mvdev, "query vq %d failed, err: %d\n", vq_idx, cmd->err); 1260 1260 if (!err) 1261 1261 err = cmd->err; 1262 1262 continue;