From 02d65c01db18d4460e421242e4be82b25a723ad0 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 7 Jun 2016 13:10:04 +0000 Subject: Configuration cleanup on stop in the entire HAL. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9601 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/src/hal_serial_usb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'os/hal/src/hal_serial_usb.c') diff --git a/os/hal/src/hal_serial_usb.c b/os/hal/src/hal_serial_usb.c index adf5856c4..7d4ed05a8 100644 --- a/os/hal/src/hal_serial_usb.c +++ b/os/hal/src/hal_serial_usb.c @@ -264,6 +264,7 @@ void sduStop(SerialUSBDriver *sdup) { osalDbgCheck(sdup != NULL); osalSysLock(); + osalDbgAssert((sdup->state == SDU_STOP) || (sdup->state == SDU_READY), "invalid state"); @@ -273,11 +274,13 @@ void sduStop(SerialUSBDriver *sdup) { if (sdup->config->int_in > 0U) { usbp->in_params[sdup->config->int_in - 1U] = NULL; } - sdup->state = SDU_STOP; + sdup->config = NULL; + sdup->state = SDU_STOP; /* Enforces a disconnection.*/ sduDisconnectI(sdup); osalOsRescheduleS(); + osalSysUnlock(); } -- cgit v1.2.3