home | list info | list archive | date index | thread index

Cherry-picked commit messages of interest from the 5.4 merge window

Hello,

Richard suggested I just post this here in advance of the meeting. Mix
of merge commits from Linus and the commits proper. Of course, let me
know if this is not of any interest to you. Thinking mainly of Ben and
Richard, but if there's anybody else here, sound off. These items don't
always naturally come into conversation at the dinner table during
meetings, when we kvetch about work or other.

I'd add Richard and Ben to the To:, but I don't know if metoo is turned
off in Mailman. Is it?

More of these on my work laptop. Many of them somewhat relevant at work
too.

Cheers,

Alex
commit 45824fc0da6e46cc5d563105e1eaaf3098a686f9 (HEAD -> mainline, origin/master, origin/HEAD)
Merge: 8c2b418c3f95 d9101bfa6adc
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Fri Sep 20 11:48:06 2019 -0700

    Merge tag 'powerpc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux

    Pull powerpc updates from Michael Ellerman:
     "This is a bit late, partly due to me travelling, and partly due to a
      power outage knocking out some of my test systems *while* I was
      travelling.

Cool story.

       - Support for building the kernel to run as a "Secure Virtual
         Machine", ie. as a guest capable of running on a system with an
         Ultravisor.

       […]

(In UT2K4 voice) supervisor, hypervisor, ultravisor!

commit 3207598ab00e0fb06c8d73c9ae567afa4847e70e
Merge: b08918fb3f27 d8a050f5a3e8
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Fri Sep 20 10:31:19 2019 -0700

    Merge tag 'kgdb-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux

    Pull kgdb updates from Daniel Thompson:
     "It has been a quiet dev cycle for kgdb. There has been some good stuff
      for kdb on the mailing list but unfortunately the patches caused a
      couple of problems with the kdb pager so I had to drop those and they
      will have to wait for next time!

Yes, UNIX people appreciate pagers more than you imagine… too bad I don't have
the patch to look at handy.

commit c3367a1b47d590f97109cd4b5189e750fb26c0f1
Author: Steven J. Magnani <steve [ dot ] magnani [ at ] digidescorp [ dot ] com>
Date:   Tue Aug 27 07:13:59 2019 -0500

    udf: augment UDF permissions on new inodes

    Windows presents files created within Linux as read-only, even when
    permissions in Linux indicate the file should be writable.

    UDF defines a slightly different set of basic file permissions than Linux.
    Specifically, UDF has "delete" and "change attribute" permissions for each
    access class (user/group/other). Linux has no equivalents for these.

    When the Linux UDF driver creates a file (or directory), no UDF delete or
    change attribute permissions are granted. The lack of delete permission
    appears to cause Windows to mark an item read-only when its permissions
    otherwise indicate that it should be read-write.

    Fix this by having UDF delete permissions track Linux write permissions.
    Also grant UDF change attribute permission to the owner when creating a
    new inode.

    Reported by: Ty Young
    Signed-off-by: Steven J. Magnani <steve [ at ] digidescorp [ dot ] com>
    Link: https://lore.kernel.org/r/20190827121359 [ dot ] 9954-1-steve [ at ] digidescorp [ dot ] com
    Signed-off-by: Jan Kara <jack [ at ] suse [ dot ] cz>

commit ab9a3a737284b3d9e1d2ba43a0ef31b3ef2e2417
Author: Steven J. Magnani <steve [ dot ] magnani [ at ] digidescorp [ dot ] com>
Date:   Wed Aug 14 07:50:02 2019 -0500

    udf: reduce leakage of blocks related to named streams

    Windows is capable of creating UDF files having named streams.
    One example is the "Zone.Identifier" stream attached automatically
    to files downloaded from a network. See:
      https://msdn.microsoft.com/en-us/library/dn392609.aspx

    Modification of a file having one or more named streams in Linux causes
    the stream directory to become detached from the file, essentially leaking
    all blocks pertaining to the file's streams.

    Fix by saving off information about an inode's streams when reading it,
    for later use when its on-disk data is updated.

    Link: https://lore.kernel.org/r/20190814125002 [ dot ] 10869-1-steve [ at ] digidescorp [ dot ] com
    Signed-off-by: Steven J. Magnani <steve [ at ] digidescorp [ dot ] com>
    Signed-off-by: Jan Kara <jack [ at ] suse [ dot ] cz>

