Browse Source

sanitize <linux/prefetch.h> usage

Commit e66eed651fd1 ("list: remove prefetching from regular list
iterators") removed the include of prefetch.h from list.h, which
uncovered several cases that had apparently relied on that rather
obscure header file dependency.

So this fixes things up a bit, using

   grep -L linux/prefetch.h $(git grep -l '[^a-z_]prefetchw*(' -- '*.[ch]')
   grep -L 'prefetchw*(' $(git grep -l 'linux/prefetch.h' -- '*.[ch]')

to guide us in finding files that either need <linux/prefetch.h>
inclusion, or have it despite not needing it.

There are more of them around (mostly network drivers), but this gets
many core ones.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds 14 years ago
parent
commit
268bb0ce3e

+ 1 - 0
arch/ia64/hp/common/sba_iommu.c

@@ -37,6 +37,7 @@
 #include <linux/crash_dump.h>
 #include <linux/crash_dump.h>
 #include <linux/iommu-helper.h>
 #include <linux/iommu-helper.h>
 #include <linux/dma-mapping.h>
 #include <linux/dma-mapping.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/delay.h>		/* ia64_get_itc() */
 #include <asm/delay.h>		/* ia64_get_itc() */
 #include <asm/io.h>
 #include <asm/io.h>

+ 1 - 0
arch/ia64/mm/fault.c

@@ -10,6 +10,7 @@
 #include <linux/interrupt.h>
 #include <linux/interrupt.h>
 #include <linux/kprobes.h>
 #include <linux/kprobes.h>
 #include <linux/kdebug.h>
 #include <linux/kdebug.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 #include <asm/processor.h>
 #include <asm/processor.h>

+ 1 - 0
arch/powerpc/lib/sstep.c

@@ -11,6 +11,7 @@
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/kprobes.h>
 #include <linux/kprobes.h>
 #include <linux/ptrace.h>
 #include <linux/ptrace.h>
+#include <linux/prefetch.h>
 #include <asm/sstep.h>
 #include <asm/sstep.h>
 #include <asm/processor.h>
 #include <asm/processor.h>
 #include <asm/uaccess.h>
 #include <asm/uaccess.h>

+ 1 - 0
arch/sh/kernel/cpu/sh4/sq.c

@@ -20,6 +20,7 @@
 #include <linux/vmalloc.h>
 #include <linux/vmalloc.h>
 #include <linux/mm.h>
 #include <linux/mm.h>
 #include <linux/io.h>
 #include <linux/io.h>
+#include <linux/prefetch.h>
 #include <asm/page.h>
 #include <asm/page.h>
 #include <asm/cacheflush.h>
 #include <asm/cacheflush.h>
 #include <cpu/sq.h>
 #include <cpu/sq.h>

+ 0 - 1
arch/x86/include/asm/uaccess.h

@@ -6,7 +6,6 @@
 #include <linux/errno.h>
 #include <linux/errno.h>
 #include <linux/compiler.h>
 #include <linux/compiler.h>
 #include <linux/thread_info.h>
 #include <linux/thread_info.h>
-#include <linux/prefetch.h>
 #include <linux/string.h>
 #include <linux/string.h>
 #include <asm/asm.h>
 #include <asm/asm.h>
 #include <asm/page.h>
 #include <asm/page.h>

+ 0 - 1
arch/x86/include/asm/uaccess_32.h

@@ -6,7 +6,6 @@
  */
  */
 #include <linux/errno.h>
 #include <linux/errno.h>
 #include <linux/thread_info.h>
 #include <linux/thread_info.h>
-#include <linux/prefetch.h>
 #include <linux/string.h>
 #include <linux/string.h>
 #include <asm/asm.h>
 #include <asm/asm.h>
 #include <asm/page.h>
 #include <asm/page.h>

+ 0 - 1
arch/x86/include/asm/uaccess_64.h

@@ -6,7 +6,6 @@
  */
  */
 #include <linux/compiler.h>
 #include <linux/compiler.h>
 #include <linux/errno.h>
 #include <linux/errno.h>
-#include <linux/prefetch.h>
 #include <linux/lockdep.h>
 #include <linux/lockdep.h>
 #include <asm/alternative.h>
 #include <asm/alternative.h>
 #include <asm/cpufeature.h>
 #include <asm/cpufeature.h>

+ 1 - 0
arch/x86/mm/fault.c

@@ -12,6 +12,7 @@
 #include <linux/mmiotrace.h>		/* kmmio_handler, ...		*/
 #include <linux/mmiotrace.h>		/* kmmio_handler, ...		*/
 #include <linux/perf_event.h>		/* perf_sw_event		*/
 #include <linux/perf_event.h>		/* perf_sw_event		*/
 #include <linux/hugetlb.h>		/* hstate_index_to_shift	*/
 #include <linux/hugetlb.h>		/* hstate_index_to_shift	*/
+#include <linux/prefetch.h>		/* prefetchw			*/
 
 
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
 #include <asm/traps.h>			/* dotraplinkage, ...		*/
 #include <asm/pgalloc.h>		/* pgd_*(), ...			*/
 #include <asm/pgalloc.h>		/* pgd_*(), ...			*/

+ 1 - 0
drivers/misc/sgi-gru/grufault.c

@@ -33,6 +33,7 @@
 #include <linux/io.h>
 #include <linux/io.h>
 #include <linux/uaccess.h>
 #include <linux/uaccess.h>
 #include <linux/security.h>
 #include <linux/security.h>
+#include <linux/prefetch.h>
 #include <asm/pgtable.h>
 #include <asm/pgtable.h>
 #include "gru.h"
 #include "gru.h"
 #include "grutables.h"
 #include "grutables.h"

+ 1 - 0
drivers/misc/sgi-gru/grumain.c

@@ -28,6 +28,7 @@
 #include <linux/device.h>
 #include <linux/device.h>
 #include <linux/list.h>
 #include <linux/list.h>
 #include <linux/err.h>
 #include <linux/err.h>
+#include <linux/prefetch.h>
 #include <asm/uv/uv_hub.h>
 #include <asm/uv/uv_hub.h>
 #include "gru.h"
 #include "gru.h"
 #include "grutables.h"
 #include "grutables.h"

+ 1 - 0
drivers/net/acenic.c

@@ -68,6 +68,7 @@
 #include <linux/sockios.h>
 #include <linux/sockios.h>
 #include <linux/firmware.h>
 #include <linux/firmware.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/prefetch.h>
 
 
 #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
 #if defined(CONFIG_VLAN_8021Q) || defined(CONFIG_VLAN_8021Q_MODULE)
 #include <linux/if_vlan.h>
 #include <linux/if_vlan.h>

+ 1 - 0
drivers/net/ehea/ehea_main.c

@@ -41,6 +41,7 @@
 #include <linux/memory.h>
 #include <linux/memory.h>
 #include <asm/kexec.h>
 #include <asm/kexec.h>
 #include <linux/mutex.h>
 #include <linux/mutex.h>
+#include <linux/prefetch.h>
 
 
 #include <net/ip.h>
 #include <net/ip.h>
 
 

+ 1 - 0
drivers/staging/pohmelfs/inode.c

@@ -29,6 +29,7 @@
 #include <linux/slab.h>
 #include <linux/slab.h>
 #include <linux/statfs.h>
 #include <linux/statfs.h>
 #include <linux/writeback.h>
 #include <linux/writeback.h>
+#include <linux/prefetch.h>
 
 
 #include "netfs.h"
 #include "netfs.h"
 
 

+ 1 - 0
drivers/usb/gadget/goku_udc.c

@@ -38,6 +38,7 @@
 #include <linux/device.h>
 #include <linux/device.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/gadget.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/byteorder.h>
 #include <asm/byteorder.h>
 #include <asm/io.h>
 #include <asm/io.h>

+ 1 - 0
drivers/usb/gadget/imx_udc.c

@@ -30,6 +30,7 @@
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <linux/timer.h>
 #include <linux/timer.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/prefetch.h>
 
 
 #include <linux/usb/ch9.h>
 #include <linux/usb/ch9.h>
 #include <linux/usb/gadget.h>
 #include <linux/usb/gadget.h>

+ 1 - 0
drivers/usb/gadget/omap_udc.c

@@ -44,6 +44,7 @@
 #include <linux/usb/otg.h>
 #include <linux/usb/otg.h>
 #include <linux/dma-mapping.h>
 #include <linux/dma-mapping.h>
 #include <linux/clk.h>
 #include <linux/clk.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/byteorder.h>
 #include <asm/byteorder.h>
 #include <asm/io.h>
 #include <asm/io.h>

+ 1 - 0
drivers/usb/gadget/pxa25x_udc.c

@@ -46,6 +46,7 @@
 #include <linux/seq_file.h>
 #include <linux/seq_file.h>
 #include <linux/debugfs.h>
 #include <linux/debugfs.h>
 #include <linux/io.h>
 #include <linux/io.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/byteorder.h>
 #include <asm/byteorder.h>
 #include <asm/dma.h>
 #include <asm/dma.h>

+ 1 - 0
drivers/usb/gadget/pxa27x_udc.c

@@ -32,6 +32,7 @@
 #include <linux/irq.h>
 #include <linux/irq.h>
 #include <linux/gpio.h>
 #include <linux/gpio.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/byteorder.h>
 #include <asm/byteorder.h>
 #include <mach/hardware.h>
 #include <mach/hardware.h>

+ 1 - 0
drivers/usb/host/isp1362-hcd.c

@@ -81,6 +81,7 @@
 #include <linux/pm.h>
 #include <linux/pm.h>
 #include <linux/io.h>
 #include <linux/io.h>
 #include <linux/bitmap.h>
 #include <linux/bitmap.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/irq.h>
 #include <asm/irq.h>
 #include <asm/system.h>
 #include <asm/system.h>

+ 1 - 0
drivers/usb/host/sl811-hcd.c

@@ -47,6 +47,7 @@
 #include <linux/usb/sl811.h>
 #include <linux/usb/sl811.h>
 #include <linux/usb/hcd.h>
 #include <linux/usb/hcd.h>
 #include <linux/platform_device.h>
 #include <linux/platform_device.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/io.h>
 #include <asm/io.h>
 #include <asm/irq.h>
 #include <asm/irq.h>

+ 1 - 0
drivers/video/udlfb.c

@@ -27,6 +27,7 @@
 #include <linux/fb.h>
 #include <linux/fb.h>
 #include <linux/vmalloc.h>
 #include <linux/vmalloc.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
+#include <linux/prefetch.h>
 #include <linux/delay.h>
 #include <linux/delay.h>
 #include <video/udlfb.h>
 #include <video/udlfb.h>
 #include "edid.h"
 #include "edid.h"

+ 1 - 0
fs/btrfs/extent_io.c

@@ -10,6 +10,7 @@
 #include <linux/swap.h>
 #include <linux/swap.h>
 #include <linux/writeback.h>
 #include <linux/writeback.h>
 #include <linux/pagevec.h>
 #include <linux/pagevec.h>
+#include <linux/prefetch.h>
 #include "extent_io.h"
 #include "extent_io.h"
 #include "extent_map.h"
 #include "extent_map.h"
 #include "compat.h"
 #include "compat.h"

+ 1 - 0
fs/dcache.c

@@ -35,6 +35,7 @@
 #include <linux/hardirq.h>
 #include <linux/hardirq.h>
 #include <linux/bit_spinlock.h>
 #include <linux/bit_spinlock.h>
 #include <linux/rculist_bl.h>
 #include <linux/rculist_bl.h>
+#include <linux/prefetch.h>
 #include "internal.h"
 #include "internal.h"
 
 
 /*
 /*

+ 1 - 0
fs/logfs/dev_bdev.c

@@ -10,6 +10,7 @@
 #include <linux/blkdev.h>
 #include <linux/blkdev.h>
 #include <linux/buffer_head.h>
 #include <linux/buffer_head.h>
 #include <linux/gfp.h>
 #include <linux/gfp.h>
+#include <linux/prefetch.h>
 
 
 #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1))
 #define PAGE_OFS(ofs) ((ofs) & (PAGE_SIZE-1))
 
 

+ 1 - 1
include/asm-generic/xor.h

@@ -13,7 +13,7 @@
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
  */
 
 
-#include <asm/processor.h>
+#include <linux/prefetch.h>
 
 
 static void
 static void
 xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)
 xor_8regs_2(unsigned long bytes, unsigned long *p1, unsigned long *p2)

