11 Oct, 2016
1 commit
-
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.Signed-off-by: Nicholas Mc Guire
Signed-off-by: Michal Marek
02 Oct, 2016
2 commits
-
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.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Memdup_user encapsulates a memory allocation with the flag GFP_KERNEL, so
only allow this flag in the original code.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek
22 Jul, 2016
1 commit
-
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.Signed-off-by: Luis R. Rodriguez
Acked-by: Julia Lawall
Acked-by: Nicolas Palix
Signed-off-by: Michal Marek
21 Jun, 2016
3 commits
-
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.Cc: Tejun Heo
Cc: Pekka Enberg
Acked-by: Julia Lawall
Signed-off-by: Yann Droneaud
Signed-off-by: Michal Marek -
Updates free/devm_free.cocci to recognize functions added by:
- commit 64c862a839a8 ('devres: add kernel standard devm_k.alloc functions')
- commit e31108cad3de ('devres: introduce API "devm_kstrdup"')
- commit 3046365bb470 ('devres: introduce API "devm_kmemdup')
- commit 43339bed7010 ('devres: Add devm_get_free_pages API')
- commit 75f2a4ead5d5 ('devres: Add devm_kasprintf and devm_kvasprintf API')See also Documentation/driver-model/devres.txt
Cc: Joe Perches
Cc: Manish Badarkhe
Cc: Srinivas Pandruvada
Cc: Eli Billauer
Cc: Himangi Saraogi
Cc: Geert Uytterhoeven
Cc: Wolfram Sang
Cc: Daniel Thompson
Acked-by: Julia Lawall
Signed-off-by: Yann Droneaud
Signed-off-by: Michal Marek -
Since commit 3ef0e5ba4673 ('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.Cc: Johannes Weiner
Acked-by: Julia Lawall
Signed-off-by: Yann Droneaud
Signed-off-by: Michal Marek
20 Jun, 2016
1 commit
-
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.Signed-off-by: Vaishali Thakkar
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
27 May, 2016
1 commit
-
Pull misc kbuild updates from Michal Marek:
"This is the non-critical part of kbuild:- Coccinelle fixes, one semantic patch less in this round [Vaishali
Thakkar, Wolfram Sang, Kees Cook]- rpm-pkg support for (open)SUSE's update-bootloader [Jiří Kosian]
- rpm-pkg restored support for $RPMOPTS [Srinivas Pandruvada]
- deb-pkg fixes for the linux-headers package [Bjørn Mork, Azriel
Samson]"* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
coccicheck: Fix missing 0 index in kill loop
scripts/package/Makefile: rpmbuild add support of RPMOPTS
builddeb: fix missing headers in linux-headers package
builddeb: include objtool binary in headers package
kbuild/mkspec: support 'update-bootloader'-based systems
scripts: coccinelle: remove check to move constants to right
Coccinelle: setup_timer: Add space in front of parentheses
20 Apr, 2016
2 commits
-
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.Signed-off-by: Wolfram Sang
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
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.Reported-by: Nishanth Menon
Signed-off-by: Vaishali Thakkar
Acked-by: Julia Lawall
Fixes: c5eda8fd10c6 ("Coccinelle: Add api/setup_timer.cocci")
Signed-off-by: Michal Marek
13 Apr, 2016
1 commit
-
In order to protect against file removal races, debugfs files created via
debugfs_create_file() now get wrapped by a struct file_operations at their
opening.If the original struct file_operations are known to be safe against removal
races by themselves already, the proxy creation may be bypassed by creating
the files through debugfs_create_file_unsafe().In order to help debugfs users who use the common
DEFINE_SIMPLE_ATTRIBUTE() + debugfs_create_file()
idiom to transition to removal safe struct file_operations, the helper
macro DEFINE_DEBUGFS_ATTRIBUTE() has been introduced.Thus, the preferred strategy is to use
DEFINE_DEBUGFS_ATTRIBUTE() + debugfs_create_file_unsafe()
now.Introduce a Coccinelle script that searches for
DEFINE_SIMPLE_ATTRIBUTE()-defined struct file_operations handed into
debugfs_create_file(). Suggest to turn these usages into the
DEFINE_DEBUGFS_ATTRIBUTE() + debugfs_create_file_unsafe()
pattern.Signed-off-by: Nicolai Stange
Acked-by: Julia Lawall
Signed-off-by: Greg Kroah-Hartman
19 Feb, 2016
5 commits
-
Use the timer API function setup_timer instead of structure field
assignments to initialize a timer.Signed-off-by: Vaishali Thakkar
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
Rule r is only use in org or report mode, so only execute it in those
cases.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Rule r is only used in org or report mode, so only execute it in those
cases.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Rule r is only use in org or report mode, so only execute it in those
cases.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Rule r is only use in org or report mode, so only execute it in those
cases.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek
18 Feb, 2016
1 commit
-
& is no longer allowed in column 0, since Coccinelle 1.0.4.
Signed-off-by: Julia Lawall
Tested-by: Nishanth Menon
Cc: stable@vger.kernel.org
Signed-off-by: Michal Marek
13 Jan, 2016
1 commit
-
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.Signed-off-by: Andrzej Hajda
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
27 Oct, 2015
8 commits
-
Extend checking on tables containing structures which are initialized
without specifying member name. Added new tables for checking:
i2c_device_id and platform_device_id.Signed-off-by: Daniel Granat
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
Extend ifnullfree to the various destroy functions that were recently
extended to tolerate NULL arguments.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Adjust tests to compare against NULL, to match cases that explicitly make
that comparison.Remove removal and re-addition of freeing functions.
Add position variable on usb_free_urb in the non-patch case.
Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Device node iterators perform an of_node_put on each iteration, so putting
an of_node_put before a continue results in a double put.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Fix a couple spelling mistakes.
Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
This effectively reverts 932058a5d5f9 ("coccinelle: misc: semantic patch
to delete overly complex return code processing").There can be both symmetry and readability reasons for not wanting to do
the final function call as part of the return statement and to maintain
a clear separation of success and error paths.Since this is in no way mandated by the coding standard, let's just
remove this semantic patch to avoid having "clean up" patches being
posted over and over in response to these Coccinelle warnings.Signed-off-by: Johan Hovold
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
The original version only considered the case where the then branch
contains only one call to PTR_ERR. Reimplement the whole thing to allow
multiple calls, with potentially different arguments.Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek -
Move constants to the right in binary operators.
Signed-off-by: Julia Lawall
Signed-off-by: Michal Marek
09 Sep, 2015
2 commits
-
Merge second patch-bomb from Andrew Morton:
"Almost all of the rest of MM. There was an unusually large amount of
MM material this time"* emailed patches from Andrew Morton : (141 commits)
zpool: remove no-op module init/exit
mm: zbud: constify the zbud_ops
mm: zpool: constify the zpool_ops
mm: swap: zswap: maybe_preload & refactoring
zram: unify error reporting
zsmalloc: remove null check from destroy_handle_cache()
zsmalloc: do not take class lock in zs_shrinker_count()
zsmalloc: use class->pages_per_zspage
zsmalloc: consider ZS_ALMOST_FULL as migrate source
zsmalloc: partial page ordering within a fullness_list
zsmalloc: use shrinker to trigger auto-compaction
zsmalloc: account the number of compacted pages
zsmalloc/zram: introduce zs_pool_stats api
zsmalloc: cosmetic compaction code adjustments
zsmalloc: introduce zs_can_compact() function
zsmalloc: always keep per-class stats
zsmalloc: drop unused variable `nr_to_migrate'
mm/memblock.c: fix comment in __next_mem_range()
mm/page_alloc.c: fix type information of memoryless node
memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node()
... -
add [pci|dma]_pool_zalloc coccinelle check.
replaces instances of [pci|dma]_pool_alloc() followed by memset(0)
with [pci|dma]_pool_zalloc().Signed-off-by: Sean O. Stalley
Acked-by: Julia Lawall
Cc: Vinod Koul
Cc: Bjorn Helgaas
Cc: Gilles Muller
Cc: Nicolas Palix
Cc: Michal Marek
Cc: Sebastian Andrzej Siewior
Cc: Jonathan Corbet
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds
19 Aug, 2015
1 commit
-
i2c_add_driver (through i2c_register_driver) sets the owner field so we
can drop it also from i2c drivers, just like from platform drivers.Signed-off-by: Krzysztof Kozlowski
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
03 Jun, 2015
1 commit
-
Insert a blank line in order to improve the readability of the
generated patch and also make it consistent with the other
.cocci files.Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
25 May, 2015
1 commit
-
Improve the commit log of the generated patch by mentioning the commit
log that makes threaded IRQs without a primary handler to be requested
with the IRQF_ONESHOT flag.Signed-off-by: Fabio Estevam
Acked- by: Valentin Rothberg
Signed-off-by: Michal Marek
21 May, 2015
3 commits
-
This semantic patch replaces explicit computations of vma page count
with explicit function call.Signed-off-by: Dmitry Kalinkin
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
Correct form is 'always requested'.
Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
According to Documentation/SubmittingPatches:
"Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
to do frotz", as if you are giving orders to the codebase to change
its behaviour.So do as recommended.
Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
20 May, 2015
4 commits
-
According to Documentation/SubmittingPatches:
"Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
to do frotz", as if you are giving orders to the codebase to change
its behaviour."So do as recommended.
Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
Make the sentence sensible.
Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
According to Documentation/SubmittingPatches:
"Describe your changes in imperative mood, e.g. "make xyzzy do frotz"
instead of "[This patch] makes xyzzy do frotz" or "[I] changed xyzzy
to do frotz", as if you are giving orders to the codebase to change
its behaviour."So do as recommended.
Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek -
Insert a blank line in order to improve the readability of the
generated patch and also make it consistent with the other
.cocci files.Signed-off-by: Fabio Estevam
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
15 Apr, 2015
1 commit
-
if()/BUG conversion to BUG_ON must be avoided when there's side effect
in condition. The reason being BUG_ON won't execute the condition when
CONFIG_BUG is not defined.Inspired-by: J. Bruce Fields
Suggested-by: Julia Lawall
Acked-by: Julia Lawall
Signed-off-by: Fabian Frederick
Signed-off-by: Michal Marek