diff --git a/openbsc/src/gprs/gprs_gmm.c b/openbsc/src/gprs/gprs_gmm.c
index aa03891..e6751db 100644
--- a/openbsc/src/gprs/gprs_gmm.c
+++ b/openbsc/src/gprs/gprs_gmm.c
@@ -227,9 +227,7 @@
 	mm->num_T_exp = 0;
 
 	/* FIXME: we should do this only once ? */
-	mm->timer.data = mm;
-	mm->timer.cb = &mmctx_timer_cb;
-
+	osmo_timer_setup(&mm->timer, mmctx_timer_cb, mm);
 	osmo_timer_schedule(&mm->timer, seconds, 0);
 }
 
@@ -2167,9 +2165,7 @@
 	pdp->num_T_exp = 0;
 
 	/* FIXME: we should do this only once ? */
-	pdp->timer.data = pdp;
-	pdp->timer.cb = &pdpctx_timer_cb;
-
+	osmo_timer_setup(&pdp->timer, pdpctx_timer_cb, pdp);
 	osmo_timer_schedule(&pdp->timer, seconds, 0);
 }
 
diff --git a/openbsc/src/gprs/gprs_sgsn.c b/openbsc/src/gprs/gprs_sgsn.c
index 5d9af78..071dd97 100644
--- a/openbsc/src/gprs/gprs_sgsn.c
+++ b/openbsc/src/gprs/gprs_sgsn.c
@@ -889,9 +889,7 @@
 
 void sgsn_inst_init()
 {
-	sgsn->llme_timer.cb = sgsn_llme_check_cb;
-	sgsn->llme_timer.data = NULL;
-
+	osmo_timer_setup(&sgsn->llme_timer, sgsn_llme_check_cb, NULL);
 	osmo_timer_schedule(&sgsn->llme_timer, GPRS_LLME_CHECK_TICK, 0);
 }
 
diff --git a/openbsc/src/gprs/gtphub.c b/openbsc/src/gprs/gtphub.c
index a1aaed2..211018b 100644
--- a/openbsc/src/gprs/gtphub.c
+++ b/openbsc/src/gprs/gtphub.c
@@ -2438,9 +2438,7 @@
 
 static void gtphub_gc_start(struct gtphub *hub)
 {
-	hub->gc_timer.cb = gtphub_gc_cb;
-	hub->gc_timer.data = hub;
-
+	osmo_timer_setup(&hub->gc_timer, gtphub_gc_cb, hub);
 	osmo_timer_schedule(&hub->gc_timer, GTPH_GC_TICK_SECONDS, 0);
 }
 
diff --git a/openbsc/src/gprs/sgsn_ares.c b/openbsc/src/gprs/sgsn_ares.c
index dd1bdb5..d94d184 100644
--- a/openbsc/src/gprs/sgsn_ares.c
+++ b/openbsc/src/gprs/sgsn_ares.c
@@ -71,12 +71,10 @@
 	osmo_timer_del(&sgsn->ares_timer);
 	timeout = ares_timeout(sgsn->ares_channel, NULL, &tv);
 	if (timeout) {
-		sgsn->ares_timer.cb = ares_timeout_cb;
-		sgsn->ares_timer.data = sgsn;
-
 		LOGP(DGPRS, LOGL_DEBUG, "C-ares scheduling timeout %llu.%llu\n",
 			(unsigned long long) tv.tv_sec,
 			(unsigned long long) tv.tv_usec);
+		osmo_timer_setup(&sgsn->ares_timer, ares_timeout_cb, sgsn);
 		osmo_timer_schedule(&sgsn->ares_timer, tv.tv_sec, tv.tv_usec);
 	}
 }
