Open
Description
HAL_ETH_Transmit_IT()
and HAL_ETH_Transmit()
both test gState but do not set it to HAL_ETH_STATE_BUSY before operating on the TX descriptors inside ETH_Prepare_Tx_Descriptors()
. This creates a race-condition among themselves and among each other when used concurrently from multiple threads (e.g. preemption under FreeRTOS).
Also Test-and-Set of gState needs to be done atomically (see #70).
Expected was at minimum a Test-and-Set like this:
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Analyzed