Commit Graph

3524 Commits

Author SHA1 Message Date
Vaishali Thakkar
f28f47028e UPSTREAM: Coccinelle: misc: Add support for devm variant in all modes
Add missing support for the devm_request_threaded_irq in
the rules of context, report and org modes.

Misc:
----
To be consistent with other scripts, change confidence level
of the script to 'Moderate'.

Change-Id: I3ad8fc93081be82512e6143e27c8936c988a98f1
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit d1e774f49f0305092c9975d9070aefe318f49872)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
549be08e4c UPSTREAM: Coccinelle: misc: Improve the result given by context mode
To eliminate false positives given by the context mode, add
necessary arguments for the function request_threaded_irq.

Change-Id: I692db266239a03964d17505108e700bc1ffa9bd3
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 35b303ae361611a6b418e385fee06fa08732b2e6)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
fd779ebca7 UPSTREAM: Coccinelle: misc: Improve the matching of rules
Currently because of the left associativity of the operators, pattern
IRQF_ONESHOT | flags does not match with the pattern when we have more
than one flag after the disjunction. This eventually results in giving
false positives by the script. This patch eliminates these FPs by
improving the rule.

Change-Id: I1043d1e6fca848997982305cd8fb3ac2706e7f1f
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit dca24c4544d96989f521b5aa49fd44ae0ae5a5b6)
2017-07-12 21:17:10 +08:00
Andrew F. Davis
d274d003e3 UPSTREAM: Coccinelle: Add misc/boolconv.cocci
Add a script to check for unneeded conversions to bool.

Change-Id: I881d423eb72595b11a861eaf01c0c8eb8f262e05
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 75238b9e6aadca6d9255d4b385e026385e78bb15)
2017-07-12 21:17:10 +08:00
Nicholas Mc Guire
38ceb6a5d2 UPSTREAM: Coccinelle: flag conditions with no effect
Report code constructs where the if and else branch are functionally
identical. In cases where this is intended it really should be
documented - most reported cases probably are bugs.

Change-Id: I81c863f2a744d26dd1f0cd0b621580f73d0c70d5
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c8990359d4b12f14656386526ddf904635076902)
2017-07-12 21:17:10 +08:00
Julia Lawall
907e4f6c97 UPSTREAM: Coccinelle: pm_runtime: ensure relevance of pm_runtime reports
pm_runtime.cocci starts with one rule that searches for a variety of
functions calls, followed by various rules that report errors.  Previously,
the only connection between the first rule and the rest was to check that
the first rule had matched somewhere.  Change the rules to propagate a
position from the first rule to the others, to make sure that the sites
reported on are the same as the sites that were identified as having the
relevant functions.

Change-Id: I2f5c56634f170348666acb373f7b9323c8edf68e
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit d97629f1686574a800a76eb0d2ce65e3f3d3ef92)
2017-07-12 21:17:10 +08:00
Julia Lawall
49818c240e UPSTREAM: Coccinelle: limit memdup_user transformation to GFP_KERNEL case
Memdup_user encapsulates a memory allocation with the flag GFP_KERNEL, so
only allow this flag in the original code.

Change-Id: I504d5558ef6bfa955983523918397872494b1abc
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 43d96390d57aa0e61d15ce2bcb887df8516d58f5)
2017-07-12 21:17:10 +08:00
Luis R. Rodriguez
fed2eddfd5 UPSTREAM: scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci
Make use of the new Requires: tag to be able to specify coccinelle binary
version requirements. The cocci file device_node_continue.cocci requires at
least coccinelle 1.0.4.

Change-Id: I11e894e3b2cbd88362271ea064ec3674ae9ffd71
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Acked-by: Nicolas Palix <nicolas.palix@imag.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit cc65e823363834a7ff0a2eca9bef2bbef64135f7)
2017-07-12 21:17:10 +08:00
Yann Droneaud
d3dd61f590 UPSTREAM: coccinelle: catch krealloc() on devm_*() allocated memory
krealloc() must not be used against devm_*() allocated
memory regions:

- if a bigger memory is to be allocated, krealloc() and
  __krealloc() could return a different pointer than the
  one given to them, creating a memory region which is not
  managed, thus it will not be automatically released on
  device removal.

- if a bigger memory is to be allocated, krealloc() could
  kfree() the managed memory region which is passed to it.
  The old pointer is left registered as a resource for the
  device. On device removal, this dangling pointer will be
  used and an unrelated memory region could be released.

