static void msgb_bssgp_send_and_free(struct msgb *msg) { msgb_nsei(msg) = BSS_NSEI; bssgp_rcvmsg(msg); msgb_free(msg); }
/* call-back function for the NS protocol */ static int sgsn_ns_cb(enum gprs_ns_evt event, struct gprs_nsvc *nsvc, struct msgb *msg, uint16_t bvci) { int rc = 0; switch (event) { case GPRS_NS_EVT_UNIT_DATA: /* hand the message into the BSSGP implementation */ rc = bssgp_rcvmsg(msg); break; default: LOGP(DGPRS, LOGL_ERROR, "SGSN: Unknown event %u from NS\n", event); if (msg) msgb_free(msg); rc = -EIO; break; } return rc; }