17 Dec, 2020

12 commits

  • With LTO, LLVM bitcode won't be compiled into native code until
    modpost_link, or modfinal for modules. This change postpones calls
    to objtool until after these steps, and moves objtool_args to
    Makefile.lib, so the arguments can be reused in Makefile.modfinal.

    As we didn't have objects to process earlier, we use --duplicate
    when processing vmlinux.o. This change also disables unreachable
    instruction warnings with LTO to avoid warnings about the int3
    padding between functions.

    Bug: 145210207
    Change-Id: I72615f7062d218bf612a5d929f2efb75a18538dd
    Link: https://lore.kernel.org/lkml/20201013003203.4168817-12-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • This change adds a --noinstr flag to objtool to allow us to specify
    that we're processing vmlinux.o without also enabling noinstr
    validation. This is needed to avoid false positives with LTO when we
    run objtool on vmlinux.o without CONFIG_DEBUG_ENTRY.

    Bug: 145210207
    Change-Id: I479c72d2733844d2059253035391a0c6e8ad7771
    Link: https://lore.kernel.org/lkml/20201013003203.4168817-11-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen

    Sami Tolvanen
     
  • This change adds build support for using objtool to generate
    __mcount_loc sections.

    Bug: 145210207
    Change-Id: I58f4eae487a1f2cc1486daa6ae4927a2ef5f7137
    Link: https://lore.kernel.org/lkml/20201013003203.4168817-6-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen

    Sami Tolvanen
     
  • With LTO, we run objtool on vmlinux.o, but don't want noinstr
    validation. This change requires --vmlinux to be passed to objtool
    explicitly.

    Bug: 145210207
    Change-Id: Ibfd814126df6b3d1a52f5461f2e5aac1377b02c9
    Link: https://lore.kernel.org/lkml/20201013003203.4168817-4-samitolvanen@google.com/
    Suggested-by: Peter Zijlstra
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • With CONFIG_LTO_CLANG, clang generates LLVM IR instead of ELF object
    files. As empty.o is used for probing target properties, disable LTO
    for it to produce an object file instead.

    Bug: 145210207
    Change-Id: I8fa54c4c9b71f5d481a364b6eb10a4c34b2b71b7
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-12-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • With LTO, everything is compiled into LLVM bitcode, so we have to link
    each module into native code before modpost. Kbuild uses the .lto.o
    suffix for these files, which also ends up in module information. This
    change strips the unnecessary .lto suffix from the module name.

    Bug: 145210207
    Change-Id: I25b97a586f273b1b8d1f153b71e567136b0016ec
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-11-samitolvanen@google.com/
    Suggested-by: Bill Wendling
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • With LTO, the compiler doesn't necessarily obey the link order for
    initcalls, and initcall variables need globally unique names to avoid
    collisions at link time.

    This change exports __KBUILD_MODNAME and adds the initcall_id() macro,
    which uses it together with __COUNTER__ and __LINE__ to help ensure
    these variables have unique names, and moves each variable to its own
    section when LTO is enabled, so the correct order can be specified using
    a linker script.

    The generate_initcall_ordering.pl script uses nm to find initcalls from
    the object files passed to the linker, and generates a linker script
    that specifies the same order for initcalls that we would have without
    LTO. With LTO enabled, the script is called in link-vmlinux.sh through
    jobserver-exec to limit the number of jobs spawned.

    Bug: 145210207
    Change-Id: I80619eac3674acd9c6d2566443d16b3d09515351
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-8-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • With CONFIG_LTO_CLANG, LLVM bitcode has not yet been compiled into a
    binary when the .mod files are generated, which means they don't yet
    contain references to certain symbols that will be present in the final
    binaries. This includes intrinsic functions, such as memcpy, memmove,
    and memset [1], and stack protector symbols [2]. This change adds a
    default symbol list to use with CONFIG_TRIM_UNUSED_KSYMS when Clang's
    LTO is used.

    [1] https://llvm.org/docs/LangRef.html#standard-c-c-library-intrinsics
    [2] https://llvm.org/docs/LangRef.html#llvm-stackprotector-intrinsic

    Bug: 145210207
    Change-Id: I9da92fba820c72633209e292fdc6f1c44abe7b9a
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-7-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen

    Sami Tolvanen
     
  • LLD always splits sections with LTO, which increases module sizes. This
    change adds linker script rules to merge the split sections in the final
    module.

    Bug: 145210207
    Change-Id: Id0b964e732b5c72177d8f6dc0f75114551445b97
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-6-samitolvanen@google.com/
    Suggested-by: Nick Desaulniers
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • With CONFIG_MODVERSIONS, version information is linked into each
    compilation unit that exports symbols. With LTO, we cannot use this
    method as all C code is compiled into LLVM bitcode instead. This
    change collects symbol versions into .symversions files and merges
    them in link-vmlinux.sh where they are all linked into vmlinux.o at
    the same time.

    Bug: 145210207
    Change-Id: Icd8fd0c760891eff7a0ed12ce48b4db2a85fc2ad
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-1-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • This change adds build system support for Clang's Link Time
    Optimization (LTO). With -flto, instead of ELF object files, Clang
    produces LLVM bitcode, which is compiled into native code at link
    time, allowing the final binary to be optimized globally. For more
    details, see:

    https://llvm.org/docs/LinkTimeOptimization.html

    The Kconfig option CONFIG_LTO_CLANG is implemented as a choice,
    which defaults to LTO being disabled. To use LTO, the architecture
    must select ARCH_SUPPORTS_LTO_CLANG and support:

    - compiling with Clang,
    - compiling all assembly code with Clang's integrated assembler,
    - and linking with LLD.

    While using CONFIG_LTO_CLANG_FULL results in the best runtime
    performance, the compilation is not scalable in time or
    memory. CONFIG_LTO_CLANG_THIN enables ThinLTO, which allows
    parallel optimization and faster incremental builds. ThinLTO is
    used by default if the architecture also selects
    ARCH_SUPPORTS_LTO_CLANG_THIN:

    https://clang.llvm.org/docs/ThinLTO.html

    To enable LTO, LLVM tools must be used to handle bitcode files, by
    passing LLVM=1 and LLVM_IAS=1 options to make:

    $ make LLVM=1 LLVM_IAS=1 defconfig
    $ scripts/config -e LTO_CLANG_THIN
    $ make LLVM=1 LLVM_IAS=1

    To prepare for LTO support with other compilers, common parts are
    gated behind the CONFIG_LTO option, and LTO can be disabled for
    specific files by filtering out CC_FLAGS_LTO.

    Bug: 145210207
    Change-Id: I85eb4523ea787e4f9884e12ed6301f876d0d888e
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-1-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Reviewed-by: Kees Cook

    Sami Tolvanen
     
  • Move function tracer options to Kconfig to make it easier to add
    new methods for generating __mcount_loc, and to make the options
    available also when building kernel modules.

    Note that FTRACE_MCOUNT_USE_* options are updated on rebuild and
    therefore, work even if the .config was generated in a different
    environment.

    Bug: 145210207
    Change-Id: I6fc38abde50b602788148cb236aba1261affa896
    Link: https://lore.kernel.org/lkml/20201211184633.3213045-1-samitolvanen@google.com/
    Signed-off-by: Sami Tolvanen
    Acked-by: Steven Rostedt (VMware)

    Sami Tolvanen
     

