Commit graph

487 commits

Author SHA1 Message Date
Lorenzo Stoakes
d1811067ee mm: refactor arch_calc_vm_flag_bits() and arm64 MTE handling
[ Upstream commit 5baf8b037debf4ec60108ccfeccb8636d1dbad81 ]

Currently MTE is permitted in two circumstances (desiring to use MTE
having been specified by the VM_MTE flag) - where MAP_ANONYMOUS is
specified, as checked by arch_calc_vm_flag_bits() and actualised by
setting the VM_MTE_ALLOWED flag, or if the file backing the mapping is
shmem, in which case we set VM_MTE_ALLOWED in shmem_mmap() when the mmap
hook is activated in mmap_region().

The function that checks that, if VM_MTE is set, VM_MTE_ALLOWED is also
set is the arm64 implementation of arch_validate_flags().

Unfortunately, we intend to refactor mmap_region() to perform this check
earlier, meaning that in the case of a shmem backing we will not have
invoked shmem_mmap() yet, causing the mapping to fail spuriously.

It is inappropriate to set this architecture-specific flag in general mm
code anyway, so a sensible resolution of this issue is to instead move the
check somewhere else.

We resolve this by setting VM_MTE_ALLOWED much earlier in do_mmap(), via
the arch_calc_vm_flag_bits() call.

This is an appropriate place to do this as we already check for the
MAP_ANONYMOUS case here, and the shmem file case is simply a variant of
the same idea - we permit RAM-backed memory.

This requires a modification to the arch_calc_vm_flag_bits() signature to
pass in a pointer to the struct file associated with the mapping, however
this is not too egregious as this is only used by two architectures anyway
- arm64 and parisc.

So this patch performs this adjustment and removes the unnecessary
assignment of VM_MTE_ALLOWED in shmem_mmap().

[akpm@linux-foundation.org: fix whitespace, per Catalin]
Link: https://lkml.kernel.org/r/ec251b20ba1964fb64cf1607d2ad80c47f3873df.1730224667.git.lorenzo.stoakes@oracle.com
Fixes: deb0f6562884 ("mm/mmap: undo ->mmap() when arch_validate_flags() fails")
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Jann Horn <jannh@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Helge Deller <deller@gmx.de>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Brown <broonie@kernel.org>
Cc: Peter Xu <peterx@redhat.com>
Cc: Will Deacon <will@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-17 13:23:57 +01:00
Sean Christopherson
f1e091e52c KVM: VMX: Bury Intel PT virtualization (guest/host mode) behind CONFIG_BROKEN
commit aa0d42cacf093a6fcca872edc954f6f812926a17 upstream.

Hide KVM's pt_mode module param behind CONFIG_BROKEN, i.e. disable support
for virtualizing Intel PT via guest/host mode unless BROKEN=y.  There are
myriad bugs in the implementation, some of which are fatal to the guest,
and others which put the stability and health of the host at risk.