+ 1 - 0
kernel/rcutiny.c

@@ -35,6 +35,7 @@
 #include <linux/init.h>
 #include <linux/init.h>
 #include <linux/time.h>
 #include <linux/time.h>
 #include <linux/cpu.h>
 #include <linux/cpu.h>
+#include <linux/prefetch.h>
 
 
 /* Controls for rcu_kthread() kthread, replacing RCU_SOFTIRQ used previously. */
 /* Controls for rcu_kthread() kthread, replacing RCU_SOFTIRQ used previously. */
 static struct task_struct *rcu_kthread_task;
 static struct task_struct *rcu_kthread_task;

+ 1 - 0
kernel/rcutree.c

@@ -49,6 +49,7 @@
 #include <linux/kernel_stat.h>
 #include <linux/kernel_stat.h>
 #include <linux/wait.h>
 #include <linux/wait.h>
 #include <linux/kthread.h>
 #include <linux/kthread.h>
+#include <linux/prefetch.h>
 
 
 #include "rcutree.h"
 #include "rcutree.h"
 
 

+ 1 - 0
mm/page_alloc.c

@@ -54,6 +54,7 @@
 #include <trace/events/kmem.h>
 #include <trace/events/kmem.h>
 #include <linux/ftrace_event.h>
 #include <linux/ftrace_event.h>
 #include <linux/memcontrol.h>
 #include <linux/memcontrol.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/tlbflush.h>
 #include <asm/tlbflush.h>
 #include <asm/div64.h>
 #include <asm/div64.h>