09 Dec, 2020

1 commit


07 Dec, 2020

1 commit

  • …t/masahiroy/linux-kbuild

    Pull Kbuild fixes from Masahiro Yamada:

    - Move -Wcast-align to W=3, which tends to be false-positive and there
    is no tree-wide solution.

    - Pass -fmacro-prefix-map to KBUILD_CPPFLAGS because it is a
    preprocessor option and makes sense for .S files as well.

    - Disable -gdwarf-2 for Clang's integrated assembler to avoid warnings.

    - Disable --orphan-handling=warn for LLD 10.0.1 to avoid warnings.

    - Fix undesirable line breaks in *.mod files.

    * tag 'kbuild-fixes-v5.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: avoid split lines in .mod files
    kbuild: Disable CONFIG_LD_ORPHAN_WARN for ld.lld 10.0.1
    kbuild: Hoist '--orphan-handling' into Kconfig
    Kbuild: do not emit debug info for assembly with LLVM_IAS=1
    kbuild: use -fmacro-prefix-map for .S sources
    Makefile.extrawarn: move -Wcast-align to W=3

    Linus Torvalds
     

06 Dec, 2020

1 commit

  • "xargs echo" is not a safe way to remove line breaks because the input
    may exceed the command line limit and xargs may break it up into
    multiple invocations of echo. This should never happen because
    scripts/gen_autoksyms.sh expects all undefined symbols are placed in
    the second line of .mod files.

    One possible way is to replace "xargs echo" with
    "sed ':x;N;$!bx;s/\n/ /g'" or something, but I rewrote the code by
    using awk because it is more readable.

    This issue was reported by Sami Tolvanen; in his Clang LTO patch set,
    $(multi-used-m) is no longer an ELF object, but a thin archive that
    contains LLVM bitcode files. llvm-nm prints out symbols for each
    archive member separately, which results a lot of dupications, in some
    places, beyond the system-defined limit.

    This problem must be fixed irrespective of LTO, and we must ensure
    zero possibility of having this issue.

    Link: https://lkml.org/lkml/2020/12/1/1658
    Reported-by: Sami Tolvanen
    Signed-off-by: Masahiro Yamada
    Reviewed-by: Sami Tolvanen

    Masahiro Yamada
     

