RDMA/mlx4: Don't continue event handler after memory allocation failure
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: 00f5ce99dc ("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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
c1f078b91e
commit
76d56195fe
@@ -3351,7 +3351,7 @@ static void mlx4_ib_event(struct mlx4_dev *dev, void *ibdev_ptr,
|
|||||||
case MLX4_DEV_EVENT_PORT_MGMT_CHANGE:
|
case MLX4_DEV_EVENT_PORT_MGMT_CHANGE:
|
||||||
ew = kmalloc(sizeof *ew, GFP_ATOMIC);
|
ew = kmalloc(sizeof *ew, GFP_ATOMIC);
|
||||||
if (!ew)
|
if (!ew)
|
||||||
break;
|
return;
|
||||||
|
|
||||||
INIT_WORK(&ew->work, handle_port_mgmt_change_event);
|
INIT_WORK(&ew->work, handle_port_mgmt_change_event);
|
||||||
memcpy(&ew->ib_eqe, eqe, sizeof *eqe);
|
memcpy(&ew->ib_eqe, eqe, sizeof *eqe);
|
||||||
|
|||||||
Reference in New Issue
Block a user