+ 1 - 0
mm/prio_tree.c

@@ -13,6 +13,7 @@
 
 
 #include <linux/mm.h>
 #include <linux/mm.h>
 #include <linux/prio_tree.h>
 #include <linux/prio_tree.h>
+#include <linux/prefetch.h>
 
 
 /*
 /*
  * See lib/prio_tree.c for details on the general radix priority search tree
  * See lib/prio_tree.c for details on the general radix priority search tree

+ 1 - 0
mm/slab.c

@@ -115,6 +115,7 @@
 #include	<linux/debugobjects.h>
 #include	<linux/debugobjects.h>
 #include	<linux/kmemcheck.h>
 #include	<linux/kmemcheck.h>
 #include	<linux/memory.h>
 #include	<linux/memory.h>
+#include	<linux/prefetch.h>
 
 
 #include	<asm/cacheflush.h>
 #include	<asm/cacheflush.h>
 #include	<asm/tlbflush.h>
 #include	<asm/tlbflush.h>

+ 1 - 0
mm/vmscan.c

@@ -42,6 +42,7 @@
 #include <linux/delayacct.h>
 #include <linux/delayacct.h>
 #include <linux/sysctl.h>
 #include <linux/sysctl.h>
 #include <linux/oom.h>
 #include <linux/oom.h>
+#include <linux/prefetch.h>
 
 
 #include <asm/tlbflush.h>
 #include <asm/tlbflush.h>
 #include <asm/div64.h>
 #include <asm/div64.h>

+ 1 - 0
net/core/dst.c

@@ -19,6 +19,7 @@
 #include <linux/types.h>
 #include <linux/types.h>
 #include <net/net_namespace.h>
 #include <net/net_namespace.h>
 #include <linux/sched.h>
 #include <linux/sched.h>
+#include <linux/prefetch.h>
 
 
 #include <net/dst.h>
 #include <net/dst.h>
 
 

+ 1 - 0
net/core/pktgen.c

@@ -156,6 +156,7 @@
 #include <linux/wait.h>
 #include <linux/wait.h>
 #include <linux/etherdevice.h>
 #include <linux/etherdevice.h>
 #include <linux/kthread.h>
 #include <linux/kthread.h>
+#include <linux/prefetch.h>
 #include <net/net_namespace.h>
 #include <net/net_namespace.h>
 #include <net/checksum.h>
 #include <net/checksum.h>
 #include <net/ipv6.h>
 #include <net/ipv6.h>

+ 1 - 0
net/core/skbuff.c

@@ -57,6 +57,7 @@
 #include <linux/init.h>
 #include <linux/init.h>
 #include <linux/scatterlist.h>
 #include <linux/scatterlist.h>
 #include <linux/errqueue.h>
 #include <linux/errqueue.h>
+#include <linux/prefetch.h>
 
 
 #include <net/protocol.h>
 #include <net/protocol.h>
 #include <net/dst.h>
 #include <net/dst.h>

+ 1 - 1
tools/perf/util/include/linux/list.h

@@ -23,5 +23,5 @@ static inline void list_del_range(struct list_head *begin,
  * @head: the head for your list.
  * @head: the head for your list.
  */
  */
 #define list_for_each_from(pos, head) \
 #define list_for_each_from(pos, head) \
-	for (; prefetch(pos->next), pos != (head); pos = pos->next)
+	for (; pos != (head); pos = pos->next)
 #endif
 #endif