mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
RDMa/mlx5: Avoid frame overflow warning
Building mlx5 on s390 shows a rather high stack usage that can exceed the warning limit when that is set to a lower but still reasonable value: drivers/infiniband/hw/mlx5/wr.c:1051:5: error: stack frame size (1328) exceeds limit (1280) in 'mlx5_ib_post_send' [-Werror,-Wframe-larger-than] The problem here is 'struct ib_reg_wr' on the stack of handle_reg_mr_integrity(), which gets inlined into mlx5_ib_post_send() along with a number of smaller functions. Keeping the inner function out of line like gcc does avoids the warning and reduces the total stack usage in other functions called from mlx5_ib_post_send(), though handle_reg_mr_integrity() itself still has the same problem as before. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Link: https://patch.msgid.link/20260612201611.4127750-1-arnd@kernel.org Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
d2e52d610b
commit
f5ad2ead84
|
|
@ -840,13 +840,15 @@ static int handle_psv(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp,
|
|||
return err;
|
||||
}
|
||||
|
||||
static int handle_reg_mr_integrity(struct mlx5_ib_dev *dev,
|
||||
struct mlx5_ib_qp *qp,
|
||||
const struct ib_send_wr *wr,
|
||||
struct mlx5_wqe_ctrl_seg **ctrl, void **seg,
|
||||
int *size, void **cur_edge,
|
||||
unsigned int *idx, int nreq, u8 fence,
|
||||
u8 next_fence)
|
||||
static noinline_for_stack int handle_reg_mr_integrity(struct mlx5_ib_dev *dev,
|
||||
struct mlx5_ib_qp *qp,
|
||||
const struct ib_send_wr *wr,
|
||||
struct mlx5_wqe_ctrl_seg **ctrl,
|
||||
void **seg,
|
||||
int *size, void **cur_edge,
|
||||
unsigned int *idx, int nreq,
|
||||
u8 fence,
|
||||
u8 next_fence)
|
||||
{
|
||||
struct mlx5_ib_mr *mr;
|
||||
struct mlx5_ib_mr *pi_mr;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user