commit 6fbacb8539a6659d446a9efabb538cfc007c1427
Author: Steven J. Magnani <steve [ dot ] magnani [ at ] digidescorp [ dot ] com>
Date:   Thu Jul 11 08:38:52 2019 -0500

    udf: support 2048-byte spacing of VRS descriptors on 4K media

    Some UDF creators (specifically Microsoft, but perhaps others) mishandle
    the ECMA-167 corner case that requires descriptors within a Volume
    Recognition Sequence to be placed at 4096-byte intervals on media where
    the block size is 4K. Instead, the descriptors are placed at the 2048-
    byte interval mandated for media with smaller blocks. This nonconformity
    currently prevents Linux from recognizing the filesystem as UDF.

    Modify the driver to tolerate a misformatted VRS on 4K media.

    [JK: Simplified descriptor checking]
    Signed-off-by: Steven J. Magnani <steve [ at ] digidescorp [ dot ] com>
    Tested-by: Steven J. Magnani <steve [ at ] digidescorp [ dot ] com>
    Link: https://lore.kernel.org/r/20190711133852 [ dot ] 16887-2-steve [ at ] digidescorp [ dot ] com
    Signed-off-by: Jan Kara <jack [ at ] suse [ dot ] cz>

Interesting MS. This has gone on for a while, but how many people still care
about UDF in this age of Netflix?

commit 70cb0d02b58128db07fc39b5e87a2873e2c16bde
Merge: 104c0d6bc43e 040823b5372b
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 21 13:37:39 2019 -0700

    Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4

    Pull ext4 updates from Ted Ts'o:
     "Added new ext4 debugging ioctls to allow userspace to get information
      about the state of the extent status cache.

      Dropped workaround for pre-1970 dates which were encoded incorrectly
      in pre-4.4 kernels. Since both the kernel correctly generates, and
      e2fsck detects and fixes this issue for the past four years, it'e time
      to drop the workaround. (Also, it's not like files with dates in the
      distant past were all that common in the first place.)

I wonder if anybody got bitten by the above.

More specific commit:

