HomeFreeBSD

Fix bugs in interrupts allocation on ARM64

Description

Fix bugs in interrupts allocation on ARM64

Separate interrupt descriptors lookup from allocation. It was possible
to perform config on non-existing interrupt simply by allocating spurious
descriptor.
Must lock the interrupt descriptors table lookup to avoid mismatches.
This ought to prevent trouble while setting up new interrupt
and dispatching existing one.
Use spin mutex rather than sleep mutex. This is mainly due to lock in
arm_dispatch_intr.
This should be eventually changed to a lock-less solution without
walking through a linked list on each interrupt.

Reviewed by: andrew, wma
Obtained from: Semihalf
Sponsored by: Cavium
Differential Revision: https://reviews.freebsd.org/D5121

Details

Provenance
zbbAuthored on
Reviewer
andrew
Differential Revision
D5121: Fix bugs in interrupts allocation on ARM64
Parents
rS295513: xen-netfront: remove useless NULL check in netif_free
Branches
Unknown
Tags
Unknown