Files
kernel_arpi/include/linux
Marc Zyngier 7017ff0ee1 irqchip/gic-v4.1: Plumb get/set_irqchip_state SGI callbacks
To implement the get/set_irqchip_state callbacks (limited to the
PENDING state), we have to use a particular set of hacks:

- Reading the pending state is done by using a pair of new redistributor
  registers (GICR_VSGIR, GICR_VSGIPENDR), which allow the 16 interrupts
  state to be retrieved.
- Setting the pending state is done by generating it as we'd otherwise do
  for a guest (writing to GITS_SGIR).
- Clearing the pending state is done by emitting a VSGI command with the
  "clear" bit set.

This requires some interesting locking though:
- When talking to the redistributor, we must make sure that the VPE
  affinity doesn't change, hence taking the VPE lock.
- At the same time, we must ensure that nobody accesses the same
  redistributor's GICR_VSGIR registers for a different VPE, which
  would corrupt the reading of the pending bits. We thus take the
  per-RD spinlock. Much fun.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Zenghui Yu <yuzenghui@huawei.com>
Link: https://lore.kernel.org/r/20200304203330.4967-12-maz@kernel.org
2020-03-24 12:05:09 +00:00
..
2020-01-27 14:35:32 +01:00
2020-01-23 12:37:18 +00:00
2020-02-04 03:05:26 +00:00
2020-02-04 03:05:26 +00:00
2020-01-23 00:35:50 +01:00
2020-01-27 11:09:31 +01:00
2020-01-17 16:48:07 -08:00
2020-01-18 09:19:18 -05:00
2020-01-13 21:48:42 +01:00
2020-01-31 17:33:54 +00:00
2020-02-04 07:24:48 +00:00
2020-01-15 10:54:33 -05:00
2020-01-14 12:20:48 +01:00
2020-01-16 17:09:18 +01:00
2020-01-15 16:30:28 +00:00
2020-01-29 17:00:02 -06:00
2020-01-13 18:16:43 -08:00
2020-01-10 14:00:58 -08:00
2020-01-24 10:24:31 -08:00
2020-01-24 10:24:31 -08:00
2020-02-16 19:50:02 -08:00
2020-02-04 03:05:24 +00:00
2020-01-13 18:31:48 -08:00
2020-02-04 03:05:26 +00:00
2020-02-21 11:22:15 -08:00
2020-01-14 12:20:48 +01:00
2020-01-17 22:33:37 -05:00