HomeFreeBSD

xen/intr: rework xen_intr_alloc_isrc() locking

Description

xen/intr: rework xen_intr_alloc_isrc() locking

Locking for allocation was being done in xen_intr_bind_isrc(), but the
unlock was inside xen_intr_alloc_isrc(). While the lock acquisition at
the end of xen_intr_alloc_isrc() was to modify xen_intr_port_to_isrc[],
NOT allocation. Fix this garbled (though working) locking scheme.

Now locking for allocation is strictly in xen_intr_alloc_isrc(), while
locking to modify xen_intr_port_to_isrc[] is in xen_intr_bind_isrc().

Reviewed by: royger
Differential Revision: https://reviews.freebsd.org/D30726

Details

Provenance
ehem_freebsd_m5p.comAuthored on May 11 2021, 7:05 PM
roygerCommitted on Apr 14 2023, 1:58 PM
Reviewer
royger
Differential Revision
D30726: xen/intr: rework locking, prepare xen_intr_alloc_isrc() for split
Parents
rG09bd542d17c9: xen/intr: rework xen_intr_alloc_isrc() call structure
Branches
Unknown
Tags
Unknown