Skip to content
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

drivers/dose: fix poweroff #21074

Merged
merged 1 commit into from
Dec 13, 2024
Merged

Conversation

derMihai
Copy link
Contributor

Contribution description

If there's no state transition within the driver, powering off (STANDBY, SLEEP) a DOSE interface might result in a deadlock. Specifically, wait_for_state() will block forever.

Note, there is (and always was) a race condition here, i.e. even if we observed the state IDLE, this might transition to RECEIVE at any time. However, this case is covered by improvements in the chunked buffer implementation (see depencencies below).

Testing procedure

Tested this on a SAME54 board.

Issues/PRs references

@derMihai derMihai requested a review from jue89 as a code owner December 11, 2024 14:43
@github-actions github-actions bot added the Area: drivers Area: Device drivers label Dec 11, 2024
@benpicco benpicco added the CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR label Dec 12, 2024
@riot-ci
Copy link

riot-ci commented Dec 12, 2024

Murdock results

✔️ PASSED

6e0219e drivers/dose: fix poweroff

Success Failures Total Runtime
10249 0 10249 14m:56s

Artifacts

@benpicco benpicco added this pull request to the merge queue Dec 13, 2024
Merged via the queue into RIOT-OS:master with commit 24dc014 Dec 13, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: drivers Area: Device drivers CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants