Maintaining the intrcnt/intrnames variables are causing problems.
Notably INTRNG's interrupt release code is unable to properly release
counters. At this point it seems best to work towards moving the values
elsewhere.
The counters also really belong to the interrupting device, not the
controller. As such they should be in the device-side structure, not
the interrupt controller structure.
Additionally this is an architecture-independent area. This should
increase shared source code by taking over.
Note, the array of counters ensures no two processors modify the same
counter at the same time. IPI and PPI interrupt handlers *never* report
strays, thus there is little danger of collision on the stray counter.