commit cd2d99229dc96219547e6349841e1aad851c6acc
Author: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>
Date:   Mon Aug 12 13:44:49 2019 -0400

    ext4: drop legacy pre-1970 encoding workaround

    Originally, support for expanded timestamps had a bug in that pre-1970
    times were erroneously encoded as being in the the 24th century.  This
    was fixed in commit a4dad1ae24f8 ("ext4: Fix handling of extended
    tv_sec") which landed in 4.4.  Starting with 4.4, pre-1970 timestamps
    were correctly encoded, but for backwards compatibility those
    incorrectly encoded timestamps were mapped back to the pre-1970 dates.

    Given that backwards compatibility workaround has been around for 4
    years, and given that running e2fsck from e2fsprogs 1.43.2 and later
    will offer to fix these timestamps (which has been released for 3
    years), it's past time to drop the legacy workaround from the kernel.

    Signed-off-by: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>

commit 6456ca6520ab6c9aec589b4640169cd6da378c68
Author: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>
Date:   Tue Sep 3 01:43:17 2019 -0400

    ext4: fix kernel oops caused by spurious casefold flag

    If an directory has the a casefold flag set without the casefold
    feature set, s_encoding will not be initialized, and this will cause
    the kernel to dereference a NULL pointer.  In addition to adding
    checks to avoid these kernel oops, attempts to load inodes with the
    casefold flag when the casefold feature is not enable will cause the
    file system to be declared corrupted.

    Signed-off-by: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>

Lovely.

commit 7727ae52975d4f4ef7ff69ed8e6e25f6a4168158
Author: zhangyi (F) <yi [ dot ] zhang [ at ] huawei [ dot ] com>
Date:   Wed Aug 28 11:13:24 2019 -0400

    ext4: fix potential use after free after remounting with noblock_validity

    Remount process will release system zone which was allocated before if
    "noblock_validity" is specified. If we mount an ext4 file system to two
    mountpoints with default mount options, and then remount one of them
    with "noblock_validity", it may trigger a use after free problem when
    someone accessing the other one.

     # mount /dev/sda foo
     # mount /dev/sda bar

    User access mountpoint "foo"   |   Remount mountpoint "bar"
                                   |
    ext4_map_blocks()              |   ext4_remount()
    check_block_validity()         |   ext4_setup_system_zone()
    ext4_data_block_valid()        |   ext4_release_system_zone()
                                   |   free system_blks rb nodes
    access system_blks rb nodes    |
    trigger use after free         |

    This problem can also be reproduced by one mountpint, At the same time,
    add_system_zone() can get called during remount as well so there can be
    racing ext4_data_block_valid() reading the rbtree at the same time.

    This patch add RCU to protect system zone from releasing or building
    when doing a remount which inverse current "noblock_validity" mount
    option. It assign the rbtree after the whole tree was complete and
    do actual freeing after rcu grace period, avoid any intermediate state.

    Reported-by: syzbot+1e470567330b7ad711d5 [ at ] syzkaller [ dot ] appspotmail [ dot ] com
    Signed-off-by: zhangyi (F) <yi [ dot ] zhang [ at ] huawei [ dot ] com>
    Signed-off-by: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>
    Reviewed-by: Jan Kara <jack [ at ] suse [ dot ] cz>

Valid, but intereeeeeeeeeeesting use case you got there buddy.

commit c1e8220bd316d8ae8e524df39534b8a412a45d5e
Author: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>
Date:   Fri Aug 23 22:38:00 2019 -0400

    ext4: fix punch hole for inline_data file systems

    If a program attempts to punch a hole on an inline data file, we need
    to convert it to a normal file first.

    This was detected using ext4/032 using the adv configuration.  Simple
    reproducer:

    mke2fs -Fq -t ext4 -O inline_data /dev/vdc
    mount /vdc
    echo "" > /vdc/testfile
    xfs_io -c 'truncate 33554432' /vdc/testfile
    xfs_io -c 'fpunch 0 1048576' /vdc/testfile
    umount /vdc
    e2fsck -fy /dev/vdc

    Cc: stable [ at ] vger [ dot ] kernel [ dot ] org
    Signed-off-by: Theodore Ts'o <tytso [ at ] mit [ dot ] edu>

Yay! More ext4 hole punching bugs! In the same merge window that found some XFS
ones! Reminds me of a year or two ago.

commit 9dca3432ee063b70a4cfb3f0857d0aeef7b84fa8
Merge: 4553d469d6f8 73625ed66389
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 21 11:07:02 2019 -0700

    Merge tag 'for-linus-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml

    Pull UML updates from Richard Weinberger:

     - virtio support

     - fixes for our new time travel mode

UML has virtio… finally! And SCSI has virtio request batching… if you even used
that with QEMU.

commit 10fd71780f7d155f4e35fecfad0ebd4a725a244b
Merge: 3e414b5bd28f e74006edd0d4
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 21 10:50:15 2019 -0700

    Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi

    Pull SCSI updates from James Bottomley:
     "This is mostly update of the usual drivers: qla2xxx, ufs, smartpqi,
      lpfc, hisi_sas, qedf, mpt3sas; plus a whole load of minor updates. The
      only core change this time around is the addition of request batching
      for virtio. Since batching requires an additional flag to use, it
      should be invisible to the rest of the drivers"

commit 3e414b5bd28f965fb39b9e9419d877df0cf3111a
Merge: 018c6837f3e6 afa179eb6038
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 21 10:40:37 2019 -0700

    Merge tag 'for-5.4/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm

    Pull device mapper updates from Mike Snitzer:

     - crypto and DM crypt advances that allow the crypto API to reclaim
       implementation details that do not belong in DM crypt. The wrapper
       template for ESSIV generation that was factored out will also be used
       by fscrypt in the future.

     - Add root hash pkcs#7 signature verification to the DM verity target.

     - Add a new "clone" DM target that allows for efficient remote
       replication of a device.

     - Enhance DM bufio's cache to be tailored to each client based on use.
       Clients that make heavy use of the cache get more of it, and those
       that use less have reduced cache usage.

     - Add a new DM_GET_TARGET_VERSION ioctl to allow userspace to query the
       version number of a DM target (even if the associated module isn't
       yet loaded).

commit 227c3e9eb5cf3552c2cc83225df6d14adb05f8e8
Merge: 56c631f5aec3 32ee8230b2b0
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 21 09:47:19 2019 -0700

    Merge tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux

    Pull asm inline support from Miguel Ojeda:
     "Make use of gcc 9's "asm inline()" (Rasmus Villemoes):

      gcc 9+ (and gcc 8.3, 7.5) provides a way to override the otherwise
      crude heuristic that gcc uses to estimate the size of the code
      represented by an asm() statement. From the gcc docs

          If you use 'asm inline' instead of just 'asm', then for inlining
          purposes the size of the asm is taken as the minimum size, ignoring
          how many instructions GCC thinks it is.

      For compatibility with older compilers, we obviously want a

          #if [understands asm inline]
          #define asm_inline asm inline
          #else
          #define asm_inline asm
          #endif

      But since we #define the identifier inline to attach some attributes,
      we have to use an alternate spelling of that keyword. gcc provides
      both __inline__ and __inline, and we currently #define both to inline,
      so they all have the same semantics.

      We have to free up one of __inline__ and __inline, and the latter is
      by far the easiest.

      The two x86 changes cause smaller code gen differences than I'd
      expect, but I think we do want the asm_inline thing available sooner
      or later, so this is just to get the ball rolling"

    * tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux:
      x86: bug.h: use asm_inline in _BUG_FLAGS definitions
      x86: alternative.h: use asm_inline for all alternative variants
      compiler-types.h: add asm_inline definition
      compiler_types.h: don't #define __inline
      lib/zstd/mem.h: replace __inline by inline
      staging: rtl8723bs: replace __inline by inline

GCC strikes back.

commit e0703556644a531e50b5dc61b9f6ea83af5f6604
Merge: 8808cf8cbc4d 2e6fcfeb9df6
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sun Sep 22 10:34:46 2019 -0700

    Merge tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux

    Pull modules updates from Jessica Yu:
     "The main bulk of this pull request introduces a new exported symbol
      namespaces feature. The number of exported symbols is increasingly
      growing with each release (we're at about 31k exports as of 5.3-rc7)
      and we currently have no way of visualizing how these symbols are
      "clustered" or making sense of this huge export surface.

      Namespacing exported symbols allows kernel developers to more
      explicitly partition and categorize exported symbols, as well as more
      easily limiting the availability of namespaced symbols to other parts
      of the kernel. For starters, we have introduced the USB_STORAGE
      namespace to demonstrate the API's usage. I have briefly summarized
      the feature and its main motivations in the tag below.

      Summary:

       - Introduce exported symbol namespaces.

         This new feature allows subsystem maintainers to partition and
         categorize their exported symbols into explicit namespaces. Module
         authors are now required to import the namespaces they need.

         Some of the main motivations of this feature include: allowing
         kernel developers to better manage the export surface, allow
         subsystem maintainers to explicitly state that usage of some
         exported symbols should only be limited to certain users (think:
         inter-module or inter-driver symbols, debugging symbols, etc), as
         well as more easily limiting the availability of namespaced symbols
         to other parts of the kernel.

         With the module import requirement, it is also easier to spot the
         misuse of exported symbols during patch review.

         Two new macros are introduced: EXPORT_SYMBOL_NS() and
         EXPORT_SYMBOL_NS_GPL(). The API is thoroughly documented in
         Documentation/kbuild/namespaces.rst.

       - Some small code and kbuild cleanups here and there"

commit 1d082773ff30e97c8bc10b65c4aa0d073664caac
Author: Matthias Maennich <maennich [ at ] google [ dot ] com>
Date:   Fri Sep 6 11:32:31 2019 +0100

    modpost: add support for generating namespace dependencies

    This patch adds an option to modpost to generate a <module>.ns_deps file
    per module, containing the namespace dependencies for that module.

    E.g. if the linked module my-module.ko would depend on the symbol
    myfunc.MY_NS in the namespace MY_NS, the my-module.ns_deps file created
    by modpost would contain the entry MY_NS to express the namespace
    dependency of my-module imposed by using the symbol myfunc.

    These files can subsequently be used by static analysis tools (like
    coccinelle scripts) to address issues with missing namespace imports. A
    later patch of this series will introduce such a script 'nsdeps' and a
    corresponding make target to automatically add missing
    MODULE_IMPORT_NS() definitions to the module's sources. For that it uses
    the information provided in the generated .ns_deps files.

    Co-developed-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Signed-off-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Reviewed-by: Greg Kroah-Hartman <gregkh [ at ] linuxfoundation [ dot ] org>
    Signed-off-by: Matthias Maennich <maennich [ at ] google [ dot ] com>
    Signed-off-by: Jessica Yu <jeyu [ at ] kernel [ dot ] org>

commit cb9b55d21fe06ca5e4ba244bb5aac0afeb745c8e
Author: Matthias Maennich <maennich [ at ] google [ dot ] com>
Date:   Fri Sep 6 11:32:28 2019 +0100

    modpost: add support for symbol namespaces

    Add support for symbols that are exported into namespaces. For that,
    extract any namespace suffix from the symbol name. In addition, emit a
    warning whenever a module refers to an exported symbol without
    explicitly importing the namespace that it is defined in. This patch
    consistently adds the namespace suffix to symbol names exported into
    Module.symvers.

    Example warning emitted by modpost in case of the above violation:

     WARNING: module ums-usbat uses symbol usb_stor_resume from namespace
     USB_STORAGE, but does not import it.

    Co-developed-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Signed-off-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Reviewed-by: Joel Fernandes (Google) <joel [ at ] joelfernandes [ dot ] org>
    Reviewed-by: Greg Kroah-Hartman <gregkh [ at ] linuxfoundation [ dot ] org>
    Signed-off-by: Matthias Maennich <maennich [ at ] google [ dot ] com>
    Signed-off-by: Jessica Yu <jeyu [ at ] kernel [ dot ] org>

commit 8651ec01daedad26290f76beeb4736f9d2da4b87
Author: Matthias Maennich <maennich [ at ] google [ dot ] com>
Date:   Fri Sep 6 11:32:27 2019 +0100

    module: add support for symbol namespaces.

    The EXPORT_SYMBOL_NS() and EXPORT_SYMBOL_NS_GPL() macros can be used to
    export a symbol to a specific namespace.  There are no _GPL_FUTURE and
    _UNUSED variants because these are currently unused, and I'm not sure
    they are necessary.

    I didn't add EXPORT_SYMBOL_NS() for ASM exports; this patch sets the
    namespace of ASM exports to NULL by default. In case of relative
    references, it will be relocatable to NULL. If there's a need, this
    should be pretty easy to add.

    A module that wants to use a symbol exported to a namespace must add a
    MODULE_IMPORT_NS() statement to their module code; otherwise, modpost
    will complain when building the module, and the kernel module loader
    will emit an error and fail when loading the module.

    MODULE_IMPORT_NS() adds a modinfo tag 'import_ns' to the module. That
    tag can be observed by the modinfo command, modpost and kernel/module.c
    at the time of loading the module.

    The ELF symbols are renamed to include the namespace with an asm label;
    for example, symbol 'usb_stor_suspend' in namespace USB_STORAGE becomes
    'usb_stor_suspend.USB_STORAGE'.  This allows modpost to do namespace
    checking, without having to go through all the effort of parsing ELF and
    relocation records just to get to the struct kernel_symbols.

    On x86_64 I saw no difference in binary size (compression), but at
    runtime this will require a word of memory per export to hold the
    namespace. An alternative could be to store namespaced symbols in their
    own section and use a separate 'struct namespaced_kernel_symbol' for
    that section, at the cost of making the module loader more complex.

    Co-developed-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Signed-off-by: Martijn Coenen <maco [ at ] android [ dot ] com>
    Reviewed-by: Greg Kroah-Hartman <gregkh [ at ] linuxfoundation [ dot ] org>
    Signed-off-by: Matthias Maennich <maennich [ at ] google [ dot ] com>
    Signed-off-by: Jessica Yu <jeyu [ at ] kernel [ dot ] org>

commit c5e4a062fe661806ab291a7576dc4a41613adb86
Author: Matthias Maennich <maennich [ at ] google [ dot ] com>
Date:   Fri Sep 6 11:32:25 2019 +0100

    module: support reading multiple values per modinfo tag

    Similar to modpost's get_next_modinfo(), introduce get_next_modinfo() in
    kernel/module.c to acquire any further values associated with the same
    modinfo tag name. That is useful for any tags that have multiple
    occurrences (such as 'alias'), but is in particular introduced here as
    part of the symbol namespaces patch series to read the (potentially)
    multiple namespaces a module is importing.

commit aefcf2f4b58155d27340ba5f9ddbe9513da8286d
Merge: f1f2f614d535 45893a0abee6
Author: Linus Torvalds <torvalds [ at ] linux-foundation [ dot ] org>
Date:   Sat Sep 28 08:14:15 2019 -0700

    Merge branch 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security

    Pull kernel lockdown mode from James Morris:
     "This is the latest iteration of the kernel lockdown patchset, from
      Matthew Garrett, David Howells and others.

      From the original description:

        This patchset introduces an optional kernel lockdown feature,
        intended to strengthen the boundary between UID 0 and the kernel.
        When enabled, various pieces of kernel functionality are restricted.
        Applications that rely on low-level access to either hardware or the
        kernel may cease working as a result - therefore this should not be
        enabled without appropriate evaluation beforehand.

        The majority of mainstream distributions have been carrying variants
        of this patchset for many years now, so there's value in providing a
        doesn't meet every distribution requirement, but gets us much closer
        to not requiring external patches.

      There are two major changes since this was last proposed for mainline:

       - Separating lockdown from EFI secure boot. Background discussion is
         covered here: https://lwn.net/Articles/751061/

       -  Implementation as an LSM, with a default stackable lockdown LSM
          module. This allows the lockdown feature to be policy-driven,
          rather than encoding an implicit policy within the mechanism.

      The new locked_down LSM hook is provided to allow LSMs to make a
      policy decision around whether kernel functionality that would allow
      tampering with or examining the runtime state of the kernel should be
      permitted.

      The included lockdown LSM provides an implementation with a simple
      policy intended for general purpose use. This policy provides a coarse
      level of granularity, controllable via the kernel command line:

        lockdown={integrity|confidentiality}

      Enable the kernel lockdown feature. If set to integrity, kernel features
      that allow userland to modify the running kernel are disabled. If set to
      confidentiality, kernel features that allow userland to extract
      confidential information from the kernel are also disabled.

      This may also be controlled via /sys/kernel/security/lockdown and
      overriden by kernel configuration.

      New or existing LSMs may implement finer-grained controls of the
      lockdown features. Refer to the lockdown_reason documentation in
      include/linux/security.h for details.

      The lockdown feature has had signficant design feedback and review
      across many subsystems. This code has been in linux-next for some
      weeks, with a few fixes applied along the way.

      Stephen Rothwell noted that commit 9d1f8be5cf42 ("bpf: Restrict bpf
      when kernel lockdown is in confidentiality mode") is missing a
      Signed-off-by from its author. Matthew responded that he is providing
      this under category (c) of the DCO"

    * 'next-lockdown' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (31 commits)
      kexec: Fix file verification on S390
      security: constify some arrays in lockdown LSM
      lockdown: Print current->comm in restriction messages
      efi: Restrict efivar_ssdt_load when the kernel is locked down
      tracefs: Restrict tracefs when the kernel is locked down
      debugfs: Restrict debugfs when the kernel is locked down
      kexec: Allow kexec_file() with appropriate IMA policy when locked down
      lockdown: Lock down perf when in confidentiality mode
      bpf: Restrict bpf when kernel lockdown is in confidentiality mode
      lockdown: Lock down tracing and perf kprobes when in confidentiality mode
      lockdown: Lock down /proc/kcore
      x86/mmiotrace: Lock down the testmmiotrace module
      lockdown: Lock down module params that specify hardware parameters (eg. ioport)
      lockdown: Lock down TIOCSSERIAL
      lockdown: Prohibit PCMCIA CIS storage when the kernel is locked down
      acpi: Disable ACPI table override if the kernel is locked down
      acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down
      ACPI: Limit access to custom_method when the kernel is locked down
      x86/msr: Restrict MSR access when the kernel is locked down
      x86: Lock down IO port access when the kernel is locked down
      ...