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
25 Mar, 2015
1 commit
-
Since commit 1c6c69525b40eb76de8adf039409722015927dc3 ("genirq: Reject
bogus threaded irq requests") threaded IRQs without a primary handler
need to be requested with IRQF_ONESHOT, otherwise the request will fail.Until now, this coccinelle script only checked request_threaded_irq().
However, the counterpart devm function (see kernel/irq/devres.c) is also
affected by the missing flag which can be detected with this patch.Signed-off-by: Valentin Rothberg
Signed-off-by: Peter Senna Tschudin
Acked-by: Julia Lawall
Signed-off-by: Michal Marek
21 Dec, 2014
1 commit
-
Pull misc kbuild changes from Michal Marek:
"There are only a few things in the misc branch:- Fix for bugon.cocci semantic patch
- Kdevelop4 files are .gitignored
- Put make binrpm-pkg on diet"* 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
scripts/package: binrpm-pkg do not create source and devel package
.gitignore: Add Kdevelop4 project files
bugon.cocci: fix Options at the macro
25 Nov, 2014
1 commit
-
The comma after --no-includes makes coccinelle to not run the script:
/usr/bin/spatch -D report --very-quiet --no-show-diff --cocci-file ./scripts/coccinelle/misc/bugon.cocci --no-includes, --include-headers --patch . --dir drivers/media/platform/coda/ -I ./arch/x86/include -I arch/x86/include/generated -I include -I ./arch/x86/include/uapi -I arch/x86/include/generated/uapi -I ./include/uapi -I include/generated/uapi -I ./include/linux/kconfig.h
Usage: spatch.opt --sp-file [-o ] [--iso-file ] [options]
Options are:
--sp-file the semantic patch file
-o the output file
--in-place do the modification on the file directly
--backup-suffix suffix to use when making a backup for inplace
...At least with Fedora 20 coccinelle package:
coccinelle-1.0.0-0.rc20.1.fc21.x86_64Signed-off-by: Mauro Carvalho Chehab
Acked-by: Julia Lawall
Tested-by: Wolfram Sang
Fixes: 5be1df66 (Coccinelle: Script to replace if and BUG with BUG_ON)
Cc: stable@vger.kernel.org
Signed-off-by: Michal Marek