]> Zhao Yanbai Git Server - minix.git/commitdiff
usb/hcd: asserts should not have side effects 26/2826/1
authorLionel Sambuc <lionel@minix3.org>
Fri, 12 Sep 2014 11:20:40 +0000 (13:20 +0200)
committerLionel Sambuc <lionel@minix3.org>
Fri, 12 Sep 2014 11:20:43 +0000 (13:20 +0200)
They can be deactivated with -DNDEBUG, which is why they can't contain
code which should always be run.

It seems the local implementation of USB_ASSERT doesn't honor the
CPP flags NDEBUG, this will be corrected in a later patch.

Change-Id: Iac56b09fd563f1b8c4c7be15a468a05b9cc86a18

minix/drivers/usb/usbd/hcd/hcd_common.c

index d6b6f798cd912da72633d21dbe2f11f57236e258..03aa998eb20a9512508b09010cc0bc5d7b9076ea 100644 (file)
@@ -180,6 +180,7 @@ void
 hcd_os_nanosleep(int nanosec)
 {
        struct timespec nanotm;
+       int r;
 
        DEBUG_DUMP;
 
@@ -194,8 +195,8 @@ hcd_os_nanosleep(int nanosec)
        /* TODO: Since it is not likely to be ever interrupted, we do not try
         * to sleep for a remaining time in case of signal handling */
        /* Signal handling will most likely end up with termination anyway */
-       USB_ASSERT(EXIT_SUCCESS == nanosleep(&nanotm, NULL),
-               "Calling nanosleep() failed");
+       r = nanosleep(&nanotm, NULL);
+       USB_ASSERT(EXIT_SUCCESS == r, "Calling nanosleep() failed");
 }