-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Add check for if the scheduler is running to MPU ports #954
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…_MPU/port.c:xPortIsAuthorizedToAccessBuffer()
…_MPU/port.c:xPortIsAuthorizedToAccessBuffer()
…F_MPU/port.c:xPortIsAuthorizedToAccessBuffer()
…4_MPU/port.c:xPortIsAuthorizedToAccessBuffer()
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #954 +/- ##
=======================================
Coverage 93.42% 93.42%
=======================================
Files 6 6
Lines 3196 3196
Branches 886 886
=======================================
Hits 2986 2986
Misses 103 103
Partials 107 107
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
|
* Add IPv6 Demo (FreeRTOS#937) * Add demo changes * Update kernel and library paths * Update main.c * Run uncrustify * Fix spell checker * CI check file headers update * Add IPv6/v4 UDP echo server with zero copy/non-zero copy versions * Add VS proj file changes to include the UDP echo sample code * readme update --------- Co-authored-by: Tony Josi <tonyjosi@amazon.com> * Update Backward Compatibility Flag (FreeRTOS#954) * Update Backward Compatibility Flag * Update FreeRTOS_GetUDPPayloadBuffer_ByIPType * Update FreeRTOS_IPStart to FreeRTOS_IPInit_Multi * Update Application APIs * Remove ipconfigCOMPATIBLE_WITH_SINGLE * Update Static Lib files (FreeRTOS#956) * Update Static Lib files * making vApplicationIPNetworkEventHook backward compatible in demos * Update CI check file headers --------- Co-authored-by: Tony Josi <tonyjosi@amazon.com> * Add WinPCap NetworkInterface Changes (FreeRTOS#958) * Update winpcap network interface * Run uncrustify * Update function to include NetworkInterface_t parameters * Adding compatibility for xApplicationDNSQueryHook with latest dev branch for old demos (FreeRTOS#957) * adding compatibility for xApplicationDNSQueryHook with latest dev branch * adding tcp echo server source * removing unused sub demos * fix build issues (FreeRTOS#969) * Update demo to latest +TCP dev/IPv6_integration (FreeRTOS#978) * remove macro namings * rename sin_addr to sin_address.ulIP_IPv4 for ipv6 demo * replace in6addr_any with FreeRTOS_in6addr_any * replace mainCREATE_UDP_ECHO_SERVER_TASK with mainCREATE_UDP_ECHO_TASKS_SINGLE * handle removal of sin_addr macro to sin_address.ulIP_IPv4 * updating +TCP repo to latest dev/IPv6_integration * minor update to more clear code * more sin_addr to sin_address.ulIP_IPv4 replacements * fix makefiles for qemu and posix demos * review feedback changes * Update FreeRTOS-Plus-TCP for RC2 * Change from PR (FreeRTOS#994) * Update FreeRTOS-Plus-TCP for RC2 * Update copyright * Ignore WinPCap for files header check failure. * Update checker * Update manifest * Point manifest to latest commit * Fix Spell-checker * Update doxygen * Update xApplicationDHCPHook for backward compatibility (FreeRTOS#999) * Update xApplicationDHCPHook for backward compatability * Update IPv6 * Update VisualStudio Static Project files * Update pxEndPoint error (FreeRTOS#1002) * Update IPv6 demo ReadMe (FreeRTOS#1004) * Update ReadMe * Update setup requirement * Update UDP demo info * Update comment * TCP demo changes post build separation (FreeRTOS#1011) * adding sin_family to dest adddr for FreeRTOS_sendto * updating FreeRTOS_bind to input sin_family post build separation changes * updating FreeRTOS_connect to input sin_family post build separation changes * minor fix * updating copyright year * updating file headers * updating +TCP submodule * updating file headers * updating file headers * updating manifest file to have latest +TCP submodule hash * Fix issue with posix demo while running with ipconfigIPv4_BACKWARD_COMPATIBLE enabled for +TCP stack (FreeRTOS#1027) * Update the submodule pointer to IPv6 main * Update manifest with latest TCP commit * Update file checker exception * Ignore Visual studio project file from file header checker --------- Co-authored-by: Tony Josi <tonyjosi@amazon.com>
Description
Add a check for if the scheduler is running to xPortIsAuthorizedToAccessBuffer().
This fixes an issue where before the scheduler is started APIs can fail as the TCB pointed to by pxCurrentTCB may not have access to requested APIs.
Test Steps
Call xTimerStart(), which calls MPU_xTimerGenericCommandFromTask:
Which calls MPU_xTimerGenericCommandFromTaskEntry
This calls MPU_xTimerGenericCommandFromTaskImpl:
Which calls xPortIsAuthorizedToAccessBuffer
This loads pxCurrentTCB to check if you are allowed to start the timer
However, there's no actual calling task that made this call. It just checks whatever TCB happens to be there.
A check is needed for when the scheduler is not running yet, as at this point the current TCB is irrelevant to the operation being performed.
Checklist:
Related Issue
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.