David Gibson 9f53c0db19 spapr: Fix indexing of XICS irqs
spapr global irq numbers are different from the source numbers on the ICS
when using XICS - they're offset by XICS_IRQ_BASE (0x1000).  But
spapr_irq_set_irq_xics() was passing through the global irq number to
the ICS code unmodified.

We only got away with this because of a counteracting bug - we were
incorrectly adjusting the qemu_irq we returned for a requested global irq
number.

That approach mostly worked but is very confusing, incorrectly relies on
the way the qemu_irq array is allocated, and undermines the intention of
having the global array of qemu_irqs for spapr have a consistent meaning
regardless of irq backend.

So, fix both set_irq and qemu_irq indexing.  We rename some parameters at
the same time to make it clear that they are referring to spapr global
irq numbers.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
2019-10-04 19:08:22 +10:00
..
2019-08-20 17:26:19 +02:00
2019-08-16 13:31:52 +02:00
2019-08-21 09:13:37 +02:00
2019-08-16 13:31:52 +02:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:53 +02:00
2019-09-20 14:09:24 -05:00
2019-08-16 19:14:04 -04:00
2019-08-16 13:31:53 +02:00
2019-09-20 14:08:10 -05:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:53 +02:00
2019-10-04 19:08:22 +10:00
2019-08-16 13:31:53 +02:00
2019-08-16 13:31:52 +02:00
2019-08-29 07:31:12 +02:00
2019-09-19 11:50:37 +02:00
2019-08-16 13:31:53 +02:00