Commit 0f0a0a60 authored by Benjamin Gray's avatar Benjamin Gray Committed by Michael Ellerman
Browse files

cxl: Use radix__flush_all_mm instead of generic flush_all_mm



The generic implementation of this function isn't really generic (Hash
is not implemented). Unfortunately, the runtime warnings cannot be
replaced with BUILD_BUG's, so it seems safer not to provide a stub in
the first place.

Signed-off-by: default avatarBenjamin Gray <bgray@linux.ibm.com>
Reviewed-by: default avatarAndrew Donnellan <ajd@linux.ibm.com>
Reviewed-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221109045112.187069-6-bgray@linux.ibm.com
parent baf1ed24
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -151,8 +151,8 @@ static inline void mm_context_remove_copro(struct mm_struct *mm)
	 * nMMU and/or PSL need to be cleaned up.
	 *
	 * Both the 'copros' and 'active_cpus' counts are looked at in
	 * flush_all_mm() to determine the scope (local/global) of the
	 * TLBIs, so we need to flush first before decrementing
	 * radix__flush_all_mm() to determine the scope (local/global)
	 * of the TLBIs, so we need to flush first before decrementing
	 * 'copros'. If this API is used by several callers for the
	 * same context, it can lead to over-flushing. It's hopefully
	 * not common enough to be a problem.
@@ -164,7 +164,7 @@ static inline void mm_context_remove_copro(struct mm_struct *mm)
	 * in-between.
	 */
	if (radix_enabled()) {
		flush_all_mm(mm);
		radix__flush_all_mm(mm);

		c = atomic_dec_if_positive(&mm->context.copros);
		/* Detect imbalance between add and remove */