xen_intr_release_isrc() should be an internal function cleaning
*everything* up. As such having a handler should not be a problem and
what could actually be concerning is a non-zero reference count.
Details
Details
- Reviewers
royger
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 43551 Build 40439: arc lint + arc unit
Event Timeline
Comment Actions
This seems rather more appropriate. xen_intr_release_isrc() now releases everything and internal functions no longer need to call xen_intr_unbind() to get the handler removed. One could add a KASSERT() for isrc->xi_refcount == 0, this would require xen_intr_release_isrc() to zero the count in case of failure though.
Comment Actions
Odd thing is, as I look at this more I wonder whether this is needed at all. Real problem was how xen_intr_bind_virq() and xen_intr_alloc_and_bind_ipi() were handling processor assignment. Merge everything into xen_intr_bind_isrc() and this may no longer be needed.
Comment Actions
Things got rearranged in a hopefully better way, so marking this as dead. Pretty sure underlying issues got fixed.