For guest fatalities, the most glaring issue is that KVM fails to ensure
tracing is disabled, and *stays* disabled prior to VM-Enter, which is
necessary as hardware disallows loading (the guest's) RTIT_CTL if tracing
is enabled (enforced via a VMX consistency check).  Per the SDM:

  If the logical processor is operating with Intel PT enabled (if
  IA32_RTIT_CTL.TraceEn = 1) at the time of VM entry, the "load
  IA32_RTIT_CTL" VM-entry control must be 0.

On the host side, KVM doesn't validate the guest CPUID configuration
provided by userspace, and even worse, uses the guest configuration to
decide what MSRs to save/load at VM-Enter and VM-Exit.  E.g. configuring
guest CPUID to enumerate more address ranges than are supported in hardware
will result in KVM trying to passthrough, save, and load non-existent MSRs,
which generates a variety of WARNs, ToPA ERRORs in the host, a potential
deadlock, etc.

Fixes: f99e3daf94ff ("KVM: x86: Add Intel PT virtualization work mode")
Cc: stable@vger.kernel.org
Cc: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Tested-by: Adrian Hunter <adrian.hunter@intel.com>
Message-ID: <20241101185031.1799556-2-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-17 13:20:51 +01:00
Baoquan He
69f47a131e x86/mm: Fix a kdump kernel failure on SME system when CONFIG_IMA_KEXEC=y
commit 8d9ffb2fe65a6c4ef114e8d4f947958a12751bbe upstream.

The kdump kernel is broken on SME systems with CONFIG_IMA_KEXEC=y enabled.
Debugging traced the issue back to

  b69a2afd5afc ("x86/kexec: Carry forward IMA measurement log on kexec").

Testing was previously not conducted on SME systems with CONFIG_IMA_KEXEC
enabled, which led to the oversight, with the following incarnation:

...
  ima: No TPM chip found, activating TPM-bypass!
  Loading compiled-in module X.509 certificates
  Loaded X.509 cert 'Build time autogenerated kernel key: 18ae0bc7e79b64700122bb1d6a904b070fef2656'
  ima: Allocated hash algorithm: sha256
  Oops: general protection fault, probably for non-canonical address 0xcfacfdfe6660003e: 0000 [#1] PREEMPT SMP NOPTI
  CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.11.0-rc2+ #14
  Hardware name: Dell Inc. PowerEdge R7425/02MJ3T, BIOS 1.20.0 05/03/2023
  RIP: 0010:ima_restore_measurement_list
  Call Trace:
   <TASK>
   ? show_trace_log_lvl
   ? show_trace_log_lvl
   ? ima_load_kexec_buffer
   ? __die_body.cold
   ? die_addr
   ? exc_general_protection
   ? asm_exc_general_protection
   ? ima_restore_measurement_list
   ? vprintk_emit
   ? ima_load_kexec_buffer
   ima_load_kexec_buffer
   ima_init
   ? __pfx_init_ima
   init_ima
   ? __pfx_init_ima
   do_one_initcall
   do_initcalls
   ? __pfx_kernel_init
   kernel_init_freeable
   kernel_init
   ret_from_fork
   ? __pfx_kernel_init
   ret_from_fork_asm
   </TASK>
  Modules linked in:
  ---[ end trace 0000000000000000 ]---
  ...
  Kernel panic - not syncing: Fatal exception
  Kernel Offset: disabled
  Rebooting in 10 seconds..

Adding debug printks showed that the stored addr and size of ima_kexec buffer
are not decrypted correctly like:

  ima: ima_load_kexec_buffer, buffer:0xcfacfdfe6660003e, size:0xe48066052d5df359

Three types of setup_data info

  — SETUP_EFI,
  - SETUP_IMA, and
  - SETUP_RNG_SEED

are passed to the kexec/kdump kernel. Only the ima_kexec buffer
experienced incorrect decryption. Debugging identified a bug in
early_memremap_is_setup_data(), where an incorrect range calculation
occurred due to the len variable in struct setup_data ended up only
representing the length of the data field, excluding the struct's size,
and thus leading to miscalculation.

Address a similar issue in memremap_is_setup_data() while at it.

  [ bp: Heavily massage. ]

Fixes: b3c72fc9a78e ("x86/boot: Introduce setup_indirect")
Signed-off-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/r/20240911081615.262202-3-bhe@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-12-17 13:20:50 +01:00
af0fe02bc6 Revert "ARM: dts: rockchip: Fix the realtek audio codec on rk3036-kylin"
This reverts commit 00f08e5133.
2024-12-03 19:58:24 +01:00
Michael Ellerman
62519b10a4 powerpc/powernv: Free name on error in opal_event_init()
[ Upstream commit cf8989d20d64ad702a6210c11a0347ebf3852aa7 ]

In opal_event_init() if request_irq() fails name is not freed, leading
to a memory leak. The code only runs at boot time, there's no way for a
user to trigger it, so there's no security impact.

Fix the leak by freeing name in the error path.

Reported-by: 2639161967 <2639161967@qq.com>
Closes: https://lore.kernel.org/linuxppc-dev/87wmjp3wig.fsf@mail.lhotse
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20240920093520.67997-1-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-30 02:33:27 +01:00
Heiko Stuebner
00f08e5133 ARM: dts: rockchip: Fix the realtek audio codec on rk3036-kylin
[ Upstream commit 77a9a7f2d3b94d29d13d71b851114d593a2147cf ]

Both the node name as well as the compatible were not named
according to the binding expectations, fix that.

Fixes: 47bf3a5c9e2a ("ARM: dts: rockchip: add the sound setup for rk3036-kylin board")
Cc: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20241008203940.2573684-15-heiko@sntech.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-30 02:33:21 +01:00
Heiko Stuebner
dc348605cf ARM: dts: rockchip: Fix the spi controller on rk3036
[ Upstream commit 8bade1ad1f0821aef31f6a8fb1027ae292566d85 ]

Compatible and clock names did not match the existing binding.
So set the correct values and re-order+rename the clocks.

It looks like no rk3036 board did use the spi controller so far,
so this was never detected on a running device yet.

Fixes: f629fcfab2cd ("ARM: dts: rockchip: support the spi for rk3036")
Cc: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20241008203940.2573684-14-heiko@sntech.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-30 02:33:21 +01:00
Heiko Stuebner
e869f22b4e ARM: dts: rockchip: drop grf reference from rk3036 hdmi
[ Upstream commit 1580ccb6ed9dc76b8ff3e2d8912e8215c8b0fa6d ]

Neither the binding nor the driver implementation specify/use the grf
reference provided in the rk3036. And neither does the newer rk3128
user of the hdmi controller. So drop the rockchip,grf property.

Fixes: b7217cf19c63 ("ARM: dts: rockchip: add hdmi device node for rk3036")
Cc: Caesar Wang <wxt@rock-chips.com>
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20241008203940.2573684-13-heiko@sntech.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-30 02:33:21 +01:00
Heiko Stuebner
111f7a688b ARM: dts: rockchip: fix rk3036 acodec node
[ Upstream commit c7206853cd7d31c52575fb1dc7616b4398f3bc8f ]

The acodec node is not conformant to the binding.

Set the correct nodename, use the correct compatible, add the needed
#sound-dai-cells and sort the rockchip,grf below clocks properties
as expected.

Fixes: faea098e1808 ("ARM: dts: rockchip: add core rk3036 dtsi")
Reviewed-by: Dragan Simic <dsimic@manjaro.org>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20241008203940.2573684-12-heiko@sntech.de
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-30 02:33:21 +01:00
Daniel Micay
df64e52e41 arm64: determine stack entropy based on mmap entropy
Stack mapping entropy is currently hard-wired to 11 bits of entropy on
32-bit and 18 bits of entropy on 64-bit. The stack itself gains an extra
8 bits of entropy from lower bit randomization within 16 byte alignment
constraints. The argument block could have all lower bits randomized but
it currently only gets the mapping randomization.

Rather than hard-wiring values this switches to using the mmap entropy
configuration like the mmap base and executable base, resulting in a
range of 8 to 16 bits on 32-bit and 18 to 24 bits on 64-bit (with 4k
pages and 3 level page tables) depending on kernel configuration and
overridable via the sysctl entries.

It's worth noting that since these kernel configuration options default
to the minimum supported entropy value, the entropy on 32-bit will drop
from 11 to 8 bits for builds using the defaults. However, following the
configuration seems like the right thing to do regardless. At the very
least, changing the defaults for COMPAT (32-bit processes on 64-bit)
should be considered due to the larger address space compared to real
32-bit.

Signed-off-by: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: anupritaisno1 <www.anuprita804@gmail.com>
2024-11-30 02:16:49 +01:00
Ksawlii
803bfc3405 defconfig: s5e8825-a53xxx: Readded 2024-11-24 19:52:41 +00:00
Ksawlii
2a8664befc defconfig: a53x*: Regenerated with clang-r475365b (16.0.2) 2024-11-24 19:37:18 +00:00
Ksawlii
d7dc13778c defconfigs: Deleted useless ones 2024-11-24 19:06:27 +00:00
Ksawlii
5aaf20211d ARM64: dts/s5e8825: make GPU lean more towards 702 MHz 2024-11-24 19:21:47 +01:00
Ksawlii
e3091fa704 ARM64: dts/s5e8825: boost memory up to 2093 MHz 2024-11-24 19:20:03 +01:00
Ksawlii
0bffcfb5ef Revert "arm64: cpufeature: Fix the visibility of compat hwcaps"
This reverts commit 3890786229.
2024-11-24 00:23:54 +01:00
Ksawlii
e59068c50c Revert "ARM: dts: imx6qdl-kontron-samx6i: fix phy-mode"
This reverts commit 2f304f77ef.
2024-11-24 00:23:54 +01:00
Ksawlii
40b2071803 Revert "um: line: always fill *error_out in setup_one_line()"
This reverts commit 02eb370a4c.
2024-11-24 00:23:40 +01:00
Ksawlii
631e573f84 Revert "s390/vmlinux.lds.S: Move ro_after_init section behind rodata section"
This reverts commit 4c852d5c4e.
2024-11-24 00:23:39 +01:00
Ksawlii
7774e178bc Revert "MIPS: cevt-r4k: Don't call get_c0_compare_int if timer irq is installed"
This reverts commit cc75a38dcd.
2024-11-24 00:23:38 +01:00
Ksawlii
dd167a1c23 Revert "arm64: acpi: Move get_cpu_for_acpi_id() to a header"
This reverts commit 48434a5b6c.
2024-11-24 00:23:36 +01:00
Ksawlii
c016244326 Revert "arm64: acpi: Harden get_cpu_for_acpi_id() against missing CPU entry"
This reverts commit c71f1763b9.
2024-11-24 00:23:36 +01:00
Ksawlii
e8049e38f9 Revert "powerpc/mm: Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL"
This reverts commit e97c59c35e.
2024-11-24 00:23:35 +01:00
Ksawlii
1bb9dd50fe Revert "microblaze: don't treat zero reserved memory regions as error"
This reverts commit 4e833b217e.
2024-11-24 00:23:33 +01:00
Ksawlii
92c7fd94e3 Revert "x86/ibt,ftrace: Search for __fentry__ location"
This reverts commit f6f1a8e333.
2024-11-24 00:23:31 +01:00
Ksawlii
8d240a5244 Revert "ARM: dts: microchip: sam9x60: Fix rtc/rtt clocks"
This reverts commit ac09b8b744.
2024-11-24 00:23:28 +01:00
Ksawlii
1fe8113a14 Revert "ARM: dts: imx7d-zii-rmu2: fix Ethernet PHY pinctrl property"
This reverts commit a80b20986e.
2024-11-24 00:23:28 +01:00
Ksawlii
0ab0424d78 Revert "ARM: versatile: fix OF node leak in CPUs prepare"
This reverts commit be77137123.
2024-11-24 00:23:28 +01:00
Ksawlii
3d4f7d0a91 Revert "m68k: Fix kernel_clone_args.flags in m68k_clone()"
This reverts commit 1ed7b9f02f.
2024-11-24 00:23:27 +01:00
Ksawlii
5fcfbc6d9d Revert "xen: use correct end address of kernel for conflict checking"
This reverts commit 5e2ec8dda3.
2024-11-24 00:23:24 +01:00
Ksawlii
b2f8d7bb11 Revert "riscv: Fix fp alignment bug in perf_callchain_user()"
This reverts commit 82b35b5043.
2024-11-24 00:23:20 +01:00
Ksawlii
ac6c389c56 Revert "x86/mm: Switch to new Intel CPU model defines"
This reverts commit d0b89ceba6.
2024-11-24 00:23:18 +01:00
Ksawlii
e998f5437f Revert "perf/x86/intel/pt: Fix sampling synchronization"
This reverts commit 8cfe7610cd.
2024-11-24 00:23:16 +01:00
Ksawlii
f6fecb09e8 Revert "x86/syscall: Avoid memcpy() for ia32 syscall_get_arguments()"
This reverts commit 23a2b0d100.
2024-11-24 00:23:07 +01:00
Ksawlii
6ea511d384 Revert "parisc: Fix itlb miss handler for 64-bit programs"
This reverts commit 74ec758daf.
2024-11-24 00:23:05 +01:00
Ksawlii
5840e6db2a Revert "parisc: Fix 64-bit userspace syscall path"
This reverts commit 3af6b47055.
2024-11-24 00:23:03 +01:00
Ksawlii
da201d9ae8 Revert "riscv: define ILLEGAL_POINTER_VALUE for 64bit"
This reverts commit e1bc326def.
2024-11-24 00:23:02 +01:00
Ksawlii
def59d9260 Revert "arm64: Add Cortex-715 CPU part definition"
This reverts commit c5a642ce49.
2024-11-24 00:23:00 +01:00
Ksawlii
8d472331b4 Revert "arm64: cputype: Add Neoverse-N3 definitions"
This reverts commit 7ca4112f21.
2024-11-24 00:23:00 +01:00
Ksawlii
605451724a Revert "s390/facility: Disable compile time optimization for decompressor code"
This reverts commit f66d16cd53.
2024-11-24 00:22:59 +01:00
Ksawlii
809e38d7df Revert "s390/mm: Add cond_resched() to cmm_alloc/free_pages()"
This reverts commit b64679781a.
2024-11-24 00:22:59 +01:00
Ksawlii
ec15971004 Revert "s390/cpum_sf: Remove WARN_ON_ONCE statements"
This reverts commit 9c06859c81.
2024-11-24 00:22:59 +01:00
Ksawlii
b53604d807 Revert "arm64: probes: Remove broken LDR (literal) uprobe support"
This reverts commit ff921f0c79.
2024-11-24 00:22:53 +01:00
Ksawlii
1b5a5af29c Revert "arm64: probes: Fix simulate_ldr*_literal()"
This reverts commit f2ddadb749.
2024-11-24 00:22:53 +01:00
Ksawlii
f1cb82372f Revert "x86/resctrl: Annotate get_mem_config() functions as __init"
This reverts commit 8436a07c7a.
2024-11-24 00:22:51 +01:00
Ksawlii
57c42b3af7 Revert "x86/apic: Always explicitly disarm TSC-deadline timer"
This reverts commit 5a5d98e292.
2024-11-24 00:22:51 +01:00
Ksawlii
e19e6b3388 Revert "x86/entry_32: Do not clobber user EFLAGS.ZF"
This reverts commit 632fba79b9.
2024-11-24 00:22:51 +01:00
Ksawlii
5e83655d80 Revert "x86/entry_32: Clear CPU buffers after register restore in NMI return"
This reverts commit 0c7e61432d.
2024-11-24 00:22:51 +01:00
Ksawlii
62d9425e52 Revert "powerpc/mm: Always update max/min_low_pfn in mem_topology_setup()"
This reverts commit d3b3390017.
2024-11-24 00:22:51 +01:00
Pawan Gupta
9bae1af719 x86/bugs: Use code segment selector for VERW operand
commit e4d2102018542e3ae5e297bc6e229303abff8a0f upstream.

Robert Gill reported below #GP in 32-bit mode when dosemu software was
executing vm86() system call:

  general protection fault: 0000 [#1] PREEMPT SMP
  CPU: 4 PID: 4610 Comm: dosemu.bin Not tainted 6.6.21-gentoo-x86 #1
  Hardware name: Dell Inc. PowerEdge 1950/0H723K, BIOS 2.7.0 10/30/2010
  EIP: restore_all_switch_stack+0xbe/0xcf
  EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000000
  ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: ff8affdc
  DS: 0000 ES: 0000 FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010046
  CR0: 80050033 CR2: 00c2101c CR3: 04b6d000 CR4: 000406d0
  Call Trace:
   show_regs+0x70/0x78
   die_addr+0x29/0x70
   exc_general_protection+0x13c/0x348
   exc_bounds+0x98/0x98
   handle_exception+0x14d/0x14d
   exc_bounds+0x98/0x98
   restore_all_switch_stack+0xbe/0xcf
   exc_bounds+0x98/0x98
   restore_all_switch_stack+0xbe/0xcf

This only happens in 32-bit mode when VERW based mitigations like MDS/RFDS
are enabled. This is because segment registers with an arbitrary user value
can result in #GP when executing VERW. Intel SDM vol. 2C documents the
following behavior for VERW instruction:

  #GP(0) - If a memory operand effective address is outside the CS, DS, ES,
	   FS, or GS segment limit.

CLEAR_CPU_BUFFERS macro executes VERW instruction before returning to user
space. Use %cs selector to reference VERW operand. This ensures VERW will
not #GP for an arbitrary user %ds.

[ mingo: Fixed the SOB chain. ]

Fixes: a0e2dab44d22 ("x86/entry_32: Add VERW just before userspace transition")
Reported-by: Robert Gill <rtgill82@gmail.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com
Cc: stable@vger.kernel.org # 5.10+
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218707
Closes: https://lore.kernel.org/all/8c77ccfd-d561-45a1-8ed5-6b75212c7a58@leemhuis.info/
Suggested-by: Dave Hansen <dave.hansen@linux.intel.com>
Suggested-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-23 23:22:06 +01:00