diff --git a/drivers/power/battery_charger.c b/drivers/power/battery_charger.c index ea62a10ccd1..6c022b74956 100644 --- a/drivers/power/battery_charger.c +++ b/drivers/power/battery_charger.c @@ -99,12 +99,17 @@ static const struct file_operations g_batteryops = ****************************************************************************/ static int battery_charger_notify(FAR struct battery_charger_priv_s *priv, - uint32_t mask) + uint32_t mask) { FAR struct pollfd *fd = priv->fds; int semcnt; int ret; + if (!fd) + { + return OK; + } + ret = nxsem_wait_uninterruptible(&priv->lock); if (ret < 0) { diff --git a/drivers/power/battery_gauge.c b/drivers/power/battery_gauge.c index 69377ae1b3d..eed9b3b8963 100644 --- a/drivers/power/battery_gauge.c +++ b/drivers/power/battery_gauge.c @@ -101,12 +101,17 @@ static const struct file_operations g_batteryops = ****************************************************************************/ static int battery_gauge_notify(FAR struct battery_gauge_priv_s *priv, - uint32_t mask) + uint32_t mask) { FAR struct pollfd *fd = priv->fds; int semcnt; int ret; + if (!fd) + { + return OK; + } + ret = nxsem_wait_uninterruptible(&priv->lock); if (ret < 0) { diff --git a/drivers/power/battery_monitor.c b/drivers/power/battery_monitor.c index 31eec41ac63..2a6ddec37bc 100644 --- a/drivers/power/battery_monitor.c +++ b/drivers/power/battery_monitor.c @@ -100,12 +100,17 @@ static const struct file_operations g_batteryops = ****************************************************************************/ static int battery_monitor_notify(FAR struct battery_monitor_priv_s *priv, - uint32_t mask) + uint32_t mask) { FAR struct pollfd *fd = priv->fds; int semcnt; int ret; + if (!fd) + { + return OK; + } + ret = nxsem_wait_uninterruptible(&priv->lock); if (ret < 0) {