15 Jul, 2016

5 commits

  • This reverts commit e127a73d41ac ("scripts/gdb: add a Radix Tree
    Parser")

    The python implementation of radix-tree was merged at the same time as
    the radix-tree system was heavily reworked from commit e9256efcc8e3
    ("radix-tree: introduce radix_tree_empty") to 3bcadd6fa6c4 ("radix-tree:
    free up the bottom bit of exceptional entries for reuse") and no longer
    functions, but also prevents other gdb scripts from loading.

    This functionality has not yet hit a release, so simply remove it for
    now

    Link: http://lkml.kernel.org/r/1467127337-11135-6-git-send-email-kieran@bingham.xyz
    Signed-off-by: Kieran Bingham
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Python doesn't do automatic expansion of paths. In case one passes path
    of the from ~/foo/bar the gdb scripts won't automatically expand that
    and as a result the symbols files won't be loaded.

    Fix this by explicitly expanding all paths which begin with "~"

    Link: http://lkml.kernel.org/r/1467127337-11135-5-git-send-email-kieran@bingham.xyz
    Signed-off-by: Nikolay Borisov
    Signed-off-by: Kieran Bingham
    Reviewed-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Nikolay Borisov
     
  • Since scripts/gdb/linux/constants.py is autogenerated, this should have
    been added to .gitignore when it was introduced.

    Fixes: f197d75fcad1 ("scripts/gdb: provide linux constants")
    Link: http://lkml.kernel.org/r/1467127337-11135-4-git-send-email-kieran@bingham.xyz
    Signed-off-by: Omar Sandoval
    Signed-off-by: Kieran Bingham
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Omar Sandoval
     
  • The autogenerated constants.py file was only being built on the initial
    call, and if the constants.py.in file changed. As we are utilising the
    CPP hooks, we can successfully use the call if_changed_dep rules to
    determine when to rebuild the file based on it's inclusions.

    Link: http://lkml.kernel.org/r/1467127337-11135-3-git-send-email-kieran@bingham.xyz
    Signed-off-by: Kieran Bingham
    Reported-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • The constants.py generation, involves a rule to link into the main
    makefile. This rule has no command and generates a spurious warning
    message in the build logs when CONFIG_SCRIPTS_GDB is enabled.

    Fix simply by giving a no-op action

    Link: http://lkml.kernel.org/r/1467127337-11135-2-git-send-email-kieran@bingham.xyz
    Signed-off-by: Kieran Bingham
    Reported-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     

11 Jun, 2016

1 commit

  • …/kernel/git/powerpc/linux

    Pull powerpc fixes from
    - ptrace: Fix out of bounds array access warning from Khem Raj
    - pseries: Fix PCI config address for DDW from Gavin Shan
    - pseries: Fix IBM_ARCH_VEC_NRCORES_OFFSET since POWER8NVL was added
    from Michael Ellerman
    - of: fix autoloading due to broken modalias with no 'compatible' from
    Wolfram Sang
    - radix: Fix always false comparison against MMU_NO_CONTEXT from Aneesh
    Kumar K.V
    - hash: Compute the segment size correctly for ISA 3.0 from Aneesh
    Kumar K.V
    - nohash: Fix build break with 64K pages from Michael Ellerman

    * tag 'powerpc-4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/nohash: Fix build break with 64K pages
    powerpc/mm/hash: Compute the segment size correctly for ISA 3.0
    powerpc/mm/radix: Fix always false comparison against MMU_NO_CONTEXT
    of: fix autoloading due to broken modalias with no 'compatible'
    powerpc/pseries: Fix IBM_ARCH_VEC_NRCORES_OFFSET since POWER8NVL was added
    powerpc/pseries: Fix PCI config address for DDW
    powerpc/ptrace: Fix out of bounds array access warning

    Linus Torvalds
     

08 Jun, 2016

1 commit

  • Because of an improper dereference, a stray 'C' character was output to
    the modalias when no 'compatible' was specified. This is the case for
    some old PowerMac drivers which only set the 'name' property. Fix it to
    let them match again.

    Reported-by: Mathieu Malaterre
    Signed-off-by: Wolfram Sang
    Tested-by: Mathieu Malaterre
    Cc: Philipp Zabel
    Cc: Andreas Schwab
    Fixes: 6543becf26fff6 ("mod/file2alias: make modalias generation safe for cross compiling")
    Cc: stable@vger.kernel.org # v3.9+
    Signed-off-by: Michael Ellerman

    Wolfram Sang
     

04 Jun, 2016

1 commit

  • Some lines in a commit log appear to be commit SHA1 ids like:

    ERROR: Please use git commit description style 'commit ("")' - ie: 'commit 0123456789ab ("commit description")'
    Link: http://lkml.kernel.org/r/40e03fd7aaf1f55c75d787128d6d17c5a71226c2.1464358556.git.vdavydov@virtuozzo.com

    Reduce the false positives.

    Link: http://lkml.kernel.org/r/eda977eaa8328fef42bb3c87935d97e10ea8ff67.1464384023.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Andrew Morton
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

27 May, 2016

3 commits

  • 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
     
  • Pull kconfig update from Michal Marek:

    - fix for behavior of tristate choice items and fix for documentation
    of existing kconfig behavior [Dirk Gouders]

    - more helpful "unexpected data" kconfig warning [Paul Bolle]

    * 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kconfig/symbol.c: handle choice_values that depend on 'm' symbols
    kconfig-language: elaborate on the type of a choice
    kconfig-language: fix comment on dependency-generated menu structures.
    kconfig: add unexpected data itself to warning

    Linus Torvalds
     
  • Pull kbuild updates from Michal Marek:

    - new option CONFIG_TRIM_UNUSED_KSYMS which does a two-pass build and
    unexports symbols which are not used in the current config [Nicolas
    Pitre]

    - several kbuild rule cleanups [Masahiro Yamada]

    - warning option adjustments for gcov etc [Arnd Bergmann]

    - a few more small fixes

    * 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (31 commits)
    kbuild: move -Wunused-const-variable to W=1 warning level
    kbuild: fix if_change and friends to consider argument order
    kbuild: fix adjust_autoksyms.sh for modules that need only one symbol
    kbuild: fix ksym_dep_filter when multiple EXPORT_SYMBOL() on the same line
    gcov: disable -Wmaybe-uninitialized warning
    gcov: disable tree-loop-im to reduce stack usage
    gcov: disable for COMPILE_TEST
    Kbuild: disable 'maybe-uninitialized' warning for CONFIG_PROFILE_ALL_BRANCHES
    Kbuild: change CC_OPTIMIZE_FOR_SIZE definition
    kbuild: forbid kernel directory to contain spaces and colons
    kbuild: adjust ksym_dep_filter for some cmd_* renames
    kbuild: Fix dependencies for final vmlinux link
    kbuild: better abstract vmlinux sequential prerequisites
    kbuild: fix call to adjust_autoksyms.sh when output directory specified
    kbuild: Get rid of KBUILD_STR
    kbuild: rename cmd_as_s_S to cmd_cpp_s_S
    kbuild: rename cmd_cc_i_c to cmd_cpp_i_c
    kbuild: drop redundant "PHONY += FORCE"
    kbuild: delete unnecessary "@:"
    kbuild: mark help target as PHONY
    ...

    Linus Torvalds
     

24 May, 2016

17 commits

  • A recent addition to the DRM tree for 4.7 added 'extern "C"' guards
    for c++ to all the DRM headers, and that now causes warnings
    in 'make headers_check':

    usr/include/drm/amdgpu_drm.h:38: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm.h:63: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm.h:699: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_fourcc.h:30: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_mode.h:33: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/drm_sarea.h:38: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/exynos_drm.h:21: userspace cannot reference function or variable defined in the kernel
    usr/include/drm/i810_drm.h:7: userspace cannot reference function or variable defined in the kernel

    This changes the headers_check.pl script to not warn about this.
    I'm listing the merge commit as introducing the problem, because
    there are several patches in this branch that each do this for
    one file.

    Signed-off-by: Arnd Bergmann
    Fixes: 7c10ddf87472 ("Merge branch 'drm-uapi-extern-c-fixes' of https://github.com/evelikov/linux into drm-next")
    Reviewed-by: Emil Velikov
    Signed-off-by: Dave Airlie

    Arnd Bergmann
     
  • The recent fixes to lx-dmesg, now allow the command to print
    successfully on Python3, however the python interpreter wraps the bytes
    for each line with a b'' marker.

    To remove this, we need to decode the line, where .decode() will default
    to 'UTF-8'

    Link: http://lkml.kernel.org/r/d67ccf93f2479c94cb3399262b9b796e0dbefcf2.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Acked-by: Dom Cote
    Tested-by: Dom Cote
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • When built against Python 3, GDB differs in the return type for its
    read_memory function, causing the lx-dmesg command to fail.

    Now that we have an improved read_16() we can use the new
    read_memoryview() abstraction to make lx-dmesg return valid data on both
    current Python APIs

    Tested with python 3.4 and 2.7
    Tested with gdb 7.7

    Link: http://lkml.kernel.org/r/28477b727ff7fe3101fd4e426060e8a68317a639.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Dom Cote
    [kieran@bingham.xyz: Adjusted commit log to better reflect code changes]
    Tested-by: Kieran Bingham (Py2.7,Py3.4,GDB10)
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dom Cote
     
  • Change the read_u16 function so it accepts both 'str' and 'byte' as type
    for the arguments.

    When calling read_memory() from gdb API, depending on if it was built
    with 2.7 or 3.X, the format used to return the data will differ ( 'str'
    for 2.7, and 'byte' for 3.X ).

    Add a function read_memoryview() to be able to get a 'memoryview' object
    back from read_memory() both with python 2.7 and 3.X .

    Tested with python 3.4 and 2.7
    Tested with gdb 7.7

    Link: http://lkml.kernel.org/r/73621f564503137a002a639d174e4fb35f73f462.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Dom Cote
    Tested-by: Kieran Bingham (Py2.7,Py3.4,GDB10)
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dom Cote
     
  • The tasks module already provides helpers to find the task struct by
    pid, and the thread_info by task struct; however this is cumbersome to
    utilise on the gdb commandline.

    Wrap these two functionalities together in an extra single helper to
    allow exploring the thread info, from a PID value

    Link: http://lkml.kernel.org/r/dadc5667f053ec811eb3e3033d99d937fedbc93b.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Linux makes use of the Radix Tree data structure to store pointers
    indexed by integer values. This structure is utilised across many
    structures in the kernel including the IRQ descriptor tables, and
    several filesystems.

    This module provides a method to lookup values from a structure given
    its head node.

    Usage:

    The function lx_radix_tree_lookup, must be given a symbol of type struct
    radix_tree_root, and an index into that tree.

    The object returned is a generic integer value, and must be cast
    correctly to the type based on the storage in the data structure.

    For example, to print the irq descriptor in the sparse irq_desc_tree at
    index 18, try the following:

    (gdb) print (struct irq_desc)$lx_radix_tree_lookup(irq_desc_tree, 18)

    Link: http://lkml.kernel.org/r/d2028c55e50cf95a9b7f8ca0d11885174b0cc709.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • We won't see more than 2 billion CPUs any time soon, and having cpu_list
    return long makes the output of lx-cpus a bit ugly.

    Link: http://lkml.kernel.org/r/dcb45c3b0a59e0fd321fa56ff7aa398458c689b3.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kiszka
     
  • The linux kernel provides macro's for iterating against values from the
    cpu_list masks. By providing some commonly used masks, we can mirror
    the kernels helper macros with easy to use generators.

    Link: http://lkml.kernel.org/r/d045c6599771ada1999d49612ee30fd2f9acf17f.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • lx-mounts will identify current mount points based on the 'init_task'
    namespace by default, as we do not yet have a kernel thread list
    implementation to select the current running thread.

    Optionally, a user can specify a PID to list from that process'
    namespace

    Link: http://lkml.kernel.org/r/e614c7bc32d2350b4ff1627ec761a7148e65bfe6.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Provide iomem_resource and ioports_resource printers and command hooks

    It can be quite interesting to halt the kernel as it's booting and check
    to see this list as it is being populated.

    It should be useful in the event that a kernel is not booting, you can
    identify what memory resources have been registered

    Link: http://lkml.kernel.org/r/f0a6b9fa9c92af4d7ed2e7343ccc84150e9c6fc5.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Walk the VFS entries, pre-pending the iname strings to generate a full
    VFS path name from a dentry.

    Link: http://lkml.kernel.org/r/4328fdb2d15ba7f1b21ad21c2eecc38d9cfc4d13.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • If CONFIG_MODULES is not enabled, lx-lsmod tries to find a non-existent
    symbol and generates an unfriendly traceback:

    (gdb) lx-lsmod
    Address Module Size Used by
    Traceback (most recent call last):
    File "scripts/gdb/linux/modules.py", line 75, in invoke
    for module in module_list():
    File "scripts/gdb/linux/modules.py", line 24, in module_list
    module_ptr_type = module_type.get_type().pointer()
    File "scripts/gdb/linux/utils.py", line 28, in get_type
    self._type = gdb.lookup_type(self._name)
    gdb.error: No struct type named module.
    Error occurred in Python command: No struct type named module.

    Catch the error and return an empty module_list() for a clean command
    output as follows:

    (gdb) lx-lsmod
    Address Module Size Used by
    (gdb)

    Link: http://lkml.kernel.org/r/94d533819437408b85ae5864f939dd7ca6fbfcd6.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • If we attempt to read a value that is not available to GDB, an exception
    is raised. Most of the time, this is a good thing; however on occasion
    we will want to be able to determine if a symbol is available.

    By catching the exception to simply return None, we can determine if we
    tried to read an invalid value, without the exception taking our
    execution context away from us

    Link: http://lkml.kernel.org/r/c72b25c06fc66e1d68371154097e2cbb112555d8.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Simplify the module list functions with the new list_for_each_entry
    abstractions

    Link: http://lkml.kernel.org/r/ad0101c9391088608166fcec26af179868973d86.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Facilitate linked-list items by providing a generator to return the
    dereferenced, and type-cast objects from a kernel linked list

    Link: http://lkml.kernel.org/r/2b0998564e6e5abe53585d466f87e491331fd2a4.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Cc: Jeff Mahoney
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • Some macro's and defines are needed when parsing memory, and without
    compiling the kernel as -g3 they are not available in the debug-symbols.

    We use the pre-processor here to extract constants to a dedicated module
    for the linux debugger extensions

    Top level Kbuild is used to call in and generate the constants file,
    while maintaining dependencies on autogenerated files in
    include/generated

    Link: http://lkml.kernel.org/r/bc3df9c25f57ea72177c066a51a446fc19e2c27f.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Kieran Bingham
    Signed-off-by: Jan Kiszka
    Cc: Michal Marek
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kieran Bingham
     
  • This takes the MODULE_REF_BASE into account.

    Link: http://lkml.kernel.org/r/d926d2d54caa034adb964b52215090cbdb875249.1462865983.git.jan.kiszka@siemens.com
    Signed-off-by: Jan Kiszka
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Kiszka
     

21 May, 2016

12 commits

  • Merge more updates from Andrew Morton:

    - the rest of MM

    - KASAN updates

    - procfs updates

    - exit, fork updates

    - printk updates

    - lib/ updates

    - radix-tree testsuite updates

    - checkpatch updates

    - kprobes updates

    - a few other misc bits

    * emailed patches from Andrew Morton : (162 commits)
    samples/kprobes: print out the symbol name for the hooks
    samples/kprobes: add a new module parameter
    kprobes: add the "tls" argument for j_do_fork
    init/main.c: simplify initcall_blacklisted()
    fs/efs/super.c: fix return value
    checkpatch: improve --git shortcut
    checkpatch: reduce number of `git log` calls with --git
    checkpatch: add support to check already applied git commits
    checkpatch: add --list-types to show message types to show or ignore
    checkpatch: advertise the --fix and --fix-inplace options more
    checkpatch: whine about ACCESS_ONCE
    checkpatch: add test for keywords not starting on tabstops
    checkpatch: improve CONSTANT_COMPARISON test for structure members
    checkpatch: add PREFER_IS_ENABLED test
    lib/GCD.c: use binary GCD algorithm instead of Euclidean
    radix-tree: free up the bottom bit of exceptional entries for reuse
    dax: move RADIX_DAX_ definitions to dax.c
    radix-tree: make radix_tree_descend() more useful
    radix-tree: introduce radix_tree_replace_clear_tags()
    radix-tree: tidy up __radix_tree_create()
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here's the "big" driver core update for 4.7-rc1.

    Mostly just debugfs changes, the long-known and messy races with
    removing debugfs files should be fixed thanks to the great work of
    Nicolai Stange. We also have some isa updates in here (the x86
    maintainers told me to take it through this tree), a new warning when
    we run out of dynamic char major numbers, and a few other assorted
    changes, details in the shortlog.

    All have been in linux-next for some time with no reported issues"

    * tag 'driver-core-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (32 commits)
    Revert "base: dd: don't remove driver_data in -EPROBE_DEFER case"
    gpio: ws16c48: Utilize the ISA bus driver
    gpio: 104-idio-16: Utilize the ISA bus driver
    gpio: 104-idi-48: Utilize the ISA bus driver
    gpio: 104-dio-48e: Utilize the ISA bus driver
    watchdog: ebc-c384_wdt: Utilize the ISA bus driver
    iio: stx104: Utilize the module_isa_driver and max_num_isa_dev macros
    iio: stx104: Add X86 dependency to STX104 Kconfig option
    Documentation: Add ISA bus driver documentation
    isa: Implement the max_num_isa_dev macro
    isa: Implement the module_isa_driver macro
    pnp: pnpbios: Add explicit X86_32 dependency to PNPBIOS
    isa: Decouple X86_32 dependency from the ISA Kconfig option
    driver-core: use 'dev' argument in dev_dbg_ratelimited stub
    base: dd: don't remove driver_data in -EPROBE_DEFER case
    kernfs: Move faulting copy_user operations outside of the mutex
    devcoredump: add scatterlist support
    debugfs: unproxify files created through debugfs_create_u32_array()
    debugfs: unproxify files created through debugfs_create_blob()
    debugfs: unproxify files created through debugfs_create_bool()
    ...

    Linus Torvalds
     
  • Pull char / misc driver updates from Greg KH:
    "Here's the big char and misc driver update for 4.7-rc1.

    Lots of different tiny driver subsystems have updates here with new
    drivers and functionality. Details in the shortlog.

    All have been in linux-next with no reported issues for a while"

    * tag 'char-misc-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (125 commits)
    mcb: Delete num_cells variable which is not required
    mcb: Fixed bar number assignment for the gdd
    mcb: Replace ioremap and request_region with the devm version
    mcb: Implement bus->dev.release callback
    mcb: export bus information via sysfs
    mcb: Correctly initialize the bus's device
    mei: bus: call mei_cl_read_start under device lock
    coresight: etb10: adjust read pointer only when needed
    coresight: configuring ETF in FIFO mode when acting as link
    coresight: tmc: implementing TMC-ETF AUX space API
    coresight: moving struct cs_buffers to header file
    coresight: tmc: keep track of memory width
    coresight: tmc: make sysFS and Perf mode mutually exclusive
    coresight: tmc: dump system memory content only when needed
    coresight: tmc: adding mode of operation for link/sinks
    coresight: tmc: getting rid of multiple read access
    coresight: tmc: allocating memory when needed
    coresight: tmc: making prepare/unprepare functions generic
    coresight: tmc: splitting driver in ETB/ETF and ETR components
    coresight: tmc: cleaning up header file
    ...

    Linus Torvalds
     
  • The --git shortcut can be confused by a tag with a dash
    like v4.4-rc1.

    Improve the test to verify the expression ends with a
    dash followed by a numeric value.

    Improve the git log result to verify the " " output
    as well.

    Link: http://lkml.kernel.org/r/c4a3f759291d967641860c3a54bb81177f34325f.1462711962.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • checkpatch currently calls git log multiple times to first get the
    sha1 values and again to get the subject for each
    individual sha1 commit.

    Always get the sha1 and subject at the same time instead. Store the
    subject in a sha1 hash to avoid the second git log exec.

    Link: http://lkml.kernel.org/r/274efab2332ad2308ab5de85a95d255f6e2de5f3.1462711962.git.joe@perches.com
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • It's sometimes useful to scan already committed patches.

    Add --git to scan specific or multiple commits.

    Single commits are scanned with
    --git
    Multiple commits are scanned with
    --git
    --git -

    [joe@perches.com:
    o Don't exec git for each -,
    use a single "git log - "
    o Consolidate the git exec for the and - variants
    o Output 12 character commit hash ids
    o Don't scan git commit merges
    o Use -M to reduce the size of rename commits]

    Signed-off-by: "Du, Changbin"
    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Du, Changbin
     
  • The message types are not currently knowable without reading the code.
    Add a mechanism to see what they are.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The --fix option is relatively unknown and underutilized.

    Add some text to show that it's available when style defects are found.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Add a test for use of ACCESS_ONCE that could be written using READ_ONCE or
    WRITE_ONCE.

    --fix it too if desired.

    The WRITE_ONCE fixes are less correct than the coccinelle script below as
    checkpatch cannot have a completely correct "expression" mechanism because
    checkpatch works on patches and not complete files.

    $ cat access_once.cocci
    @@
    expression e1;
    expression e2;
    @@

    - ACCESS_ONCE(e1) = e2
    + WRITE_ONCE(e1, e2)

    @@
    expression e1;
    @@

    - ACCESS_ONCE(e1)
    + READ_ONCE(e1)

    Signed-off-by: Joe Perches
    Cc: Julia Lawall
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • It's somewhat common and in general a defect for c90 keywords to
    not start on a tabstop.

    Add a test for this condition and warn when it occurs.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • A "." dereference to an all uppercase structure member can be
    incorrectly reported as a CONSTANT_COMPARISON.

    ie: "if (table[i].PANELID == tempdx)"

    Fix it by checking for "." before the constant test.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Using #if defined CONFIG_ || defined CONFIG__MODULE is
    more verbose than necessary and IS_ENABLED(CONFIG_) is preferred.

    So add a test and a message for it.

    --fix it to if desired.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches