irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers
authorMarc Zyngier <maz@kernel.org>
Fri, 13 Mar 2020 11:01:15 +0000 (11:01 +0000)
committerMarc Zyngier <maz@kernel.org>
Mon, 16 Mar 2020 15:48:54 +0000 (15:48 +0000)
commitd5df9dc96eb7423d3f742b13d5e1e479ff795eaa
tree61c303ae9fcb185194620b60f1354725c0649950
parentbd59b343a9c902c522f006e6d71080f4893bbf42
irqchip/gic-v3-its: Probe ITS page size for all GITS_BASERn registers

The GICv3 ITS driver assumes that once it has latched on a page size for
a given BASER register, it can use the same page size as the maximum
page size for all subsequent BASER registers.

Although it worked so far, nothing in the architecture guarantees this,
and Nianyao Tang hit this problem on some undisclosed implementation.

Let's bite the bullet and probe the the supported page size on all BASER
registers before starting to populate the tables. This simplifies the
setup a bit, at the expense of a few additional MMIO accesses.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reported-by: Nianyao Tang <tangnianyao@huawei.com>
Tested-by: Nianyao Tang <tangnianyao@huawei.com>
Link: https://lore.kernel.org/r/1584089195-63897-1-git-send-email-zhangshaokun@hisilicon.com
drivers/irqchip/irq-gic-v3-its.c