Index: kernel/arch/sparc64/src/trap/interrupt.c
===================================================================
--- kernel/arch/sparc64/src/trap/interrupt.c	(revision b3f8fb771f871e7f2bb35ce9339717639e8f86d6)
+++ kernel/arch/sparc64/src/trap/interrupt.c	(revision 454f1da77de2349b52f4bfe6ec9378202f3cdbda)
@@ -45,4 +45,5 @@
 #include <arch.h>
 #include <mm/tlb.h>
+#include <arch/mm/cache.h>
 #include <config.h>
 #include <synch/spinlock.h>
@@ -84,11 +85,15 @@
 		/*
 		 * This is a cross-call.
-		 * data0 contains address of kernel function.
+		 * data0 contains address of the kernel function.
 		 * We call the function only after we verify
-		 * it is on of the supported ones.
+		 * it is one of the supported ones.
 		 */
 #ifdef CONFIG_SMP
 		if (data0 == (uintptr_t) tlb_shootdown_ipi_recv) {
 			tlb_shootdown_ipi_recv();
+#ifdef CONFIG_VIRT_IDX_DCACHE
+		} else if (data0 == (uintptr_t) dcache_shootdown_ipi_recv) {
+			dcache_shootdown_ipi_recv();
+#endif
 		}
 #endif