diff --git a/openbsc/src/gprs/sgsn_cdr.c b/openbsc/src/gprs/sgsn_cdr.c
index bf0d6f7..0910896 100644
--- a/openbsc/src/gprs/sgsn_cdr.c
+++ b/openbsc/src/gprs/sgsn_cdr.c
@@ -227,8 +227,8 @@
 		clock_gettime(CLOCK_MONOTONIC, &signal_data->pdp->cdr_start);
 		signal_data->pdp->cdr_charging_id = signal_data->pdp->lib->cid;
 		cdr_log_pdp(inst, "pdp-act", signal_data->pdp);
-		signal_data->pdp->cdr_timer.cb = cdr_pdp_timeout;
-		signal_data->pdp->cdr_timer.data = signal_data->pdp;
+		osmo_timer_setup(&signal_data->pdp->cdr_timer, cdr_pdp_timeout,
+				 signal_data->pdp);
 		osmo_timer_schedule(&signal_data->pdp->cdr_timer, inst->cfg.cdr.interval, 0);
 		break;
 	case S_SGSN_PDP_DEACT:
diff --git a/openbsc/src/gprs/sgsn_libgtp.c b/openbsc/src/gprs/sgsn_libgtp.c
index c26abc9..001e611 100644
--- a/openbsc/src/gprs/sgsn_libgtp.c
+++ b/openbsc/src/gprs/sgsn_libgtp.c
@@ -845,8 +845,7 @@
 	}
 
 	/* Start GTP re-transmission timer */
-	sgi->gtp_timer.cb = sgsn_gtp_tmr_cb;
-	sgi->gtp_timer.data = sgi;
+	osmo_timer_setup(&sgi->gtp_timer, sgsn_gtp_tmr_cb, sgi);
 	sgsn_gtp_tmr_start(sgi);
 
 	/* Register callbackcs with libgtp */
diff --git a/openbsc/src/ipaccess/abisip-find.c b/openbsc/src/ipaccess/abisip-find.c
index 5b36272..21d9f22 100644
--- a/openbsc/src/ipaccess/abisip-find.c
+++ b/openbsc/src/ipaccess/abisip-find.c
@@ -200,9 +200,7 @@
 		exit(1);
 	}
 
-	timer.cb = timer_cb;
-	timer.data = &bfd;
-
+	osmo_timer_setup(&timer, timer_cb, &bfd);
 	osmo_timer_schedule(&timer, 5, 0);
 
 	printf("Trying to find ip.access BTS by broadcast UDP...\n");
diff --git a/openbsc/src/ipaccess/ipaccess-proxy.c b/openbsc/src/ipaccess/ipaccess-proxy.c
index 9e8ec88..d367442 100644
--- a/openbsc/src/ipaccess/ipaccess-proxy.c
+++ b/openbsc/src/ipaccess/ipaccess-proxy.c
@@ -1059,8 +1059,7 @@
 	if (!ipp)
 		return -ENOMEM;
 	INIT_LLIST_HEAD(&ipp->bts_list);
