OSDN Git Service

IB/mlx4: Fix memory leak in add_gid error flow
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Wed, 15 Jan 2020 08:50:50 +0000 (10:50 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Thu, 16 Jan 2020 20:13:22 +0000 (16:13 -0400)
commiteaad647e5cc27f7b46a27f3b85b14c4c8a64bffa
treea9c0192b42c6e6f0304131fbf193f9aaee208225
parentd7fab916374c8f5488ca792c57ea8b72e8631213
IB/mlx4: Fix memory leak in add_gid error flow

In procedure mlx4_ib_add_gid(), if the driver is unable to update the FW
gid table, there is a memory leak in the driver's copy of the gid table:
the gid entry's context buffer is not freed.

If such an error occurs, free the entry's context buffer, and mark the
entry as available (by setting its context pointer to NULL).

Fixes: e26be1bfef81 ("IB/mlx4: Implement ib_device callbacks")
Link: https://lore.kernel.org/r/20200115085050.73746-1-leon@kernel.org
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Reviewed-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/mlx4/main.c