| From f3136c4ce7acf64bee43135971ca52a880572e32 Mon Sep 17 00:00:00 2001 |
| From: Leon Romanovsky <leonro@nvidia.com> |
| Date: Mon, 31 Jan 2022 11:45:26 +0200 |
| Subject: RDMA/mlx4: Don't continue event handler after memory allocation failure |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Leon Romanovsky <leonro@nvidia.com> |
| |
| commit f3136c4ce7acf64bee43135971ca52a880572e32 upstream. |
| |
| The failure to allocate memory during MLX4_DEV_EVENT_PORT_MGMT_CHANGE |
| event handler will cause skip the assignment logic, but |
| ib_dispatch_event() will be called anyway. |
| |
| Fix it by calling to return instead of break after memory allocation |
| failure. |
| |
| Fixes: 00f5ce99dc6e ("mlx4: Use port management change event instead of smp_snoop") |
| Link: https://lore.kernel.org/r/12a0e83f18cfad4b5f62654f141e240d04915e10.1643622264.git.leonro@nvidia.com |
| Signed-off-by: Leon Romanovsky <leonro@nvidia.com> |
| Reviewed-by: HÃ¥kon Bugge <haakon.bugge@oracle.com> |
| Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/infiniband/hw/mlx4/main.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/drivers/infiniband/hw/mlx4/main.c |
| +++ b/drivers/infiniband/hw/mlx4/main.c |
| @@ -3273,7 +3273,7 @@ static void mlx4_ib_event(struct mlx4_de |
| case MLX4_DEV_EVENT_PORT_MGMT_CHANGE: |
| ew = kmalloc(sizeof *ew, GFP_ATOMIC); |
| if (!ew) |
| - break; |
| + return; |
| |
| INIT_WORK(&ew->work, handle_port_mgmt_change_event); |
| memcpy(&ew->ib_eqe, eqe, sizeof *eqe); |