-	ipp->reconn_timer.cb = reconn_tmr_cb;
-	ipp->reconn_timer.data = ipp;
+	osmo_timer_setup(&ipp->reconn_timer, reconn_tmr_cb, ipp);
 
 	/* Listen for OML connections */
 	ret = make_sock(&ipp->oml_listen_fd, IPPROTO_TCP, INADDR_ANY,
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index be687eb..20dd2b5 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -73,8 +73,7 @@
 {
 	/* We start the error timer to make the channel available again */
 	if (lchan->state == LCHAN_S_REL_ERR) {
-		lchan->error_timer.data = lchan;
-		lchan->error_timer.cb = error_timeout_cb;
+		osmo_timer_setup(&lchan->error_timer, error_timeout_cb, lchan);
 		osmo_timer_schedule(&lchan->error_timer,
 				   lchan->ts->trx->bts->network->T3111 + 2, 0);
 	} else {
@@ -890,8 +889,7 @@
 	}
 
 	/* Start another timer or assume the BTS sends a ACK/NACK? */
-	lchan->act_timer.cb = lchan_deact_tmr_cb;
-	lchan->act_timer.data = lchan;
+	osmo_timer_setup(&lchan->act_timer, lchan_deact_tmr_cb, lchan);
 	osmo_timer_schedule(&lchan->act_timer, 4, 0);
 
 	rc =  abis_rsl_sendmsg(msg);
@@ -1200,8 +1198,7 @@
 	 && release_mode == RSL_REL_LOCAL_END) {
 		DEBUGP(DRLL, "Scheduling release, becasuse Nokia InSite BTS does not send a RELease CONFirm.\n");
 		lchan->sapis[link_id & 0x7] = LCHAN_SAPI_REL;
-		lchan->rel_work.cb = lchan_rel_work_cb;
-		lchan->rel_work.data = lchan;
+		osmo_timer_setup(&lchan->rel_work, lchan_rel_work_cb, lchan);
 		osmo_timer_schedule(&lchan->rel_work, 0, 0);
 	}
 
@@ -1857,8 +1854,7 @@
 	lchan->tch_mode = GSM48_CMODE_SIGN;
 
 	/* Start another timer or assume the BTS sends a ACK/NACK? */
-	lchan->act_timer.cb = lchan_act_tmr_cb;
-	lchan->act_timer.data = lchan;
+	osmo_timer_setup(&lchan->act_timer, lchan_act_tmr_cb, lchan);
 	osmo_timer_schedule(&lchan->act_timer, 4, 0);
 
 	DEBUGP(DRSL, "%s Activating ARFCN(%u) SS(%u) lctype %s "
@@ -1898,8 +1894,7 @@
 	ia->l2_plen = GSM48_LEN2PLEN((sizeof(*ia)-1) + ia->mob_alloc_len);
 
 	/* Start timer T3101 to wait for GSM48_MT_RR_PAG_RESP */
-	lchan->T3101.cb = t3101_expired;
-	lchan->T3101.data = lchan;
+	osmo_timer_setup(&lchan->T3101, t3101_expired, lchan);
 	osmo_timer_schedule(&lchan->T3101, bts->network->T3101, 0);
 
 	/* send IMMEDIATE ASSIGN CMD on RSL to BTS (to send on CCCH to MS) */
@@ -2031,8 +2026,7 @@
 
 	/* Stop T3109 and wait for T3111 before re-using the channel */
 	osmo_timer_del(&lchan->T3109);
-	lchan->T3111.cb = t3111_expired;
-	lchan->T3111.data = lchan;
+	osmo_timer_setup(&lchan->T3111, t3111_expired, lchan);
 	bts = lchan->ts->trx->bts;
 	osmo_timer_schedule(&lchan->T3111, bts->network->T3111, 0);
 }
@@ -2631,8 +2625,7 @@
 	/* During switchover, we have received a release ack, which means that
 	 * the act_timer has been stopped. Start the timer again so we mark
 	 * this channel broken if the activation ack comes too late. */
-	lchan->act_timer.cb = lchan_act_tmr_cb;
-	lchan->act_timer.data = lchan;
+	osmo_timer_setup(&lchan->act_timer, lchan_act_tmr_cb, lchan);
 	osmo_timer_schedule(&lchan->act_timer, 4, 0);
 
 	rc = rsl_chan_activate_lchan(lchan, act_type, ho_ref);
@@ -2836,8 +2829,7 @@
 	if (bts->network->T3109 == 0)
 		return -1;
 
-	lchan->T3109.cb = t3109_expired;
-	lchan->T3109.data = lchan;
+	osmo_timer_setup(&lchan->T3109, t3109_expired, lchan);
 	osmo_timer_schedule(&lchan->T3109, bts->network->T3109, 0);
 	return 0;
 }
diff --git a/openbsc/src/libbsc/bsc_api.c b/openbsc/src/libbsc/bsc_api.c
index 253326f..4dba3e9 100644
--- a/openbsc/src/libbsc/bsc_api.c
+++ b/openbsc/src/libbsc/bsc_api.c
@@ -406,8 +406,7 @@
 	}
 
 	/* we will now start the timer to complete the assignment */
