From: Michal Kalderon <michal.kalde...@cavium.com> Date: Mon, 5 Mar 2018 23:50:46 +0200
> Rdma requires ILT Memory to be allocated for it's QPs. > Each ILT entry points to a page used by several Rdma QPs. > To avoid allocating all the memory in advance, the rdma > implementation dynamically allocates memory as more QPs are > added, however it does not dynamically free the memory. > The memory should have been freed on rmmod qedr, but isn't. > This patch adds the memory freeing on rmmod qedr (currently > it will be freed with qed is removed). > > An outcome of this bug, is that if qedr is unloaded and loaded > without unloaded qed, there will be no more RoCE traffic. > > The reason these are related, is that the logic of detecting the > first QP ever opened is by asking whether ILT memory for RoCE has > been allocated. > > In addition, this patch modifies freeing of the Task context to > always use the PROTOCOLID_ROCE and not the protocol passed, > this is because task context for iWARP and ROCE both use the > ROCE protocol id, as opposed to the connection context. > > Fixes: dbb799c39717 ("qed: Initialize hardware for new protocols") > > Signed-off-by: Michal Kalderon <michal.kalde...@cavium.com> > Signed-off-by: Ariel Elior <ariel.el...@cavium.com> Please do not put an empty line in between a Fixes: tag and the others. They are all tags, and should be grouped together. > --- > Difference from V2: > > Fixed Broken parenthesis In comment Applied, thank you.