sanitize <linux/prefetch.h> usage

Commit e66eed651f ("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>
This commit is contained in:
Linus Torvalds 2011-05-20 12:50:29 -07:00
Родитель 257313b2a8
Коммит 268bb0ce3e
35 изменённых файлов: 32 добавлений и 5 удалений

Просмотреть файл

@ -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 @@
#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 @@
#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 @@
#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 @@
#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 @@
*/ */
#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 @@
*/ */
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
* 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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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 @@
#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,
* @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