22 Jul, 2016

1 commit


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

    Yann Droneaud
     
  • 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

    Yann Droneaud
     
  • 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

    Yann Droneaud
     

20 Jun, 2016

1 commit


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

    Linus Torvalds
     

20 Apr, 2016

2 commits


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

    Nicolai Stange
     

19 Feb, 2016

5 commits


18 Feb, 2016

1 commit


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

    Andrzej Hajda
     

27 Oct, 2015

8 commits


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()
    ...

    Linus Torvalds
     
  • 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

    Sean O. Stalley
     

19 Aug, 2015

1 commit


03 Jun, 2015

1 commit


25 May, 2015

1 commit


21 May, 2015

3 commits


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

    Fabio Estevam
     
  • Make the sentence sensible.

    Signed-off-by: Fabio Estevam
    Acked-by: Julia Lawall
    Signed-off-by: Michal Marek

    Fabio Estevam
     
  • 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

    Fabio Estevam
     
  • 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

    Fabio Estevam
     

15 Apr, 2015

1 commit


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

    Valentin Rothberg
     

21 Dec, 2014

1 commit


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_64

    Signed-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

    Mauro Carvalho Chehab