13 Jun, 2018

1 commit

  • Pull more Kbuild updates from Masahiro Yamada:

    - fix some bugs introduced by the recent Kconfig syntax extension

    - add some symbols about compiler information in Kconfig, such as
    CC_IS_GCC, CC_IS_CLANG, GCC_VERSION, etc.

    - test compiler capability for the stack protector in Kconfig, and
    clean-up Makefile

    - test compiler capability for GCC-plugins in Kconfig, and clean-up
    Makefile

    - allow to enable GCC-plugins for COMPILE_TEST

    - test compiler capability for KCOV in Kconfig and correct dependency

    - remove auto-detect mode of the GCOV format, which is now more nicely
    handled in Kconfig

    - test compiler capability for mprofile-kernel on PowerPC, and clean-up
    Makefile

    - misc cleanups

    * tag 'kbuild-v4.18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    linux/linkage.h: replace VMLINUX_SYMBOL_STR() with __stringify()
    kconfig: fix localmodconfig
    sh: remove no-op macro VMLINUX_SYMBOL()
    powerpc/kbuild: move -mprofile-kernel check to Kconfig
    Documentation: kconfig: add recommended way to describe compiler support
    gcc-plugins: disable GCC_PLUGIN_STRUCTLEAK_BYREF_ALL for COMPILE_TEST
    gcc-plugins: allow to enable GCC_PLUGINS for COMPILE_TEST
    gcc-plugins: test plugin support in Kconfig and clean up Makefile
    gcc-plugins: move GCC version check for PowerPC to Kconfig
    kcov: test compiler capability in Kconfig and correct dependency
    gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT
    arm64: move GCC version check for ARCH_SUPPORTS_INT128 to Kconfig
    kconfig: add CC_IS_CLANG and CLANG_VERSION
    kconfig: add CC_IS_GCC and GCC_VERSION
    stack-protector: test compiler capability in Kconfig and drop AUTO mode
    kbuild: fix endless syncconfig in case arch Makefile sets CROSS_COMPILE

    Linus Torvalds
     

11 Jun, 2018

4 commits

  • When kconfig syntax moved to use $(FOO) for environment variables
    localmodconfig was not updated.
    Fix so it now works with the new syntax $(FOO)

    Fixes: 104daea149c4 ("kconfig: reference environment variables directly and remove 'option env='")
    Reported-by: Kevin Locke
    Reported-by: Andrei Vagin
    Signed-off-by: Sam Ravnborg
    Tested-by: Kevin Locke
    Signed-off-by: Masahiro Yamada

    Sam Ravnborg
     
  • Run scripts/gcc-plugin.sh from Kconfig so that users can enable
    GCC_PLUGINS only when the compiler supports building plugins.

    Kconfig defines a new symbol, PLUGIN_HOSTCC. This will contain
    the compiler (g++ or gcc) used for building plugins, or empty
    if the plugin can not be supported at all.

    This allows us to remove all ugly testing in Makefile.gcc-plugins.

    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook

    Masahiro Yamada
     
  • For PowerPC, GCC 5.2 is the requirement for GCC plugins. Move the
    version check to Kconfig so that the GCC plugin menus will be hidden
    if an older compiler is in use.

    Signed-off-by: Masahiro Yamada
    Acked-by: Andrew Donnellan
    Reviewed-by: Kees Cook

    Masahiro Yamada
     
  • As Documentation/kbuild/kconfig-language.txt notes, 'select' should be
    be used with care - it forces a lower limit of another symbol, ignoring
    the dependency. Currently, KCOV can select GCC_PLUGINS even if arch
    does not select HAVE_GCC_PLUGINS. This could cause the unmet direct
    dependency.

    Now that Kconfig can test compiler capability, let's handle this in a
    more sophisticated way.

    There are two ways to enable KCOV; use the compiler that natively
    supports -fsanitize-coverage=trace-pc, or build the SANCOV plugin if
    the compiler has ability to build GCC plugins. Hence, the correct
    dependency for KCOV is:

    depends on CC_HAS_SANCOV_TRACE_PC || GCC_PLUGINS

    You do not need to build the SANCOV plugin if the compiler already
    supports -fsanitize-coverage=trace-pc. Hence, the select should be:

    select GCC_PLUGIN_SANCOV if !CC_HAS_SANCOV_TRACE_PC

    With this, GCC_PLUGIN_SANCOV is selected only when necessary, so
    scripts/Makefile.gcc-plugins can be cleaner.

    I also cleaned up Kconfig and scripts/Makefile.kcov as well.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook

    Masahiro Yamada
     

10 Jun, 2018

