2020-08-06 18:59:39

by Alex Dewar

[permalink] [raw]
Subject: [PATCH] vdpa/mlx5: Fix uninitialised variable in core/mr.c

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 <[email protected]>
---
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


2020-08-07 03:55:48

by Jason Wang

[permalink] [raw]
Subject: Re: [PATCH] vdpa/mlx5: Fix uninitialised variable in core/mr.c


On 2020/8/7 上午2:56, Alex Dewar wrote:
> 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 <[email protected]>


Acked-by: Jason Wang <[email protected]>


> ---
> 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
>

2020-08-09 05:54:30

by Eli Cohen

[permalink] [raw]
Subject: Re: [PATCH] vdpa/mlx5: Fix uninitialised variable in core/mr.c

On Thu, Aug 06, 2020 at 07:56:15PM +0100, Alex Dewar wrote:

Acked-by: Eli Cohen <[email protected]>
> 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 <[email protected]>
> ---
> 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
>