- if the requested size is equal to 0, krealloc() can also
  just behave like kfree(). Here too, the old pointer is
  kept associated with the device. On device removal, this
  invalid pointer will be used and an unrelated memory
  region could be released.

For all these reasons, krealloc() must not be used on a
pointer returned by devm_*() functions.

Change-Id: I36061f5668a1b1128df9414b577150281f0f8a5a
Cc: Tejun Heo <tj@kernel.org>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit b7b2ee41f300b69c67c798df0cd5b8648bcb26a3)
2017-07-12 21:17:10 +08:00
Yann Droneaud
8ecb0a075b UPSTREAM: coccinelle: recognize more devm_* memory allocation functions
Updates free/devm_free.cocci to recognize functions added by:

- commit 64c862a839 ('devres: add kernel standard devm_k.alloc functions')
- commit e31108cad3 ('devres: introduce API "devm_kstrdup"')
- commit 3046365bb4 ('devres: introduce API "devm_kmemdup')
- commit 43339bed70 ('devres: Add devm_get_free_pages API')
- commit 75f2a4ead5 ('devres: Add devm_kasprintf and devm_kvasprintf API')

See also Documentation/driver-model/devres.txt

Change-Id: I5224960b028811484f27dd174629df6d5b052cd3
Cc: Joe Perches <joe@perches.com>
Cc: Manish Badarkhe <badarkhe.manish@gmail.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Eli Billauer <eli.billauer@gmail.com>
Cc: Himangi Saraogi <himangi774@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Wolfram Sang <w.sang@pengutronix.de>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit a720c0644d14011d3a1bcc8d1b36e80571ad2ce1)
2017-07-12 21:17:10 +08:00
Yann Droneaud
8b5b2895d7 UPSTREAM: coccinelle: also catch kzfree() issues
Since commit 3ef0e5ba46 ('slab: introduce kzfree()'),
kfree() is no more the only function to be considered:
kzfree() should be recognized too.

In particular, kzfree() must not be called on memory
allocated through devm_*() functions.

Change-Id: I9cde2ad48245c628c6708ab008e0513945a04cef
Cc: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 6dd9379e8f327e70d182b15be3ba21aa2b5d2cba)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
24b3eaac3a UPSTREAM: Coccinelle: noderef: Add new rules and correct the old rule
Add new rules to detect the cases where sizeof is used in
function calls as a argument.

Also, for the patch mode third rule should behave same as
second rule with arguments reversed. So, change that as well.

Change-Id: Id50b413c43d1c7f8c17a8cd784aa4d9d90046e62
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit bf56cc04ef97c8ec536e3fcd16fc57902cba339f)
2017-07-12 21:17:10 +08:00
Wolfram Sang
265269d9da UPSTREAM: scripts: coccinelle: remove check to move constants to right
The header mentions this check depends on personal taste. I agree.
Running coccicheck on patches before I apply them, this SmPL produced
enough false positives for me that I'd rather see it removed.

Change-Id: Ia9638b059dd9eedb5f266061ae61ede963870acd
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit f931362b38191016b7a6dc31d90a515b37658e02)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
988bd2d239 UPSTREAM: Coccinelle: setup_timer: Add space in front of parentheses
Add space in front of the offending parentheses to silent the
parse error for older Coccinelle versions. This makes the rule
usable with all Coccinelle versions.

Change-Id: I44060c14a88fa322ac609474cc9b03b0856d5dab
Reported-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Fixes: c5eda8fd10c6 ("Coccinelle: Add api/setup_timer.cocci")
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 531f50388f1b05a297c6eab7a0c1e8e6d997678b)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
78fe547da4 UPSTREAM: Coccinelle: Add api/setup_timer.cocci
Use the timer API function setup_timer instead of structure field
assignments to initialize a timer.

Change-Id: I18ecc8a8ac368b893f0ceab9ad41add255bc3cd5
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c5eda8fd10c64720d5232189f812a3b1cc983b8b)
2017-07-12 21:17:10 +08:00
Julia Lawall
0d906e763c UPSTREAM: coccinelle: bugon: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: If04125246bc21159b37d41c67a5b2556ec8ede3a
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit f75621c6ecadbd1802a7142fd346511cea05250a)
2017-07-12 21:17:10 +08:00
Julia Lawall
60c3b34419 UPSTREAM: Coccinelle: pm_runtime: reduce rule applicability
Rule r is only used in org or report mode, so only execute it in those
cases.

