[SGSN] remove the mmctx->sgsn pointer

We never want to support multiple sgsn's within one process, so
there is no point in passing them around all the time.
diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index fcaee8b..e99cb6c 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -99,7 +99,6 @@
 int sgsn_create_pdp_ctx(struct ggsn_ctx *ggsn, struct sgsn_mm_ctx *mmctx,
 			uint16_t nsapi, struct tlv_parsed *tp)
 {
-	struct sgsn_instance *sgsn = mmctx->sgsn;
 	struct pdp_t *pdp;
 	uint64_t imsi_ui64;
 	int rc;
@@ -184,7 +183,7 @@
 		LOGP(DGPRS, LOGL_NOTICE, "Create PDP ctx req timed out\n");
 		if (pdp->version == 1) {
 			pdp->version = 0;
-			gtp_create_context_req(mmctx->sgsn->gsn, pdp, cbp);
+			gtp_create_context_req(sgsn->gsn, pdp, cbp);
 			return 0;
 		} else {
 			pdp_freepdp(pdp);
diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index ac895a2..74efe84 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -59,19 +59,19 @@
 void *tall_bsc_ctx;
 
 struct gprs_ns_inst *sgsn_nsi;
-
 const char *openbsc_copyright =
 	"Copyright (C) 2010 Harald Welte and On-Waves\n"
 	"License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>\n"
 	"This is free software: you are free to change and redistribute it.\n"
 	"There is NO WARRANTY, to the extent permitted by law.\n";
 
-struct sgsn_instance sgsn_inst = {
+static struct sgsn_instance sgsn_inst = {
 	.config_file = "osmo_sgsn.cfg",
 	.cfg = {
 		.gtp_statedir = "./",
 	},
 };
+struct sgsn_instance *sgsn = &sgsn_inst;
 
 /* call-back function for the NS protocol */
 static int sgsn_ns_cb(enum gprs_ns_evt event, struct gprs_nsvc *nsvc,