09 Aug, 2021

1 commit


08 Aug, 2021

1 commit

  • …t/masahiroy/linux-kbuild

    Pull Kbuild fixes from Masahiro Yamada:

    - Correct the Extended Regular Expressions in tools

    - Adjust scripts/checkversion.pl for the current Kbuild

    - Unset sub_make_done for 'make install' to make DKMS work again

    * tag 'kbuild-fixes-v5.14-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: cancel sub_make_done for the install target to fix DKMS
    scripts: checkversion: modernize linux/version.h search strings
    mips: Fix non-POSIX regexp
    x86/tools/relocs: Fix non-POSIX regexp

    Linus Torvalds
     

06 Aug, 2021

1 commit

  • Pull tracing fixes from Steven Rostedt:
    "Various tracing fixes:

    - Fix NULL pointer dereference caused by an error path

    - Give histogram calculation fields a size, otherwise it breaks
    synthetic creation based on them.

    - Reject strings being used for number calculations.

    - Fix recordmcount.pl warning on llvm building RISC-V allmodconfig

    - Fix the draw_functrace.py script to handle the new trace output

    - Fix warning of smp_processor_id() in preemptible code"

    * tag 'trace-v5.14-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Quiet smp_processor_id() use in preemptable warning in hwlat
    scripts/tracing: fix the bug that can't parse raw_trace_func
    scripts/recordmcount.pl: Remove check_objcopy() and $can_use_local
    tracing: Reject string operand in the histogram expression
    tracing / histogram: Give calculation hist_fields a size
    tracing: Fix NULL pointer dereference in start_creating

    Linus Torvalds
     

05 Aug, 2021

