Page MenuHomeFreeBSD

ufshci: run the controller fail path only once
AcceptedPublic

Authored by jaeyoon on Wed, Aug 19, 5:31 AM.
Tags
None
Referenced Files
F167855027: D58944.id.diff
Tue, Aug 25, 12:57 AM
F167815132: D58944.diff
Mon, Aug 24, 6:21 PM
Unknown Object (File)
Mon, Aug 24, 7:13 AM
Unknown Object (File)
Sun, Aug 23, 5:57 PM
Unknown Object (File)
Sun, Aug 23, 10:44 AM
Unknown Object (File)
Sun, Aug 23, 2:30 AM
Unknown Object (File)
Sat, Aug 22, 3:35 PM
Unknown Object (File)
Sat, Aug 22, 9:44 AM
Subscribers
None

Details

Reviewers
imp
Summary

Two threads could run ufshci_ctrlr_fail() at the same time.
Each one walked the queues and completed the same trackers
again, which caused a double free and a panic.

Turn is_failed into an atomic gate, so only the first caller
walks the queues. The reset task now returns early on a failed
controller instead of re-enabling it.

Sponsored by: Samsung Electronics

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 75697
Build 72580: arc lint + arc unit