Skip to content

Commit 9bd4459

Browse files
committed
Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull irqchip fix from Thomas Gleixner: "A fix for a GIC-V3 irqchip regression which prevents some systems from booting" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gicv3-its: ITS table size should not be smaller than PSZ
2 parents 086e8dd + 3ad2a5f commit 9bd4459

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

drivers/irqchip/irq-gic-v3-its.c

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,14 @@ static int its_alloc_tables(struct its_node *its)
828828
u64 typer = readq_relaxed(its->base + GITS_TYPER);
829829
u32 ids = GITS_TYPER_DEVBITS(typer);
830830

831-
order = get_order((1UL << ids) * entry_size);
831+
/*
832+
* 'order' was initialized earlier to the default page
833+
* granule of the the ITS. We can't have an allocation
834+
* smaller than that. If the requested allocation
835+
* is smaller, round up to the default page granule.
836+
*/
837+
order = max(get_order((1UL << ids) * entry_size),
838+
order);
832839
if (order >= MAX_ORDER) {
833840
order = MAX_ORDER - 1;
834841
pr_warn("%s: Device Table too large, reduce its page order to %u\n",

0 commit comments

Comments
 (0)