-	conn->T10.cb = assignment_t10_timeout;
-	conn->T10.data = conn;
+	osmo_timer_setup(&conn->T10, assignment_t10_timeout, conn);
 	osmo_timer_schedule(&conn->T10, GSM0808_T10_VALUE);
 	return 0;
 
diff --git a/openbsc/src/libbsc/bsc_msc.c b/openbsc/src/libbsc/bsc_msc.c
index e373679..82a572d 100644
--- a/openbsc/src/libbsc/bsc_msc.c
+++ b/openbsc/src/libbsc/bsc_msc.c
@@ -211,8 +211,7 @@
 			"MSC(%s) Connection in progress\n", con->name);
 		fd->when = BSC_FD_WRITE;
 		fd->cb = msc_connection_connect;
-		con->timeout_timer.cb = msc_con_timeout;
-		con->timeout_timer.data = con;
+		osmo_timer_setup(&con->timeout_timer, msc_con_timeout, con);
 		osmo_timer_schedule(&con->timeout_timer, 20, 0);
 	} else if (ret < 0) {
 		perror("Connection failed");
@@ -277,8 +276,7 @@
 {
 	LOGP(DMSC, LOGL_NOTICE,
 		"Attempting to reconnect to the MSC(%s)\n", con->name);
-	con->reconnect_timer.cb = reconnect_msc;
-	con->reconnect_timer.data = con;
+	osmo_timer_setup(&con->reconnect_timer, reconnect_msc, con);
 	osmo_timer_schedule(&con->reconnect_timer, 5, 0);
 }
 
diff --git a/openbsc/src/libbsc/bsc_rf_ctrl.c b/openbsc/src/libbsc/bsc_rf_ctrl.c
index d13c685..b7b6fc8 100644
--- a/openbsc/src/libbsc/bsc_rf_ctrl.c
+++ b/openbsc/src/libbsc/bsc_rf_ctrl.c
@@ -266,8 +266,7 @@
 		return 0;
 	}
 
-	rf->grace_timeout.cb = grace_timeout;
-	rf->grace_timeout.data = rf;
+	osmo_timer_setup(&rf->grace_timeout, grace_timeout, rf);
 	osmo_timer_schedule(&rf->grace_timeout, rf->gsm_network->bsc_data->mid_call_timeout, 0);
 	LOGP(DLINP, LOGL_NOTICE, "Going to switch RF off in %d seconds.\n",
 	     rf->gsm_network->bsc_data->mid_call_timeout);
@@ -514,15 +513,12 @@
 	rf->last_rf_lock_ctrl_command = talloc_strdup(rf, "");
 
 	/* check the rf state */
-	rf->rf_check.data = rf;
-	rf->rf_check.cb = rf_check_cb;
+	osmo_timer_setup(&rf->rf_check, rf_check_cb, rf);
 
 	/* delay cmd handling */
-	rf->delay_cmd.data = rf;
-	rf->delay_cmd.cb = rf_delay_cmd_cb;
+	osmo_timer_setup(&rf->delay_cmd, rf_delay_cmd_cb, rf);
 
-	rf->auto_off_timer.data = rf;
-	rf->auto_off_timer.cb = rf_auto_off_cb;
+	osmo_timer_setup(&rf->auto_off_timer, rf_auto_off_cb, rf);
 
 	/* listen to RF signals */
 	osmo_signal_register_handler(SS_MSC, msc_signal_handler, net);
diff --git a/openbsc/src/libbsc/bsc_rll.c b/openbsc/src/libbsc/bsc_rll.c
index f2b65ca..bb488da 100644
--- a/openbsc/src/libbsc/bsc_rll.c
+++ b/openbsc/src/libbsc/bsc_rll.c
@@ -89,9 +89,7 @@
 
 	llist_add(&rllr->list, &bsc_rll_reqs);
 
