26 Oct, 2020

2 commits

  • Use a more generic form for __section that requires quotes to avoid
    complications with clang and gcc differences.

    Remove the quote operator # from compiler_attributes.h __section macro.

    Convert all unquoted __section(foo) uses to quoted __section("foo").
    Also convert __attribute__((section("foo"))) uses to __section("foo")
    even if the __attribute__ has multiple list entry forms.

    Conversion done using the script at:

    https://lore.kernel.org/lkml/75393e5ddc272dc7403de74d645e6c6e0f4e70eb.camel@perches.com/2-convert_section.pl

    Signed-off-by: Joe Perches
    Reviewed-by: Nick Desaulniers
    Reviewed-by: Miguel Ojeda
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • If set, use the environment variable GIT_DIR to change the default .git
    location of the kernel git tree.

    If GIT_DIR is unset, keep using the current ".git" default.

    Link: https://lkml.kernel.org/r/c5e23b45562373d632fccb8bc04e563abba4dd1d.camel@perches.com
    Signed-off-by: Joe Perches
    Tested-by: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     

24 Oct, 2020

1 commit

  • Pull networking fixes from Jakub Kicinski:
    "Cross-tree/merge window issues:

    - rtl8150: don't incorrectly assign random MAC addresses; fix late in
    the 5.9 cycle started depending on a return code from a function
    which changed with the 5.10 PR from the usb subsystem

    Current release regressions:

    - Revert "virtio-net: ethtool configurable RXCSUM", it was causing
    crashes at probe when control vq was not negotiated/available

    Previous release regressions:

    - ixgbe: fix probing of multi-port 10 Gigabit Intel NICs with an MDIO
    bus, only first device would be probed correctly

    - nexthop: Fix performance regression in nexthop deletion by
    effectively switching from recently added synchronize_rcu() to
    synchronize_rcu_expedited()

    - netsec: ignore 'phy-mode' device property on ACPI systems; the
    property is not populated correctly by the firmware, but firmware
    configures the PHY so just keep boot settings

    Previous releases - always broken:

    - tcp: fix to update snd_wl1 in bulk receiver fast path, addressing
    bulk transfers getting "stuck"

    - icmp: randomize the global rate limiter to prevent attackers from
    getting useful signal

    - r8169: fix operation under forced interrupt threading, make the
    driver always use hard irqs, even on RT, given the handler is light
    and only wants to schedule napi (and do so through a _irqoff()
    variant, preferably)

    - bpf: Enforce pointer id generation for all may-be-null register
    type to avoid pointers erroneously getting marked as null-checked

    - tipc: re-configure queue limit for broadcast link

    - net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN
    tunnels

    - fix various issues in chelsio inline tls driver

    Misc:

    - bpf: improve just-added bpf_redirect_neigh() helper api to support
    supplying nexthop by the caller - in case BPF program has already
    done a lookup we can avoid doing another one

    - remove unnecessary break statements

    - make MCTCP not select IPV6, but rather depend on it"

    * tag 'net-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (62 commits)
    tcp: fix to update snd_wl1 in bulk receiver fast path
    net: Properly typecast int values to set sk_max_pacing_rate
    netfilter: nf_fwd_netdev: clear timestamp in forwarding path
    ibmvnic: save changed mac address to adapter->mac_addr
    selftests: mptcp: depends on built-in IPv6
    Revert "virtio-net: ethtool configurable RXCSUM"
    rtnetlink: fix data overflow in rtnl_calcit()
    net: ethernet: mtk-star-emac: select REGMAP_MMIO
    net: hdlc_raw_eth: Clear the IFF_TX_SKB_SHARING flag after calling ether_setup
    net: hdlc: In hdlc_rcv, check to make sure dev is an HDLC device
    bpf, libbpf: Guard bpf inline asm from bpf_tail_call_static
    bpf, selftests: Extend test_tc_redirect to use modified bpf_redirect_neigh()
    bpf: Fix bpf_redirect_neigh helper api to support supplying nexthop
    mptcp: depends on IPV6 but not as a module
    sfc: move initialisation of efx->filter_sem to efx_init_struct()
    mpls: load mpls_gso after mpls_iptunnel
    net/sched: act_tunnel_key: fix OOB write in case of IPv6 ERSPAN tunnels
    net/sched: act_gate: Unlock ->tcfa_lock in tc_setup_flow_action()
    net: dsa: bcm_sf2: make const array static, makes object smaller
    mptcp: MPTCP_IPV6 should depend on IPV6 instead of selecting it
    ...

    Linus Torvalds
     

23 Oct, 2020

