linux/arch/powerpc/kernel
Sasha Levin b67bfe0d42 hlist: drop the node parameter from iterators
I'm not sure why, but the hlist for each entry iterators were conceived

        list_for_each_entry(pos, head, member)

The hlist ones were greedy and wanted an extra parameter:

        hlist_for_each_entry(tpos, pos, head, member)

Why did they need an extra pos parameter? I'm not quite sure. Not only
they don't really need it, it also prevents the iterator from looking
exactly like the list iterator, which is unfortunate.

Besides the semantic patch, there was some manual work required:

 - Fix up the actual hlist iterators in linux/list.h
 - Fix up the declaration of other iterators based on the hlist ones.
 - A very small amount of places were using the 'node' parameter, this
 was modified to use 'obj->member' instead.
 - Coccinelle didn't handle the hlist_for_each_entry_safe iterator
 properly, so those had to be fixed up manually.

The semantic patch which is mostly the work of Peter Senna Tschudin is here:

@@
iterator name hlist_for_each_entry, hlist_for_each_entry_continue, hlist_for_each_entry_from, hlist_for_each_entry_rcu, hlist_for_each_entry_rcu_bh, hlist_for_each_entry_continue_rcu_bh, for_each_busy_worker, ax25_uid_for_each, ax25_for_each, inet_bind_bucket_for_each, sctp_for_each_hentry, sk_for_each, sk_for_each_rcu, sk_for_each_from, sk_for_each_safe, sk_for_each_bound, hlist_for_each_entry_safe, hlist_for_each_entry_continue_rcu, nr_neigh_for_each, nr_neigh_for_each_safe, nr_node_for_each, nr_node_for_each_safe, for_each_gfn_indirect_valid_sp, for_each_gfn_sp, for_each_host;

type T;
expression a,c,d,e;
identifier b;
statement S;
@@

-T b;
    <+... when != b
(
hlist_for_each_entry(a,
- b,
c, d) S
|
hlist_for_each_entry_continue(a,
- b,
c) S
|
hlist_for_each_entry_from(a,
- b,
c) S
|
hlist_for_each_entry_rcu(a,
- b,
c, d) S
|
hlist_for_each_entry_rcu_bh(a,
- b,
c, d) S
|
hlist_for_each_entry_continue_rcu_bh(a,
- b,
c) S
|
for_each_busy_worker(a, c,
- b,
d) S
|
ax25_uid_for_each(a,
- b,
c) S
|
ax25_for_each(a,
- b,
c) S
|
inet_bind_bucket_for_each(a,
- b,
c) S
|
sctp_for_each_hentry(a,
- b,
c) S
|
sk_for_each(a,
- b,
c) S
|
sk_for_each_rcu(a,
- b,
c) S
|
sk_for_each_from
-(a, b)
+(a)
S
+ sk_for_each_from(a) S
|
sk_for_each_safe(a,
- b,
c, d) S
|
sk_for_each_bound(a,
- b,
c) S
|
hlist_for_each_entry_safe(a,
- b,
c, d, e) S
|
hlist_for_each_entry_continue_rcu(a,
- b,
c) S
|
nr_neigh_for_each(a,
- b,
c) S
|
nr_neigh_for_each_safe(a,
- b,
c, d) S
|
nr_node_for_each(a,
- b,
c) S
|
nr_node_for_each_safe(a,
- b,
c, d) S
|
- for_each_gfn_sp(a, c, d, b) S
+ for_each_gfn_sp(a, c, d) S
|
- for_each_gfn_indirect_valid_sp(a, c, d, b) S
+ for_each_gfn_indirect_valid_sp(a, c, d) S
|
for_each_host(a,
- b,
c) S
|
for_each_host_safe(a,
- b,
c, d) S
|
for_each_mesh_entry(a,
- b,
c, d) S
)
    ...+>

