]> git.baikalelectronics.ru Git - kernel.git/commit
IB/rxe: avoid putting a large struct rxe_qp on stack
authorArnd Bergmann <arnd@arndb.de>
Mon, 19 Sep 2016 11:57:26 +0000 (13:57 +0200)
committerDoug Ledford <dledford@redhat.com>
Mon, 12 Dec 2016 21:31:45 +0000 (16:31 -0500)
commit9a74d59a8c9378519d37fffc2fa7102999163835
tree5222fc413b272f38aa61ca3c7811c04f05444087
parentf6b2dc9d91db3ccd530c76dac16bdb9724295ee0
IB/rxe: avoid putting a large struct rxe_qp on stack

A race condition fix added an rxe_qp structure to the stack in order
to be able to perform rollback in rxe_requester(), but the structure
is large enough to trigger the warning for possible stack overflow:

drivers/infiniband/sw/rxe/rxe_req.c: In function 'rxe_requester':
drivers/infiniband/sw/rxe/rxe_req.c:757:1: error: the frame size of 2064 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

This changes the rollback function to only save the psn inside
the qp, which is the only field we access in the rollback_qp
anyway.

Fixes: 12a331bbdc12 ("IB/rxe: Fix race condition between requester and completer")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/sw/rxe/rxe_req.c