--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -229,7 +229,7 @@ config SOC_BUS
 source "drivers/base/regmap/Kconfig"
 
 config DMA_SHARED_BUFFER
-	bool
+	tristate
 	default n
 	select ANON_INODES
 	help
--- a/drivers/dma-buf/Makefile
+++ b/drivers/dma-buf/Makefile
@@ -1 +1,2 @@
-obj-y := dma-buf.o fence.o reservation.o seqno-fence.o
+obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o
+dma-shared-buffer-objs := dma-buf.o fence.o reservation.o seqno-fence.o
--- a/drivers/dma-buf/dma-buf.c
+++ b/drivers/dma-buf/dma-buf.c
@@ -33,6 +33,7 @@
 #include <linux/seq_file.h>
 #include <linux/poll.h>
 #include <linux/reservation.h>
+#include <linux/module.h>
 
 static inline int is_dma_buf_file(struct file *);
 
@@ -914,4 +915,5 @@ static void __exit dma_buf_deinit(void)
 {
 	dma_buf_uninit_debugfs();
 }
-__exitcall(dma_buf_deinit);
+module_exit(dma_buf_deinit);
+MODULE_LICENSE("GPL");
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2097,6 +2097,7 @@ int wake_up_state(struct task_struct *p,
 {
 	return try_to_wake_up(p, state, 0);
 }
+EXPORT_SYMBOL_GPL(wake_up_state);
 
 /*
  * This function clears the sched_dl_entity static params.