2 commits

  • Pull Kconfig updates from Masahiro Yamada:

    - Remove unused or useless code from qconf

    - Allow to edit "int", "hex", "string" options in place, and remove the
    separate edit box from qconf

    * tag 'kconfig-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kconfig: qconf: create QApplication after option checks
    kconfig: qconf: remove Y, M, N columns
    kconfig: qconf: remove ConfigView class
    kconfig: qconf: move setShowName/Range() to ConfigList from ConfigView
    kconfig: qconf: remove ConfigLineEdit class
    kconfig: qconf: allow to edit "int", "hex", "string" menus in-place
    kconfig: qconf: show data column all the time
    kconfig: qconf: move ConfigView::updateList(All) to ConfigList class
    kconfig: qconf: remove unused ConfigItem::okRename()
    kconfig: qconf: update the intro message to match to the current code
    kconfig: qconf: reformat the intro message

    Linus Torvalds
     
  • Pull Kbuild updates from Masahiro Yamada:

    - Support 'make compile_commands.json' to generate the compilation
    database more easily, avoiding stale entries

    - Support 'make clang-analyzer' and 'make clang-tidy' for static checks
    using clang-tidy

    - Preprocess scripts/modules.lds.S to allow CONFIG options in the
    module linker script

    - Drop cc-option tests from compiler flags supported by our minimal
    GCC/Clang versions

    - Use always 12-digits commit hash for CONFIG_LOCALVERSION_AUTO=y

    - Use sha1 build id for both BFD linker and LLD

    - Improve deb-pkg for reproducible builds and rootless builds

    - Remove stale, useless scripts/namespace.pl

    - Turn -Wreturn-type warning into error

    - Fix build error of deb-pkg when CONFIG_MODULES=n

    - Replace 'hostname' command with more portable 'uname -n'

    - Various Makefile cleanups

    * tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
    kbuild: Use uname for LINUX_COMPILE_HOST detection
    kbuild: Only add -fno-var-tracking-assignments for old GCC versions
    kbuild: remove leftover comment for filechk utility
    treewide: remove DISABLE_LTO
    kbuild: deb-pkg: clean up package name variables
    kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
    kbuild: enforce -Werror=return-type
    scripts: remove namespace.pl
    builddeb: Add support for all required debian/rules targets
    builddeb: Enable rootless builds
    builddeb: Pass -n to gzip for reproducible packages
    kbuild: split the build log of kallsyms
    kbuild: explicitly specify the build id style
    scripts/setlocalversion: make git describe output more reliable
    kbuild: remove cc-option test of -Werror=date-time
    kbuild: remove cc-option test of -fno-stack-check
    kbuild: remove cc-option test of -fno-strict-overflow
    kbuild: move CFLAGS_{KASAN,UBSAN,KCSAN} exports to relevant Makefiles
    kbuild: remove redundant CONFIG_KASAN check from scripts/Makefile.kasan
    kbuild: do not create built-in objects for external module builds
    ...

    Linus Torvalds
     

22 Oct, 2020

1 commit

  • Based on the discussion in [0], update the bpf_redirect_neigh() helper to
    accept an optional parameter specifying the nexthop information. This makes
    it possible to combine bpf_fib_lookup() and bpf_redirect_neigh() without
    incurring a duplicate FIB lookup - since the FIB lookup helper will return
    the nexthop information even if no neighbour is present, this can simply
    be passed on to bpf_redirect_neigh() if bpf_fib_lookup() returns
    BPF_FIB_LKUP_RET_NO_NEIGH. Thus fix & extend it before helper API is frozen.

    [0] https://lore.kernel.org/bpf/393e17fc-d187-3a8d-2f0d-a627c7c63fca@iogearbox.net/

    Signed-off-by: Toke Høiland-Jørgensen
    Signed-off-by: Daniel Borkmann
    Reviewed-by: David Ahern
    Link: https://lore.kernel.org/bpf/160322915615.32199.1187570224032024535.stgit@toke.dk

    Toke Høiland-Jørgensen
     

20 Oct, 2020

