linux/arch/s390/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 s390: add various .gitignore files. 2012-05-16 14:42:41 +02:00
vdso64 s390: add various .gitignore files. 2012-05-16 14:42:41 +02:00
.gitignore s390: add various .gitignore files. 2012-05-16 14:42:41 +02:00
asm-offsets.c s390: add support for transactional memory 2012-09-26 15:45:02 +02:00
audit.c
audit.h
base.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
bitmap.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cache.c s390/cache: fix data/instruction cache output 2012-10-18 17:50:11 +02:00
compat_audit.c
compat_exec_domain.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
compat_linux.c s390: switch to generic compat sched_rr_get_interval() 2013-02-03 18:16:13 -05:00
compat_linux.h s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
compat_ptrace.h [S390] ptrace cleanup 2011-01-05 12:47:31 +01:00
compat_signal.c s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
compat_wrapper.S s390: kill useless wrappers 2013-02-03 18:16:14 -05:00
cpcmd.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
crash_dump.c s390/crashdump: move fill_cpu_elf_notes() prototype to header file 2012-09-26 15:45:22 +02:00
debug.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2013-02-26 20:16:07 -08:00
diag.c [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
dis.c s390/cleanup: rename SPP to LPP 2013-02-14 15:55:24 +01:00
early.c s390/cleanup: rename SPP to LPP 2013-02-14 15:55:24 +01:00
ebcdic.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
entry64.S s390/cleanup: rename SPP to LPP 2013-02-14 15:55:24 +01:00
entry.h s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
entry.S Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2012-12-13 14:20:19 -08:00
ftrace.c [S390] cleanup ftrace backend functions 2011-01-05 12:47:31 +01:00
head31.S s390/mm: let kernel text section always begin at 1MB 2012-10-09 14:16:59 +02:00
head64.S s390/mm: let kernel text section always begin at 1MB 2012-10-09 14:16:59 +02:00
head_kdump.S s390/kdump: Use 64 bit mode for 0x10000 entry point 2012-10-18 17:50:09 +02:00
head.S s390: add zEC12 code generation support 2012-11-23 11:14:31 +01:00
ipl.c s390/ipl: Implement diag308 loop for zfcpdump 2013-02-14 15:55:05 +01:00
irq.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
jump_label.c s390/jump-label: add arch_jump_label_transform_static() 2011-10-25 11:54:37 -07:00
kprobes.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
lgr.c s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
machine_kexec.c s390/crashdump: move fill_cpu_elf_notes() prototype to header file 2012-09-26 15:45:22 +02:00
Makefile s390/traps: preinitialize program check table 2012-11-23 11:14:25 +01:00
mcount64.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mcount.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mem_detect.c [S390] Rework create_mem_hole() function 2011-12-27 11:27:09 +01:00
module.c s390/module: Add missing R_390_NONE relocation type 2013-02-14 15:55:26 +01:00
nmi.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
os_info.c s390/smp: make absolute lowcore / cpu restart parameter accesses more robust 2012-06-14 09:09:02 +02:00
perf_cpum_cf.c s390/perf: cpum_cf: fallback to software sampling events 2013-02-14 15:55:15 +01:00
perf_event.c [S390] Fix build errors (fallout from system.h disintegration) 2012-03-30 09:41:12 +02:00
pgm_check.S s390/traps: preinitialize program check table 2012-11-23 11:14:25 +01:00
process.c flagday: don't pass regs to copy_thread() 2012-11-28 23:43:42 -05:00
processor.c s390/processor: use ARRAY_SIZE instead of hard coded value 2012-09-26 15:45:03 +02:00
ptrace.c s390/ptrace: add missing ifdef 2012-09-26 15:45:21 +02:00
reipl64.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
reipl.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
relocate_kernel64.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
relocate_kernel.S s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
runtime_instr.c s390/irq: remove split irq fields from /proc/stat 2013-01-08 10:57:07 +01:00
s390_ksyms.c s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
sclp.S s390/sclp: fix addressing mode clobber 2012-11-06 22:39:51 +01:00
setup.c s390/pm: export pm_power_off 2013-01-08 10:57:09 +01:00
signal.c s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
smp.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
stacktrace.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
suspend.c Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
swsusp_asm64.S s390/sigp: use sigp order code defines in assembly code 2012-06-05 13:23:36 +02:00
sys_s390.c s390: do not clobber personality flags in sys_32_personality() 2012-08-08 07:32:56 -07:00
syscalls.S s390: kill useless wrappers 2013-02-03 18:16:14 -05:00
sysinfo.c s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
time.c s390/time: rename tod clock access functions 2013-02-14 15:55:10 +01:00
topology.c s390/topology: export cpu_topology 2013-01-08 10:57:10 +01:00
traps.c taint: add explicit flag to show whether lock dep is still OK. 2013-01-21 17:17:57 +10:30
vdso.c s390/mm: rename addressing_mode to s390_user_mode 2012-09-26 15:45:05 +02:00
vmlinux.lds.S s390/linker skript: discard exit.data at runtime 2013-02-14 15:55:21 +01:00
vtime.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2013-02-21 17:54:03 -08:00