Change-Id: Ib2311a33fca6544b885bbf44b9695e1984680f96
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 79ff2b3deae7db21e73f1e0add92c988135defd2)
2017-07-12 21:17:10 +08:00
Julia Lawall
a6a3fd8095 UPSTREAM: Coccinelle: array_size: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: I00224a5dda297070e31defd650247261e08dc830
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c7eaa8873b3e50667e0b6529141139147f34748e)
2017-07-12 21:17:10 +08:00
Julia Lawall
94e1aa8024 UPSTREAM: Coccinelle: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: Id2705a31f11329132b5af54ba933c208a49557bd
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 8f551befa2269dc244bcfbcad795132f833cb71c)
2017-07-12 21:17:10 +08:00
Andrzej Hajda
b6927d861c UPSTREAM: coccinelle: tests: unsigned value cannot be lesser than zero
Unsigned expressions cannot be lesser than zero. Presence of comparisons
'unsigned (<|<=|>|>=) 0' often indicates a bug, usually wrong type of variable.
The patch beside finding such comparisons tries to eliminate false positives,
mainly by bypassing range checks.

gcc can detect such comparisons also using -Wtype-limits switch, but it warns
also in correct cases, making too much noise.

Change-Id: I9fbf55a16d9ae508ca46cba2f8292d5e4b4cc697
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 3f984cb39907f87515d83657ecd471ae396a6c4a)
2017-07-12 21:17:10 +08:00
Jianqun Xu
cb39b5bcd6 scripts/gcc-wrapper.py: ignore drm_edid.c:3506
Change-Id: I3363df9995e27dedb4b0b461e210f872b7ef83c8
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
2017-06-27 17:01:50 +08:00
Huang, Tao
bce183998c rk: gcc-wrapper.py ignore atags_to_fdt.c:98
Change-Id: Ie7d1c5b7ba5d1147c1996d73f19d5e0d768998ec
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-06-05 15:28:10 +08:00
Huang, Tao
986d4e4637 Merge branch 'linux-linaro-lsk-v4.4-android' of git://git.linaro.org/kernel/linux-linaro-stable.git
* linux-linaro-lsk-v4.4-android: (521 commits)
  Linux 4.4.66
  ftrace/x86: Fix triple fault with graph tracing and suspend-to-ram
  ARCv2: save r30 on kernel entry as gcc uses it for code-gen
  nfsd: check for oversized NFSv2/v3 arguments
  Input: i8042 - add Clevo P650RS to the i8042 reset list
  p9_client_readdir() fix
  MIPS: Avoid BUG warning in arch_check_elf
  MIPS: KGDB: Use kernel context for sleeping threads
  ALSA: seq: Don't break snd_use_lock_sync() loop by timeout
  ALSA: firewire-lib: fix inappropriate assignment between signed/unsigned type
  ipv6: check raw payload size correctly in ioctl
  ipv6: check skb->protocol before lookup for nexthop
  macvlan: Fix device ref leak when purging bc_queue
  ip6mr: fix notification device destruction
  netpoll: Check for skb->queue_mapping
  net: ipv6: RTF_PCPU should not be settable from userspace
  dp83640: don't recieve time stamps twice
  tcp: clear saved_syn in tcp_disconnect()
  sctp: listen on the sock only when it's state is listening or closed
  net: ipv4: fix multipath RTM_GETROUTE behavior when iif is given
  ...

Conflicts:
	drivers/usb/dwc3/gadget.c
	include/linux/usb/quirks.h

Change-Id: I490f766b9a530b10da3107e20709538e4536a99d
2017-05-06 14:23:00 +08:00
Wei Wang
8bbc8d5787 UPSTREAM: checkpatch: special audit for revert commit line
Currently checkpatch.pl does not recognize git's default
commit revert message and will complain about the hash format.
Add special audit for revert commit message line to fix it.

Signed-off-by: Wei Wang <wvw@google.com>
Acked-by: Joe Perches <joe@perches.com>
Bug: 37158168
Test: checkpatch.pl --patch [diff] and no longer see failure
Change-Id: I65cf9a46874621dd6d5c349d2d3ca3b862d61ba3
2017-05-01 15:02:30 +05:30
Huang, Tao
8c7f8dfca2 rk: gcc-wrapper.py ignore memcontrol.c:5337
Change-Id: I3052d1659e45c7c2b36578abf3d52b97a32c8af3
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-03-31 15:15:45 +08:00