diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index b5b8ba512b282028afd61dbf32892ba4018e862d..1b2640ce74f0588f9b49e6b46a52b45303a18e96 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -6,6 +6,7 @@ obj-y			:= core.o sys.o bus.o dd.o \
 			   attribute_container.o transport_class.o
 obj-y			+= power/
 obj-$(CONFIG_HAS_DMA)	+= dma-mapping.o
+obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
 obj-$(CONFIG_ISA)	+= isa.o
 obj-$(CONFIG_FW_LOADER)	+= firmware_class.o
 obj-$(CONFIG_NUMA)	+= node.o
diff --git a/kernel/dma-coherent.c b/drivers/base/dma-coherent.c
similarity index 100%
rename from kernel/dma-coherent.c
rename to drivers/base/dma-coherent.c
diff --git a/kernel/Makefile b/kernel/Makefile
index 961379caf666a626d2462364013c7f4ec7a6814e..3d9c7e27e3f9ea3351a49a901d2243ea1f65b61e 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -90,7 +90,6 @@ obj-$(CONFIG_TASKSTATS) += taskstats.o tsacct.o
 obj-$(CONFIG_MARKERS) += marker.o
 obj-$(CONFIG_TRACEPOINTS) += tracepoint.o
 obj-$(CONFIG_LATENCYTOP) += latencytop.o
-obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
 obj-$(CONFIG_FUNCTION_TRACER) += trace/
 obj-$(CONFIG_TRACING) += trace/
 obj-$(CONFIG_X86_DS) += trace/