-	rllr->timer.cb = &timer_cb;
-	rllr->timer.data = rllr;
-
+	osmo_timer_setup(&rllr->timer, timer_cb, rllr);
 	osmo_timer_schedule(&rllr->timer, 7, 0);
 
 	/* send the RSL RLL ESTablish REQuest */
diff --git a/openbsc/src/libbsc/bts_nokia_site.c b/openbsc/src/libbsc/bts_nokia_site.c
index 32a885c..3ca76c0 100644
--- a/openbsc/src/libbsc/bts_nokia_site.c
+++ b/openbsc/src/libbsc/bts_nokia_site.c
@@ -1560,8 +1560,8 @@
 			 */
 			bts->nokia.wait_reset = 1;
 
-			bts->nokia.reset_timer.cb = &reset_timer_cb;
-			bts->nokia.reset_timer.data = bts;
+			osmo_timer_setup(&bts->nokia.reset_timer,
+					 reset_timer_cb, bts);
 			osmo_timer_schedule(&bts->nokia.reset_timer, bts->nokia.bts_reset_timer_cnf, 0);
 
 			struct gsm_e1_subslot *e1_link = &bts->oml_e1_link;
diff --git a/openbsc/src/libbsc/handover_logic.c b/openbsc/src/libbsc/handover_logic.c
index ffcca66..4dd913b 100644
--- a/openbsc/src/libbsc/handover_logic.c
+++ b/openbsc/src/libbsc/handover_logic.c
@@ -216,8 +216,7 @@
 
 	/* start T3103.  We can continue either with T3103 expiration,
 	 * 04.08 HANDOVER COMPLETE or 04.08 HANDOVER FAIL */
-	ho->T3103.cb = ho_T3103_cb;
-	ho->T3103.data = ho;
+	osmo_timer_setup(&ho->T3103, ho_T3103_cb, ho);
 	osmo_timer_schedule(&ho->T3103, 10, 0);
 
 	/* create a RTP connection */
diff --git a/openbsc/src/libbsc/paging.c b/openbsc/src/libbsc/paging.c
index bd23d89..78e39c5 100644
--- a/openbsc/src/libbsc/paging.c
+++ b/openbsc/src/libbsc/paging.c
@@ -188,8 +188,8 @@
 	 * to zero and we do not get any messages.
 	 */
 	if (paging_bts->available_slots == 0) {
-		paging_bts->credit_timer.cb = paging_give_credit;
-		paging_bts->credit_timer.data = paging_bts;
+		osmo_timer_setup(&paging_bts->credit_timer, paging_give_credit,
+				 paging_bts);
 		osmo_timer_schedule(&paging_bts->credit_timer, 5, 0);
 		return;
 	}
@@ -230,8 +230,8 @@
 
 	bts->paging.bts = bts;
 	INIT_LLIST_HEAD(&bts->paging.pending_requests);
-	bts->paging.work_timer.cb = paging_worker;
-	bts->paging.work_timer.data = &bts->paging;
+	osmo_timer_setup(&bts->paging.work_timer, paging_worker,
+			 &bts->paging);
 
 	/* Large number, until we get a proper message */
 	bts->paging.available_slots = 20;
@@ -299,8 +299,7 @@
 	req->chan_type = type;
 	req->cbfn = cbfn;
 	req->cbfn_param = data;
-	req->T3113.cb = paging_T3113_expired;
-	req->T3113.data = req;
+	osmo_timer_setup(&req->T3113, paging_T3113_expired, req);
 	osmo_timer_schedule(&req->T3113, bts->network->T3113, 0);
 	llist_add_tail(&req->entry, &bts_entry->pending_requests);
 	paging_schedule_if_needed(bts_entry);
