qcacmn: Force unwake in ce_per_engine_service for fastpath

ce_per_engine_service fails to call Q_TARGET_ACCESS_END in fastpath
execution flow.

Change-Id: I0caed62a4775e6e1231fead6eaa1ad7f38bc9ba2
CRs-Fixed: 1017064
diff --git a/hif/src/ce/ce_service.c b/hif/src/ce/ce_service.c
index 3393637..26a326a 100644
--- a/hif/src/ce/ce_service.c
+++ b/hif/src/ce/ce_service.c
@@ -1819,8 +1819,7 @@
 	if (ce_is_fastpath_handler_registered(CE_state)) {
 		/* For datapath only Rx CEs */
 		ce_per_engine_service_fast(scn, CE_id);
-		qdf_spin_unlock(&CE_state->ce_index_lock);
-		return CE_state->receive_count;
+		goto unlock_end;
 	}
 
 more_completions:
@@ -1857,10 +1856,7 @@
 			 */
 			if (qdf_unlikely(CE_state->force_break)) {
 				qdf_atomic_set(&CE_state->rx_pending, 1);
-				if (Q_TARGET_ACCESS_END(scn) < 0)
-					HIF_ERROR("<--[premature rc=%d]\n",
-						  CE_state->receive_count);
-				return CE_state->receive_count;
+				goto target_access_end;
 			}
 			qdf_spin_lock(&CE_state->ce_index_lock);
 		}
@@ -1993,9 +1989,11 @@
 		}
 	}
 
-	qdf_spin_unlock(&CE_state->ce_index_lock);
 	qdf_atomic_set(&CE_state->rx_pending, 0);
 
+unlock_end:
+	qdf_spin_unlock(&CE_state->ce_index_lock);
+target_access_end:
 	if (Q_TARGET_ACCESS_END(scn) < 0)
 		HIF_ERROR("<--[premature rc=%d]\n", CE_state->receive_count);
 	return CE_state->receive_count;