1 commit

  • Pull staging/IIO updates from Greg KH:
    "Here is the big staging and IIO driver update for 4.18-rc1.

    It was delayed as I wanted to make sure the final driver deletions did
    not cause any major merge issues, and all now looks good.

    There are a lot of patches here, just over 1000. The diffstat summary
    shows the major changes here:

    1007 files changed, 16828 insertions(+), 227770 deletions(-)

    Because of this, we might be close to shrinking the overall kernel
    source code size for two releases in a row.

    There was loads of work in this release cycle, primarily:

    - tons of ks7010 driver cleanups

    - lots of mt7621 driver fixes and cleanups

    - most driver cleanups

    - wilc1000 fixes and cleanups

    - lots and lots of IIO driver cleanups and new additions

    - debugfs cleanups for all staging drivers

    - lots of other staging driver cleanups and fixes, the shortlog has
    the full details.

    but the big user-visable things here are the removal of 3 chunks of
    code:

    - ncpfs and ipx were removed on schedule, no one has cared about this
    code since it moved to staging last year, and if it needs to come
    back, it can be reverted.

    - lustre file system is removed.

    I've ranted at the lustre developers about once a year for the past
    5 years, with no real forward progress at all to clean things up
    and get the code into the "real" part of the kernel.

    Given that the lustre developers continue to work on an external
    tree and try to port those changes to the in-kernel tree every once
    in a while, this whole thing really really is not working out at
    all. So I'm deleting it so that the developers can spend the time
    working in their out-of-tree location and get things cleaned up
    properly to get merged into the tree correctly at a later date.

    Because of these file removals, you will have merge issues on some of
    these files (2 in the ipx code, 1 in the ncpfs code, and 1 in the
    atomisp driver). Just delete those files, it's a simple merge :)

    All of this has been in linux-next for a while with no reported
    problems"

    * tag 'staging-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1011 commits)
    staging: ipx: delete it from the tree
    ncpfs: remove uapi .h files
    ncpfs: remove Documentation
    ncpfs: remove compat functionality
    staging: ncpfs: delete it
    staging: lustre: delete the filesystem from the tree.
    staging: vc04_services: no need to save the log debufs dentries
    staging: vc04_services: vchiq_debugfs_log_entry can be a void *
    staging: vc04_services: remove struct vchiq_debugfs_info
    staging: vc04_services: move client dbg directory into static variable
    staging: vc04_services: remove odd vchiq_debugfs_top() wrapper
    staging: vc04_services: no need to check debugfs return values
    staging: mt7621-gpio: reorder includes alphabetically
    staging: mt7621-gpio: change gc_map to don't use pointers
    staging: mt7621-gpio: use GPIOF_DIR_OUT and GPIOF_DIR_IN macros instead of custom values
    staging: mt7621-gpio: change 'to_mediatek_gpio' to make just a one line return
    staging: mt7621-gpio: dt-bindings: update documentation for #interrupt-cells property
    staging: mt7621-gpio: update #interrupt-cells for the gpio node
    staging: mt7621-gpio: dt-bindings: complete documentation for the gpio
    staging: mt7621-dts: add missing properties to gpio node
    ...

    Linus Torvalds
     

08 Jun, 2018

