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

From: Doug Ledford
Date: Tue Jul 07 2015 - 14:53:36 EST



> On Jun 26, 2015, at 3:09 AM, Maninder Singh <maninder1.s@xxxxxxxxxxx> wrote:
>
> kfree(NULL) is safe and this check is probably not required
>
> Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx>
> Reviewed-by: Akhilesh Kumar <akhilesh.k@xxxxxxxxxxx>
> ---
> 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@xxxxxxxxxx>
GPG Key ID: 0E572FDD





Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail