There were many witness warnings involving bus_dma.
Not entirely sure about the correctness of the fix, but haven't seen
any regressions yet.
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 7914 Build 8053: arc lint + arc unit
Event Timeline
sys/dev/aacraid/aacraid.c | ||
---|---|---|
1370 | I would move the lock/unlock to be outside of the for loop. That way you don't needlessly thrash the lock. If you can't do that because of the bus_dmamap_create() call, then create a second loop for calling aacraid_release_command() and do the locking around that loop. |
sys/dev/aacraid/aacraid.c | ||
---|---|---|
1370 | Yes, the lock can not be held for the whole loop (in its current form) because of bus_dmamap_create. But if you insist I will split out the second loop. |
sys/dev/aacraid/aacraid.c | ||
---|---|---|
1229 | @scottl I have a question about this line that my patch does not change. On the other hand, I don't see that field really being used besides allocation and deallocation. |
Dear reviewers, would you prefer me to commit the change as is or to abandon it altogether?
Sorry for not offering any other option.