03 Dec, 2020

1 commit

  • When merging configuration fragments, it might be of interest to
    identify mismatches (redefinitions) programmatically. Hence add the
    option -s (strict mode) to instruct merge_config.sh to bail out in
    case any redefinition has been detected.

    With strict mode, warnings are emitted as before, but the script
    terminates with rc=1. If -y is set to define "builtin having
    precedence over modules", fragments are still allowed to set =m (while
    the base config has =y). Strict mode will tolerate that as demotions
    from =y to =m are ignored when setting -y.

    Bug: 174454795
    Link: https://lore.kernel.org/linux-kbuild/20201202151238.3776616-1-maennich@google.com/
    Cc: Masahiro Yamada
    Signed-off-by: Matthias Maennich
    Change-Id: Ib982a87811956e48b718a15680f06474a39dc19d

    Matthias Maennich
     

01 Dec, 2020

1 commit

  • ld.lld 10.0.1 spews a bunch of various warnings about .rela sections,
    along with a few others. Newer versions of ld.lld do not have these
    warnings. As a result, do not add '--orphan-handling=warn' to
    LDFLAGS_vmlinux if ld.lld's version is not new enough.

    Link: https://github.com/ClangBuiltLinux/linux/issues/1187
    Link: https://github.com/ClangBuiltLinux/linux/issues/1193
    Reported-by: Arvind Sankar
    Reported-by: kernelci.org bot
    Reported-by: Mark Brown
    Reviewed-by: Kees Cook
    Signed-off-by: Nathan Chancellor
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Masahiro Yamada

    Nathan Chancellor
     

30 Nov, 2020

1 commit


29 Nov, 2020

1 commit


27 Nov, 2020

3 commits

  • In the context of GKI we are exporting quite a few internal kernel
    symbols, some of which may be static functions (yes this is bad, but
    technically it works). As such, we need to be careful about conflicts
    and we really should not allow a symbol to be exported more than once.

    To ensure this is the case, turn the modpost check 'fatal' to bail out
    immediately when such a situation is detected.

    Bug: 174214891
    Signed-off-by: Quentin Perret
    Change-Id: I674c9c9c327849503e94d79654e6288411a830af

    Quentin Perret
     
  • Using EXPORT_SYMBOL*() on static functions is fundamentally wrong.
    Modpost currently reports that as a warning, but clearly this is not a
    pattern we should allow, and all in-tree occurences should have been
    fixed by now. So, promote the warn() message to fatal() to make sure
    this never happens again.

    Bug: 174214891
    Link: https://lore.kernel.org/lkml/20201124182420.2202514-1-qperret@google.com/
    Signed-off-by: Quentin Perret
    Change-Id: Ic1382bfa24db556161cf1a184a4d44724d7849a1

    Quentin Perret
     
  • BoringSSL does not implement the ENGINE API. In Android we do not seem
    to rely on the PKCS#11 -> DER extraction. Hence, make this conditional
    on the SSL library used.

    Bug: 135570712
    Signed-off-by: Matthias Maennich
    Change-Id: I84af6633dd470083497087c7dd1a2734480e2b0e

    Matthias Maennich
     

25 Nov, 2020