diff --git a/openbsc/src/libcommon/gsup_client.c b/openbsc/src/libcommon/gsup_client.c
index 2e920a6..de00d8d 100644
--- a/openbsc/src/libcommon/gsup_client.c
+++ b/openbsc/src/libcommon/gsup_client.c
@@ -254,8 +254,7 @@
 
 static void start_test_procedure(struct gsup_client *gsupc)
 {
-	gsupc->ping_timer.data = gsupc;
-	gsupc->ping_timer.cb = &ping_timer_cb;
+	osmo_timer_setup(&gsupc->ping_timer, ping_timer_cb, gsupc);
 
 	gsupc->got_ipa_pong = 0;
 	osmo_timer_schedule(&gsupc->ping_timer, GSUP_CLIENT_PING_INTERVAL, 0);
@@ -290,8 +289,7 @@
 	if (!gsupc->link)
 		goto failed;
 
-	gsupc->connect_timer.data = gsupc;
-	gsupc->connect_timer.cb = &connect_timer_cb;
+	osmo_timer_setup(&gsupc->connect_timer, connect_timer_cb, gsupc);
 
 	rc = gsup_client_connect(gsupc);
 
diff --git a/openbsc/src/libcommon/gsup_test_client.c b/openbsc/src/libcommon/gsup_test_client.c
index 8be4e7a..8fc38d6 100644
--- a/openbsc/src/libcommon/gsup_test_client.c
+++ b/openbsc/src/libcommon/gsup_test_client.c
@@ -77,8 +77,7 @@
 	io = talloc_zero(ctx, struct imsi_op);
 	osmo_strlcpy(io->imsi, imsi, sizeof(io->imsi));
 	io->type = type;
-	io->timer.cb = imsi_op_timer_cb;
-	io->timer.data = io;
+	osmo_timer_setup(&io->timer, imsi_op_timer_cb, io);
 	llist_add(&io->list, &g_imsi_ops);
 	imsi_op_stats[type].num_alloc++;
 
diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c
index 18398fc..4fcadd9 100644
--- a/openbsc/src/libmgcp/mgcp_protocol.c
+++ b/openbsc/src/libmgcp/mgcp_protocol.c
@@ -1172,8 +1172,7 @@
 void mgcp_trunk_set_keepalive(struct mgcp_trunk_config *tcfg, int interval)
 {
 	tcfg->keepalive_interval = interval;
-	tcfg->keepalive_timer.data = tcfg;
-	tcfg->keepalive_timer.cb = mgcp_keepalive_timer_cb;
+	osmo_timer_setup(&tcfg->keepalive_timer, mgcp_keepalive_timer_cb, tcfg);
 
 	if (interval <= 0)
 		osmo_timer_del(&tcfg->keepalive_timer);
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index 376106f..89108e4 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -618,8 +618,8 @@
 
 static void schedule_reject(struct gsm_subscriber_connection *conn)
 {
-	conn->loc_operation->updating_timer.cb = loc_upd_rej_cb;
-	conn->loc_operation->updating_timer.data = conn;
+	osmo_timer_setup(&conn->loc_operation->updating_timer, loc_upd_rej_cb,
+			 conn);
 	osmo_timer_schedule(&conn->loc_operation->updating_timer, 5, 0);
 }
 
@@ -2224,8 +2224,7 @@
 				 int sec, int micro)
 {
 	DEBUGP(DCC, "starting timer T%x with %d seconds\n", current, sec);
-	trans->cc.timer.cb = gsm48_cc_timeout;
-	trans->cc.timer.data = trans;
+	osmo_timer_setup(&trans->cc.timer, gsm48_cc_timeout, trans);
 	osmo_timer_schedule(&trans->cc.timer, sec, micro);
 	trans->cc.Tcurrent = current;
 }
@@ -3955,8 +3954,7 @@
 	if (!conn->anch_operation)
 		return -1;
 
-	conn->anch_operation->timeout.data = conn;
-	conn->anch_operation->timeout.cb = anchor_timeout;
+	osmo_timer_setup(&conn->anch_operation->timeout, anchor_timeout, conn);
 	osmo_timer_schedule(&conn->anch_operation->timeout, 5, 0);
 	return 0;
 }