9 commits

  • This will be useful to describe the clang version dependency.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook

    Masahiro Yamada
     
  • Move the test for -fstack-protector(-strong) option to Kconfig.

    If the compiler does not support the option, the corresponding menu
    is automatically hidden. If STRONG is not supported, it will fall
    back to REGULAR. If REGULAR is not supported, it will be disabled.
    This means, AUTO is implicitly handled by the dependency solver of
    Kconfig, hence removed.

    I also turned the 'choice' into only two boolean symbols. The use of
    'choice' is not a good idea here, because all of all{yes,mod,no}config
    would choose the first visible value, while we want allnoconfig to
    disable as many features as possible.

    X86 has additional shell scripts in case the compiler supports those
    options, but generates broken code. I added CC_HAS_SANE_STACKPROTECTOR
    to test this. I had to add -m32 to gcc-x86_32-has-stack-protector.sh
    to make it work correctly.

    Signed-off-by: Masahiro Yamada
    Acked-by: Kees Cook

    Masahiro Yamada
     
  • Merge updates from Andrew Morton:

    - a few misc things

    - ocfs2 updates

    - v9fs updates

    - MM

    - procfs updates

    - lib/ updates

    - autofs updates

    * emailed patches from Andrew Morton : (118 commits)
    autofs: small cleanup in autofs_getpath()
    autofs: clean up includes
    autofs: comment on selinux changes needed for module autoload
    autofs: update MAINTAINERS entry for autofs
    autofs: use autofs instead of autofs4 in documentation
    autofs: rename autofs documentation files
    autofs: create autofs Kconfig and Makefile
    autofs: delete fs/autofs4 source files
    autofs: update fs/autofs4/Makefile
    autofs: update fs/autofs4/Kconfig
    autofs: copy autofs4 to autofs
    autofs4: use autofs instead of autofs4 everywhere
    autofs4: merge auto_fs.h and auto_fs4.h
    fs/binfmt_misc.c: do not allow offset overflow
    checkpatch: improve patch recognition
    lib/ucs2_string.c: add MODULE_LICENSE()
    lib/mpi: headers cleanup
    lib/percpu_ida.c: use _irqsave() instead of local_irq_save() + spin_lock
    lib/idr.c: remove simple_ida_lock
    lib/bitmap.c: micro-optimization for __bitmap_complement()
    ...

    Linus Torvalds
     
  • There are mode change and rename only patches that are unrecognized by
    checkpatch.

    Recognize them.

    [joe@perches.com: fix missing close parenthesis]
    Link: http://lkml.kernel.org/r/af44c893f6973393f2a5b11f1a8e5cd4c8bbbba5.camel@perches.com
    Link: http://lkml.kernel.org/r/974a407e6fa18abd5a965da39cc68986a4c4f091.1526949367.git.joe@perches.com
    Signed-off-by: Joe Perches
    Reported-by: Heinrich Schuchardt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • There are mode change and rename only patches that are unrecognized
    by the get_maintainer.pl script.

    Recognize them.

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

    Joe Perches
     
  • We're already using a union of many fields here, so stop abusing the
    _mapcount and make page_type its own field. That implies renaming some of
    the machinery that creates PageBuddy, PageBalloon and PageKmemcg; bring
    back the PG_buddy, PG_balloon and PG_kmemcg names.

    As suggested by Kirill, make page_type a bitmask. Because it starts out
    life as -1 (thanks to sharing the storage with _mapcount), setting a page
    flag means clearing the appropriate bit. This gives us space for probably
    twenty or so extra bits (depending how paranoid we want to be about
    _mapcount underflow).

    Link: http://lkml.kernel.org/r/20180518194519.3820-3-willy@infradead.org
    Signed-off-by: Matthew Wilcox
    Acked-by: Kirill A. Shutemov
    Acked-by: Vlastimil Babka
    Cc: Christoph Lameter
    Cc: Dave Hansen
    Cc: Jérôme Glisse
    Cc: Lai Jiangshan
    Cc: Martin Schwidefsky
    Cc: Pekka Enberg
    Cc: Randy Dunlap
    Cc: Andrey Ryabinin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Add the appropriate SPDX tag to these scripts.

    Miscellanea:

    o Add my copyright to checkpatch

    Link: http://lkml.kernel.org/r/d08e49e8f6562c58a63792aa64306d1851f81f4b.camel@perches.com
    Signed-off-by: Joe Perches
    Cc: Andy Whitcroft
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Pull DeviceTree updates from Rob Herring:

    - Sync dtc with upstream version v1.4.6-21-g84e414b0b5bc. This adds new
    warnings which are either fixed or disabled by default (enabled with
    W=1).

    - Validate an untrusted offset in DT overlay function
    update_usages_of_a_phandle_reference

    - Fix a use after free error of_platform_device_destroy

    - Fix an off by 1 string errors in unittest

    - Avoid creating a struct device for OPP nodes

    - Update DT specific submitting-patches.txt with patch content and
    subject requirements.

    - Move some bindings to their proper subsystem locations

    - Add vendor prefixes for Kaohsiung, SiFive, Avnet, Wi2Wi, Logic PD,
    and ArcherMind

    - Add documentation for "no-gpio-delays" property in FSI bus GPIO
    master

    - Add compatible for r8a77990 SoC ravb ethernet block

    - More wack-a-mole removal of 'status' property in examples

    * tag 'devicetree-for-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (25 commits)
    dt-bindings: submitting-patches: add guidance on patch content and subject
    of: platform: stop accessing invalid dev in of_platform_device_destroy
    dt-bindings: net: ravb: Add support for r8a77990 SoC
    dt-bindings: Add vendor prefix for ArcherMind
    dt-bindings: fsi-master-gpio: Document "no-gpio-delays" property
    dt-bindings: Add vendor prefix for Logic PD
    of: overlay: validate offset from property fixups
    of: unittest: for strings, account for trailing \0 in property length field
    drm: rcar-du: disable dtc graph-endpoint warnings on DT overlays
    kbuild: disable new dtc graph and unit-address warnings
    scripts/dtc: Update to upstream version v1.4.6-21-g84e414b0b5bc
    MAINTAINERS: add keyword for devicetree overlay notifiers
    dt-bindings: define vendor prefix for Wi2Wi, Inc.
    dt-bindings: Add vendor prefix for Avnet, Inc.
    dt-bindings: Relocate Tegra20 memory controller bindings
    dt-bindings: Add "sifive" vendor prefix
    dt-bindings: exynos: move ADC binding to iio/adc/ directory
    dt-bindings: powerpc/4xx: move 4xx NDFC and EMAC bindings to subsystem directories
    dt-bindings: move various RNG bindings to rng/ directory
    dt-bindings: move various timer bindings to timer/ directory
    ...

    Linus Torvalds
     
  • Pull powerpc updates from Michael Ellerman:
    "Notable changes:

    - Support for split PMD page table lock on 64-bit Book3S (Power8/9).

    - Add support for HAVE_RELIABLE_STACKTRACE, so we properly support
    live patching again.

    - Add support for patching barrier_nospec in copy_from_user() and
    syscall entry.

    - A couple of fixes for our data breakpoints on Book3S.

    - A series from Nick optimising TLB/mm handling with the Radix MMU.

    - Numerous small cleanups to squash sparse/gcc warnings from Mathieu
    Malaterre.

    - Several series optimising various parts of the 32-bit code from
    Christophe Leroy.

    - Removal of support for two old machines, "SBC834xE" and "C2K"
    ("GEFanuc,C2K"), which is why the diffstat has so many deletions.

    And many other small improvements & fixes.

    There's a few out-of-area changes. Some minor ftrace changes OK'ed by
    Steve, and a fix to our powernv cpuidle driver. Then there's a series
    touching mm, x86 and fs/proc/task_mmu.c, which cleans up some details
    around pkey support. It was ack'ed/reviewed by Ingo & Dave and has
    been in next for several weeks.

    Thanks to: Akshay Adiga, Alastair D'Silva, Alexey Kardashevskiy, Al
    Viro, Andrew Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Arnd
    Bergmann, Balbir Singh, Cédric Le Goater, Christophe Leroy, Christophe
    Lombard, Colin Ian King, Dave Hansen, Fabio Estevam, Finn Thain,
    Frederic Barrat, Gautham R. Shenoy, Haren Myneni, Hari Bathini, Ingo
    Molnar, Jonathan Neuschäfer, Josh Poimboeuf, Kamalesh Babulal,
    Madhavan Srinivasan, Mahesh Salgaonkar, Mark Greer, Mathieu Malaterre,
    Matthew Wilcox, Michael Neuling, Michal Suchanek, Naveen N. Rao,
    Nicholas Piggin, Nicolai Stange, Olof Johansson, Paul Gortmaker, Paul
    Mackerras, Peter Rosin, Pridhiviraj Paidipeddi, Ram Pai, Rashmica
    Gupta, Ravi Bangoria, Russell Currey, Sam Bobroff, Samuel
    Mendoza-Jonas, Segher Boessenkool, Shilpasri G Bhat, Simon Guo,
    Souptick Joarder, Stewart Smith, Thiago Jung Bauermann, Torsten Duwe,
    Vaibhav Jain, Wei Yongjun, Wolfram Sang, Yisheng Xie, YueHaibing"

    * tag 'powerpc-4.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (251 commits)
    powerpc/64s/radix: Fix missing ptesync in flush_cache_vmap
    cpuidle: powernv: Fix promotion from snooze if next state disabled
    powerpc: fix build failure by disabling attribute-alias warning in pci_32
    ocxl: Fix missing unlock on error in afu_ioctl_enable_p9_wait()
    powerpc-opal: fix spelling mistake "Uniterrupted" -> "Uninterrupted"
    powerpc: fix spelling mistake: "Usupported" -> "Unsupported"
    powerpc/pkeys: Detach execute_only key on !PROT_EXEC
    powerpc/powernv: copy/paste - Mask SO bit in CR
    powerpc: Remove core support for Marvell mv64x60 hostbridges
    powerpc/boot: Remove core support for Marvell mv64x60 hostbridges
    powerpc/boot: Remove support for Marvell mv64x60 i2c controller
    powerpc/boot: Remove support for Marvell MPSC serial controller
    powerpc/embedded6xx: Remove C2K board support
    powerpc/lib: optimise PPC32 memcmp
    powerpc/lib: optimise 32 bits __clear_user()
    powerpc/time: inline arch_vtime_task_switch()
    powerpc/Makefile: set -mcpu=860 flag for the 8xx
    powerpc: Implement csum_ipv6_magic in assembly
    powerpc/32: Optimise __csum_partial()
    powerpc/lib: Adjust .balign inside string functions for PPC32
    ...

    Linus Torvalds
     

