libosmocore: change the memory management of NS2

Until now NS2 always free'd it's own memory. Even when the msg
was sent as primitive to the upper layer.
Change the memory ownership when sending a primitive to the upper layer.
The upper layer has to free the msg buffer.

Merge together with: I180433735bfbb3375c41318d7a7709d5845199ba (osmo-pcu)

Change-Id: Id844d7acbcab102a7dc472d608a5e97a748ecb43
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index ffa3135..403b8b7 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -1001,7 +1001,7 @@
 
 /*! Create a new GPRS NS instance
  *  \param[in] ctx a talloc context to allocate NS instance from
- *  \param[in] cb Call-back function for dispatching primitives to the user
+ *  \param[in] cb Call-back function for dispatching primitives to the user. The Call-back must free all msgb* given in the primitive.
  *  \param[in] cb_data transparent user data passed to Call-back
  *  \returns dynamically allocated gprs_ns_inst; NULL on error */
 struct gprs_ns2_inst *gprs_ns2_instantiate(void *ctx, osmo_prim_cb cb, void *cb_data)