IB/rdmavt: Add multicast functions

This patch adds in the multicast add and remove functions as well as the
ancillary infrastructure needed.

Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c
index 0eeef49..64b9c01 100644
--- a/drivers/infiniband/sw/rdmavt/qp.c
+++ b/drivers/infiniband/sw/rdmavt/qp.c
@@ -240,6 +240,8 @@
 	if (rdi->driver_f.free_all_qps)
 		qp_inuse = rdi->driver_f.free_all_qps(rdi);
 
+	qp_inuse += rvt_mcast_tree_empty(rdi);
+
 	if (!rdi->qp_dev)
 		return qp_inuse;