Merge pull request #1726 from abhijitG-xlnx/sigall

ionic: Honor sq_sig_all for signaled completions
diff --git a/providers/ionic/ionic.h b/providers/ionic/ionic.h
index d618645..a51d790 100644
--- a/providers/ionic/ionic.h
+++ b/providers/ionic/ionic.h
@@ -201,6 +201,7 @@
 
 	struct ionic_sq		sq;
 	struct ionic_rq		rq;
+	bool			sig_all;
 };
 
 struct ionic_ah {
diff --git a/providers/ionic/ionic_verbs.c b/providers/ionic/ionic_verbs.c
index 4817230..6452894 100644
--- a/providers/ionic/ionic_verbs.c
+++ b/providers/ionic/ionic_verbs.c
@@ -1693,6 +1693,7 @@
 	qp->has_sq = true;
 	qp->has_rq = true;
 	qp->lockfree = false;
+	qp->sig_all = ex->sq_sig_all;
 
 	list_node_init(&qp->cq_poll_sq);
 	list_node_init(&qp->cq_poll_rq);
@@ -2111,7 +2112,7 @@
 	if (wr->send_flags & IBV_SEND_SOLICITED)
 		wqe->base.flags |= htobe16(IONIC_V1_FLAG_SOL);
 
-	if (wr->send_flags & IBV_SEND_SIGNALED) {
+	if (qp->sig_all || (wr->send_flags & IBV_SEND_SIGNALED)) {
 		wqe->base.flags |= htobe16(IONIC_V1_FLAG_SIG);
 		meta->signal = true;
 	}