Skip to content
Snippets Groups Projects
  1. Oct 19, 2022
    • GONG, Ruiqi's avatar
      selinux: enable use of both GFP_KERNEL and GFP_ATOMIC in convert_context() · abe3c631
      GONG, Ruiqi authored
      The following warning was triggered on a hardware environment:
      
        SELinux: Converting 162 SID table entries...
        BUG: sleeping function called from invalid context at
             __might_sleep+0x60/0x74 0x0
        in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 5943, name: tar
        CPU: 7 PID: 5943 Comm: tar Tainted: P O 5.10.0 #1
        Call trace:
         dump_backtrace+0x0/0x1c8
         show_stack+0x18/0x28
         dump_stack+0xe8/0x15c
         ___might_sleep+0x168/0x17c
         __might_sleep+0x60/0x74
         __kmalloc_track_caller+0xa0/0x7dc
         kstrdup+0x54/0xac
         convert_context+0x48/0x2e4
         sidtab_context_to_sid+0x1c4/0x36c
         security_context_to_sid_core+0x168/0x238
         security_context_to_sid_default+0x14/0x24
         inode_doinit_use_xattr+0x164/0x1e4
         inode_doinit_with_dentry+0x1c0/0x488
         selinux_d_instantiate+0x20/0x34
         security_d_instantiate+0x70/0xbc
         d_splice_alias+0x4c/0x3c0
         ext4_lookup+0x1d8/0x200 [ext4]
         __lookup_slow+0x12c/0x1e4
         walk_component+0x100/0x200
         path_lookupat+0x88/0x118
         filename_lookup+0x98/0x130
         user_path_at_empty+0x48/0x60
         vfs_statx+0x84/0x140
         vfs_fstatat+0x20/0x30
         __se_sys_newfstatat+0x30/0x74
         __arm64_sys_newfstatat+0x1c/0x2c
         el0_svc_common.constprop.0+0x100/0x184
         do_el0_svc+0x1c/0x2c
         el0_svc+0x20/0x34
         el0_sync_handler+0x80/0x17c
         el0_sync+0x13c/0x140
        SELinux: Context system_u:object_r:pssp_rsyslog_log_t:s0:c0 is
                 not valid (left unmapped).
      
      It was found that within a critical section of spin_lock_irqsave in
      sidtab_context_to_sid(), convert_context() (hooked by
      sidtab_convert_params.func) might cause the process to sleep via
      allocating memory with GFP_KERNEL, which is problematic.
      
      As Ondrej pointed out [1], convert_context()/sidtab_convert_params.func
      has another caller sidtab_convert_tree(), which is okay with GFP_KERNEL.
      Therefore, fix this problem by adding a gfp_t argument for
      convert_context()/sidtab_convert_params.func and pass GFP_KERNEL/_ATOMIC
      properly in individual callers.
      
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/all/20221018120111.1474581-1-gongruiqi1@huawei.com/
      
       [1]
      Reported-by: default avatarTan Ninghao <tanninghao1@huawei.com>
      Fixes: ee1a84fd ("selinux: overhaul sidtab to fix bug and improve performance")
      Signed-off-by: default avatarGONG, Ruiqi <gongruiqi1@huawei.com>
      Reviewed-by: default avatarOndrej Mosnacek <omosnace@redhat.com>
      [PM: wrap long BUG() output lines, tweak subject line]
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      abe3c631
  2. Oct 04, 2022
  3. Oct 03, 2022
    • Alexander Potapenko's avatar
      security: kmsan: fix interoperability with auto-initialization · 42eaa27d
      Alexander Potapenko authored
      Heap and stack initialization is great, but not when we are trying uses of
      uninitialized memory.  When the kernel is built with KMSAN, having kernel
      memory initialization enabled may introduce false negatives.
      
      We disable CONFIG_INIT_STACK_ALL_PATTERN and CONFIG_INIT_STACK_ALL_ZERO
      under CONFIG_KMSAN, making it impossible to auto-initialize stack
      variables in KMSAN builds.  We also disable
      CONFIG_INIT_ON_ALLOC_DEFAULT_ON and CONFIG_INIT_ON_FREE_DEFAULT_ON to
      prevent accidental use of heap auto-initialization.
      
      We however still let the users enable heap auto-initialization at
      boot-time (by setting init_on_alloc=1 or init_on_free=1), in which case a
      warning is printed.
      
      Link: https://lkml.kernel.org/r/20220915150417.722975-31-glider@google.com
      
      
      Signed-off-by: default avatarAlexander Potapenko <glider@google.com>
      Cc: Alexander Viro <viro@zeniv.linux.org.uk>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Andrey Konovalov <andreyknvl@gmail.com>
      Cc: Andrey Konovalov <andreyknvl@google.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Christoph Lameter <cl@linux.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: Eric Biggers <ebiggers@google.com>
      Cc: Eric Biggers <ebiggers@kernel.org>
      Cc: Eric Dumazet <edumazet@google.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: Ilya Leoshkevich <iii@linux.ibm.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jens Axboe <axboe@kernel.dk>
      Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Marco Elver <elver@google.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Pekka Enberg <penberg@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Petr Mladek <pmladek@suse.com>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Cc: Vegard Nossum <vegard.nossum@oracle.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      42eaa27d
  4. Sep 30, 2022
    • Orlando Chamberlain's avatar
      efi: Correct Macmini DMI match in uefi cert quirk · bab715bd
      Orlando Chamberlain authored
      
      It turns out Apple doesn't capitalise the "mini" in "Macmini" in DMI, which
      is inconsistent with other model line names.
      
      Correct the capitalisation of Macmini in the quirk for skipping loading
      platform certs on T2 Macs.
      
      Currently users get:
      
      ------------[ cut here ]------------
      [Firmware Bug]: Page fault caused by firmware at PA: 0xffffa30640054000
      WARNING: CPU: 1 PID: 8 at arch/x86/platform/efi/quirks.c:735 efi_crash_gracefully_on_page_fault+0x55/0xe0
      Modules linked in:
      CPU: 1 PID: 8 Comm: kworker/u12:0 Not tainted 5.18.14-arch1-2-t2 #1 4535eb3fc40fd08edab32a509fbf4c9bc52d111e
      Hardware name: Apple Inc. Macmini8,1/Mac-7BA5B2DFE22DDD8C, BIOS 1731.120.10.0.0 (iBridge: 19.16.15071.0.0,0) 04/24/2022
      Workqueue: efi_rts_wq efi_call_rts
      ...
      ---[ end trace 0000000000000000 ]---
      efi: Froze efi_rts_wq and disabled EFI Runtime Services
      integrity: Couldn't get size: 0x8000000000000015
      integrity: MODSIGN: Couldn't get UEFI db list
      efi: EFI Runtime Services are disabled!
      integrity: Couldn't get size: 0x8000000000000015
      integrity: Couldn't get UEFI dbx list
      
      Fixes: 155ca952 ("efi: Do not import certificates from UEFI Secure Boot for T2 Macs")
      Cc: stable@vger.kernel.org
      Cc: Aditya Garg <gargaditya08@live.com>
      Tested-by: default avatarSamuel Jiang <chyishian.jiang@gmail.com>
      Signed-off-by: default avatarOrlando Chamberlain <redecorating@protonmail.com>
      Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      bab715bd
    • Kees Cook's avatar
      hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero · 607e57c6
      Kees Cook authored
      
      Now that Clang's -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
      option is no longer required, remove it from the command line. Clang 16
      and later will warn when it is used, which will cause Kconfig to think
      it can't use -ftrivial-auto-var-init=zero at all. Check for whether it
      is required and only use it when so.
      
      Cc: Nathan Chancellor <nathan@kernel.org>
      Cc: Masahiro Yamada <masahiroy@kernel.org>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: linux-kbuild@vger.kernel.org
      Cc: llvm@lists.linux.dev
      Cc: stable@vger.kernel.org
      Fixes: f02003c8 ("hardening: Avoid harmless Clang option under CONFIG_INIT_STACK_ALL_ZERO")
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      607e57c6
  5. Sep 29, 2022
  6. Sep 28, 2022
  7. Sep 27, 2022
  8. Sep 22, 2022
  9. Sep 14, 2022
  10. Sep 07, 2022
  11. Sep 02, 2022
    • Mickaël Salaün's avatar
      landlock: Fix file reparenting without explicit LANDLOCK_ACCESS_FS_REFER · 55e55920
      Mickaël Salaün authored
      
      This change fixes a mis-handling of the LANDLOCK_ACCESS_FS_REFER right
      when multiple rulesets/domains are stacked. The expected behaviour was
      that an additional ruleset can only restrict the set of permitted
      operations, but in this particular case, it was potentially possible to
      re-gain the LANDLOCK_ACCESS_FS_REFER right.
      
      With the introduction of LANDLOCK_ACCESS_FS_REFER, we added the first
      globally denied-by-default access right.  Indeed, this lifted an initial
      Landlock limitation to rename and link files, which was initially always
      denied when the source or the destination were different directories.
      
      This led to an inconsistent backward compatibility behavior which was
      only taken into account if no domain layer were using the new
      LANDLOCK_ACCESS_FS_REFER right. However, when restricting a thread with
      a new ruleset handling LANDLOCK_ACCESS_FS_REFER, all inherited parent
      rulesets/layers not explicitly handling LANDLOCK_ACCESS_FS_REFER would
      behave as if they were handling this access right and with all their
      rules allowing it. This means that renaming and linking files could
      became allowed by these parent layers, but all the other required
      accesses must also be granted: all layers must allow file removal or
      creation, and renaming and linking operations cannot lead to privilege
      escalation according to the Landlock policy.  See detailed explanation
      in commit b91c3e4e ("landlock: Add support for file reparenting with
      LANDLOCK_ACCESS_FS_REFER").
      
      To say it another way, this bug may lift the renaming and linking
      limitations of the initial Landlock version, and a same ruleset can
      enforce different restrictions depending on previous or next enforced
      ruleset (i.e. inconsistent behavior). The LANDLOCK_ACCESS_FS_REFER right
      cannot give access to data not already allowed, but this doesn't follow
      the contract of the first Landlock ABI. This fix puts back the
      limitation for sandboxes that didn't opt-in for this additional right.
      
      For instance, if a first ruleset allows LANDLOCK_ACCESS_FS_MAKE_REG on
      /dst and LANDLOCK_ACCESS_FS_REMOVE_FILE on /src, renaming /src/file to
      /dst/file is denied. However, without this fix, stacking a new ruleset
      which allows LANDLOCK_ACCESS_FS_REFER on / would now permit the
      sandboxed thread to rename /src/file to /dst/file .
      
      This change fixes the (absolute) rule access rights, which now always
      forbid LANDLOCK_ACCESS_FS_REFER except when it is explicitly allowed
      when creating a rule.
      
      Making all domain handle LANDLOCK_ACCESS_FS_REFER was an initial
      approach but there is two downsides:
      * it makes the code more complex because we still want to check that a
        rule allowing LANDLOCK_ACCESS_FS_REFER is legitimate according to the
        ruleset's handled access rights (i.e. ABI v1 != ABI v2);
      * it would not allow to identify if the user created a ruleset
        explicitly handling LANDLOCK_ACCESS_FS_REFER or not, which will be an
        issue to audit Landlock.
      
      Instead, this change adds an ACCESS_INITIALLY_DENIED list of
      denied-by-default rights, which (only) contains
      LANDLOCK_ACCESS_FS_REFER.  All domains are treated as if they are also
      handling this list, but without modifying their fs_access_masks field.
      
      A side effect is that the errno code returned by rename(2) or link(2)
      *may* be changed from EXDEV to EACCES according to the enforced
      restrictions.  Indeed, we now have the mechanic to identify if an access
      is denied because of a required right (e.g. LANDLOCK_ACCESS_FS_MAKE_REG,
      LANDLOCK_ACCESS_FS_REMOVE_FILE) or if it is denied because of missing
      LANDLOCK_ACCESS_FS_REFER rights.  This may result in different errno
      codes than for the initial Landlock version, but this approach is more
      consistent and better for rename/link compatibility reasons, and it
      wasn't possible before (hence no backport to ABI v1).  The
      layout1.rename_file test reflects this change.
      
      Add 4 layout1.refer_denied_by_default* test suites to check that the
      behavior of a ruleset not handling LANDLOCK_ACCESS_FS_REFER (ABI v1) is
      unchanged even if another layer handles LANDLOCK_ACCESS_FS_REFER (i.e.
      ABI v1 precedence).  Make sure rule's absolute access rights are correct
      by testing with and without a matching path.  Add test_rename() and
      test_exchange() helpers.
      
      Extend layout1.inval tests to check that a denied-by-default access
      right is not necessarily part of a domain's handled access rights.
      
      Test coverage for security/landlock is 95.3% of 599 lines according to
      gcc/gcov-11.
      
      Fixes: b91c3e4e ("landlock: Add support for file reparenting with LANDLOCK_ACCESS_FS_REFER")
      Reviewed-by: default avatarPaul Moore <paul@paul-moore.com>
      Reviewed-by: default avatarGünther Noack <gnoack3000@gmail.com>
      Link: https://lore.kernel.org/r/20220831203840.1370732-1-mic@digikod.net
      
      
      Cc: stable@vger.kernel.org
      [mic: Constify and slightly simplify test helpers]
      Signed-off-by: default avatarMickaël Salaün <mic@digikod.net>
      55e55920
  12. Sep 01, 2022
  13. Aug 31, 2022
    • Christian Brauner's avatar
      acl: move idmapping handling into posix_acl_xattr_set() · 52edb408
      Christian Brauner authored
      The uapi POSIX ACL struct passed through the value argument during
      setxattr() contains {g,u}id values encoded via ACL_{GROUP,USER} entries
      that should actually be stored in the form of k{g,u}id_t (See [1] for a
      long explanation of the issue.).
      
      In 0c5fd887 ("acl: move idmapped mount fixup into vfs_{g,s}etxattr()")
      we took the mount's idmapping into account in order to let overlayfs
      handle POSIX ACLs on idmapped layers correctly. The fixup is currently
      performed directly in vfs_setxattr() which piles on top of the earlier
      hackiness by handling the mount's idmapping and stuff the vfs{g,u}id_t
      values into the uapi struct as well. While that is all correct and works
      fine it's just ugly.
      
      Now that we have introduced vfs_make_posix_acl() earlier move handling
      idmapped mounts out of vfs_setxattr() and into the POSIX ACL handler
      where it belongs.
      
      Note that we also need to call vfs_make_posix_acl() for EVM which
      interpretes POSIX ACLs during security_inode_setxattr(). Leave them a
      longer comment for future reference.
      
      All filesystems that support idmapped mounts via FS_ALLOW_IDMAP use the
      standard POSIX ACL xattr handlers and are covered by this change. This
      includes overlayfs which simply calls vfs_{g,s}etxattr().
      
      The following filesystems use custom POSIX ACL xattr handlers: 9p, cifs,
      ecryptfs, and ntfs3 (and overlayfs but we've covered that in the paragraph
      above) and none of them support idmapped mounts yet.
      
      Link: https://lore.kernel.org/all/20220801145520.1532837-1-brauner@kernel.org/
      
       [1]
      Signed-off-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      Reviewed-by: default avatarSeth Forshee (DigitalOcean) <sforshee@kernel.org>
      52edb408
  14. Aug 30, 2022
  15. Aug 26, 2022
  16. Aug 23, 2022
  17. Aug 21, 2022
  18. Aug 16, 2022
    • Frederick Lawler's avatar
      selinux: Implement userns_create hook · ed5d44d4
      Frederick Lawler authored
      
      Unprivileged user namespace creation is an intended feature to enable
      sandboxing, however this feature is often used to as an initial step to
      perform a privilege escalation attack.
      
      This patch implements a new user_namespace { create } access control
      permission to restrict which domains allow or deny user namespace
      creation. This is necessary for system administrators to quickly protect
      their systems while waiting for vulnerability patches to be applied.
      
      This permission can be used in the following way:
      
              allow domA_t domA_t : user_namespace { create };
      
      Signed-off-by: default avatarFrederick Lawler <fred@cloudflare.com>
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      ed5d44d4
    • Frederick Lawler's avatar
      security, lsm: Introduce security_create_user_ns() · 7cd4c5c2
      Frederick Lawler authored
      User namespaces are an effective tool to allow programs to run with
      permission without requiring the need for a program to run as root. User
      namespaces may also be used as a sandboxing technique. However, attackers
      sometimes leverage user namespaces as an initial attack vector to perform
      some exploit. [1,2,3]
      
      While it is not the unprivileged user namespace functionality, which
      causes the kernel to be exploitable, users/administrators might want to
      more granularly limit or at least monitor how various processes use this
      functionality, while vulnerable kernel subsystems are being patched.
      
      Preventing user namespace already creation comes in a few of forms in
      order of granularity:
      
              1. /proc/sys/user/max_user_namespaces sysctl
              2. Distro specific patch(es)
              3. CONFIG_USER_NS
      
      To block a task based on its attributes, the LSM hook cred_prepare is a
      decent candidate for use because it provides more granular control, and
      it is called before create_user_ns():
      
              cred = prepare_creds()
                      security_prepare_creds()
                              call_int_hook(cred_prepare, ...
              if (cred)
                      create_user_ns(cred)
      
      Since security_prepare_creds() is meant for LSMs to copy and prepare
      credentials, access control is an unintended use of the hook. [4]
      Further, security_prepare_creds() will always return a ENOMEM if the
      hook returns any non-zero error code.
      
      This hook also does not handle the clone3 case which requires us to
      access a user space pointer to know if we're in the CLONE_NEW_USER
      call path which may be subject to a TOCTTOU attack.
      
      Lastly, cred_prepare is called in many call paths, and a targeted hook
      further limits the frequency of calls which is a beneficial outcome.
      Therefore introduce a new function security_create_user_ns() with an
      accompanying userns_create LSM hook.
      
      With the new userns_create hook, users will have more control over the
      observability and access control over user namespace creation. Users
      should expect that normal operation of user namespaces will behave as
      usual, and only be impacted when controls are implemented by users or
      administrators.
      
      This hook takes the prepared creds for LSM authors to write policy
      against. On success, the new namespace is applied to credentials,
      otherwise an error is returned.
      
      Links:
      1. https://nvd.nist.gov/vuln/detail/CVE-2022-0492
      2. https://nvd.nist.gov/vuln/detail/CVE-2022-25636
      3. https://nvd.nist.gov/vuln/detail/CVE-2022-34918
      4. https://lore.kernel.org/all/1c4b1c0d-12f6-6e9e-a6a3-cdce7418110c@schaufler-ca.com/
      
      
      
      Reviewed-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      Reviewed-by: default avatarKP Singh <kpsingh@kernel.org>
      Signed-off-by: default avatarFrederick Lawler <fred@cloudflare.com>
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      7cd4c5c2
    • Kees Cook's avatar
      LoadPin: Return EFAULT on copy_from_user() failures · 6a3981af
      Kees Cook authored
      
      The copy_from_user() function returns the number of bytes remaining to
      be copied on a failure. Such failures should return -EFAULT to high
      levels.
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Fixes: 3f805f8c ("LoadPin: Enable loading from trusted dm-verity devices")
      Cc: Matthias Kaehlcke <mka@chromium.org>
      Cc: James Morris <jmorris@namei.org>
      Cc: "Serge E. Hallyn" <serge@hallyn.com>
      Cc: linux-security-module@vger.kernel.org
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      6a3981af
    • Xiu Jianfeng's avatar
      lsm: clean up redundant NULL pointer check · 4847c0eb
      Xiu Jianfeng authored
      
      The implements of {ip,tcp,udp,dccp,sctp,ipv6}_hdr(skb) guarantee that
      they will never return NULL, and elsewhere users don't do the check
      as well, so remove the check here.
      
      Signed-off-by: default avatarXiu Jianfeng <xiujianfeng@huawei.com>
      [PM: subject line tweaks]
      Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
      4847c0eb
  19. Aug 01, 2022
  20. Jul 20, 2022
    • Lukas Bulwahn's avatar
      apparmor: correct config reference to intended one · 79eb2711
      Lukas Bulwahn authored
      
      Commit 5bfcbd22 ("apparmor: Enable tuning of policy paranoid load for
      embedded systems") introduces the config SECURITY_APPARMOR_PARANOID_LOAD,
      but then refers in the code to SECURITY_PARANOID_LOAD; note the missing
      APPARMOR in the middle.
      
      Correct this to the introduced and intended config option.
      
      Fixes: 5bfcbd22 ("apparmor: Enable tuning of policy paranoid load for embedded systems")
      Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
      Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
      79eb2711
    • Eric Snowberg's avatar
      lockdown: Fix kexec lockdown bypass with ima policy · 543ce63b
      Eric Snowberg authored
      
      The lockdown LSM is primarily used in conjunction with UEFI Secure Boot.
      This LSM may also be used on machines without UEFI.  It can also be
      enabled when UEFI Secure Boot is disabled.  One of lockdown's features
      is to prevent kexec from loading untrusted kernels.  Lockdown can be
      enabled through a bootparam or after the kernel has booted through
      securityfs.
      
      If IMA appraisal is used with the "ima_appraise=log" boot param,
      lockdown can be defeated with kexec on any machine when Secure Boot is
      disabled or unavailable.  IMA prevents setting "ima_appraise=log" from
      the boot param when Secure Boot is enabled, but this does not cover
      cases where lockdown is used without Secure Boot.
      
      To defeat lockdown, boot without Secure Boot and add ima_appraise=log to
      the kernel command line; then:
      
        $ echo "integrity" > /sys/kernel/security/lockdown
        $ echo "appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig" > \
          /sys/kernel/security/ima/policy
        $ kexec -ls unsigned-kernel
      
      Add a call to verify ima appraisal is set to "enforce" whenever lockdown
      is enabled.  This fixes CVE-2022-21505.
      
      Cc: stable@vger.kernel.org
      Fixes: 29d3c1c8 ("kexec: Allow kexec_file() with appropriate IMA policy when locked down")
      Signed-off-by: default avatarEric Snowberg <eric.snowberg@oracle.com>
      Acked-by: default avatarMimi Zohar <zohar@linux.ibm.com>
      Reviewed-by: default avatarJohn Haxby <john.haxby@oracle.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      543ce63b
  21. Jul 19, 2022
Loading