diff --git a/drivers/pipes/pipe.c b/drivers/pipes/pipe.c index 264e5708ed1..60764c51059 100644 --- a/drivers/pipes/pipe.c +++ b/drivers/pipes/pipe.c @@ -275,7 +275,10 @@ errout_with_wrfd: errout_with_driver: unregister_driver(devname); errout_with_dev: - pipecommon_freedev(dev); + if (dev) + { + pipecommon_freedev(dev); + } errout_with_pipe: pipe_free(pipeno); errout: diff --git a/drivers/usbdev/cdcacm.c b/drivers/usbdev/cdcacm.c index 797af20e4c8..445eba932f9 100644 --- a/drivers/usbdev/cdcacm.c +++ b/drivers/usbdev/cdcacm.c @@ -1205,14 +1205,15 @@ static void cdcacm_unbind(FAR struct usbdevclass_driver_s *driver, priv->nwrq--; /* Number of write requests queued */ } } + DEBUGASSERT(priv->nwrq == 0); irqrestore(flags); + + /* Clear out all data in the circular buffer */ + + priv->serdev.xmit.head = 0; + priv->serdev.xmit.tail = 0; } - - /* Clear out all data in the circular buffer */ - - priv->serdev.xmit.head = 0; - priv->serdev.xmit.tail = 0; } /**************************************************************************** diff --git a/mm/mm_gran/mm_granalloc.c b/mm/mm_gran/mm_granalloc.c index 2910f82861e..f66e5168bce 100644 --- a/mm/mm_gran/mm_granalloc.c +++ b/mm/mm_gran/mm_granalloc.c @@ -245,9 +245,10 @@ static inline FAR void *gran_common_alloc(FAR struct gran_s *priv, size_t size) bitidx += shift; } } + + gran_leave_critical(priv); } - gran_leave_critical(priv); return NULL; }