diff --git a/openbsc/src/libmsc/smpp_openbsc.c b/openbsc/src/libmsc/smpp_openbsc.c
index 8f1a96c..8111d92 100644
--- a/openbsc/src/libmsc/smpp_openbsc.c
+++ b/openbsc/src/libmsc/smpp_openbsc.c
@@ -549,8 +549,7 @@
 	 * lchan keeps busy until we get a reply to this SMPP command. Too high
 	 * value may exhaust resources.
 	 */
-	cmd->response_timer.cb	= smpp_deliver_sm_cb;
-	cmd->response_timer.data = cmd;
+	osmo_timer_setup(&cmd->response_timer, smpp_deliver_sm_cb, cmd);
 	osmo_timer_schedule(&cmd->response_timer, 5, 0);
 	llist_add_tail(&cmd->list, &esme->smpp_cmd_list);
 	*deferred = true;
diff --git a/openbsc/src/libmsc/sms_queue.c b/openbsc/src/libmsc/sms_queue.c
index ebc53c2..dc7f6e8 100644
--- a/openbsc/src/libmsc/sms_queue.c
+++ b/openbsc/src/libmsc/sms_queue.c
@@ -354,10 +354,8 @@
 	sms->max_fail = 1;
 	sms->network = network;
 	sms->max_pending = max_pending;
-	sms->push_queue.data = sms;
-	sms->push_queue.cb = sms_submit_pending;
-	sms->resend_pending.data = sms;
-	sms->resend_pending.cb = sms_resend_pending;
+	osmo_timer_setup(&sms->push_queue, sms_submit_pending, sms);
+	osmo_timer_setup(&sms->resend_pending, sms_resend_pending, sms);
 
 	sms_submit_pending(sms);
 
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_msc.c b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
index 42e8055..8d02624 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_msc.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_msc.c
@@ -526,10 +526,8 @@
 		return -1;
 	}
 
-	data->ping_timer.cb = msc_ping_timeout_cb;
-	data->ping_timer.data = data;
-	data->pong_timer.cb = msc_pong_timeout_cb;
-	data->pong_timer.data = data;
+	osmo_timer_setup(&data->ping_timer, msc_ping_timeout_cb, data);
+	osmo_timer_setup(&data->pong_timer, msc_pong_timeout_cb, data);
 
 	data->msc_con->write_queue.bfd.data = data;
 	data->msc_con->connection_loss = msc_connection_was_lost;
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
index 970d70e..e242390 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_sccp.c
@@ -232,10 +232,8 @@
 	bsc_con->send_ping = send_ping;
 
 	/* prepare the timers */
-	bsc_con->sccp_it_timeout.cb = sccp_it_timeout;
-	bsc_con->sccp_it_timeout.data = bsc_con;
-	bsc_con->sccp_cc_timeout.cb = sccp_cc_timeout;
-	bsc_con->sccp_cc_timeout.data = bsc_con;
+	osmo_timer_setup(&bsc_con->sccp_it_timeout, sccp_it_timeout, bsc_con);
+	osmo_timer_setup(&bsc_con->sccp_cc_timeout, sccp_cc_timeout, bsc_con);
 
 	INIT_LLIST_HEAD(&bsc_con->sccp_queue);
 
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat.c b/openbsc/src/osmo-bsc_nat/bsc_nat.c
index 80e89fd..daa066d 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat.c
@@ -180,10 +180,8 @@
 
 static void start_ping_pong(struct bsc_connection *bsc)
 {
-	bsc->pong_timeout.data = bsc;
-	bsc->pong_timeout.cb = bsc_pong_timeout;
-	bsc->ping_timeout.data = bsc;
-	bsc->ping_timeout.cb = bsc_ping_timeout;
+	osmo_timer_setup(&bsc->pong_timeout, bsc_pong_timeout, bsc);
+	osmo_timer_setup(&bsc->ping_timeout, bsc_ping_timeout, bsc);
 
 	bsc_ping_timeout(bsc);
 }
