Change the xRunningPrivileged check from "!=true" to "==false" (#109)

The expected behaviour of portIS_PRIVILEGED is:
- return 0 if the processor is not running privileged.
- return 1 if the processor is running privileged.

Some TI ports do not return 1 when the processor is running privileged
causing the following check to fail: if( xRunningPrivileged != pdTRUE )

This commit change the check to: if( xRunningPrivileged == pdFALSE ). It
ensures that the check is successful even on the ports which return incorrect
value from portIS_PRIVILEGED when the processor is running privileged.

See https://forums.freertos.org/t/kernel-bug-nested-mpu-wrapper-calls-generate-an-exception/10391

Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com>
This commit is contained in:
Gaurav-Aggarwal-AWS 2020-07-30 19:32:31 -07:00 committed by GitHub
parent 676d99e302
commit 4383c8fae3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -68,7 +68,7 @@ BaseType_t xPortRaisePrivilege( void ) /* FREERTOS_SYSTEM_CALL */
xRunningPrivileged = portIS_PRIVILEGED(); xRunningPrivileged = portIS_PRIVILEGED();
/* If the processor is not already privileged, raise privilege. */ /* If the processor is not already privileged, raise privilege. */
if( xRunningPrivileged != pdTRUE ) if( xRunningPrivileged == pdFALSE )
{ {
portRAISE_PRIVILEGE(); portRAISE_PRIVILEGE();
} }
@ -79,7 +79,7 @@ BaseType_t xPortRaisePrivilege( void ) /* FREERTOS_SYSTEM_CALL */
void vPortResetPrivilege( BaseType_t xRunningPrivileged ) void vPortResetPrivilege( BaseType_t xRunningPrivileged )
{ {
if( xRunningPrivileged != pdTRUE ) if( xRunningPrivileged == pdFALSE )
{ {
portRESET_PRIVILEGE(); portRESET_PRIVILEGE();
} }