xen_intr_bind_isrc() will now close event channels if the source is
marked in all cases. This means callers no longer need to handle
closing of channels if xen_intr_bind_isrc() fails.
Details
Details
- Reviewers
royger
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 46174 Build 43063: arc lint + arc unit
Event Timeline
sys/xen/xen_intr.c | ||
---|---|---|
470–471 ↗ | (On Diff #100488) | This is particularly ugly. A goto into a loop is not acceptable. |
sys/xen/xen_intr.c | ||
---|---|---|
470–471 ↗ | (On Diff #100488) | I was trying to figure out how best to express this. Problem was having a goto failcomm; after failrelease: seemed kind of ugly too. |
sys/xen/xen_intr.c | ||
---|---|---|
470–471 ↗ | (On Diff #100488) | Oh, the other option is doing a if(isrc) and hope the compiler optimizes the conditional out. |
Comment Actions
Eventually when this had sufficient looking at only the two spots before the allocation need a special case. Once the allocation is done, xen_intr_release_isrc() adequately handles channel shutdown. As such this resolves @mhorne's comment.