07 Jun, 2018

4 commits

  • Pull networking updates from David Miller:

    1) Add Maglev hashing scheduler to IPVS, from Inju Song.

    2) Lots of new TC subsystem tests from Roman Mashak.

    3) Add TCP zero copy receive and fix delayed acks and autotuning with
    SO_RCVLOWAT, from Eric Dumazet.

    4) Add XDP_REDIRECT support to mlx5 driver, from Jesper Dangaard
    Brouer.

    5) Add ttl inherit support to vxlan, from Hangbin Liu.

    6) Properly separate ipv6 routes into their logically independant
    components. fib6_info for the routing table, and fib6_nh for sets of
    nexthops, which thus can be shared. From David Ahern.

    7) Add bpf_xdp_adjust_tail helper, which can be used to generate ICMP
    messages from XDP programs. From Nikita V. Shirokov.

    8) Lots of long overdue cleanups to the r8169 driver, from Heiner
    Kallweit.

    9) Add BTF ("BPF Type Format"), from Martin KaFai Lau.

    10) Add traffic condition monitoring to iwlwifi, from Luca Coelho.

    11) Plumb extack down into fib_rules, from Roopa Prabhu.

    12) Add Flower classifier offload support to igb, from Vinicius Costa
    Gomes.

    13) Add UDP GSO support, from Willem de Bruijn.

    14) Add documentation for eBPF helpers, from Quentin Monnet.

    15) Add TLS tx offload to mlx5, from Ilya Lesokhin.

    16) Allow applications to be given the number of bytes available to read
    on a socket via a control message returned from recvmsg(), from
    Soheil Hassas Yeganeh.

    17) Add x86_32 eBPF JIT compiler, from Wang YanQing.

    18) Add AF_XDP sockets, with zerocopy support infrastructure as well.
    From Björn Töpel.

    19) Remove indirect load support from all of the BPF JITs and handle
    these operations in the verifier by translating them into native BPF
    instead. From Daniel Borkmann.

    20) Add GRO support to ipv6 gre tunnels, from Eran Ben Elisha.

    21) Allow XDP programs to do lookups in the main kernel routing tables
    for forwarding. From David Ahern.

    22) Allow drivers to store hardware state into an ELF section of kernel
    dump vmcore files, and use it in cxgb4. From Rahul Lakkireddy.

    23) Various RACK and loss detection improvements in TCP, from Yuchung
    Cheng.

    24) Add TCP SACK compression, from Eric Dumazet.

    25) Add User Mode Helper support and basic bpfilter infrastructure, from
    Alexei Starovoitov.

    26) Support ports and protocol values in RTM_GETROUTE, from Roopa
    Prabhu.

    27) Support bulking in ->ndo_xdp_xmit() API, from Jesper Dangaard
    Brouer.

    28) Add lots of forwarding selftests, from Petr Machata.

    29) Add generic network device failover driver, from Sridhar Samudrala.

    * ra.kernel.org:/pub/scm/linux/kernel/git/davem/net-next: (1959 commits)
    strparser: Add __strp_unpause and use it in ktls.
    rxrpc: Fix terminal retransmission connection ID to include the channel
    net: hns3: Optimize PF CMDQ interrupt switching process
    net: hns3: Fix for VF mailbox receiving unknown message
    net: hns3: Fix for VF mailbox cannot receiving PF response
    bnx2x: use the right constant
    Revert "net: sched: cls: Fix offloading when ingress dev is vxlan"
    net: dsa: b53: Fix for brcm tag issue in Cygnus SoC
    enic: fix UDP rss bits
    netdev-FAQ: clarify DaveM's position for stable backports
    rtnetlink: validate attributes in do_setlink()
    mlxsw: Add extack messages for port_{un, }split failures
    netdevsim: Add extack error message for devlink reload
    devlink: Add extack to reload and port_{un, }split operations
    net: metrics: add proper netlink validation
    ipmr: fix error path when ipmr_new_table fails
    ip6mr: only set ip6mr_table from setsockopt when ip6mr_new_table succeeds
    net: hns3: remove unused hclgevf_cfg_func_mta_filter
    netfilter: provide udp*_lib_lookup for nf_tproxy
    qed*: Utilize FW 8.37.2.0
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:
    "One new feature was added to ftrace, which is the trace_marker now
    supports triggers. For example:

    # cd /sys/kernel/debug/tracing
    # echo 'snapshot' > events/ftrace/print/trigger
    # echo 'cause snapshot' > trace_marker

    The rest of the changes are various clean ups and also one stable fix
    that was added late in the cycle"

    * tag 'trace-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (21 commits)
    tracing: Use match_string() instead of open coding it in trace_set_options()
    branch-check: fix long->int truncation when profiling branches
    ring-buffer: Fix typo in comment
    ring-buffer: Fix a bunch of typos in comments
    tracing/selftest: Add test to test simple snapshot trigger for trace_marker
    tracing/selftest: Add test to test hist trigger between kernel event and trace_marker
    tracing/selftest: Add selftests to test trace_marker histogram triggers
    ftrace/selftest: Fix reset_trigger() to handle triggers with filters
    ftrace/selftest: Have the reset_trigger code be a bit more careful
    tracing: Document trace_marker triggers
    tracing: Allow histogram triggers to access ftrace internal events
    tracing: Prevent further users of zero size static arrays in trace events
    tracing: Have zero size length in filter logic be full string
    tracing: Add trigger file for trace_markers tracefs/ftrace/print
    tracing: Do not show filter file for ftrace internal events
    tracing: Add brackets in ftrace event dynamic arrays
    tracing: Have event_trace_init() called by trace_init_tracefs()
    tracing: Add __find_event_file() to find event files without restrictions
    tracing: Do not reference event data in post call triggers
    tracepoints: Fix the descriptions of tracepoint_probe_register{_prio}
    ...

    Linus Torvalds
     
  • Pull Kconfig updates from Masahiro Yamada:
    "Kconfig now supports new functionality to perform textual
    substitution. It has been a while since Linus suggested to move
    compiler option tests from makefiles to Kconfig. Finally, here it is.

    The implementation has been generalized into a Make-like macro
    language.

    Some built-in functions such as 'shell' are provided. Variables and
    user-defined functions are also supported so that 'cc-option',
    'ld-option', etc. are implemented as macros.

    Summary:

    - refactor package checks for building {m,n,q,g}conf

    - remove unused/unmaintained localization support

    - remove Kbuild cache

    - drop CONFIG_CROSS_COMPILE support

    - replace 'option env=' with direct variable expansion

    - add built-in functions such as 'shell'

    - support variables and user-defined functions

    - add helper macros as as 'cc-option'

    - add unit tests and a document of the new macro language

    - add 'testconfig' to help

    - fix warnings from GCC 8.1"

    * tag 'kconfig-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
    kconfig: Avoid format overflow warning from GCC 8.1
    kbuild: Move last word of nconfig help to the previous line
    kconfig: Add testconfig into make help output
    kconfig: add basic helper macros to scripts/Kconfig.include
    kconfig: show compiler version text in the top comment
    kconfig: test: add Kconfig macro language tests
    Documentation: kconfig: document a new Kconfig macro language
    kconfig: error out if a recursive variable references itself
    kconfig: add 'filename' and 'lineno' built-in variables
    kconfig: add 'info', 'warning-if', and 'error-if' built-in functions
    kconfig: expand lefthand side of assignment statement
    kconfig: support append assignment operator
    kconfig: support simply expanded variable
    kconfig: support user-defined function and recursively expanded variable
    kconfig: begin PARAM state only when seeing a command keyword
    kconfig: replace $(UNAME_RELEASE) with function call
    kconfig: add 'shell' built-in function
    kconfig: add built-in function support
    kconfig: make default prompt of mainmenu less specific
    kconfig: remove sym_expand_string_value()
    ...

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - improve fixdep to coalesce consecutive slashes in dep-files

    - fix some issues of the maintainer string generation in deb-pkg script

    - remove unused CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX and clean-up
    several tools and linker scripts

    - clean-up modpost

    - allow to enable the dead code/data elimination for PowerPC in EXPERT
    mode

    - improve two coccinelle scripts for better performance

    - pass endianness and machine size flags to sparse for all architecture

    - misc fixes

    * tag 'kbuild-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
    kbuild: add machine size to CHECKFLAGS
    kbuild: add endianness flag to CHEKCFLAGS
    kbuild: $(CHECK) doesnt need NOSTDINC_FLAGS twice
    scripts: Fixed printf format mismatch
    scripts/tags.sh: use `find` for $ALLSOURCE_ARCHS generation
    coccinelle: deref_null: improve performance
    coccinelle: mini_lock: improve performance
    powerpc: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selected
    kbuild: Allow LD_DEAD_CODE_DATA_ELIMINATION to be selectable if enabled
    kbuild: LD_DEAD_CODE_DATA_ELIMINATION no -ffunction-sections/-fdata-sections for module build
    kbuild: Fix asm-generic/vmlinux.lds.h for LD_DEAD_CODE_DATA_ELIMINATION
    modpost: constify *modname function argument where possible
    modpost: remove redundant is_vmlinux() test
    modpost: use strstarts() helper more widely
    modpost: pass struct elf_info pointer to get_modinfo()
    checkpatch: remove VMLINUX_SYMBOL() check
    vmlinux.lds.h: remove no-op macro VMLINUX_SYMBOL()
    kbuild: remove CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX
    export.h: remove code for prefixing symbols with underscore
    depmod.sh: remove symbol prefix support
    ...

    Linus Torvalds
     

