OpenCloudOS-Kernel/drivers/infiniband
Roland Dreier 0c87b67209 IB/mlx4: Don't use GFP_ATOMIC for CQ resize struct
We allocate a small tracking structure as part of mlx4_ib_resize_cq().
However, we don't need to use GFP_ATOMIC -- immediately after the
allocation, we call mlx4_cq_resize(), which allocates a command
mailbox with GFP_KERNEL and then sleeps on a firmware command, so we
better not be in an atomic context.

This actually has a real impact, because when this GFP_ATOMIC
allocation fails (and GFP_ATOMIC does fail in practice) then a
userspace consumer resizing a CQ will get a spurious failure that we
can easily avoid.

Signed-off-by: Roland Dreier <roland@purestorage.com>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-08-03 21:03:32 -04:00
..
core IB/core: Initialize sysfs attributes before sysfs create group 2016-06-07 09:50:54 -04:00
hw IB/mlx4: Don't use GFP_ATOMIC for CQ resize struct 2016-08-03 21:03:32 -04:00
sw IB/rdmavt: Disable by default 2016-08-03 21:03:31 -04:00
ulp IB/IPoIB: Don't update neigh validity for unresolved entries 2016-06-07 10:49:48 -04:00
Kconfig IB/hfi1: Move driver out of staging 2016-05-26 11:35:14 -04:00
Makefile IB/rdmavt: Create module framework and handle driver registration 2016-03-10 20:37:04 -05:00