Revision 8fe012964a39ead19405ba8d65f50d4fd598f5b8 authored by David S. Miller on 27 October 2015, 05:08:22 UTC, committed by David S. Miller on 27 October 2015, 05:08:22 UTC
Julia Lawall says: ==================== add missing of_node_put The various for_each device_node iterators performs an of_node_get on each iteration, so a break out of the loop requires an of_node_put. The complete semantic patch that fixes this problem is (http://coccinelle.lip6.fr): // <smpl> @r@ local idexpression n; expression e1,e2; iterator name for_each_node_by_name, for_each_node_by_type, for_each_compatible_node, for_each_matching_node, for_each_matching_node_and_match, for_each_child_of_node, for_each_available_child_of_node, for_each_node_with_property; iterator i; statement S; expression list [n1] es; @@ ( ( for_each_node_by_name(n,e1) S | for_each_node_by_type(n,e1) S | for_each_compatible_node(n,e1,e2) S | for_each_matching_node(n,e1) S | for_each_matching_node_and_match(n,e1,e2) S | for_each_child_of_node(e1,n) S | for_each_available_child_of_node(e1,n) S | for_each_node_with_property(n,e1) S ) & i(es,n,...) S ) @@ local idexpression r.n; iterator r.i; expression e; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | return n; | + of_node_put(n); ? return ...; ) ... } @@ local idexpression r.n; iterator r.i; expression e; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? break; ) ... } ... when != n @@ local idexpression r.n; iterator r.i; expression e; identifier l; expression list [r.n1] es; @@ i(es,n,...) { ... ( of_node_put(n); | e = n | + of_node_put(n); ? goto l; ) ... } ... l: ... when != n// </smpl> ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
File | Mode | Size |
---|---|---|
842 | ||
fonts | ||
lz4 | ||
lzo | ||
mpi | ||
raid6 | ||
reed_solomon | ||
xz | ||
zlib_deflate | ||
zlib_inflate | ||
.gitignore | -rw-r--r-- | 70 bytes |
Kconfig | -rw-r--r-- | 11.7 KB |
Kconfig.debug | -rw-r--r-- | 62.2 KB |
Kconfig.kasan | -rw-r--r-- | 1.7 KB |
Kconfig.kgdb | -rw-r--r-- | 4.1 KB |
Kconfig.kmemcheck | -rw-r--r-- | 2.9 KB |
Makefile | -rw-r--r-- | 6.5 KB |
argv_split.c | -rw-r--r-- | 2.1 KB |
asn1_decoder.c | -rw-r--r-- | 13.1 KB |
assoc_array.c | -rw-r--r-- | 52.6 KB |
atomic64.c | -rw-r--r-- | 4.1 KB |
atomic64_test.c | -rw-r--r-- | 4.0 KB |
audit.c | -rw-r--r-- | 1.7 KB |
bcd.c | -rw-r--r-- | 261 bytes |
bch.c | -rw-r--r-- | 35.6 KB |
bitmap.c | -rw-r--r-- | 32.9 KB |
bitrev.c | -rw-r--r-- | 1.9 KB |
bsearch.c | -rw-r--r-- | 1.6 KB |
btree.c | -rw-r--r-- | 19.3 KB |
bug.c | -rw-r--r-- | 5.0 KB |
build_OID_registry | -rwxr-xr-x | 4.7 KB |
bust_spinlocks.c | -rw-r--r-- | 660 bytes |
check_signature.c | -rw-r--r-- | 599 bytes |
checksum.c | -rw-r--r-- | 5.0 KB |
clz_ctz.c | -rw-r--r-- | 1.3 KB |
clz_tab.c | -rw-r--r-- | 855 bytes |
cmdline.c | -rw-r--r-- | 4.1 KB |
compat_audit.c | -rw-r--r-- | 796 bytes |
cordic.c | -rw-r--r-- | 2.5 KB |
cpu-notifier-error-inject.c | -rw-r--r-- | 1.2 KB |
cpu_rmap.c | -rw-r--r-- | 7.8 KB |
cpumask.c | -rw-r--r-- | 4.6 KB |
crc-ccitt.c | -rw-r--r-- | 3.0 KB |
crc-itu-t.c | -rw-r--r-- | 2.8 KB |
crc-t10dif.c | -rw-r--r-- | 1.6 KB |
crc16.c | -rw-r--r-- | 2.8 KB |
crc32.c | -rw-r--r-- | 45.4 KB |
crc32defs.h | -rw-r--r-- | 2.0 KB |
crc7.c | -rw-r--r-- | 2.6 KB |
crc8.c | -rw-r--r-- | 2.4 KB |
ctype.c | -rw-r--r-- | 1.4 KB |
debug_info.c | -rw-r--r-- | 741 bytes |
debug_locks.c | -rw-r--r-- | 1.2 KB |
debugobjects.c | -rw-r--r-- | 26.1 KB |
dec_and_lock.c | -rw-r--r-- | 784 bytes |
decompress.c | -rw-r--r-- | 1.7 KB |
decompress_bunzip2.c | -rw-r--r-- | 23.5 KB |
decompress_inflate.c | -rw-r--r-- | 4.4 KB |
decompress_unlz4.c | -rw-r--r-- | 4.2 KB |
decompress_unlzma.c | -rw-r--r-- | 15.8 KB |
decompress_unlzo.c | -rw-r--r-- | 7.1 KB |
decompress_unxz.c | -rw-r--r-- | 10.9 KB |
devres.c | -rw-r--r-- | 9.8 KB |
digsig.c | -rw-r--r-- | 5.5 KB |
div64.c | -rw-r--r-- | 4.0 KB |
dma-debug.c | -rw-r--r-- | 41.9 KB |
dump_stack.c | -rw-r--r-- | 1.1 KB |
dynamic_debug.c | -rw-r--r-- | 25.2 KB |
dynamic_queue_limits.c | -rw-r--r-- | 4.3 KB |
earlycpio.c | -rw-r--r-- | 3.9 KB |
extable.c | -rw-r--r-- | 2.4 KB |
fault-inject.c | -rw-r--r-- | 6.0 KB |
fdt.c | -rw-r--r-- | 69 bytes |
fdt_empty_tree.c | -rw-r--r-- | 80 bytes |
fdt_ro.c | -rw-r--r-- | 72 bytes |
fdt_rw.c | -rw-r--r-- | 72 bytes |
fdt_strerror.c | -rw-r--r-- | 78 bytes |
fdt_sw.c | -rw-r--r-- | 72 bytes |
fdt_wip.c | -rw-r--r-- | 73 bytes |
find_bit.c | -rw-r--r-- | 4.5 KB |
flex_array.c | -rw-r--r-- | 11.0 KB |
flex_proportions.c | -rw-r--r-- | 6.9 KB |
gcd.c | -rw-r--r-- | 313 bytes |
gen_crc32table.c | -rw-r--r-- | 3.2 KB |
genalloc.c | -rw-r--r-- | 19.0 KB |
glob.c | -rw-r--r-- | 7.7 KB |
halfmd4.c | -rw-r--r-- | 2.0 KB |
hexdump.c | -rw-r--r-- | 8.2 KB |
hweight.c | -rw-r--r-- | 1.9 KB |
idr.c | -rw-r--r-- | 28.0 KB |
inflate.c | -rw-r--r-- | 38.6 KB |
int_sqrt.c | -rw-r--r-- | 652 bytes |
interval_tree.c | -rw-r--r-- | 499 bytes |
interval_tree_test.c | -rw-r--r-- | 2.3 KB |
iomap.c | -rw-r--r-- | 6.5 KB |
iomap_copy.c | -rw-r--r-- | 2.1 KB |
iommu-common.c | -rw-r--r-- | 7.1 KB |
iommu-helper.c | -rw-r--r-- | 1.0 KB |
ioremap.c | -rw-r--r-- | 3.4 KB |
iov_iter.c | -rw-r--r-- | 19.8 KB |
irq_regs.c | -rw-r--r-- | 604 bytes |
is_single_threaded.c | -rw-r--r-- | 1.3 KB |
jedec_ddr_data.c | -rw-r--r-- | 3.0 KB |
kasprintf.c | -rw-r--r-- | 717 bytes |
kfifo.c | -rw-r--r-- | 12.7 KB |
klist.c | -rw-r--r-- | 10.3 KB |
kobject.c | -rw-r--r-- | 25.7 KB |
kobject_uevent.c | -rw-r--r-- | 11.3 KB |
kstrtox.c | -rw-r--r-- | 9.4 KB |
kstrtox.h | -rw-r--r-- | 254 bytes |
lcm.c | -rw-r--r-- | 441 bytes |
libcrc32c.c | -rw-r--r-- | 2.0 KB |
list_debug.c | -rw-r--r-- | 2.6 KB |
list_sort.c | -rw-r--r-- | 6.8 KB |
llist.c | -rw-r--r-- | 3.1 KB |
locking-selftest-hardirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-mutex.h | -rw-r--r-- | 120 bytes |
locking-selftest-rlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-rlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-rsem.h | -rw-r--r-- | 163 bytes |
locking-selftest-softirq.h | -rw-r--r-- | 207 bytes |
locking-selftest-spin-hardirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin-softirq.h | -rw-r--r-- | 73 bytes |
locking-selftest-spin.h | -rw-r--r-- | 118 bytes |
locking-selftest-wlock-hardirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock-softirq.h | -rw-r--r-- | 74 bytes |
locking-selftest-wlock.h | -rw-r--r-- | 158 bytes |
locking-selftest-wsem.h | -rw-r--r-- | 163 bytes |
locking-selftest.c | -rw-r--r-- | 40.1 KB |
lockref.c | -rw-r--r-- | 3.9 KB |
lru_cache.c | -rw-r--r-- | 19.4 KB |
md5.c | -rw-r--r-- | 3.7 KB |
memory-notifier-error-inject.c | -rw-r--r-- | 1.1 KB |
memweight.c | -rw-r--r-- | 999 bytes |
net_utils.c | -rw-r--r-- | 604 bytes |
nlattr.c | -rw-r--r-- | 12.5 KB |
nmi_backtrace.c | -rw-r--r-- | 4.2 KB |
notifier-error-inject.c | -rw-r--r-- | 2.7 KB |
notifier-error-inject.h | -rw-r--r-- | 614 bytes |
of-reconfig-notifier-error-inject.c | -rw-r--r-- | 1.3 KB |
oid_registry.c | -rw-r--r-- | 3.8 KB |
parser.c | -rw-r--r-- | 7.1 KB |
pci_iomap.c | -rw-r--r-- | 4.2 KB |
percpu-refcount.c | -rw-r--r-- | 11.7 KB |
percpu_counter.c | -rw-r--r-- | 5.5 KB |
percpu_ida.c | -rw-r--r-- | 9.5 KB |
percpu_test.c | -rw-r--r-- | 3.2 KB |
plist.c | -rw-r--r-- | 5.9 KB |
pm-notifier-error-inject.c | -rw-r--r-- | 1.1 KB |
proportions.c | -rw-r--r-- | 9.4 KB |
radix-tree.c | -rw-r--r-- | 39.4 KB |
random32.c | -rw-r--r-- | 12.6 KB |
ratelimit.c | -rw-r--r-- | 1.5 KB |
rational.c | -rw-r--r-- | 1.5 KB |
rbtree.c | -rw-r--r-- | 16.2 KB |
rbtree_test.c | -rw-r--r-- | 5.5 KB |
reciprocal_div.c | -rw-r--r-- | 492 bytes |
rhashtable.c | -rw-r--r-- | 20.4 KB |
scatterlist.c | -rw-r--r-- | 18.8 KB |
seq_buf.c | -rw-r--r-- | 7.8 KB |
sg_split.c | -rw-r--r-- | 5.1 KB |
sha1.c | -rw-r--r-- | 6.1 KB |
show_mem.c | -rw-r--r-- | 1.2 KB |
smp_processor_id.c | -rw-r--r-- | 1.3 KB |
sort.c | -rw-r--r-- | 2.9 KB |
stmp_device.c | -rw-r--r-- | 2.1 KB |
string.c | -rw-r--r-- | 19.9 KB |
string_helpers.c | -rw-r--r-- | 10.5 KB |
strncpy_from_user.c | -rw-r--r-- | 2.9 KB |
strnlen_user.c | -rw-r--r-- | 4.1 KB |
swiotlb.c | -rw-r--r-- | 27.3 KB |
syscall.c | -rw-r--r-- | 2.4 KB |
test-hexdump.c | -rw-r--r-- | 4.1 KB |
test-kstrtox.c | -rw-r--r-- | 17.3 KB |
test-string_helpers.c | -rw-r--r-- | 8.1 KB |
test_bpf.c | -rw-r--r-- | 125.2 KB |
test_firmware.c | -rw-r--r-- | 2.8 KB |
test_kasan.c | -rw-r--r-- | 5.1 KB |
test_module.c | -rw-r--r-- | 753 bytes |
test_rhashtable.c | -rw-r--r-- | 9.7 KB |
test_static_key_base.c | -rw-r--r-- | 2.0 KB |
test_static_keys.c | -rw-r--r-- | 5.4 KB |
test_user_copy.c | -rw-r--r-- | 3.1 KB |
textsearch.c | -rw-r--r-- | 9.4 KB |
timerqueue.c | -rw-r--r-- | 3.2 KB |
ts_bm.c | -rw-r--r-- | 5.3 KB |
ts_fsm.c | -rw-r--r-- | 10.6 KB |
ts_kmp.c | -rw-r--r-- | 4.3 KB |
ucs2_string.c | -rw-r--r-- | 1.2 KB |
usercopy.c | -rw-r--r-- | 197 bytes |
uuid.c | -rw-r--r-- | 1.3 KB |
vsprintf.c | -rw-r--r-- | 63.5 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...