3 commits

  • `hostname` may not be present on some systems as it's not mandated by
    POSIX/SUSv4. This isn't just a theoretical problem: on Arch Linux,
    `hostname` is provided by `inetutils`, which isn't part of the base
    distribution.

    ./scripts/mkcompile_h: line 38: hostname: command not found

    Use `uname -n` instead, which is more likely to be available (and
    mandated by standards).

    Signed-off-by: Chris Down
    Signed-off-by: Masahiro Yamada

    Chris Down
     
  • After commit 43fee2b23895 ("kbuild: do not redirect the first
    prerequisite for filechk"), the rule is no longer automatically passed
    $< as stdin, so remove the stale comment.

    Fixes: 43fee2b23895 ("kbuild: do not redirect the first prerequisite for filechk")
    Signed-off-by: Rasmus Villemoes
    Signed-off-by: Masahiro Yamada

    Rasmus Villemoes
     
  • This change removes all instances of DISABLE_LTO from
    Makefiles, as they are currently unused, and the preferred
    method of disabling LTO is to filter out the flags instead.

    Note added by Masahiro Yamada:
    DISABLE_LTO was added as preparation for GCC LTO, but GCC LTO was
    not pulled into the mainline. (https://lkml.org/lkml/2014/4/8/272)

    Suggested-by: Kees Cook
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook
    Signed-off-by: Masahiro Yamada

    Sami Tolvanen
     

19 Oct, 2020

1 commit

  • Pull coccinelle updates from Julia Lawall.

    * 'for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux:
    coccinelle: api: add kfree_mismatch script
    coccinelle: iterators: Add for_each_child.cocci script
    scripts: coccicheck: Change default condition for parallelism
    scripts: coccicheck: Add quotes to improve portability
    coccinelle: api: kfree_sensitive: print memset position
    coccinelle: misc: add flexible_array.cocci script
    coccinelle: api: add kvmalloc script
    scripts: coccicheck: Change default value for parallelism
    coccinelle: misc: add excluded_middle.cocci script
    scripts: coccicheck: Improve error feedback when coccicheck fails
    coccinelle: api: update kzfree script to kfree_sensitive
    coccinelle: misc: add uninitialized_var.cocci script
    coccinelle: ifnullfree: add vfree(), kvfree*() functions
    coccinelle: api: add kobj_to_dev.cocci script
    coccinelle: add patch rule for dma_alloc_coherent
    scripts: coccicheck: Add chain mode to list of modes

    Linus Torvalds
     

18 Oct, 2020

1 commit


17 Oct, 2020

20 commits

  • Pull documentation updates from Mauro Carvalho Chehab:
    "A series of patches addressing warnings produced by make htmldocs.
    This includes:

    - kernel-doc markup fixes

    - ReST fixes

    - Updates at the build system in order to support newer versions of
    the docs build toolchain (Sphinx)

    After this series, the number of html build warnings should reduce
    significantly, and building with Sphinx 3.1 or later should now be
    supported (although it is still recommended to use Sphinx 2.4.4).

    As agreed with Jon, I should be sending you a late pull request by the
    end of the merge window addressing remaining issues with docs build,
    as there are a number of warning fixes that depends on pull requests
    that should be happening along the merge window.

    The end goal is to have a clean htmldocs build on Kernel 5.10.

    PS. It should be noticed that Sphinx 3.0 is not currently supported,
    as it lacks support for C domain namespaces. Such feature, needed in
    order to document uAPI system calls with Sphinx 3.x, was added only on
    Sphinx 3.1"

    * tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (75 commits)
    PM / devfreq: remove a duplicated kernel-doc markup
    mm/doc: fix a literal block markup
    workqueue: fix a kernel-doc warning
    docs: virt: user_mode_linux_howto_v2.rst: fix a literal block markup
    Input: sparse-keymap: add a description for @sw
    rcu/tree: docs: document bkvcache new members at struct kfree_rcu_cpu
    nl80211: docs: add a description for s1g_cap parameter
    usb: docs: document altmode register/unregister functions
    kunit: test.h: fix a bad kernel-doc markup
    drivers: core: fix kernel-doc markup for dev_err_probe()
    docs: bio: fix a kerneldoc markup
    kunit: test.h: solve kernel-doc warnings
    block: bio: fix a warning at the kernel-doc markups
    docs: powerpc: syscall64-abi.rst: fix a malformed table
    drivers: net: hamradio: fix document location
    net: appletalk: Kconfig: Fix docs location
    dt-bindings: fix references to files converted to yaml
    memblock: get rid of a :c:type leftover
    math64.h: kernel-docs: Convert some markups into normal comments
    media: uAPI: buffer.rst: remove a left-over documentation
    ...

    Linus Torvalds
     
  • Merge more updates from Andrew Morton:
    "155 patches.

    Subsystems affected by this patch series: mm (dax, debug, thp,
    readahead, page-poison, util, memory-hotplug, zram, cleanups), misc,
    core-kernel, get_maintainer, MAINTAINERS, lib, bitops, checkpatch,
    binfmt, ramfs, autofs, nilfs, rapidio, panic, relay, kgdb, ubsan,
    romfs, and fault-injection"

    * emailed patches from Andrew Morton : (155 commits)
    lib, uaccess: add failure injection to usercopy functions
    lib, include/linux: add usercopy failure capability
    ROMFS: support inode blocks calculation
    ubsan: introduce CONFIG_UBSAN_LOCAL_BOUNDS for Clang
    sched.h: drop in_ubsan field when UBSAN is in trap mode
    scripts/gdb/tasks: add headers and improve spacing format
    scripts/gdb/proc: add struct mount & struct super_block addr in lx-mounts command
    kernel/relay.c: drop unneeded initialization
    panic: dump registers on panic_on_warn
    rapidio: fix the missed put_device() for rio_mport_add_riodev
    rapidio: fix error handling path
    nilfs2: fix some kernel-doc warnings for nilfs2
    autofs: harden ioctl table
    ramfs: fix nommu mmap with gaps in the page cache
    mm: remove the now-unnecessary mmget_still_valid() hack
    mm/gup: take mmap_lock in get_dump_page()
    binfmt_elf, binfmt_elf_fdpic: use a VMA list snapshot
    coredump: rework elf/elf_fdpic vma_dump_size() into common helper
    coredump: refactor page range dumping into common helper
    coredump: let dump_emit() bail out on short writes
    ...

    Linus Torvalds
     
  • When the kernel is compiled with Clang, -fsanitize=bounds expands to
    -fsanitize=array-bounds and -fsanitize=local-bounds.

    Enabling -fsanitize=local-bounds with Clang has the unfortunate
    side-effect of inserting traps; this goes back to its original intent,
    which was as a hardening and not a debugging feature [1]. The same
    feature made its way into -fsanitize=bounds, but the traps remained. For
    that reason, -fsanitize=bounds was split into 'array-bounds' and
    'local-bounds' [2].

    Since 'local-bounds' doesn't behave like a normal sanitizer, enable it
    with Clang only if trapping behaviour was requested by
    CONFIG_UBSAN_TRAP=y.

    Add the UBSAN_BOUNDS_LOCAL config to Kconfig.ubsan to enable the
    'local-bounds' option by default when UBSAN_TRAP is enabled.

    [1] http://lists.llvm.org/pipermail/llvm-dev/2012-May/049972.html
    [2] http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20131021/091536.html

    Suggested-by: Marco Elver
    Signed-off-by: George Popescu
    Signed-off-by: Andrew Morton
    Reviewed-by: David Brazdil
    Reviewed-by: Marco Elver
    Cc: Masahiro Yamada
    Cc: Michal Marek
    Cc: Nathan Chancellor
    Cc: Nick Desaulniers
    Cc: Kees Cook
    Cc: Dmitry Vyukov
    Cc: Arnd Bergmann
    Cc: Peter Zijlstra
    Link: https://lkml.kernel.org/r/20200922074330.2549523-1-georgepope@google.com
    Signed-off-by: Linus Torvalds

    George Popescu
     
  • With the patch.

    TASK PID COMM
    0xffffffff82c2b8c0 0 swapper/0
    0xffff888a0ba20040 1 systemd
    0xffff888a0ba24040 2 kthreadd
    0xffff888a0ba28040 3 rcu_gp

    w/o
    0xffffffff82c2b8c0 0 swapper/0
    0xffff888a0ba20040 1 systemd
    0xffff888a0ba24040 2 kthreadd
    0xffff888a0ba28040 3 rcu_gp

    Signed-off-by: Ritesh Harjani
    Signed-off-by: Andrew Morton
    Reviewed-by: Jan Kiszka
    Cc: Kieran Bingham
    Link: http://lkml.kernel.org/r/54c868c79b5fc364a8be7799891934a6fe6d1464.1597742951.git.riteshh@linux.ibm.com
    Signed-off-by: Linus Torvalds

    Ritesh Harjani
     
  • This is many times found useful while debugging some FS related
    issue.

    mount super_block devname pathname fstype options
    0xffff888a0bfa4b40 0xffff888a0bfc1000 none / rootfs rw 0 0
    0xffff888a033f75c0 0xffff8889fcf65000 /dev/root / ext4 rw,relatime 0 0
    0xffff8889fc8ce040 0xffff888a0bb51000 devtmpfs /dev devtmpfs rw,relatime 0 0

    Signed-off-by: Ritesh Harjani
    Signed-off-by: Andrew Morton
    Reviewed-by: Jan Kiszka
    Cc: Kieran Bingham
    Link: http://lkml.kernel.org/r/a3c4177e1597b3e06d66d55e07d72c0c46a03571.1597742951.git.riteshh@linux.ibm.com
    Signed-off-by: Linus Torvalds

    Ritesh Harjani
     
  • The author signed-off-by checks are currently very vague. Cases like same
    name or same address are not handled separately.

    For example, running checkpatch on commit be6577af0cef ("parisc: Add
    atomic64_set_release() define to avoid CPU soft lockups"), gives:

    WARNING: Missing Signed-off-by: line by nominal patch author
    'John David Anglin '

    The signoff line was:
    "Signed-off-by: Dave Anglin "

    Clearly the author has signed off but with a slightly different version
    of his name. A more appropriate warning would have been to point out
    at the name mismatch instead.

    Previously, the values assumed by $authorsignoff were either 0 or 1
    to indicate whether a proper sign off by author is present.
    Extended the checks to handle four new cases.

    $authorsignoff values now denote the following:

    0: Missing sign off by patch author.

    1: Sign off present and identical.

    2: Addresses and names match, but comments differ.
    "James Watson(JW) ", "James Watson "

    3: Addresses match, but names are different.
    "James Watson ", "James "

    4: Names match, but addresses are different.
    "James Watson ", "James Watson "

    5: Names match, addresses excluding subaddress details (RFC 5233) match.
    "James Watson ", "James Watson "

    Also introduced a new message type FROM_SIGN_OFF_MISMATCH
    for cases 2, 3, 4 and 5.

    Suggested-by: Joe Perches
    Signed-off-by: Dwaipayan Ray
    Signed-off-by: Andrew Morton
    Acked-by: Joe Perches
    Link: https://lore.kernel.org/linux-kernel-mentees/c1ca28e77e8e3bfa7aadf3efa8ed70f97a9d369c.camel@perches.com/
    Link: https://lkml.kernel.org/r/20201007192029.551744-1-dwaipayanray1@gmail.com
    Signed-off-by: Linus Torvalds

    Dwaipayan Ray
     
  • To avoid false positives in presence of SPDX-License-Identifier in
    networking files it is required to increase the leeway for empty block
    comment lines by one line.

    For example, checking drivers/net/loopback.c which starts with

    // SPDX-License-Identifier: GPL-2.0-or-later
    /*
    * INET An implementation of the TCP/IP protocol suite for the LINUX

    rsults in an unnecessary warning

    WARNING: networking block comments don't use an empty /* line, use /* Comment...
    +/*
    + * INET An implementation of the TCP/IP protocol suite for the LINUX

    Signed-off-by: Łukasz Stelmach
    Signed-off-by: Andrew Morton
    Acked-by: Joe Perches
    Cc: Bartłomiej Żolnierkiewicz
    Cc: Marek Szyprowski
    Link: https://lkml.kernel.org/r/20201006083509.19934-1-l.stelmach@samsung.com
    Signed-off-by: Linus Torvalds

    Łukasz Stelmach
     
  • Checkpatch.pl doesn't have a check for excluding while (...) {...} blocks
    from MULTISTATEMENT_MACRO_USE_DO_WHILE error.

    For example, running checkpatch.pl on the file mm/maccess.c in the kernel
    generates the following error:

    ERROR: Macros with complex values should be enclosed in parentheses
    +#define copy_from_kernel_nofault_loop(dst, src, len, type, err_label) \
    + while (len >= sizeof(type)) { \
    + __get_kernel_nofault(dst, src, type, err_label); \
    + dst += sizeof(type); \
    + src += sizeof(type); \
    + len -= sizeof(type); \
    + }

    The error is misleading for this case. Enclosing it in parentheses
    doesn't make any sense.

    Checkpatch already has an exception list for such common macro types.
    Added a new exception for while (...) {...} style blocks to the same.

    In addition, the brace flatten logic was modified by changing the
    substitution characters from "1" to "1u". This was done to ensure that
    macros in the form "#define foo(bar) while(bar){bar--;}" were also
    correctly procecssed.

    Link: https://lore.kernel.org/linux-kernel-mentees/dc985938aa3986702815a0bd68dfca8a03c85447.camel@perches.com/

    Suggested-by: Joe Perches
    Signed-off-by: Dwaipayan Ray
    Signed-off-by: Andrew Morton
    Link: https://lkml.kernel.org/r/20201001171903.312021-1-dwaipayanray1@gmail.com
    Signed-off-by: Linus Torvalds

    Dwaipayan Ray
     
  • Embedding the complete filename path inside the file isn't particularly
    useful as often the path is moved around and becomes incorrect.

    Emit a warning when the source contains the filename.

    [akpm@linux-foundation.org: remove stray " di"]

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Link: https://lkml.kernel.org/r/1fd5f9188a14acdca703ca00301ee323de672a8d.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Checkpatch did not handle cases where the author From: header was split
    into multiple lines. The author identity could not be resolved and
    checkpatch generated a false NO_AUTHOR_SIGN_OFF warning.

    A typical example is commit e33bcbab16d1 ("tee: add support for session's
    client UUID generation"). When checkpatch was run on this commit, it
    displayed:

    "WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal
    patch author ''"

    This was due to split header lines not being handled properly and the
    author himself wrote in commit cd2614967d8b ("checkpatch: warn if missing
    author Signed-off-by"):

    "Split From: headers are not fully handled: only the first part
    is compared."

    Support split From: headers by correctly parsing the header extension
    lines. RFC 5322, Section-2.2.3 stated that each extended line must start
    with a WSP character (a space or htab). The solution was therefore to
    concatenate the lines which start with a WSP to get the correct long
    header.

    Suggested-by: Joe Perches
    Signed-off-by: Dwaipayan Ray
    Signed-off-by: Andrew Morton
    Tested-by: Lukas Bulwahn
    Reviewed-by: Lukas Bulwahn
    Acked-by: Joe Perches
    Link: https://lore.kernel.org/linux-kernel-mentees/f5d8124e54a50480b0a9fa638787bc29b6e09854.camel@perches.com/
    Link: https://lkml.kernel.org/r/20200921085436.63003-1-dwaipayanray1@gmail.com
    Signed-off-by: Linus Torvalds

    Dwaipayan Ray
     
  • If a file exists in git and checkpatch is used without the -f flag for
    scanning a file, then checkpatch will scan the file assuming it's a patch
    and emit:

    ERROR: Does not appear to be a unified-diff format patch

    Change the behavior to assume the -f flag if the file exists in git.

    [joe@perches.com: fix git "fatal" warning if file argument outside kernel tree]
    Link: https://lkml.kernel.org/r/b6afa04112d450c2fc120a308d706acd60cee294.camel@perches.com

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Reviewed-by: Julia Lawall
    Cc: Rasmus Villemoes
    Link: https://lkml.kernel.org/r/45b81a48e1568bd0126a96f5046eb7aaae9b83c9.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • The uninitialized_var() macro was removed recently via commit 63a0895d960a
    ("compiler: Remove uninitialized_var() macro") as it's not a particularly
    useful warning and its use can "paper over real bugs".

    Add a checkpatch test to warn on self-assignments as a means to avoid
    compiler warnings and as a back-door mechanism to reproduce the old
    uninitialized_var macro behavior.

    [akpm@linux-foundation.org: coding style fixes]

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Cc: Kees Cook
    Cc: Gustavo A. R. Silva
    Cc: Denis Efremov
    Cc: Julia Lawall
    Link: https://lkml.kernel.org/r/afc2cffdd315d3e4394af149278df9e8af7f49f4.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • All usages of include/linux of these are const pointers, and all instances
    in the kernel except one, that are not const can be made const (patches
    have been posted for those separately).

    Signed-off-by: Rikard Falkeborn
    Signed-off-by: Andrew Morton
    Reviewed-by: Linus Walleij
    Acked-by: Manivannan Sadhasivam
    Cc: Joe Perches
    Cc: Andreas Färber
    Cc: Rikard Falkeborn
    Link: https://lkml.kernel.org/r/20200830224352.37114-1-rikard.falkeborn@gmail.com
    Signed-off-by: Linus Torvalds

    Rikard Falkeborn
     
  • trace_printk is meant as a debugging tool, and should not be compiled into
    production code without specific debug Kconfig options enabled, or source
    code changes, as indicated by the warning that shows up on boot if any
    trace_printk is called:

    ** NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE NOTICE **
    ** **
    ** trace_printk() being used. Allocating extra memory. **
    ** **
    ** This means that this is a DEBUG kernel and it is **
    ** unsafe for production use. **

    Let's warn developers when they try to submit such a change.

    Signed-off-by: Nicolas Boichat
    Signed-off-by: Andrew Morton
    Cc: Steven Rostedt
    Cc: Joe Perches
    Link: https://lkml.kernel.org/r/20200825193600.v2.1.I723c43c155f02f726c97501be77984f1e6bb740a@changeid
    Signed-off-by: Linus Torvalds

    Nicolas Boichat
     
  • All usages of phy_ops in include/linux uses const phy_ops * and all
    instances of phy_ops in the kernel that are not const already can be made
    const (patches have been posted for those separately).

    Suggested-by: Joe Perches
    Signed-off-by: Rikard Falkeborn
    Signed-off-by: Andrew Morton
    Cc: Kishon Vijay Abraham I
    Cc: Vinod Koul
    Link: https://lkml.kernel.org/r/20200824214132.9072-1-rikard.falkeborn@gmail.com
    Signed-off-by: Linus Torvalds

    Rikard Falkeborn
     
  • There are commas used as statement terminations that should typically have
    used semicolons instead. Only direct assignments or use of a single
    function or value on a single line are detected by this test.

    e.g.:
    foo = bar(), /* typical use is semicolon not comma */
    bar = baz();

    Add an imperfect test to detect these comma uses.

    No false positives were found in testing, but many types of false
    negatives are possible.

    e.g.:
    foo = bar() + 1, /* comma use, but not direct assignment */
    bar = baz();

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Link: https://lkml.kernel.org/r/3bf27caf462007dfa75647b040ab3191374a59de.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Currently this test only works on .[ch] files.

    Move the test to check more file types and the commit log.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Link: http://lkml.kernel.org/r/180b3b5677771c902b2e2f7a2b7090ede65fe004.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • Kconfig allows to customize the CONFIG_ prefix via the $CONFIG_
    environment variable. Out-of-tree projects may therefore use Kconfig with
    a different prefix, or they may use a custom configuration tool which does
    not use the CONFIG_ prefix at all. Such projects may still want to adhere
    to the Linux kernel coding style and run checkpatch.pl.

    One example is OP-TEE [1] which does not use Kconfig but does have
    configuration options prefixed with CFG_. It also mostly follows the
    kernel coding style and therefore being able to use checkpatch is quite
    valuable.

    To make this possible, add the --kconfig-prefix command line option.

    [1] https://github.com/OP-TEE/optee_os

    Signed-off-by: Jerome Forissier
    Signed-off-by: Andrew Morton
    Acked-by: Joe Perches
    Link: http://lkml.kernel.org/r/20200818081732.800449-1-jerome@forissier.org
    Signed-off-by: Linus Torvalds

    Jerome Forissier
     
  • MAINTAINERS files generally have no specific maintainer but are updated by
    individuals for subsystems all over the source tree.

    Exclude MAINTAINERS file(s) from --git-fallback searches so the unlucky
    individuals that update the files the most are not shown by default.

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Cc: Rob Herring
    Cc: Mauro Carvalho Chehab
    Cc: "David S. Miller"
    Link: https://lkml.kernel.org/r/2bacb0a9c06fbb6d56a43bf930e808c74243c908.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • It's somewhat common for me to ask get_maintainer to tell me who maintains
    a patch file rather than the files modified by the patch.

    Emit a warning if using get_maintainer.pl -f

    Signed-off-by: Joe Perches
    Signed-off-by: Andrew Morton
    Link: https://lkml.kernel.org/r/f63229c051567041819f25e76f49d83c6e4c0f71.camel@perches.com
    Signed-off-by: Linus Torvalds

    Joe Perches
     

16 Oct, 2020

3 commits

  • Pull networking updates from Jakub Kicinski:

    - Add redirect_neigh() BPF packet redirect helper, allowing to limit
    stack traversal in common container configs and improving TCP
    back-pressure.

    Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.

    - Expand netlink policy support and improve policy export to user
    space. (Ge)netlink core performs request validation according to
    declared policies. Expand the expressiveness of those policies
    (min/max length and bitmasks). Allow dumping policies for particular
    commands. This is used for feature discovery by user space (instead
    of kernel version parsing or trial and error).

    - Support IGMPv3/MLDv2 multicast listener discovery protocols in
    bridge.

    - Allow more than 255 IPv4 multicast interfaces.

    - Add support for Type of Service (ToS) reflection in SYN/SYN-ACK
    packets of TCPv6.

    - In Multi-patch TCP (MPTCP) support concurrent transmission of data on
    multiple subflows in a load balancing scenario. Enhance advertising
    addresses via the RM_ADDR/ADD_ADDR options.

    - Support SMC-Dv2 version of SMC, which enables multi-subnet
    deployments.

    - Allow more calls to same peer in RxRPC.

    - Support two new Controller Area Network (CAN) protocols - CAN-FD and
    ISO 15765-2:2016.

    - Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit
    kernel problem.

    - Add TC actions for implementing MPLS L2 VPNs.

    - Improve nexthop code - e.g. handle various corner cases when nexthop
    objects are removed from groups better, skip unnecessary
    notifications and make it easier to offload nexthops into HW by
    converting to a blocking notifier.

    - Support adding and consuming TCP header options by BPF programs,
    opening the doors for easy experimental and deployment-specific TCP
    option use.

    - Reorganize TCP congestion control (CC) initialization to simplify
    life of TCP CC implemented in BPF.

    - Add support for shipping BPF programs with the kernel and loading
    them early on boot via the User Mode Driver mechanism, hence reusing
    all the user space infra we have.

    - Support sleepable BPF programs, initially targeting LSM and tracing.

    - Add bpf_d_path() helper for returning full path for given 'struct
    path'.

    - Make bpf_tail_call compatible with bpf-to-bpf calls.

    - Allow BPF programs to call map_update_elem on sockmaps.

    - Add BPF Type Format (BTF) support for type and enum discovery, as
    well as support for using BTF within the kernel itself (current use
    is for pretty printing structures).

    - Support listing and getting information about bpf_links via the bpf
    syscall.

    - Enhance kernel interfaces around NIC firmware update. Allow
    specifying overwrite mask to control if settings etc. are reset
    during update; report expected max time operation may take to users;
    support firmware activation without machine reboot incl. limits of
    how much impact reset may have (e.g. dropping link or not).

    - Extend ethtool configuration interface to report IEEE-standard
    counters, to limit the need for per-vendor logic in user space.

    - Adopt or extend devlink use for debug, monitoring, fw update in many
    drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx,
    dpaa2-eth).

    - In mlxsw expose critical and emergency SFP module temperature alarms.
    Refactor port buffer handling to make the defaults more suitable and
    support setting these values explicitly via the DCBNL interface.

    - Add XDP support for Intel's igb driver.

    - Support offloading TC flower classification and filtering rules to
    mscc_ocelot switches.

    - Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as
    fixed interval period pulse generator and one-step timestamping in
    dpaa-eth.

    - Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3)
    offload.

    - Add Lynx PHY/PCS MDIO module, and convert various drivers which have
    this HW to use it. Convert mvpp2 to split PCS.

    - Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as
    7-port Mediatek MT7531 IP.

    - Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver,
    and wcn3680 support in wcn36xx.

    - Improve performance for packets which don't require much offloads on
    recent Mellanox NICs by 20% by making multiple packets share a
    descriptor entry.

    - Move chelsio inline crypto drivers (for TLS and IPsec) from the
    crypto subtree to drivers/net. Move MDIO drivers out of the phy
    directory.

    - Clean up a lot of W=1 warnings, reportedly the actively developed
    subsections of networking drivers should now build W=1 warning free.

    - Make sure drivers don't use in_interrupt() to dynamically adapt their
    code. Convert tasklets to use new tasklet_setup API (sadly this
    conversion is not yet complete).

    * tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits)
    Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH"
    net, sockmap: Don't call bpf_prog_put() on NULL pointer
    bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo
    bpf, sockmap: Add locking annotations to iterator
    netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements
    net: fix pos incrementment in ipv6_route_seq_next
    net/smc: fix invalid return code in smcd_new_buf_create()
    net/smc: fix valid DMBE buffer sizes
    net/smc: fix use-after-free of delayed events
    bpfilter: Fix build error with CONFIG_BPFILTER_UMH
    cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr
    net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
    bpf: Fix register equivalence tracking.
    rxrpc: Fix loss of final ack on shutdown
    rxrpc: Fix bundle counting for exclusive connections
    netfilter: restore NF_INET_NUMHOOKS
    ibmveth: Identify ingress large send packets.
    ibmveth: Switch order of ibmveth_helper calls.
    cxgb4: handle 4-tuple PEDIT to NAT mode translation
    selftests: Add VRF route leaking tests
    ...

    Linus Torvalds
     
  • Pull trivial updates from Jiri Kosina:
    "The latest advances in computer science from the trivial queue"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    xtensa: fix Kconfig typo
    spelling.txt: Remove some duplicate entries
    mtd: rawnand: oxnas: cleanup/simplify code
    selftests: vm: add fragment CONFIG_GUP_BENCHMARK
    perf: Fix opt help text for --no-bpf-event
    HID: logitech-dj: Fix spelling in comment
    bootconfig: Fix kernel message mentioning CONFIG_BOOT_CONFIG
    MAINTAINERS: rectify MMP SUPPORT after moving cputype.h
    scif: Fix spelling of EACCES
    printk: fix global comment
    lib/bitmap.c: fix spello
    fs: Fix missing 'bit' in comment

    Linus Torvalds
     
  • While iterating over child nodes with the for_each functions, if
    control is transferred from the middle of the loop, as in the case
    of a break or return or goto, there is no decrement in the
    reference counter thus ultimately resulting in a memory leak.

    Add this script to detect potential memory leaks caused by
    the absence of of_node_put() before break, goto, or, return
    statements which transfer control outside the loop.

    Signed-off-by: Sumera Priyadarsini
    Signed-off-by: Julia Lawall

    Sumera Priyadarsini
     

