diff --git a/drivers/rptun/rptun.c b/drivers/rptun/rptun.c index d38bdc2d1e5..a28d598d2a6 100644 --- a/drivers/rptun/rptun.c +++ b/drivers/rptun/rptun.c @@ -1194,6 +1194,8 @@ int rptun_initialize(FAR struct rptun_dev_s *dev) goto err_driver; } + nxsem_init(&priv->semtx, 0, 0); + #ifdef CONFIG_RPTUN_WORKQUEUE if (RPTUN_IS_AUTOSTART(dev)) { @@ -1221,13 +1223,12 @@ int rptun_initialize(FAR struct rptun_dev_s *dev) if (ret < 0) { unregister_driver(name); + nxsem_destroy(&priv->semtx); nxsem_destroy(&priv->semrx); goto err_driver; } #endif - nxsem_init(&priv->semtx, 0, 0); - /* Add priv to list */ nxrmutex_lock(&g_rptun_lockcb);