06 Jun, 2018

5 commits

  • Pull drm updates from Dave Airlie:
    "This starts to support NVIDIA volta hardware with nouveau, and adds
    amdgpu support for the GPU in the Kabylake-G (the intel + radeon
    single package chip), along with some initial Intel icelake enabling.

    Summary:

    New Drivers:
    - v3d - driver for broadcom V3D V3.x+ hardware
    - xen-front - XEN PV display frontend

    core:
    - handle zpos normalization in the core
    - stop looking at legacy pointers in atomic paths
    - improved scheduler documentation
    - improved aspect ratio validation
    - aspect ratio support for 64:27 and 256:135
    - drop unused control node code.

    i915:
    - Icelake (ICL) enabling
    - GuC/HuC refactoring
    - PSR/PSR2 enabling and fixes
    - DPLL management refactoring
    - DP MST fixes
    - NV12 enabling
    - HDCP improvements
    - GEM/Execlist/reset improvements
    - GVT improvements
    - stolen memory first 4k fix

    amdgpu:
    - Vega 20 support
    - VEGAM support (Kabylake-G)
    - preOS scanout buffer reservation
    - power management gfxoff support for raven
    - SR-IOV fixes
    - Vega10 power profiles and clock voltage control
    - scatter/gather display support on CZ/ST

    amdkfd:
    - GFX9 dGPU support
    - userptr memory mapping

    nouveau:
    - major refactoring for Volta GV100 support

    tda998x:
    - HDMI i2c CEC support

    etnaviv:
    - removed unused logging code
    - license text cleanups
    - MMU handling improvements
    - timeout fence fix for 50 days uptime

    tegra:
    - IOMMU support in gr2d/gr3d drivers
    - zpos support

    vc4:
    - syncobj support
    - CTM, plane alpha and async cursor support

    analogix_dp:
    - HPD and aux chan fixes

    sun4i:
    - MIPI DSI support

    tilcdc:
    - clock divider fixes for OMAP-l138 LCDK board

    rcar-du:
    - R8A77965 support
    - dma-buf fences fixes
    - hardware indexed crtc/du group handling
    - generic zplane property support

    atmel-hclcdc:
    - generic zplane property support

    mediatek:
    - use generic video mode function

    exynos:
    - S5PV210 FIMD variant support
    - IPP v2 framework
    - more HW overlays support"

    * tag 'drm-next-2018-06-06-1' of git://anongit.freedesktop.org/drm/drm: (1286 commits)
    drm/amdgpu: fix 32-bit build warning
    drm/exynos: fimc: signedness bug in fimc_setup_clocks()
    drm/exynos: scaler: fix static checker warning
    drm/amdgpu: Use dev_info() to report amdkfd is not supported for this ASIC
    drm/amd/display: Remove use of division operator for long longs
    drm/amdgpu: Update GFX info structure to match what vega20 used
    drm/amdgpu/pp: remove duplicate assignment
    drm/sched: add rcu_barrier after entity fini
    drm/amdgpu: move VM BOs on LRU again
    drm/amdgpu: consistenly use VM moved flag
    drm/amdgpu: kmap PDs/PTs in amdgpu_vm_update_directories
    drm/amdgpu: further optimize amdgpu_vm_handle_moved
    drm/amdgpu: cleanup amdgpu_vm_validate_pt_bos v2
    drm/amdgpu: rework VM state machine lock handling v2
    drm/amdgpu: Add runtime VCN PG support
    drm/amdgpu: Enable VCN static PG by default on RV
    drm/amdgpu: Add VCN static PG support on RV
    drm/amdgpu: Enable VCN CG by default on RV
    drm/amdgpu: Add static CG control for VCN on RV
    drm/exynos: Fix default value for zpos plane property
    ...

    Linus Torvalds
     
  • Pull char/misc driver updates from Greg KH:
    "Here is the "big" char and misc driver patches for 4.18-rc1.

    It's not a lot of stuff here, but there are some highlights:

    - coreboot driver updates

    - soundwire driver updates

    - android binder updates

    - fpga big sync, mostly documentation

    - lots of minor driver updates

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

    * tag 'char-misc-4.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (81 commits)
    vmw_balloon: fixing double free when batching mode is off
    MAINTAINERS: Add driver-api/fpga path
    fpga: clarify that unregister functions also free
    documentation: fpga: move fpga-region.txt to driver-api
    documentation: fpga: add bridge document to driver-api
    documentation: fpga: move fpga-mgr.txt to driver-api
    Documentation: fpga: move fpga overview to driver-api
    fpga: region: kernel-doc fixes
    fpga: bridge: kernel-doc fixes
    fpga: mgr: kernel-doc fixes
    fpga: use SPDX
    fpga: region: change api, add fpga_region_create/free
    fpga: bridge: change api, don't use drvdata
    fpga: manager: change api, don't use drvdata
    fpga: region: don't use drvdata in common fpga code
    Drivers: hv: vmbus: Removed an unnecessary cast from void *
    ver_linux: Drop redundant calls to system() to test if file is readable
    ver_linux: Move stderr redirection from function parameter to function body
    misc: IBM Virtual Management Channel Driver (VMC)
    rpmsg: Correct support for MODULE_DEVICE_TABLE()
    ...

    Linus Torvalds
     
  • The Lustre filesystem has been in the kernel tree for over 5 years now.
    While it has been an endless source of enjoyment for new kernel
    developers learning how to do basic codingstyle cleanups, as well as an
    semi-entertaining source of bewilderment from the vfs developers any
    time they have looked into the codebase to try to figure out how to port
    their latest api changes to this filesystem, it has not really moved
    forward into the "this is in shape to get out of staging" despite many
    half-completed attempts.

    And getting code out of staging is the main goal of that portion of the
    kernel tree. Code should not stagnate and it feels like having this
    code in staging is only causing the development cycle of the filesystem
    to take longer than it should. There is a whole separate out-of-tree
    copy of this codebase where the developers work on it, and then random
    changes are thrown over the wall at staging at some later point in time.
    This dual-tree development model has never worked, and the state of this
    codebase is proof of that.

    So, let's just delete the whole mess. Now the lustre developers can go
    off and work in their out-of-tree codebase and not have to worry about
    providing valid changelog entries and breaking their patches up into
    logical pieces. They can take the time they have spend doing those
    types of housekeeping chores and get the codebase into a much better
    shape, and it can be submitted for inclusion into the real part of the
    kernel tree when ready.

    Cc: Oleg Drokin
    Cc: Andreas Dilger
    Cc: James Simmons
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     
  • Merge faddr2line updates from Josh Poimboeuf:

    - revert faddr2line's default output to its original non-code-listing
    output, and make the code listing an optional feature

    - give faddr2line a real maintainer, so get_maintainer.pl will actually
    CC me on future patches

    * emailed patches from Josh Poimboeuf :
    MAINTAINERS: add Josh Poimboeuf as faddr2line maintainer
    scripts/faddr2line: make the new code listing format optional

    Linus Torvalds
     
  • Commit 6870c0165feaa5 ("scripts/faddr2line: show the code context")
    radically altered the output format of the faddr2line tool. And while
    the new list output format might have merit it broke my vim usage and
    was hard to read.

    Make the new format optional; using a '--list' argument and attempt to
    make the output slightly easier to read by adding a little whitespace to
    separate the different files and explicitly mark the line in question.

    Cc: Changbin Du
    Fixes: 6870c0165feaa5 ("scripts/faddr2line: show the code context")
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Josh Poimboeuf
    Signed-off-by: Linus Torvalds

    Peter Zijlstra (Intel)
     

05 Jun, 2018

5 commits

  • check that CC can build executables and use that compiler instead of HOSTCC

    Suggested-by: Arnd Bergmann
    Signed-off-by: Alexei Starovoitov
    Signed-off-by: David S. Miller

    Alexei Starovoitov
     
  • In file included from scripts/kconfig/zconf.tab.c:2485:
    scripts/kconfig/confdata.c: In function ‘conf_write’:
    scripts/kconfig/confdata.c:773:22: warning: ‘%s’ directive writing likely 7 or more bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
    sprintf(newname, "%s%s", dirname, basename);
    ^~
    scripts/kconfig/confdata.c:773:19: note: assuming directive output of 7 bytes
    sprintf(newname, "%s%s", dirname, basename);
    ^~~~~~
    scripts/kconfig/confdata.c:773:2: note: ‘sprintf’ output 1 or more bytes (assuming 4104) into a destination of size 4097
    sprintf(newname, "%s%s", dirname, basename);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    scripts/kconfig/confdata.c:776:23: warning: ‘.tmpconfig.’ directive writing 11 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
    sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
    ^~~~~~~~~~~
    scripts/kconfig/confdata.c:776:3: note: ‘sprintf’ output between 13 and 4119 bytes into a destination of size 4097
    sprintf(tmpname, "%s.tmpconfig.%d", dirname, (int)getpid());
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Increase the size of tmpname and newname to make GCC happy.

    Cc: stable@vger.kernel.org
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Masahiro Yamada

    Nathan Chancellor
     
  • Signed-off-by: Petr Vorel
    Signed-off-by: Masahiro Yamada

    Petr Vorel
     
  • Signed-off-by: Petr Vorel
    Signed-off-by: Masahiro Yamada

    Petr Vorel
     
  • Pull documentation updates from Jonathan Corbet:
    "There's been a fair amount of work in the docs tree this time around,
    including:

    - Extensive RST conversions and organizational work in the
    memory-management docs thanks to Mike Rapoport.

    - An update of Documentation/features from Andrea Parri and a script
    to keep it updated.

    - Various LICENSES updates from Thomas, along with a script to check
    SPDX tags.

    - Work to fix dangling references to documentation files; this
    involved a fair number of one-liner comment changes outside of
    Documentation/

    ... and the usual list of documentation improvements, typo fixes, etc"

    * tag 'docs-4.18' of git://git.lwn.net/linux: (103 commits)
    Documentation: document hung_task_panic kernel parameter
    docs/admin-guide/mm: add high level concepts overview
    docs/vm: move ksm and transhuge from "user" to "internals" section.
    docs: Use the kerneldoc comments for memalloc_no*()
    doc: document scope NOFS, NOIO APIs
    docs: update kernel versions and dates in tables
    docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
    docs/vm: transhuge: minor updates
    docs/vm: transhuge: change sections order
    Documentation: arm: clean up Marvell Berlin family info
    Documentation: gpio: driver: Fix a typo and some odd grammar
    docs: ranoops.rst: fix location of ramoops.txt
    scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
    docs: uio-howto.rst: use a code block to solve a warning
    mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
    w1: w1_io.c: fix a kernel-doc warning
    Documentation/process/posting: wrap text at 80 cols
    docs: admin-guide: add cgroup-v2 documentation
    Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
    Documentation: refcount-vs-atomic: Update reference to LKMM doc.
    ...

    Linus Torvalds
     

