Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d900e7f authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull two arm64 fixes from Catalin Marinas:
 - arm64 migrate_irqs() fix following commit ffde1de6 (irqchip: Gic:
   Support forced affinity setting)
 - fix arm64 pud_huge() to return 0 when only 2 levels page tables are
   used (__PAGETABLE_PMD_FOLDED defined and pmd_huge already covers
   block entries at the first level), otherwise KVM gets confused

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
  arm64: fix pud_huge() for 2-level pagetables
  arm64: use cpu_online_mask when using forced irq_set_affinity
parents 41abc902 4797ec2d
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -97,11 +97,15 @@ static bool migrate_one_irq(struct irq_desc *desc)
	if (irqd_is_per_cpu(d) || !cpumask_test_cpu(smp_processor_id(), affinity))
		return false;

	if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
		affinity = cpu_online_mask;
	if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids)
		ret = true;
	}

	/*
	 * when using forced irq_set_affinity we must ensure that the cpu
	 * being offlined is not present in the affinity mask, it may be
	 * selected as the target CPU otherwise
	 */
	affinity = cpu_online_mask;
	c = irq_data_get_irq_chip(d);
	if (!c->irq_set_affinity)
		pr_debug("IRQ%u: unable to set affinity\n", d->irq);
+4 −0
Original line number Diff line number Diff line
@@ -51,7 +51,11 @@ int pmd_huge(pmd_t pmd)

int pud_huge(pud_t pud)
{
#ifndef __PAGETABLE_PMD_FOLDED
	return !(pud_val(pud) & PUD_TABLE_BIT);
#else
	return 0;
#endif
}

int pmd_huge_support(void)