1 commit

  • This warning behaves differently depending on the architecture
    and compiler. Using x86 gcc, we get no output at all because
    gcc knows the architecture can handle unaligned accesses.

    Using x86 clang, or gcc on an architecture that needs to
    manually deal with unaligned accesses, the build log is
    completely flooded with these warnings, as they are commonly
    invoked by inline functions of networking headers, e.g.

    include/linux/skbuff.h:1426:26: warning: cast increases required alignment of target type [-Wcast-align]

    The compiler is correct to point this out, as we are dealing
    with undefined behavior that does cause problems in practice,
    but there is also no good way to rewrite the code in commonly
    included headers to a safer method.

    Signed-off-by: Arnd Bergmann
    Reviewed-by: Nathan Chancellor
    Signed-off-by: Masahiro Yamada

    Arnd Bergmann
     

13 Nov, 2020

2 commits

  • …cm/fs/fscrypt/fscrypt") into android-mainline

    Steps on the way to 5.10-rc4

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I8554ba37704bee02192ff6117d4909fde568fca2

    Greg Kroah-Hartman
     
  • Pull networking fixes from Jakub Kicinski:
    "Current release - regressions:

    - arm64: dts: fsl-ls1028a-kontron-sl28: specify in-band mode for
    ENETC

    Current release - bugs in new features:

    - mptcp: provide rmem[0] limit offset to fix oops

    Previous release - regressions:

    - IPv6: Set SIT tunnel hard_header_len to zero to fix path MTU
    calculations

    - lan743x: correctly handle chips with internal PHY

    - bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE

    - mlx5e: Fix VXLAN port table synchronization after function reload

    Previous release - always broken:

    - bpf: Zero-fill re-used per-cpu map element

    - fix out-of-order UDP packets when forwarding with UDP GSO fraglists
    turned on:
    - fix UDP header access on Fast/frag0 UDP GRO
    - fix IP header access and skb lookup on Fast/frag0 UDP GRO

    - ethtool: netlink: add missing netdev_features_change() call

    - net: Update window_clamp if SOCK_RCVBUF is set

    - igc: Fix returning wrong statistics

    - ch_ktls: fix multiple leaks and corner cases in Chelsio TLS offload

    - tunnels: Fix off-by-one in lower MTU bounds for ICMP/ICMPv6 replies

    - r8169: disable hw csum for short packets on all chip versions

    - vrf: Fix fast path output packet handling with async Netfilter
    rules"

    * tag 'net-5.10-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (65 commits)
    lan743x: fix use of uninitialized variable
    net: udp: fix IP header access and skb lookup on Fast/frag0 UDP GRO
    net: udp: fix UDP header access on Fast/frag0 UDP GRO
    devlink: Avoid overwriting port attributes of registered port
    vrf: Fix fast path output packet handling with async Netfilter rules
    cosa: Add missing kfree in error path of cosa_write
    net: switch to the kernel.org patchwork instance
    ch_ktls: stop the txq if reaches threshold
    ch_ktls: tcb update fails sometimes
    ch_ktls/cxgb4: handle partial tag alone SKBs
    ch_ktls: don't free skb before sending FIN
    ch_ktls: packet handling prior to start marker
    ch_ktls: Correction in middle record handling
    ch_ktls: missing handling of header alone
    ch_ktls: Correction in trimmed_len calculation
    cxgb4/ch_ktls: creating skbs causes panic
    ch_ktls: Update cheksum information
    ch_ktls: Correction in finding correct length
    cxgb4/ch_ktls: decrypted bit is not enough
    net/x25: Fix null-ptr-deref in x25_connect
    ...

    Linus Torvalds
     

11 Nov, 2020

1 commit

  • This reverts commit e145f7b10374662f03889c2dea0fdc14df7f1371.

    AOSP's distribution of GNU binutils always had a curious target triple
    prefix on the binaries. Now that GNU binutils is deprecated for Android
    Common Kernels, we can now remove this out of tree workaround. Now
    building Android kernels with LLVM matches upstream (see
    Documentation/kbuild/llvm.rst).

    Bug: 118439987
    Bug: 120440614
    Bug: 141693040
    Signed-off-by: Nick Desaulniers
    Change-Id: Iecaa3264a440f795f2f3a44bdf74fe28ad4ed1cc

    Nick Desaulniers
     

09 Nov, 2020