01 Jun, 2018

1 commit

  • The powerpc toolchain can compile combinations of 32/64 bit and
    big/little endian, so it's convenient to consider, e.g.,

    `CC -m64 -mbig-endian`

    To be the C compiler for the purpose of invoking it to build target
    artifacts. So overriding the CC variable to include these flags works
    for this purpose.

    Unfortunately that is not compatible with the way the proposed new
    Kconfig macro language will work.

    After previous patches in this series, these flags can be carefully
    passed in using flags instead.

    Signed-off-by: Nicholas Piggin
    Signed-off-by: Michael Ellerman

    Nicholas Piggin
     

29 May, 2018

10 commits

  • scripts/kallsyms.c: function write_src:
    "printf", the #1 format specifier "d" need arg type "int",
    but the according arg "table_cnt" has type "unsigned int"

    scripts/recordmcount.c: function do_file:
    "fprintf", the #1 format specifier "d" need arg type "int",
    but the according arg "(*w2)(ehdr->e_machine)" has type "unsigned int"

    scripts/recordmcount.h: function find_secsym_ndx:
    "fprintf", the #1 format specifier "d" need arg type "int",
    but the according arg "txtndx" has type "unsigned int"

    Signed-off-by: nixiaoming
    Acked-by: Steven Rostedt (VMware)
    Signed-off-by: Masahiro Yamada

    nixiaoming
     
  • Kconfig got text processing tools like we see in Make. Add Kconfig
    helper macros to scripts/Kconfig.include like we collect Makefile
    macros in scripts/Kbuild.include.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook
    Reviewed-by: Ulf Magnusson

    Masahiro Yamada
     
  • Here are the test cases I used for developing the text expansion
    feature.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • When using a recursively expanded variable, it is a common mistake
    to make circular reference.

    For example, Make terminates the following code:

    X = $(X)
    Y := $(X)

    Let's detect the circular expansion in Kconfig, too.

    On the other hand, a function that recurses itself is a commonly-used
    programming technique. So, Make does not check recursion in the
    reference with 'call'. For example, the following code continues
    running eternally:

    X = $(call X)
    Y := $(X)

    Kconfig allows circular expansion if one or more arguments are given,
    but terminates when the same function is recursively invoked 1000 times,
    assuming it is a programming mistake.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The special variables, $(filename) and $(lineno), are expanded to a
    file name and its line number being parsed, respectively.

    Suggested-by: Randy Dunlap
    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook

    Masahiro Yamada
     
  • Syntax:
    $(info,)
    $(warning-if,,)
    $(error-if,, part is y.

    Kconfig does not implement the lazy expansion as used in the 'if'
    'and, 'or' functions in Make. In other words, Kconfig does not
    support conditional expansion. The unconditional 'error' function
    would always terminate the parsing, hence would be useless in Kconfig.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook

    Masahiro Yamada
     
  • Make expands the lefthand side of assignment statements. In fact,
    Kbuild relies on it since kernel makefiles mostly look like this:

    obj-$(CONFIG_FOO) += foo.o

    Do likewise in Kconfig.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Support += operator. This appends a space and the text on the
    righthand side to a variable.

    The timing of the evaluation of the righthand side depends on the
    flavor of the variable. If the lefthand side was originally defined
    as a simple variable, the righthand side is expanded immediately.
    Otherwise, the expansion is deferred. Appending something to an
    undefined variable results in a recursive variable.

    To implement this, we need to remember the flavor of variables.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • The previous commit added variable and user-defined function. They
    work similarly in the sense that the evaluation is deferred until
    they are used.

    This commit adds another type of variable, simply expanded variable,
    as we see in Make.

    The := operator defines a simply expanded variable, expanding the
    righthand side immediately. This works like traditional programming
    language variables.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Now, we got a basic ability to test compiler capability in Kconfig.

    config CC_HAS_STACKPROTECTOR
    def_bool $(shell,($(CC) -Werror -fstack-protector -E -x c /dev/null -o /dev/null 2>/dev/null) && echo y || echo n)

    This works, but it is ugly to repeat this long boilerplate.

    We want to describe like this:

    config CC_HAS_STACKPROTECTOR
    bool
    default $(cc-option,-fstack-protector)

    It is straight-forward to add a new function, but I do not like to
    hard-code specialized functions like that. Hence, here is another
    feature, user-defined function. This works as a textual shorthand
    with parameterization.

    A user-defined function is defined by using the = operator, and can
    be referenced in the same way as built-in functions. A user-defined
    function in Make is referenced like $(call my-func,arg1,arg2), but I
    omitted the 'call' to make the syntax shorter.

    The definition of a user-defined function contains $(1), $(2), etc.
    in its body to reference the parameters. It is grammatically valid
    to pass more or fewer arguments when calling it. We already exploit
    this feature in our makefiles; scripts/Kbuild.include defines cc-option
    which takes two arguments at most, but most of the callers pass only
    one argument.

    By the way, a variable is supported as a subset of this feature since
    a variable is "a user-defined function with zero argument". In this
    context, I mean "variable" as recursively expanded variable. I will
    add a different flavored variable in the next commit.

    The code above can be written as follows:

    [Example Code]

    success = $(shell,($(1)) >/dev/null 2>&1 && echo y || echo n)
    cc-option = $(success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null)

    config CC_HAS_STACKPROTECTOR
    def_bool $(cc-option,-fstack-protector)

    [Result]
    $ make -s alldefconfig && tail -n 1 .config
    CONFIG_CC_HAS_STACKPROTECTOR=y

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada