diff --git a/drivers/usbdev/cdcacm.c b/drivers/usbdev/cdcacm.c index 4e4c9da12b3..31a8d868a85 100644 --- a/drivers/usbdev/cdcacm.c +++ b/drivers/usbdev/cdcacm.c @@ -868,6 +868,16 @@ errout_with_flags: static void cdcacm_resetconfig(FAR struct cdcacm_dev_s *priv) { + /* When the USB is pulled out, if there is an unprocessed buffer, + * it needs to be push them to upper half serial drivers RX buffer. + */ + + if (priv->nrdq != 0) + { + cdcacm_release_rxpending(priv); + priv->nrdq = 0; + } + /* Are we configured? */ if (priv->config != CDCACM_CONFIGIDNONE)