Commit 268bb0ce authored by Linus Torvalds's avatar Linus Torvalds

sanitize <linux/prefetch.h> usage

Commit e66eed65 ("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: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 257313b2
...@@ -37,6 +37,7 @@ ...@@ -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>
......
...@@ -10,6 +10,7 @@ ...@@ -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>
......
...@@ -11,6 +11,7 @@ ...@@ -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>
......
...@@ -20,6 +20,7 @@ ...@@ -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>
......
...@@ -6,7 +6,6 @@ ...@@ -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>
......
...@@ -6,7 +6,6 @@ ...@@ -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>
......
...@@ -6,7 +6,6 @@ ...@@ -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>
......
...@@ -12,6 +12,7 @@ ...@@ -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_*(), ... */
......
...@@ -33,6 +33,7 @@ ...@@ -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"
......
...@@ -28,6 +28,7 @@ ...@@ -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"
......
...@@ -68,6 +68,7 @@ ...@@ -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>
......
...@@ -41,6 +41,7 @@ ...@@ -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>
......
...@@ -29,6 +29,7 @@ ...@@ -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"
......
...@@ -38,6 +38,7 @@ ...@@ -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>
......
...@@ -30,6 +30,7 @@ ...@@ -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>
......
...@@ -44,6 +44,7 @@ ...@@ -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>
......
...@@ -46,6 +46,7 @@ ...@@ -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>
......
...@@ -32,6 +32,7 @@ ...@@ -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>
......
...@@ -81,6 +81,7 @@ ...@@ -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>
......
...@@ -47,6 +47,7 @@ ...@@ -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>
......
...@@ -27,6 +27,7 @@ ...@@ -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"
......
...@@ -10,6 +10,7 @@ ...@@ -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"
......
...@@ -35,6 +35,7 @@ ...@@ -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"
/* /*
......
...@@ -10,6 +10,7 @@ ...@@ -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))
......
...@@ -13,7 +13,7 @@ ...@@ -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)
......
...@@ -35,6 +35,7 @@ ...@@ -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;
......
...@@ -49,6 +49,7 @@ ...@@ -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"
......
...@@ -54,6 +54,7 @@ ...@@ -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>
......
...@@ -13,6 +13,7 @@ ...@@ -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
......
...@@ -115,6 +115,7 @@ ...@@ -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>
......
...@@ -42,6 +42,7 @@ ...@@ -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>
......
...@@ -19,6 +19,7 @@ ...@@ -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>
......
...@@ -156,6 +156,7 @@ ...@@ -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>
......
...@@ -57,6 +57,7 @@ ...@@ -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>
......
...@@ -23,5 +23,5 @@ static inline void list_del_range(struct list_head *begin, ...@@ -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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment