bsc: Reduce duplication with a macro.
diff --git a/openbsc/src/bsc/osmo_bsc_api.c b/openbsc/src/bsc/osmo_bsc_api.c
index 5a03856..0fe6bd2 100644
--- a/openbsc/src/bsc/osmo_bsc_api.c
+++ b/openbsc/src/bsc/osmo_bsc_api.c
@@ -36,18 +36,20 @@
 		return ret; \
 	}
 
+#define queue_msg_or_return(resp) \
+	if (!resp) { \
+		LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n"); \
+		return; \
+	} \
+	bsc_queue_for_msc(conn, resp);
+
 static void bsc_sapi_n_reject(struct gsm_subscriber_connection *conn, int dlci)
 {
 	struct msgb *resp;
 	return_when_not_connected(conn);
 
 	resp = gsm0808_create_sapi_reject(dlci);
-	if (!resp) {
-		LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n");
-		return;
-	}
-
-	bsc_queue_for_msc(conn, resp);
+	queue_msg_or_return(resp);
 }
 
 static void bsc_cipher_mode_compl(struct gsm_subscriber_connection *conn,
@@ -58,12 +60,7 @@
 
 	LOGP(DMSC, LOGL_DEBUG, "CIPHER MODE COMPLETE from MS, forwarding to MSC\n");
 	resp = gsm0808_create_cipher_complete(msg, chosen_encr);
-	if (!resp) {
-		LOGP(DMSC, LOGL_ERROR, "Creating the response failed.\n");
-		return;
-	}
-
-	bsc_queue_for_msc(conn, resp);
+	queue_msg_or_return(resp);
 }
 
 static int bsc_compl_l3(struct gsm_subscriber_connection *conn, struct msgb *msg,
@@ -78,12 +75,7 @@
 	return_when_not_connected(conn);
 
 	resp = gsm0808_create_dtap(msg, link_id);
-	if (!resp) {
-		LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n");
-		return;
-	}
-
-	bsc_queue_for_msc(conn, resp);
+	queue_msg_or_return(resp);
 }
 
 static void bsc_assign_compl(struct gsm_subscriber_connection *conn, uint8_t rr_cause,
@@ -95,12 +87,7 @@
 
 	resp = gsm0808_create_assignment_completed(rr_cause, chosen_channel,
 						   encr_alg_id, speech_model);
-	if (!resp) {
-		LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n");
-		return;
-	}
-
-	bsc_queue_for_msc(conn, resp);
+	queue_msg_or_return(resp);
 }
 
 static void bsc_assign_fail(struct gsm_subscriber_connection *conn,
@@ -110,12 +97,7 @@
 	return_when_not_connected(conn);
 
 	resp = gsm0808_create_assignment_failure(cause, rr_cause);
-	if (!resp) {
-		LOGP(DMSC, LOGL_ERROR, "Failed to allocate response.\n");
-		return;
-	}
-
-	bsc_queue_for_msc(conn, resp);
+	queue_msg_or_return(resp);
 }
 
 static int bsc_clear_request(struct gsm_subscriber_connection *conn, uint32_t cause)