IB/core: Fix error code for invalid GID entry
authorParav Pandit <parav@mellanox.com>
Sun, 27 May 2018 11:49:16 +0000 (14:49 +0300)
committerJason Gunthorpe <jgg@mellanox.com>
Tue, 29 May 2018 18:08:37 +0000 (12:08 -0600)
commita840c93ca7582bb6c88df2345a33f979b7a67874
tree7eb9efffd6a7a8394420378e0079bda17bf02f24
parent533d1daea8d8a389b37207ad7b50c4e750969231
IB/core: Fix error code for invalid GID entry

When a GID entry is invalid EAGAIN is returned. This is an incorrect error
code, there is nothing that will make this GID entry valid again in
bounded time.

Some user space tools fail incorrectly if EAGAIN is returned here, and
this represents a small ABI change from earlier kernels.

The first patch in the Fixes list makes entries that were valid before
to become invalid, allowing this code to trigger, while the second patch
in the Fixes list introduced the wrong EAGAIN.

Therefore revert the return result to EINVAL which matches the historical
expectations of the ibv_query_gid_type() API of the libibverbs user space
library.

Cc: <stable@vger.kernel.org>
Fixes: 598ff6bae689 ("IB/core: Refactor GID modify code for RoCE")
Fixes: 03db3a2d81e6 ("IB/core: Add RoCE GID table management")
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Parav Pandit <parav@mellanox.com>
Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/core/cache.c