15 Oct, 2020

6 commits

  • There are a few namespace clashes by using c:macro everywhere:

    basically, when using it, we can't have something like:

    .. c:struct:: pwm_capture

    .. c:macro:: pwm_capture

    So, we need to use, instead:

    .. c:function:: int pwm_capture (struct pwm_device * pwm, struct pwm_capture * result, unsigned long timeout)

    for the function declaration.

    The kernel-doc change was proposed by Jakob Lykke Andersen here:

    https://github.com/jakobandersen/linux_docs/commit/6fd2076ec001cca7466857493cd678df4dfe4a65

    Although I did a different implementation.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Address several issues related to pointing to the wrong line
    number:

    1) ensure that line numbers will always be initialized

    When section is the default (Description), the line number
    is not initializing, producing this:

    $ ./scripts/kernel-doc --enable-lineno ./drivers/media/v4l2-core/v4l2-mem2mem.c|less

    **Description**

    #define LINENO 0
    In case of streamoff or release called on any context,
    1] If the context is currently running, then abort job will be called
    2] If the context is queued, then the context will be removed from
    the job_queue

    Which is not right. Ensure that the line number will always
    be there. After applied, the result now points to the right location:

    **Description**

    #define LINENO 410
    In case of streamoff or release called on any context,
    1] If the context is currently running, then abort job will be called
    2] If the context is queued, then the context will be removed from
    the job_queue

    2) The line numbers for function prototypes are always + 1,
    because it is taken at the line after handling the prototype.
    Change the logic to point to the next line after the /** */
    block;

    3) The "DOC:" line number should point to the same line as this
    markup is found, and not to the next one.

    Probably part of the issues were due to a but that was causing
    the line number offset to be incremented by one, if --export
    were used.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • When kernel-doc is called via kerneldoc.py, there's no need to
    auto-detect the Sphinx version, as the Sphinx module already
    knows it. So, add an optional parameter to allow changing the
    Sphinx dialect.

    As kernel-doc can also be manually called, keep the auto-detection
    logic if the parameter was not specified. On such case, emit
    a warning if sphinx-build can't be found at PATH.

    I ended using a suggestion from Joe for using a more readable
    regex, instead of using a complex one with a hidden group like:

    m/^(\d+)\.(\d+)(?:\.?(\d+)?)/

    in order to get the optional argument.

    Thanks-to: Joe Perches
    Suggested-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • While kernel-doc needs to parse parameters in order to
    identify its name, it shouldn't be touching the type,
    as parsing it is very difficult, and errors happen.

    One current error is when parsing this parameter:

    const u32 (*tab)[256]

    Found at ./lib/crc32.c, on this function:

    u32 __pure crc32_be_generic (u32 crc, unsigned char const *p, size_t len, const u32 (*tab)[256], u32 polynomial);

    The current logic mangles it, producing this output:

    const u32 ( *tab

    That's something that it is not recognizeable.

    So, instead, let's push the argument as-is, and use it
    when printing the function prototype and when describing
    each argument.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Some typedef expressions are output as normal functions.

    As we need to be clearer about the type with Sphinx 3.x,
    detect such cases.

    While here, fix a wrongly-indented block.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab
     
  • Right now, the build system doesn't use -nofunction, as
    it is pretty much useless, because it doesn't consider
    the other output modes (extern, internal), working only
    with all.

    Also, it is limited to exclude functions.

    Re-implement it in order to allow excluding any symbols from
    the document output, no matter what mode is used.

    The parameter was also renamed to "-nosymbol", as it express
    better its meaning.

    Signed-off-by: Mauro Carvalho Chehab

    Mauro Carvalho Chehab