diff --git a/drivers/modem/gsm_ppp.c b/drivers/modem/gsm_ppp.c index 6f48f4bea49..f1b5c1cdde1 100644 --- a/drivers/modem/gsm_ppp.c +++ b/drivers/modem/gsm_ppp.c @@ -1154,11 +1154,11 @@ void gsm_ppp_stop(const struct device *dev) gsm_ppp_lock(gsm); - net_if_l2(iface)->enable(iface, false); - /* wait for the interface to be properly down */ - (void)k_sem_take(&gsm->sem_if_down, K_FOREVER); - + if (net_if_is_up(iface)) { + net_if_l2(iface)->enable(iface, false); + (void)k_sem_take(&gsm->sem_if_down, K_FOREVER); + } if (IS_ENABLED(CONFIG_GSM_MUX)) { if (gsm->ppp_dev) {