IB/core: Fix calculation of maximum RoCE MTU
authorParav Pandit <parav@mellanox.com>
Mon, 16 Oct 2017 05:45:16 +0000 (08:45 +0300)
committerDoug Ledford <dledford@redhat.com>
Wed, 18 Oct 2017 16:11:36 +0000 (12:11 -0400)
commit99260132fde7bddc6e0132ce53da94d1c9ccabcb
treef0f208f0814ff556f98fda929638fcb0a785c6a8
parent39baf10310e6669564a485b55267fae70a4e44ae
IB/core: Fix calculation of maximum RoCE MTU

The original code only took into consideration the largest header
possible after the IB_BTH_BYTES.  This was incorrect, as the largest
possible header size is the largest possible combination of headers we
might run into.  The new code accounts for all possible headers in the
largest possible combination and subtracts that from the MTU to make
sure that all packets will fit on the wire.

Link: https://www.spinics.net/lists/linux-rdma/msg54558.html
Fixes: 3c86aa70bf67 ("RDMA/cm: Add RDMA CM support for IBoE devices")
Signed-off-by: Parav Pandit <parav@mellanox.com>
Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
Reported-by: Roland Dreier <roland@purestorage.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/rdma/ib_addr.h
include/rdma/ib_pack.h