diff mbox

[1/1] infiniband: Remove redundant NULL check before kfree

Message ID 1435302547-40904-1-git-send-email-maninder1.s@samsung.com (mailing list archive)
State Superseded
Headers show

Commit Message

Maninder Singh June 26, 2015, 7:09 a.m. UTC
kfree(NULL) is safe and this check is probably not required

Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
Reviewed-by: Akhilesh Kumar <akhilesh.k@samsung.com>
---
 drivers/infiniband/hw/mlx4/main.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Doug Ledford July 7, 2015, 6:53 p.m. UTC | #1
> On Jun 26, 2015, at 3:09 AM, Maninder Singh <maninder1.s@samsung.com> wrote:
> 
> kfree(NULL) is safe and this check is probably not required
> 
> Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
> Reviewed-by: Akhilesh Kumar <akhilesh.k@samsung.com>
> ---
> drivers/infiniband/hw/mlx4/main.c |    6 ++----
> 1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
> index 067a691..4e60b39 100644
> --- a/drivers/infiniband/hw/mlx4/main.c
> +++ b/drivers/infiniband/hw/mlx4/main.c
> @@ -2676,10 +2676,8 @@ static void do_slave_init(struct mlx4_ib_dev *ibdev, int slave, int do_init)
> 		dm[i] = kmalloc(sizeof (struct mlx4_ib_demux_work), GFP_ATOMIC);
> 		if (!dm[i]) {
> 			pr_err("failed to allocate memory for tunneling qp update work struct\n");
> -			for (i = 0; i < dev->caps.num_ports; i++) {
> -				if (dm[i])
> -					kfree(dm[i]);
> -			}
> +			for (i = 0; i < dev->caps.num_ports; i++)
> +				kfree(dm[i]);
> 			goto out;
> 		}
> 	}
> --
> 1.7.9.5
> 

If you are going to change this, you might as well make it 100% correct:

i—-;
while (i >= 0)
	kfree(dm[i]);

Then you don’t have to worry about whether kfree works on NULL, every item you free will be guaranteed to be non-NULL.

—
Doug Ledford <dledford@redhat.com>
	GPG Key ID: 0E572FDD
Christoph Lameter (Ampere) July 9, 2015, 5:06 p.m. UTC | #2
This is correct as is.

Acked-by: Christoph Lameter <cl@linux.com>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c
index 067a691..4e60b39 100644
--- a/drivers/infiniband/hw/mlx4/main.c
+++ b/drivers/infiniband/hw/mlx4/main.c
@@ -2676,10 +2676,8 @@  static void do_slave_init(struct mlx4_ib_dev *ibdev, int slave, int do_init)
 		dm[i] = kmalloc(sizeof (struct mlx4_ib_demux_work), GFP_ATOMIC);
 		if (!dm[i]) {
 			pr_err("failed to allocate memory for tunneling qp update work struct\n");
-			for (i = 0; i < dev->caps.num_ports; i++) {
-				if (dm[i])
-					kfree(dm[i]);
-			}
+			for (i = 0; i < dev->caps.num_ports; i++)
+				kfree(dm[i]);
 			goto out;
 		}
 	}