2 commits

  • Linux 5.10-rc3

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I7884051ea7b86204b2685b51462368e122ad0772

    Greg Kroah-Hartman
     
  • Pull driver core documentation fixes from Greg KH:
    "Some small Documentation fixes that were fallout from the larger
    documentation update we did in 5.10-rc2.

    Nothing major here at all, but all of these have been in linux-next
    and resolve build warnings when building the documentation files"

    * tag 'driver-core-5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    Documentation: remove mic/index from misc-devices/index.rst
    scripts: get_api.pl: Add sub-titles to ABI output
    scripts: get_abi.pl: Don't let ABI files to create subtitles
    docs: leds: index.rst: add a missing file
    docs: ABI: sysfs-class-net: fix a typo
    docs: ABI: sysfs-driver-dma-ioatdma: what starts with /sys

    Linus Torvalds
     

07 Nov, 2020

1 commit

  • Alexei Starovoitov says:

    ====================
    pull-request: bpf 2020-11-06

    1) Pre-allocated per-cpu hashmap needs to zero-fill reused element, from David.

    2) Tighten bpf_lsm function check, from KP.

    3) Fix bpftool attaching to flow dissector, from Lorenz.

    4) Use -fno-gcse for the whole kernel/bpf/core.c instead of function attribute, from Ard.

    * git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
    bpf: Update verification logic for LSM programs
    bpf: Zero-fill re-used per-cpu map element
    bpf: BPF_PRELOAD depends on BPF_SYSCALL
    tools/bpftool: Fix attaching flow dissector
    libbpf: Fix possible use after free in xsk_socket__delete
    libbpf: Fix null dereference in xsk_socket__delete
    libbpf, hashmap: Fix undefined behavior in hash_bits
    bpf: Don't rely on GCC __attribute__((optimize)) to disable GCSE
    tools, bpftool: Remove two unused variables.
    tools, bpftool: Avoid array index warnings.
    xsk: Fix possible memory leak at socket close
    bpf: Add struct bpf_redir_neigh forward declaration to BPF helper defs
    samples/bpf: Set rlimit for memlock to infinity in all samples
    bpf: Fix -Wshadow warnings
    selftest/bpf: Fix profiler test using CO-RE relocation for enums
    ====================

    Link: https://lore.kernel.org/r/20201106221759.24143-1-alexei.starovoitov@gmail.com
    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     

06 Nov, 2020

1 commit


04 Nov, 2020

2 commits

  • Pull documentation build warning fixes from Jonathan Corbet:
    "This contains a series of warning fixes from Mauro; once applied, the
    number of warnings from the once-noisy docs build process is nearly
    zero.

    Getting to this point has required a lot of work; once there,
    hopefully we can keep things that way.

    I have packaged this as a separate pull because it does a fair amount
    of reaching outside of Documentation/. The changes are all in comments
    and in code placement. It's all been in linux-next since last week"

    * tag 'docs-5.10-warnings' of git://git.lwn.net/linux: (24 commits)
    docs: SafeSetID: fix a warning
    amdgpu: fix a few kernel-doc markup issues
    selftests: kselftest_harness.h: fix kernel-doc markups
    drm: amdgpu_dm: fix a typo
    gpu: docs: amdgpu.rst: get rid of wrong kernel-doc markups
    drm: amdgpu: kernel-doc: update some adev parameters
    docs: fs: api-summary.rst: get rid of kernel-doc include
    IB/srpt: docs: add a description for cq_size member
    locking/refcount: move kernel-doc markups to the proper place
    docs: lockdep-design: fix some warning issues
    MAINTAINERS: fix broken doc refs due to yaml conversion
    ice: docs fix a devlink info that broke a table
    crypto: sun8x-ce*: update entries to its documentation
    net: phy: remove kernel-doc duplication
    mm: pagemap.h: fix two kernel-doc markups
    blk-mq: docs: add kernel-doc description for a new struct member
    docs: userspace-api: add iommu.rst to the index file
    docs: hwmon: mp2975.rst: address some html build warnings
    docs: net: statistics.rst: remove a duplicated kernel-doc
    docs: kasan.rst: add two missing blank lines
    ...

    Linus Torvalds
     
  • Pull documentation fixes from Jonathan Corbet:
    "A small number of fixes, plus a build tweak to respect the desire for
    silence in V=0 builds"

    * tag 'docs-5.10-3' of git://git.lwn.net/linux:
    docs: fix automarkup regression on Python 2
    documentation: arm: sunxi: add Allwinner H6 documents
    scripts: kernel-doc: split typedef complex regex
    scripts: kernel-doc: fix typedef parsing
    docs: Makefile: honor V=0 for docs building

    Linus Torvalds
     

02 Nov, 2020

