diff --git a/include/linux/attribute_container.h b/include/linux/attribute_container.h
index 93bfb0beb62a9f1903d37e266fcb22b8284cf5ec..8ff2749339484fdddd066bab4ab971916a510b93 100644
--- a/include/linux/attribute_container.h
+++ b/include/linux/attribute_container.h
@@ -12,7 +12,6 @@
 #include <linux/device.h>
 #include <linux/list.h>
 #include <linux/klist.h>
-#include <linux/spinlock.h>
 
 struct attribute_container {
 	struct list_head	node;
diff --git a/include/linux/capability.h b/include/linux/capability.h
index bbf8df7de28f0991fcc7a240eb8f70723b38eb35..2dfa58555934c28dd8bd3c4e27b56ec79ada5b28 100644
--- a/include/linux/capability.h
+++ b/include/linux/capability.h
@@ -44,7 +44,6 @@ typedef struct __user_cap_data_struct {
   
 #ifdef __KERNEL__
 
-#include <linux/spinlock.h>
 #include <asm/current.h>
 
 /* #define STRICT_CAP_T_TYPECHECKS */
diff --git a/include/linux/console.h b/include/linux/console.h
index c44d3dfde7a5199cf14e7e0ce643512af1d33b1e..56a7bcda49cb202cdbcc0093ee8fd8437edbd5d2 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -15,7 +15,6 @@
 #define _LINUX_CONSOLE_H_ 1
 
 #include <linux/types.h>
-#include <linux/spinlock.h>
 
 struct vc_data;
 struct console_font_op;
diff --git a/include/linux/ds17287rtc.h b/include/linux/ds17287rtc.h
index c281ba42e28fc021a5bc570a559103e085cb575d..d85d3f497b96166716d0d4c736f15282c1ebab81 100644
--- a/include/linux/ds17287rtc.h
+++ b/include/linux/ds17287rtc.h
@@ -11,7 +11,6 @@
 #define __LINUX_DS17287RTC_H
 
 #include <linux/rtc.h>			/* get the user-level API */
-#include <linux/spinlock.h>		/* spinlock_t */
 #include <linux/mc146818rtc.h>
 
 /* Register A */
diff --git a/include/linux/ipc.h b/include/linux/ipc.h
index 1980867a64a4cb3e84ab57f5ee93cd66fefb8419..7c8c6d8d090ca56823426757088dd516c9fb806b 100644
--- a/include/linux/ipc.h
+++ b/include/linux/ipc.h
@@ -52,6 +52,7 @@ struct ipc_perm
 #ifdef __KERNEL__
 
 #include <linux/kref.h>
+#include <linux/spinlock.h>
 
 #define IPCMNI 32768  /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
 
diff --git a/include/linux/leds.h b/include/linux/leds.h
index 88afceffb7cb45df03ecbcd1045af2117f429fb1..494bed7c2fc12f5133504daa7b4a2cc0e3b4b326 100644
--- a/include/linux/leds.h
+++ b/include/linux/leds.h
@@ -13,7 +13,6 @@
 #define __LINUX_LEDS_H_INCLUDED
 
 #include <linux/list.h>
-#include <linux/spinlock.h>
 
 struct device;
 struct class_device;
diff --git a/include/linux/module.h b/include/linux/module.h
index e6e0f86ef5fc8b2302d2711b5c8f99ccfd437e54..b6a646cea1cba4f1a3cbd9a3139077a3c162e21d 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -6,7 +6,6 @@
  * Rewritten by Richard Henderson <rth@tamu.edu> Dec 1996
  * Rewritten again by Rusty Russell, 2002
  */
-#include <linux/spinlock.h>
 #include <linux/list.h>
 #include <linux/stat.h>
 #include <linux/compiler.h>
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index b72be2f79e6a3d8d6b5c14aac33127e7544ab35b..926adaae0f9610885d5d64e341410a9b96900312 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -1,7 +1,7 @@
 #ifndef __LINUX_PERCPU_H
 #define __LINUX_PERCPU_H
 
-#include <linux/spinlock.h> /* For preempt_disable() */
+#include <linux/preempt.h>
 #include <linux/slab.h> /* For kmalloc() */
 #include <linux/smp.h>
 #include <linux/string.h> /* For memset() */
diff --git a/include/linux/scx200_gpio.h b/include/linux/scx200_gpio.h
index 1a82d30c4b17eea493a8f1ff3fd6c293d48dc434..d2b058130eb123586c95d843521f4cbbfdab6629 100644
--- a/include/linux/scx200_gpio.h
+++ b/include/linux/scx200_gpio.h
@@ -1,5 +1,3 @@
-#include <linux/spinlock.h>
-
 u32 scx200_gpio_configure(unsigned index, u32 set, u32 clear);
 
 extern unsigned scx200_gpio_base;
diff --git a/include/linux/signal.h b/include/linux/signal.h
index 9a5eac508e5e2497b5936e7b6a07166958af52b4..ea91abe740da0b76810b19a522b9d814f0e8aa6e 100644
--- a/include/linux/signal.h
+++ b/include/linux/signal.h
@@ -6,7 +6,6 @@
 
 #ifdef __KERNEL__
 #include <linux/list.h>
-#include <linux/spinlock.h>
 
 /*
  * Real Time signals may be queued.
diff --git a/include/linux/smp_lock.h b/include/linux/smp_lock.h
index cf715a40d833909e9ce04d6bea75a4f7656d2ee2..58962c51dee108d3f9e5d12a23ce40e6e9387608 100644
--- a/include/linux/smp_lock.h
+++ b/include/linux/smp_lock.h
@@ -3,7 +3,6 @@
 
 #ifdef CONFIG_LOCK_KERNEL
 #include <linux/sched.h>
-#include <linux/spinlock.h>
 
 #define kernel_locked()		(current->lock_depth >= 0)
 
diff --git a/include/linux/timer.h b/include/linux/timer.h
index c661710d3627daeeb40dca898ef48e4123d023cb..2b59e6d4219cca2d66abc58db15a639b2427334a 100644
--- a/include/linux/timer.h
+++ b/include/linux/timer.h
@@ -3,7 +3,6 @@
 
 #include <linux/list.h>
 #include <linux/ktime.h>
-#include <linux/spinlock.h>
 #include <linux/stddef.h>
 
 struct tvec_t_base_s;