On Thu, Feb 27, 2020 at 01:11:13PM +0000, Michal Kalderon wrote: > Hi Kamal, Jason, > > Running a version of ibv_devinfo compiled against an old rdma-core (ibv_devinfo from libibverbs-utils-16.2-3-fc28.x86_64 ) > failed to run with rdma-core release 28.0 for qedr. > > The patch that caused this is commit c2841076 > https://github.com/linux-rdma/rdma-core/commit/c28410765bdfe5cbed3cb2cdb1584eac3941469c#diff-8da8bc8b2790169de557d5dee83a278e > c28410765bdf > > libibverbs: Fix incorrect return code ... > > The proper return code is EOPNOTSUPP when an operation is not supported. > > Signed-off-by: Kamal Heib <kamalheib1@xxxxxxxxx> > > The reason it failed is because qedr doesn't have a query_device_ex > callback, so vctx->query_device_ex returns EOPNOTSUPP, and old > libibverbs Compares the return code to ENOSYS This is surprising and unfortunate > I think applications compiled against old rdma-core should continue > to run on new ones as well. Can this commit be reverted? I would prefer to only revert the little bit that might be needed for compatability. Perhaps we should change the dummy function to implement query_device_ex for all providers? Zeroing the extended data should be sufficient I think. Unfortunately we are changing return codes inadvertantly quite often, and the providers tend to use different codes. Jason