@@ -1446,8 +1444,7 @@
 	/*
 	 * start the hangup timer
 	 */
-	bsc->id_timeout.data = bsc;
-	bsc->id_timeout.cb = ipaccess_close_bsc;
+	osmo_timer_setup(&bsc->id_timeout, ipaccess_close_bsc, bsc);
 	osmo_timer_schedule(&bsc->id_timeout, nat->auth_timeout, 0);
 	return 0;
 }
@@ -1711,8 +1708,7 @@
 
 	/* recycle timer */
 	sccp_set_log_area(DSCCP);
-	sccp_close.cb = sccp_close_unconfirmed;
-	sccp_close.data = NULL;
+	osmo_timer_setup(&sccp_close, sccp_close_unconfirmed, NULL);
 	osmo_timer_schedule(&sccp_close, SCCP_CLOSE_TIME, 0);
 
 	while (1) {
diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
index 057a583..3453758 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_nat_ctrl.c
@@ -279,8 +279,8 @@
 			pending->cmd = cmd;
 
 			/* Setup the timeout */
-			pending->timeout.data = pending;
-			pending->timeout.cb = pending_timeout_cb;
+			osmo_timer_setup(&pending->timeout, pending_timeout_cb,
+					 pending);
 			/* TODO: Make timeout configurable */
 			osmo_timer_schedule(&pending->timeout, 10, 0);
 			llist_add_tail(&pending->list_entry, &bsc->cmd_pending);
diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
index 2f68381..0ba6327 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
@@ -216,8 +216,7 @@
 {
 	struct msgb *msg;
 
-	conn->auth_timeout.data = conn;
-	conn->auth_timeout.cb = ussd_auth_cb;
+	osmo_timer_setup(&conn->auth_timeout, ussd_auth_cb, conn);
 	osmo_timer_schedule(&conn->auth_timeout, conn->nat->auth_timeout, 0);
 
 	msg = msgb_alloc_headroom(4096, 128, "auth message");
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index d8029cd..17b23b2 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -369,13 +369,12 @@
 	printf("DB: Database prepared.\n");
 
 	/* setup the timer */
-	db_sync_timer.cb = db_sync_timer_cb;
-	db_sync_timer.data = NULL;
+	osmo_timer_setup(&db_sync_timer, db_sync_timer_cb, NULL);
 	if (use_db_counter)
 		osmo_timer_schedule(&db_sync_timer, DB_SYNC_INTERVAL);
 
-	bsc_gsmnet->subscr_expire_timer.cb = subscr_expire_cb;
-	bsc_gsmnet->subscr_expire_timer.data = NULL;
+	osmo_timer_setup(&bsc_gsmnet->subscr_expire_timer, subscr_expire_cb,
+			 NULL);
 	osmo_timer_schedule(&bsc_gsmnet->subscr_expire_timer, EXPIRE_INTERVAL);
 
 	signal(SIGINT, &signal_handler);
diff --git a/openbsc/src/utils/bs11_config.c b/openbsc/src/utils/bs11_config.c
index 8b05637..a0f3cb7 100644
--- a/openbsc/src/utils/bs11_config.c
+++ b/openbsc/src/utils/bs11_config.c
@@ -940,7 +940,7 @@
 	abis_nm_bs11_factory_logon(g_bts, 1);
 	//abis_nm_bs11_get_serno(g_bts);
 
-	status_timer.cb = status_timer_cb;
+	osmo_timer_setup(&status_timer, status_timer_cb, NULL);
 
 	while (1) {
 		if (osmo_select_main(0) < 0)
