Index: kernel/arch/sparc64/src/smp/ipi.c
===================================================================
--- kernel/arch/sparc64/src/smp/ipi.c	(revision b3f8fb771f871e7f2bb35ce9339717639e8f86d6)
+++ kernel/arch/sparc64/src/smp/ipi.c	(revision 454f1da77de2349b52f4bfe6ec9378202f3cdbda)
@@ -40,4 +40,5 @@
 #include <config.h>
 #include <mm/tlb.h>
+#include <arch/mm/cache.h>
 #include <arch/interrupt.h>
 #include <arch/trap/interrupt.h>
@@ -79,7 +80,7 @@
 		asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_1, 0);
 		asi_u64_write(ASI_UDB_INTR_W, ASI_UDB_INTR_W_DATA_2, 0);
-		asi_u64_write(ASI_UDB_INTR_W, (mid <<
-			INTR_VEC_DISPATCH_MID_SHIFT) | ASI_UDB_INTR_W_DISPATCH,
-			0);
+		asi_u64_write(ASI_UDB_INTR_W,
+		    (mid << INTR_VEC_DISPATCH_MID_SHIFT) |
+		    ASI_UDB_INTR_W_DISPATCH, 0);
 	
 		membar();
@@ -125,4 +126,9 @@
 		func = tlb_shootdown_ipi_recv;
 		break;
+#if (defined(CONFIG_SMP) && (defined(CONFIG_VIRT_IDX_DCACHE)))
+	case IPI_DCACHE_SHOOTDOWN:
+		func = dcache_shootdown_ipi_recv;
+		break;
+#endif
 	default:
 		panic("Unknown IPI (%d).\n", ipi);