4 commits

  • Instead of adding titles just for the files, add titles
    for each part of the ABI output, in order to make easier
    to search for a symbol there.

    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/64752a5de06ab8263c296e3ed01414b25861e1eb.1604312590.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • The ReST output should only contain documentation titles
    automatically created by the script.

    There are two reasons for that:

    1) Consistency.

    just a handful ABI docs define titles

    2) To avoid critical errors.

    Docutils (which is the basis for Sphinx) allows a free
    assign of documentation title markups. So, one document
    could be doing things like:

    Level 1
    =======

    Level 2
    -------

    While another one could do the reverse:

    Level 1
    -------

    Level 2
    =======

    But the same document can't mix.

    As the output of get_abi.pl will join contents from multiple
    files, if they don't define the levels on a consistent errors,
    errors like this can happen:

    Sphinx parallel build error:
    docutils.utils.SystemMessage: /home/rdunlap/lnx/lnx-510-rc2/Documentation/ABI/testing/sysfs-bus-rapidio:2: (SEVERE/4) Title level inconsistent:

    Attributes Common for All RapidIO Devices
    -----------------------------------------

    Which cause some versions of Sphinx to go into an endless
    loop.

    It should be noticed that an alternative to that would
    be to replace all title occurrences by a single markup,
    but that will make the parser more complex, and, due to
    (1) it would generate an inconsistent output.

    So, better to just remove the titles defined at the ABI
    files from the output.

    Reported-by: Randy Dunlap
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/6c62ef5c01d39dee8d891f8390c816d2a889670a.1604312590.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • Linux 5.10-rc2

    Signed-off-by: Greg Kroah-Hartman
    Change-Id: Ib7738b2fe5c513b7eb2dc7b475f4dc848df931d2

    Greg Kroah-Hartman
     
  • Building 5.10-rc1 in a setgid directory failed with the following
    error:

    dpkg-deb: error: control directory has bad permissions 2755 (must be
    >=0755 and
    Signed-off-by: Sven Joachim
    Signed-off-by: Masahiro Yamada

    Sven Joachim
     

30 Oct, 2020

4 commits

  • All ABI files are now compatible with ReST format. So, change
    the script default to assume that the ABI source files
    are compatible with ReST.

    Acked-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/4b0af257010570e0e917d82498e42992bec5e173.1604042072.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • There are some ABI documents that, while they don't generate
    any warnings, they have issues when parsed by get_abi.pl script
    on its output result.

    Address them, in order to provide a clean output.

    Reviewed-by: Tom Rix # for fpga-manager
    Reviewed-By: Kajol Jain # for sysfs-bus-event_source-devices-hv_gpci and sysfs-bus-event_source-devices-hv_24x7
    Acked-by: Jonathan Cameron #for IIO
    Acked-by: Oded Gabbay # for Habanalabs
    Acked-by: Vaibhav Jain # for sysfs-bus-papr-pmem
    Acked-by: Cezary Rojewski # for catpt
    Acked-by: Suzuki K Poulose
    Acked-by: Ilya Dryomov # for rbd
    Acked-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/5bc78e5b68ed1e9e39135173857cb2e753be868f.1604042072.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • The files under Documentation/ABI should follow the syntax
    as defined at Documentation/ABI/README.

    Allow checking if they're following the syntax by running
    the ABI parser script on COMPILE_TEST.

    With that, when there's a problem with a file under
    Documentation/ABI, it would produce a warning like:

    Warning: file ./Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats#14:
    What '/sys/bus/pci/devices//aer_stats/aer_rootport_total_err_cor' doesn't have a description
    Warning: file ./Documentation/ABI/testing/sysfs-bus-pci-devices-aer_stats#21:
    What '/sys/bus/pci/devices//aer_stats/aer_rootport_total_err_fatal' doesn't have a description

    Acked-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/57a38de85cb4b548857207cf1fc1bf1ee08613c9.1604042072.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab
     
  • There are several cross-references that can be automatically
    generated:

    - References to .rst files inside Documentation/
    - References to other ABI files;
    - References to ABI symbols at /sys/*.

    Add a logic to automatically parse them and convert into
    cross references.

    Acked-by: Jonathan Corbet
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/abe756d4f94fb6ffcc3dd3902a766c7c3990ea89.1604042072.git.mchehab+huawei@kernel.org
    Signed-off-by: Greg Kroah-Hartman

    Mauro Carvalho Chehab