2 commits

  • Since commit bcf637f54f6d ("kbuild: parse C= and M= before changing the
    working directory"), external module builds invoked by DKMS fail because
    M= option is not parsed.

    I wanted to add 'unset sub_make_done' in install.sh but similar scripts,
    arch/*/boot/install.sh, are duplicated, so I set sub_make_done empty in
    the top Makefile.

    Fixes: bcf637f54f6d ("kbuild: parse C= and M= before changing the working directory")
    Reported-by: John S Gruber
    Signed-off-by: Masahiro Yamada
    Tested-by: John S Gruber

    Masahiro Yamada
     
  • When building ARCH=riscv allmodconfig with llvm-objcopy, the objcopy
    version warning from this script appears:

    WARNING: could not find objcopy version or version is less than 2.17.
    Local function references are disabled.

    The check_objcopy() function in scripts/recordmcount.pl is set up to
    parse GNU objcopy's version string, not llvm-objcopy's, which triggers
    the warning.

    Commit 799c43415442 ("kbuild: thin archives make default for all archs")
    made binutils 2.20 mandatory and commit ba64beb17493 ("kbuild: check the
    minimum assembler version in Kconfig") enforces this at configuration
    time so just remove check_objcopy() and $can_use_local instead, assuming
    --globalize-symbol is always available.

    llvm-objcopy has supported --globalize-symbol since LLVM 7.0.0 in 2018
    and the minimum version for building the kernel with LLVM is 10.0.1 so
    there is no issue introduced:

    Link: https://github.com/llvm/llvm-project/commit/ee5be798dae30d5f9414b01f76ff807edbc881aa
    Link: https://lkml.kernel.org/r/20210802210307.3202472-1-nathan@kernel.org

    Reviewed-by: Nick Desaulniers
    Signed-off-by: Nathan Chancellor
    Signed-off-by: Steven Rostedt (VMware)

    Nathan Chancellor
     

02 Aug, 2021

1 commit


26 Jul, 2021

1 commit


19 Jul, 2021

2 commits

  • Linus Torvalds
     
  • …masahiroy/linux-kbuild

    Pull Kbuild fixes from Masahiro Yamada:

    - Restore the original behavior of scripts/setlocalversion when
    LOCALVERSION is set to empty.

    - Show Kconfig prompts even for 'make -s'

    - Fix the combination of COFNIG_LTO_CLANG=y and CONFIG_MODVERSIONS=y
    for older GNU Make versions

    * tag 'kbuild-fixes-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    Documentation: Fix intiramfs script name
    Kbuild: lto: fix module versionings mismatch in GNU make 3.X
    kbuild: do not suppress Kconfig prompts for silent build
    scripts/setlocalversion: fix a bug when LOCALVERSION is empty

    Linus Torvalds
     

18 Jul, 2021

1 commit

  • When a new CONFIG option is available, Kbuild shows a prompt to get
    the user input.

    $ make
    [ snip ]
    Core Scheduling for SMT (SCHED_CORE) [N/y/?] (NEW)

    This is the only interactive place in the build process.

    Commit 174a1dcc9642 ("kbuild: sink stdout from cmd for silent build")
    suppressed Kconfig prompts as well because syncconfig is invoked by
    the 'cmd' macro. You cannot notice the fact that Kconfig is waiting
    for the user input.

    Use 'kecho' to show the equivalent short log without suppressing stdout
    from sub-make.

    Fixes: 174a1dcc9642 ("kbuild: sink stdout from cmd for silent build")
    Reported-by: Tetsuo Handa
    Signed-off-by: Masahiro Yamada
    Tested-by: Tetsuo Handa

    Masahiro Yamada
     

16 Jul, 2021

1 commit

  • This reverts commit b7eb335e26a9c7f258c96b3962c283c379d3ede0.

    It turns out that the problem with the clang -Wimplicit-fallthrough
    warning is not about the kernel source code, but about clang itself, and
    that the warning is unusable until clang fixes its broken ways.

    In particular, when you enable this warning for clang, you not only get
    warnings about implicit fallthroughs. You also get this:

    warning: fallthrough annotation in unreachable code [-Wimplicit-fallthrough]

    which is completely broken becasue it

    (a) doesn't even tell you where the problem is (seriously: no line
    numbers, no filename, no nothing).

    (b) is fundamentally broken anyway, because there are perfectly valid
    reasons to have a fallthrough statement even if it turns out that
    it can perhaps not be reached.

    In the kernel, an example of that second case is code in the scheduler:

    switch (state) {
    case cpuset:
    if (IS_ENABLED(CONFIG_CPUSETS)) {
    cpuset_cpus_allowed_fallback(p);
    state = possible;
    break;
    }
    fallthrough;
    case possible:

    where if CONFIG_CPUSETS is enabled you actually never hit the
    fallthrough case at all. But that in no way makes the fallthrough
    wrong.

    So the warning is completely broken, and enabling it for clang is a very
    bad idea.

    In the meantime, we can keep the gcc option enabled, and make the gcc
    build use

    -Wimplicit-fallthrough=5

    which means that we will at least continue to require a proper
    fallthrough statement, and that gcc won't silently accept the magic
    comment versions. Because gcc does this all correctly, and while the odd
    "=5" part is kind of obscure, it's documented in [1]:

    "-Wimplicit-fallthrough=5 doesn’t recognize any comments as
    fallthrough comments, only attributes disable the warning"

    so if clang ever fixes its bad behavior we can try enabling it there again.

    Link: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html [1]
    Cc: Kees Cook
    Cc: Gustavo A. R. Silva
    Cc: Nathan Chancellor
    Cc: Nick Desaulniers
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

15 Jul, 2021

1 commit

  • With the recent fixes for fallthrough warnings, it is now possible to
    enable -Wimplicit-fallthrough for Clang.

    It's important to mention that since we have adopted the use of the
    pseudo-keyword macro fallthrough; we also want to avoid having more
    /* fall through */ comments being introduced. Notice that contrary
    to GCC, Clang doesn't recognize any comments as implicit fall-through
    markings when the -Wimplicit-fallthrough option is enabled. So, in
    order to avoid having more comments being introduced, we have to use
    the option -Wimplicit-fallthrough=5 for GCC, which similar to Clang,
    will cause a warning in case a code comment is intended to be used
    as a fall-through marking.

    Co-developed-by: Kees Cook
    Signed-off-by: Kees Cook
    Signed-off-by: Gustavo A. R. Silva

    Gustavo A. R. Silva
     

12 Jul, 2021

1 commit


11 Jul, 2021

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - Increase the -falign-functions alignment for the debug option.

    - Remove ugly libelf checks from the top Makefile.

    - Make the silent build (-s) more silent.

    - Re-compile the kernel if KBUILD_BUILD_TIMESTAMP is specified.

    - Various script cleanups

    * tag 'kbuild-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (27 commits)
    scripts: add generic syscallnr.sh
    scripts: check duplicated syscall number in syscall table
    sparc: syscalls: use pattern rules to generate syscall headers
    parisc: syscalls: use pattern rules to generate syscall headers
    nds32: add arch/nds32/boot/.gitignore
    kbuild: mkcompile_h: consider timestamp if KBUILD_BUILD_TIMESTAMP is set
    kbuild: modpost: Explicitly warn about unprototyped symbols
    kbuild: remove trailing slashes from $(KBUILD_EXTMOD)
    kconfig.h: explain IS_MODULE(), IS_ENABLED()
    kconfig: constify long_opts
    scripts/setlocalversion: simplify the short version part
    scripts/setlocalversion: factor out 12-chars hash construction
    scripts/setlocalversion: add more comments to -dirty flag detection
    scripts/setlocalversion: remove workaround for old make-kpkg
    scripts/setlocalversion: remove mercurial, svn and git-svn supports
    kbuild: clean up ${quiet} checks in shell scripts
    kbuild: sink stdout from cmd for silent build
    init: use $(call cmd,) for generating include/generated/compile.h
    kbuild: merge scripts/mkmakefile to top Makefile
    sh: move core-y in arch/sh/Makefile to arch/sh/Kbuild
    ...

    Linus Torvalds
     

29 Jun, 2021

1 commit

  • Pull arm64 updates from Will Deacon:
    "There's a reasonable amount here and the juicy details are all below.

    It's worth noting that the MTE/KASAN changes strayed outside of our
    usual directories due to core mm changes and some associated changes
    to some other architectures; Andrew asked for us to carry these [1]
    rather that take them via the -mm tree.

    Summary:

    - Optimise SVE switching for CPUs with 128-bit implementations.

    - Fix output format from SVE selftest.

    - Add support for versions v1.2 and 1.3 of the SMC calling
    convention.

    - Allow Pointer Authentication to be configured independently for
    kernel and userspace.

    - PMU driver cleanups for managing IRQ affinity and exposing event
    attributes via sysfs.

    - KASAN optimisations for both hardware tagging (MTE) and out-of-line
    software tagging implementations.

    - Relax frame record alignment requirements to facilitate 8-byte
    alignment with KASAN and Clang.

    - Cleanup of page-table definitions and removal of unused memory
    types.

    - Reduction of ARCH_DMA_MINALIGN back to 64 bytes.

    - Refactoring of our instruction decoding routines and addition of
    some missing encodings.

    - Move entry code moved into C and hardened against harmful compiler
    instrumentation.

    - Update booting requirements for the FEAT_HCX feature, added to v8.7
    of the architecture.

    - Fix resume from idle when pNMI is being used.

    - Additional CPU sanity checks for MTE and preparatory changes for
    systems where not all of the CPUs support 32-bit EL0.

    - Update our kernel string routines to the latest Cortex Strings
    implementation.

    - Big cleanup of our cache maintenance routines, which were
    confusingly named and inconsistent in their implementations.

    - Tweak linker flags so that GDB can understand vmlinux when using
    RELR relocations.

    - Boot path cleanups to enable early initialisation of per-cpu
    operations needed by KCSAN.

    - Non-critical fixes and miscellaneous cleanup"

    * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (150 commits)
    arm64: tlb: fix the TTL value of tlb_get_level
    arm64: Restrict undef hook for cpufeature registers
    arm64/mm: Rename ARM64_SWAPPER_USES_SECTION_MAPS
    arm64: insn: avoid circular include dependency
    arm64: smp: Bump debugging information print down to KERN_DEBUG
    drivers/perf: fix the missed ida_simple_remove() in ddr_perf_probe()
    perf/arm-cmn: Fix invalid pointer when access dtc object sharing the same IRQ number
    arm64: suspend: Use cpuidle context helpers in cpu_suspend()
    PSCI: Use cpuidle context helpers in psci_cpu_suspend_enter()
    arm64: Convert cpu_do_idle() to using cpuidle context helpers
    arm64: Add cpuidle context save/restore helpers
    arm64: head: fix code comments in set_cpu_boot_mode_flag
    arm64: mm: drop unused __pa(__idmap_text_start)
    arm64: mm: fix the count comments in compute_indices
    arm64/mm: Fix ttbr0 values stored in struct thread_info for software-pan
    arm64: mm: Pass original fault address to handle_mm_fault()
    arm64/mm: Drop SECTION_[SHIFT|SIZE|MASK]
    arm64/mm: Use CONT_PMD_SHIFT for ARM64_MEMSTART_SHIFT
    arm64/mm: Drop SWAPPER_INIT_MAP_SIZE
    arm64: Conditionally configure PTR_AUTH key of the kernel.
    ...

    Linus Torvalds
     

28 Jun, 2021

1 commit


21 Jun, 2021

1 commit


17 Jun, 2021

1 commit

  • M= (or KBUILD_EXTMOD) generally expects a directory path without any
    trailing slashes, like M=a/b/c.

    If you add a trailing slash, like M=a/b/c/, you will get ugly build
    logs (two slashes in a series), but it still works fine as long as it
    is consistent between 'make modules' and 'make modules_install'.

    The following commands correctly build and install the modules.

    $ make M=a/b/c/ modules
    $ sudo make M=a/b/c/ modules_install

    Since commit ccae4cfa7bfb ("kbuild: refactor scripts/Makefile.modinst"),
    a problem happens if you add a trailing slash only for modules_install.

    $ make M=a/b/c modules
    $ sudo make M=a/b/c/ modules_install

    No module is installed in this case, Johannes Berg reported. [1]

    Trim any trailing slashes from $(KBUILD_EXTMOD).

    I used the 'dirname' command to remove all the trailing slashes in
    case someone adds more slashes like M=a/b/c/////. The Make's built-in
    function, $(dir ...) cannot take care of such a case.

    [1]: https://lore.kernel.org/lkml/10cc8522b27a051e6a9c3e158a4c4b6414fd04a0.camel@sipsolutions.net/

    Fixes: ccae4cfa7bfb ("kbuild: refactor scripts/Makefile.modinst")
    Reported-by: Johannes Berg
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

16 Jun, 2021

1 commit

  • Pull clang LTO fix from Kees Cook:
    "It seems Clang has been scrubbing through the missing LTO IR flags for
    Clang 13, and the last of these 'only with LTO' flags is fixed now.

    I've asked that they please consider making these changes in a less
    'break all the Clang kernel builds' kind of way in the future. :P

    Summary:

    - The '-warn-stack-size' option under LTO has moved in Clang 13 (Tor
    Vic)"

    * tag 'clang-features-v5.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    Makefile: lto: Pass -warn-stack-size only on LLD < 13.0.0

    Linus Torvalds
     

15 Jun, 2021

1 commit

  • Since LLVM commit fc018eb, the '-warn-stack-size' flag has been dropped
    [1], leading to the following error message when building with Clang-13
    and LLD-13:

    ld.lld: error: -plugin-opt=-: ld.lld: Unknown command line argument
    '-warn-stack-size=2048'. Try: 'ld.lld --help'
    ld.lld: Did you mean '--asan-stack=2048'?

    In the same way as with commit 2398ce80152a ("x86, lto: Pass
    -stack-alignment only on LLD < 13.0.0") , make '-warn-stack-size'
    conditional on LLD < 13.0.0.

    [1] https://reviews.llvm.org/D103928

    Fixes: 24845dcb170e ("Makefile: LTO: have linker check -Wframe-larger-than")
    Cc: stable@vger.kernel.org
    Link: https://github.com/ClangBuiltLinux/linux/issues/1377
    Signed-off-by: Tor Vic
    Reviewed-by: Nathan Chancellor
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Kees Cook
    Link: https://lore.kernel.org/r/7631bab7-a8ab-f884-ab54-f4198976125c@mailbox.org

    Tor Vic
     

14 Jun, 2021

1 commit


08 Jun, 2021

1 commit

  • GDB produces the following warning when debugging kernels built with
    CONFIG_RELR:

    BFD: /android0/linux-next/vmlinux: unknown type [0x13] section `.relr.dyn'

    when loading a kernel built with CONFIG_RELR into GDB. It can also
    prevent debugging symbols using such relocations.

    Peter sugguests:
    [That flag] means that lld will use dynamic tags and section type
    numbers in the OS-specific range rather than the generic range. The
    kernel itself doesn't care about these numbers; it determines the
    location of the RELR section using symbols defined by a linker script.

    Link: https://github.com/ClangBuiltLinux/linux/issues/1057
    Suggested-by: Peter Collingbourne
    Reviewed-by: Nathan Chancellor
    Signed-off-by: Nick Desaulniers
    Link: https://lore.kernel.org/r/20210522012626.2811297-1-ndesaulniers@google.com
    Signed-off-by: Will Deacon

    Nick Desaulniers
     

07 Jun, 2021

1 commit


31 May, 2021

1 commit


29 May, 2021

1 commit


27 May, 2021

1 commit


26 May, 2021

1 commit


25 May, 2021

1 commit

  • -Wframe-larger-than= requires stack frame information, which the
    frontend cannot provide. This diagnostic is emitted late during
    compilation once stack frame size is available.

    When building with LTO, the frontend simply lowers C to LLVM IR and does
    not have stack frame information, so it cannot emit this diagnostic.
    When the linker drives LTO, it restarts optimizations and lowers LLVM IR
    to object code. At that point, it has stack frame information but
    doesn't know to check for a specific max stack frame size.

    I consider this a bug in LLVM that we need to fix. There are some
    details we're working out related to LTO such as which value to use when
    there are multiple different values specified per TU, or how to
    propagate these to compiler synthesized routines properly, if at all.

    Until it's fixed, ensure we don't miss these. At that point we can wrap
    this in a compiler version guard or revert this based on the minimum
    support version of Clang.

    The error message is not generated during link:
    LTO vmlinux.o
    ld.lld: warning: stack size limit exceeded (8224) in foobarbaz

    Cc: Sami Tolvanen
    Reported-by: Candle Sun
    Suggested-by: Fangrui Song
    Signed-off-by: Nick Desaulniers
    Signed-off-by: Kees Cook
    Link: https://lore.kernel.org/r/20210312010942.1546679-1-ndesaulniers@google.com

    Nick Desaulniers
     

24 May, 2021

4 commits

  • I do not see a good reason why only the libelf development package must
    be so carefully checked.

    Kbuild generally does not check host tools or libraries.

    For example, x86_64 defconfig fails to build with no libssl development
    package installed.

    scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: No such file or directory
    21 | #include
    | ^~~~~~~~~~~~~~~

    To solve the build error, you need to install libssl-dev or openssl-devel
    package, depending on your distribution.

    'apt-file search', 'dnf provides', etc. is your frined to find a proper
    package to install.

    This commit removes all the libelf checks from the top Makefile.

    If libelf is missing, objtool will fail to build in a similar pattern:

    .../linux/tools/objtool/include/objtool/elf.h:10:10: fatal error: gelf.h: No such file or directory
    10 | #include

    You need to install libelf-dev, libelf-devel, or elfutils-libelf-devel
    to proceed.

    Another remarkable change is, CONFIG_STACK_VALIDATION (without
    CONFIG_UNWINDER_ORC) previously continued to build with a warning,
    but now it will treat missing libelf as an error.

    This is just a one-time installation, so it should not hurt to break
    a build and make a user install the package.

    BTW, the traditional way to handle such checks is autotool, but according
    to [1], I do not expect the kernel build would have similar scripting
    like './configure' does.

    [1]: https://lore.kernel.org/lkml/CA+55aFzr2HTZVOuzpHYDwmtRJLsVzE-yqg2DHpHi_9ePsYp5ug@mail.gmail.com/

    Signed-off-by: Masahiro Yamada
    Acked-by: Andrii Nakryiko

    Masahiro Yamada
     
  • The tools/ directory only exists in the kernel source tree, not in
    external modules.

    Do not expose the meaningless targets to external modules.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Commit 09c60546f04f ("./Makefile: add debug option to enable
    function aligned on 32 bytes") was introduced to help debugging
    strange kernel performance changes caused by code alignment
    change.

    Recently we found 2 similar cases [1][2] caused by code-alignment
    changes, which can only be identified by forcing 64 bytes aligned
    for all functions.

    Originally, 32 bytes was used mainly for not wasting too much
    text space, but this option is only for debug anyway where text
    space is not a big concern. So extend the alignment to 64 bytes
    to cover more similar cases.

    [1].https://lore.kernel.org/lkml/20210427090013.GG32408@xsang-OptiPlex-9020/
    [2].https://lore.kernel.org/lkml/20210420030837.GB31773@xsang-OptiPlex-9020/
    Signed-off-by: Feng Tang
    Signed-off-by: Masahiro Yamada

    Feng Tang
     
  • Linus Torvalds
     

17 May, 2021

1 commit


10 May, 2021

1 commit


09 May, 2021

1 commit

  • Pull more Kbuild updates from Masahiro Yamada:

    - Convert sh and sparc to use generic shell scripts to generate the
    syscall headers

    - refactor .gitignore files

    - Update kernel/config_data.gz only when the content of the .config
    is really changed, which avoids the unneeded re-link of vmlinux

    - move "remove stale files" workarounds to scripts/remove-stale-files

    - suppress unused-but-set-variable warnings by default for Clang
    as well

    - fix locale setting LANG=C to LC_ALL=C

    - improve 'make distclean'

    - always keep intermediate objects from scripts/link-vmlinux.sh

    - move IF_ENABLED out of to make it self-contained

    - misc cleanups

    * tag 'kbuild-v5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (25 commits)
    linux/kconfig.h: replace IF_ENABLED() with PTR_IF() in
    kbuild: Don't remove link-vmlinux temporary files on exit/signal
    kbuild: remove the unneeded comments for external module builds
    kbuild: make distclean remove tag files in sub-directories
    kbuild: make distclean work against $(objtree) instead of $(srctree)
    kbuild: refactor modname-multi by using suffix-search
    kbuild: refactor fdtoverlay rule
    kbuild: parameterize the .o part of suffix-search
    arch: use cross_compiling to check whether it is a cross build or not
    kbuild: remove ARCH=sh64 support from top Makefile
    .gitignore: prefix local generated files with a slash
    kbuild: replace LANG=C with LC_ALL=C
    Makefile: Move -Wno-unused-but-set-variable out of GCC only block
    kbuild: add a script to remove stale generated files
    kbuild: update config_data.gz only when the content of .config is changed
    .gitignore: ignore only top-level modules.builtin
    .gitignore: move tags and TAGS close to other tag files
    kernel/.gitgnore: remove stale timeconst.h and hz.bc
    usr/include: refactor .gitignore
    genksyms: fix stale comment
    ...

    Linus Torvalds
     

06 May, 2021

3 commits


03 May, 2021

1 commit


02 May, 2021

1 commit

  • Pull IMA updates from Mimi Zohar:
    "In addition to loading the kernel module signing key onto the builtin
    keyring, load it onto the IMA keyring as well.

    Also six trivial changes and bug fixes"

    * tag 'integrity-v5.13' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
    ima: ensure IMA_APPRAISE_MODSIG has necessary dependencies
    ima: Fix fall-through warnings for Clang
    integrity: Add declarations to init_once void arguments.
    ima: Fix function name error in comment.
    ima: enable loading of build time generated key on .ima keyring
    ima: enable signing of modules with build time generated key
    keys: cleanup build time module signing keys
    ima: Fix the error code for restoring the PCR value
    ima: without an IMA policy loaded, return quickly

    Linus Torvalds