IB/qib: fix qp locate remove race

remove_qp() can execute concurrently with a qib_lookup_qpn() on another CPU,
which in of itself, is ok, given the RCU locking.

The issue is that remove_qp() NULLs out the qp->next field so that a
qib_lookup_qpn() might fail to find a qp if it occurs after the one that is
being deleted.   This is a momentary issue and subsequent qib_lookup_qpn()
calls would find the qp's since the search restarts from the bucket head.
At scale, the issue might causes dropped packets and unnecessary
retransmissions.

The fix just deletes the qp->next NULL assignment to prevent the
remove_qp() from hiding qp's from qib_lookup_qpn().

Reviewed-by: Dean Luick <dean.luick@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>