]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
RDMA/mlx4: Don't continue event handler after memory allocation failure
authorLeon Romanovsky <leonro@nvidia.com>
Mon, 31 Jan 2022 09:45:26 +0000 (11:45 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 29 Mar 2022 07:14:00 +0000 (09:14 +0200)
BugLink: https://bugs.launchpad.net/bugs/1964634
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>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/infiniband/hw/mlx4/main.c

index d7cba9c717ca8f13ecc9b9750c4a765c23b57005..3a01d31f21867981232ea91d7a76498da3889212 100644 (file)
@@ -3294,7 +3294,7 @@ static void mlx4_ib_event(struct mlx4_dev *dev, void *ibdev_ptr,
        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);