diff --git a/include/linux/kernelcapi.h b/include/linux/kernelcapi.h
index f8a0ff86dacc448881525fa38dcadfb3783e5cfc..aea34e74c49699ecb3f7ee963a7757a08415bc8e 100644
--- a/include/linux/kernelcapi.h
+++ b/include/linux/kernelcapi.h
@@ -48,6 +48,7 @@ typedef struct kcapi_carddef {
 #include <linux/list.h>
 #include <linux/skbuff.h>
 #include <linux/workqueue.h>
+#include <asm/semaphore.h>
 
 #define	KCI_CONTRUP	0	/* arg: struct capi_profile */
 #define	KCI_CONTRDOWN	1	/* arg: NULL */
diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 9389cf7d4062578fa261827e15c33a8151c2829f..d4c4c5120bc0ed16a5dfc3e6b4f1945d96b3a652 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -11,7 +11,6 @@
 #include <linux/list.h>
 #endif
 #include <linux/compiler.h>
-#include <linux/rcupdate.h>
 
 /* Responses from hook functions. */
 #define NF_DROP 0
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 6bdff9b148d0e3a33cde2a912f52ccb67e3f1bad..a05a5f7c0b738ff8527dd97e1572cdcee32b69f7 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -25,6 +25,7 @@
 #include <linux/net.h>
 #include <linux/textsearch.h>
 #include <net/checksum.h>
+#include <linux/rcupdate.h>
 #include <linux/dmaengine.h>
 
 #define HAVE_ALLOC_SKB		/* For the drivers to know */