[akpm@linux-foundation.org: drop bogus change from net/ipv4/raw.c]
[akpm@linux-foundation.org: drop bogus hunk from net/ipv6/raw.c]
[akpm@linux-foundation.org: checkpatch fixes]
[akpm@linux-foundation.org: fix warnings]
[akpm@linux-foudnation.org: redo intrusive kvm changes]
Tested-by: Peter Senna Tschudin <peter.senna@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-02-27 19:10:24 -08:00
..
vdso32 powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
vdso64 powerpc: Add VDSO version of getcpu 2012-07-11 14:18:40 +10:00
.gitignore
align.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
asm-offsets.c Merge tag 'kvm-3.9-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2013-02-24 13:07:18 -08:00
audit.c
btext.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
cacheinfo.c cpu: convert 'cpu' and 'machinecheck' sysdev_class to a regular subsystem 2011-12-21 14:29:42 -08:00
cacheinfo.h
clock.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
compat_audit.c
cpu_setup_6xx.S powerpc: Fix some 6xx/7xxx CPU setup functions 2011-02-07 12:57:11 +11:00
cpu_setup_44x.S powerpc/44x: Add support for the AMCC APM821xx SoC 2010-10-13 08:47:09 -04:00
cpu_setup_a2.S powerpc: Enforce usage of RA 0-R31 where possible 2012-07-10 19:18:35 +10:00
cpu_setup_fsl_booke.S powerpc/booke: Add CPU_FTR_EMB_HV check for e5500. 2012-09-12 14:57:09 -05:00
cpu_setup_pa6t.S
cpu_setup_power.S powerpc: Add support for context switching the TAR register 2013-02-08 14:05:50 +11:00
cpu_setup_ppc970.S powerpc, KVM: Split HVMODE_206 cpu feature bit into separate HV and architecture bits 2011-07-12 13:16:58 +03:00
cputable.c powerpc: Add POWER8 architected mode to cputable 2012-11-15 15:02:00 +11:00
crash_dump.c powerpc: Rename mapping based RELOCATABLE to DYNAMIC_MEMSTART for BookE 2011-12-20 10:20:19 -05:00
crash.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
dbell.c powerpc: Define differences between doorbells on book3e and book3s 2013-01-10 15:09:05 +11:00
dma-iommu.c powerpc/dma-iommu: Fix IOMMU window check 2012-08-24 20:26:07 +10:00
dma-swiotlb.c powerpc/swiotlb: Enable at early stage and disable if not necessary 2012-09-12 14:57:09 -05:00
dma.c powerpc/kernel: Remove uses of abs_to_virt() and virt_to_abs() 2012-09-05 15:19:30 +10:00
entry_32.S powerpc: Fix MAX_STACK_TRACE_ENTRIES too low warning for ppc32 2013-01-29 10:10:22 +11:00
entry_64.S Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2013-02-23 17:09:55 -08:00
epapr_hcalls.S KVM: PPC: ev_idle hcall support for e500 guests 2012-10-05 23:38:37 +02:00
epapr_paravirt.c KVM: PPC: ev_idle hcall support for e500 guests 2012-10-05 23:38:37 +02:00
exceptions-64e.S powerpc: Move branch instruction from ACCOUNT_CPU_USER_ENTRY to caller 2013-01-10 17:00:59 +11:00
exceptions-64s.S powerpc: Hook in new transactional memory code 2013-02-15 17:02:23 +11:00
fadump.c powerpc: Change memory_limit from phys_addr_t to unsigned long long 2012-09-07 11:44:30 +10:00
firmware.c powerpc: fix implicit use of cache.h in kernel/firmware.c 2011-10-31 19:30:41 -04:00
fpu.S powerpc: Add FP/VSX and VMX register load functions for transactional memory 2013-02-15 16:58:52 +11:00
fsl_booke_entry_mapping.S
ftrace.c powerpc/ftrace: Trace function graph entry before updating index 2012-07-27 11:42:34 +10:00
head_8xx.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_32.S powerpc: Call do_page_fault() with interrupts off 2012-03-09 10:55:08 +11:00
head_40x.S powerpc: Enable the Watchdog vector for 405 2013-01-10 14:43:46 +11:00
head_44x.S Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2012-05-24 16:17:30 -07:00
head_64.S powerpc/kexec: Add kexec "hold" support for Book3e processors 2013-01-10 17:00:39 +11:00
head_booke.h KVM: PPC: booke: category E.HV (GS-mode) support 2012-04-08 12:51:19 +03:00
head_fsl_booke.S powepc/booke: Separate out E.HV check and ivor setup code. 2012-09-12 14:57:08 -05:00
hw_breakpoint.c powerpc: Change hardware breakpoint to allow longer ranges 2013-01-29 11:35:08 +11:00
ibmebus.c powerpc: Remove all includes of <asm/abs_addr.h> 2012-09-05 15:19:33 +10:00
idle_6xx.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_book3e.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_e500.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_power4.S powerpc: Use CURRENT_THREAD_INFO instead of open coded assembly 2012-07-11 14:18:22 +10:00
idle_power7.S powerpc/powernv: Always go into nap mode when CPU is offline 2012-09-05 16:05:20 +10:00
idle.c powerpc: Remove no longer used ppc_md.idle_loop() 2012-11-15 13:00:20 +11:00
io-workarounds.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
io.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
iomap.c powerpc: switch to GENERIC_PCI_IOMAP 2011-11-28 21:13:18 +02:00
iommu.c powerpc/iommu: Prevent false TCE leak message 2013-01-10 17:01:53 +11:00
irq.c powerpc: Add code to handle soft-disabled doorbells on server 2013-01-10 15:09:07 +11:00
isa-bridge.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
jump_label.c powerpc: Fix build breakage in jump_label.c 2011-11-16 14:25:19 +11:00
kgdb.c Merge branch 'merge' into next 2013-01-29 11:33:37 +11:00
kprobes.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
kvm_emul.S KVM: PPC: Not optimizing MSR_CE and MSR_ME with paravirt. 2012-05-30 11:43:11 +02:00
kvm.c KVM: PPC: use definitions in epapr header for hcalls 2012-10-05 23:38:36 +02:00
l2cr_6xx.S Fix common misspellings 2011-03-31 11:26:23 -03:00
legacy_serial.c Fix misspellings of "whether" in comments. 2012-11-19 14:31:35 +01:00
lparcfg.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
machine_kexec_32.c treewide: convert uses of ATTRIB_NORETURN to __noreturn 2012-01-12 20:13:03 -08:00
machine_kexec_64.c powerpc/kexec: Disable hard IRQ before kexec 2013-02-24 03:49:28 +11:00
machine_kexec.c powerpc+of: Rename the drivers/of prom_* functions to of_* 2012-11-15 12:56:52 +11:00
Makefile powerpc: Add helper functions for transactional memory context switching 2013-02-15 16:58:52 +11:00
misc_32.S powerpc: split ret_from_fork 2012-09-30 23:31:19 -04:00
misc_64.S powerpc: split ret_from_fork 2012-09-30 23:31:19 -04:00
misc.S powerpc: switch to generic sys_execve()/kernel_execve() 2012-09-30 23:35:51 -04:00
module_32.c powerpc: Fix kernel panic during kernel module load 2012-06-08 19:59:08 +10:00
module_64.c powerpc: Build kernel with -mcmodel=medium 2013-01-10 17:00:31 +11:00
module.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
msi.c
nvram_64.c powerpc/nvram: Generalize code for OS partitions in NVRAM 2011-03-04 18:19:04 +11:00
of_platform.c powerpc/eeh: Fix crash when adding a device in a slot with DDW 2013-01-10 17:01:58 +11:00
paca.c powerpc: Move boot_paca into early_setup 2013-02-15 16:54:48 +11:00
pci_32.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pci_64.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pci_dn.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pci_of_scan.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
pci-common.c powerpc/eeh: Fix crash when adding a device in a slot with DDW 2013-01-10 17:01:58 +11:00
pmc.c bug.h: add include of it to various implicit C users 2012-02-29 17:15:08 -05:00
ppc32.h powerpc: switch to generic old sigaction() 2013-02-03 18:16:10 -05:00
ppc_ksyms.c Merge remote-tracking branch 'master' into queue 2012-10-29 19:15:32 -02:00
ppc_save_regs.S Fix common misspellings 2011-03-31 11:26:23 -03:00
proc_powerpc.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
process.c powerpc: Hook in new transactional memory code 2013-02-15 17:02:23 +11:00
prom_init_check.sh powerpc: Relocate prom_init.c on 64bit 2013-01-10 17:00:25 +11:00
prom_init.c powerpc: Remove RELOC() macro 2013-01-10 17:00:28 +11:00
prom_parse.c powerpc: remove non-required uses of include <linux/module.h> 2011-10-31 19:30:44 -04:00
prom.c Merge branch 'dt' into next 2012-11-15 15:02:44 +11:00
ptrace32.c powerpc: Hardware breakpoints rewrite to handle non DABR breakpoint registers 2013-01-10 17:01:44 +11:00
ptrace.c powerpc: Add DSCR support to ptrace 2013-01-16 05:25:46 +11:00
reloc_32.S powerpc: Process dynamic relocations for kernel 2011-12-20 10:21:08 -05:00
reloc_64.S
rtas_flash.c new helper: file_inode(file) 2013-02-22 23:31:31 -05:00
rtas_pci.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
rtas-proc.c
rtas-rtc.c powerpc/rtas-rtc: remove sideeffects of printk_ratelimit 2011-06-29 15:30:43 +10:00
rtas.c powerpc+of: Remove the pSeries_reconfig.h file 2012-11-15 12:56:55 +11:00
rtasd.c powerpc/pseries: Cancel RTAS event scan before firmware flash 2011-11-25 14:11:29 +11:00
setup_32.c powerpc/watchdog: move booke watchdog param related code to setup-common.c 2012-07-11 07:44:03 -05:00
setup_64.c powerpc: Apply early paca fixups to boot_paca and the boot cpu's paca 2013-02-15 16:55:06 +11:00
setup-common.c powerpc/watchdog: move booke watchdog param related code to setup-common.c 2012-07-11 07:44:03 -05:00
setup.h
signal_32.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
signal_64.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
signal.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2013-02-23 18:50:11 -08:00
signal.h powerpc: Add new transactional memory state to the signal context 2013-02-15 17:02:23 +11:00
smp-tbsync.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
smp.c powerpc: fix ics_rtas_init and start_secondary section mismatch 2013-02-08 14:05:48 +11:00
softemu8xx.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
stacktrace.c powerpc: various straight conversions from module.h --> export.h 2011-10-31 19:30:44 -04:00
suspend.c
swsusp_32.S Fix common misspellings 2011-03-31 11:26:23 -03:00
swsusp_64.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
swsusp_asm64.S
swsusp_booke.S
swsusp.c Disintegrate asm/system.h for PowerPC 2012-03-28 18:30:02 +01:00
sys_ppc32.c powerpc: kill pointless wrappers 2013-02-03 18:16:09 -05:00
syscalls.c powerpc: Fix personality handling in ppc64_personality() 2012-08-24 20:26:07 +10:00
sysfs.c numa: convert static memory to dynamically allocated memory for per node device 2012-12-11 17:22:23 -08:00
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-02-19 19:05:45 -08:00
tm.S powerpc: Add helper functions for transactional memory context switching 2013-02-15 16:58:52 +11:00
traps.c The sweeping change is to make add_taint() explicitly indicate whether to disable 2013-02-25 15:41:43 -08:00
udbg_16550.c powerpc: Add early debug for WSP platforms 2011-05-06 13:32:41 +10:00
udbg.c powerpc/udbg: Remove unused udbg_read() 2012-11-15 12:59:33 +11:00
uprobes.c uprobes/powerpc: Do not use arch_uprobe_*_step() helpers 2012-11-03 17:15:12 +01:00
vdso.c powerpc: Restore VDSO information on critical exception om BookE 2012-09-07 09:48:49 +10:00
vecemu.c
vector.S powerpc: Add FP/VSX and VMX register load functions for transactional memory 2013-02-15 16:58:52 +11:00
vio.c POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
vmlinux.lds.S powerpc: Relocate prom_init.c on 64bit 2013-01-10 17:00:25 +11:00