[riot-notifications] [RIOT-OS/RIOT] cpu/stm32/periph_eth: fix error handling in send() (#15783)

Marian Buschsieweke notifications at github.com
Fri Jan 15 22:57:30 CET 2021


### Contribution description

An earlier version of periph_eth used to always pack the first chunk of the
outgoing frame to the first DMA descriptor by telling the DMA to jump back
to the first descriptor within the last descriptor. This worked fine unless
the frame was send in one chunk (as e.g. lwip does), which resulted due to a
hardware bug in a frame being send out twice. For that reason, the behavior was
changed to cycle throw the linked DMA descriptor list in round-robin fashion.
However, the error checking was not updated accordingly. Hence, the error
check might run over (parts of) unrelated frames and fail to detect errors
correctly.

This commit fixes the issue and also provides proper return codes for errors.

### Testing procedure

Not easily possible. One would need to artificially inject TX errors to test this...

### Issues/PRs references

None
You can view, comment on, or merge this pull request online at:

  https://github.com/RIOT-OS/RIOT/pull/15783

-- Commit Summary --

  * cpu/stm32/periph_eth: fix error handling in send()

-- File Changes --

    M cpu/stm32/periph/eth.c (38)

-- Patch Links --

https://github.com/RIOT-OS/RIOT/pull/15783.patch
https://github.com/RIOT-OS/RIOT/pull/15783.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/RIOT-OS/RIOT/pull/15783
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20210115/60aef01d/attachment.htm>


More information about the notifications mailing list