If the kernel is unable to allocate memory for the variable dmr then
err will be returned without being set. Set err to -ENOMEM in this
case.

Fixes: 94abbccdf291 ("vdpa/mlx5: Add shared memory registration code")
Addresses-Coverity: ("Uninitialized variables")
Signed-off-by: Alex Dewar <alex.de...@gmx.co.uk>
---
 drivers/vdpa/mlx5/core/mr.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/vdpa/mlx5/core/mr.c b/drivers/vdpa/mlx5/core/mr.c
index f5dec0274133..ef1c550f8266 100644
--- a/drivers/vdpa/mlx5/core/mr.c
+++ b/drivers/vdpa/mlx5/core/mr.c
@@ -319,8 +319,10 @@ static int add_direct_chain(struct mlx5_vdpa_dev *mvdev, 
u64 start, u64 size, u8
        while (size) {
                sz = (u32)min_t(u64, MAX_KLM_SIZE, size);
                dmr = kzalloc(sizeof(*dmr), GFP_KERNEL);
-               if (!dmr)
+               if (!dmr) {
+                       err = -ENOMEM;
                        goto err_alloc;
+               }

                dmr->start = st;
                dmr->end = st + sz;
--
2.28.0

Reply via email to