Commit db32cf8e authored by Will Deacon's avatar Will Deacon
Browse files

Merge branch 'for-next/fixes' into for-next/core

Merge in arm64 fixes queued for 6.7 so that kpti_install_ng_mappings()
can be updated to use arm64_kernel_unmapped_at_el0() instead of checking
the ARM64_UNMAP_KERNEL_AT_EL0 CPU capability directly.

* for-next/fixes:
  arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
  perf/arm-cmn: Fail DTC counter allocation correctly
  arm64: Avoid enabling KPTI unnecessarily
parents 3e8626b4 3c069607
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -834,6 +834,12 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
		pte = set_pte_bit(pte, __pgprot(PTE_DIRTY));

	pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
	/*
	 * If we end up clearing hw dirtiness for a sw-dirty PTE, set hardware
	 * dirtiness again.
	 */
	if (pte_sw_dirty(pte))
		pte = pte_mkdirty(pte);
	return pte;
}

+4 −0
Original line number Diff line number Diff line
@@ -1843,6 +1843,10 @@ static int __init __kpti_install_ng_mappings(void *__unused)

static void __init kpti_install_ng_mappings(void)
{
	/* Check whether KPTI is going to be used */
	if (!arm64_kernel_unmapped_at_el0())
		return;

	/*
	 * We don't need to rewrite the page-tables if either we've done
	 * it already or we have KASLR enabled and therefore have not
+1 −1
Original line number Diff line number Diff line
@@ -1816,7 +1816,7 @@ static int arm_cmn_event_add(struct perf_event *event, int flags)
			idx = 0;
			while (cmn->dtc[j].counters[idx])
				if (++idx == CMN_DT_NUM_COUNTERS)
					goto free_dtms;
					return -ENOSPC;
		}
		hw->dtc_idx[j] = idx;
	}