Commit graph

1,294,499 commits

Author SHA1 Message Date
Sean Christopherson
322a569c4b KVM: VMX: Split out the non-virtualization part of vmx_interrupt_blocked()
Move the non-VMX chunk of the "interrupt blocked" checks to a separate
helper so that KVM can reuse the code to detect if interrupts are blocked
for L2, e.g. to determine if a virtual interrupt _for L2_ is a valid wake
event.  If L1 disables HLT-exiting for L2, nested APICv is enabled, and L2
HLTs, then L2 virtual interrupts are valid wake events, but if and only if
interrupts are unblocked for L2.

Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240607172609.3205077-4-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:59:05 -07:00
Sean Christopherson
32f55e475c KVM: nVMX: Request immediate exit iff pending nested event needs injection
When requesting an immediate exit from L2 in order to inject a pending
event, do so only if the pending event actually requires manual injection,
i.e. if and only if KVM actually needs to regain control in order to
deliver the event.

Avoiding the "immediate exit" isn't simply an optimization, it's necessary
to make forward progress, as the "already expired" VMX preemption timer
trick that KVM uses to force a VM-Exit has higher priority than events
that aren't directly injected.

At present time, this is a glorified nop as all events processed by
vmx_has_nested_events() require injection, but that will not hold true in
the future, e.g. if there's a pending virtual interrupt in vmcs02.RVI.
I.e. if KVM is trying to deliver a virtual interrupt to L2, the expired
VMX preemption timer will trigger VM-Exit before the virtual interrupt is
delivered, and KVM will effectively hang the vCPU in an endless loop of
forced immediate VM-Exits (because the pending virtual interrupt never
goes away).

Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240607172609.3205077-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:59:04 -07:00
Sean Christopherson
d83c36d822 KVM: nVMX: Add a helper to get highest pending from Posted Interrupt vector
Add a helper to retrieve the highest pending vector given a Posted
Interrupt descriptor.  While the actual operation is straightforward, it's
surprisingly easy to mess up, e.g. if one tries to reuse lapic.c's
find_highest_vector(), which doesn't work with PID.PIR due to the APIC's
IRR and ISR component registers being physically discontiguous (they're
4-byte registers aligned at 16-byte intervals).

To make PIR handling more consistent with respect to IRR and ISR handling,
return -1 to indicate "no interrupt pending".

Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20240607172609.3205077-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:59:03 -07:00
Kai Huang
92c1e3cbf0 KVM: VMX: Switch __vmx_exit() and kvm_x86_vendor_exit() in vmx_exit()
In the vmx_init() error handling path, the __vmx_exit() is done before
kvm_x86_vendor_exit().  They should follow the same order in vmx_exit().

But currently __vmx_exit() is done after kvm_x86_vendor_exit() in
vmx_exit().  Switch the order of them to fix.

Fixes: e32b120071 ("KVM: VMX: Do _all_ initialization before exposing /dev/kvm to userspace")
Signed-off-by: Kai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20240627010524.3732488-1-kai.huang@intel.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:58:23 -07:00
Phil Sutter
f4ebd03496 netfilter: xt_recent: Lift restrictions on max hitcount value
Support tracking of up to 65535 packets per table entry instead of just
255 to better facilitate longer term tracking or higher throughput
scenarios.

Note how this aligns sizes of struct recent_entry's 'nstamps' and
'index' fields when 'nstamps' was larger before. This is unnecessary as
the value of 'nstamps' grows along with that of 'index' after being
initialized to 1 (see recent_entry_update()). Its value will thus never
exceed that of 'index' and therefore does not need to provide space for
larger values.

Requested-by: Fabio <pedretti.fabio@gmail.com>
Link: https://bugzilla.netfilter.org/show_bug.cgi?id=1745
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2024-06-28 17:57:50 +02:00
Florian Westphal
742ad979f5 selftests: netfilter: nft_queue.sh: add test for disappearing listener
If userspace program exits while the queue its subscribed to has packets
those need to be discarded.

commit dc21c6cc3d ("netfilter: nfnetlink_queue: acquire rcu_read_lock()
in instance_destroy_rcu()") fixed a (harmless) rcu splat that could be
triggered in this case.

Add a test case to cover this.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
2024-06-28 17:57:43 +02:00
Sean Christopherson
23b2c5088d KVM: VMX: Remove unnecessary INVEPT[GLOBAL] from hardware enable path
Remove the completely pointess global INVEPT, i.e. EPT TLB flush, from
KVM's VMX enablement path.  KVM always does a targeted TLB flush when
using a "new" EPT root, in quotes because "new" simply means a root that
isn't currently being used by the vCPU.

KVM also _deliberately_ runs with stale TLB entries for defunct roots,
i.e. doesn't do a TLB flush when vCPUs stop using roots, precisely because
KVM does the flush on first use.  As called out by the comment in
kvm_mmu_load(), the reason KVM flushes on first use is because KVM can't
guarantee the correctness of past hypervisors.

Jumping back to the global INVEPT, when the painfully terse commit
1439442c7b ("KVM: VMX: Enable EPT feature for KVM") was added, the
effective TLB flush being performed was:

  static void vmx_flush_tlb(struct kvm_vcpu *vcpu)
  {
          vpid_sync_vcpu_all(to_vmx(vcpu));
  }

I.e. KVM was not flushing EPT TLB entries when allocating a "new" root,
which very strongly suggests that the global INVEPT during hardware
enabling was a misguided hack that addressed the most obvious symptom,
but failed to fix the underlying bug.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20240608001003.3296640-1-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:57:25 -07:00
Sean Christopherson
cb9fb5fc12 KVM: nVMX: Update VMCS12_REVISION comment to state it should never change
Rewrite the comment above VMCS12_REVISION to unequivocally state that the
ID must never change.  KVM_{G,S}ET_NESTED_STATE have been officially
supported for some time now, i.e. changing VMCS12_REVISION would break
userspace.

Opportunistically add a blurb to the CHECK_OFFSET() comment to make it
explicitly clear that new fields are allowed, i.e. that the restriction
on the layout is all about backwards compatibility.

No functional change intended.

Cc: Jim Mattson <jmattson@google.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Link: https://lore.kernel.org/r/20240613190103.1054877-1-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:55:00 -07:00
Nathan Chancellor
1c07c9be87 tty: mxser: Remove __counted_by from mxser_board.ports[]
Work for __counted_by on generic pointers in structures (not just
flexible array members) has started landing in Clang 19 (current tip of
tree). During the development of this feature, a restriction was added
to __counted_by to prevent the flexible array member's element type from
including a flexible array member itself such as:

  struct foo {
    int count;
    char buf[];
  };

  struct bar {
    int count;
    struct foo data[] __counted_by(count);
  };

because the size of data cannot be calculated with the standard array
size formula:

  sizeof(struct foo) * count

This restriction was downgraded to a warning but due to CONFIG_WERROR,
it can still break the build. The application of __counted_by on the
ports member of 'struct mxser_board' triggers this restriction,
resulting in:

  drivers/tty/mxser.c:291:2: error: 'counted_by' should not be applied to an array with element of unknown size because 'struct mxser_port' is a struct type with a flexible array member. This will be an error in a future compiler version [-Werror,-Wbounds-safety-counted-by-elt-type-unknown-size]
    291 |         struct mxser_port ports[] __counted_by(nports);
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~
  1 error generated.

Remove this use of __counted_by to fix the warning/error. However,
rather than remove it altogether, leave it commented, as it may be
possible to support this in future compiler releases.

Cc:  <stable@vger.kernel.org>
Closes: https://github.com/ClangBuiltLinux/linux/issues/2026
Fixes: f34907ecca ("mxser: Annotate struct mxser_board with __counted_by")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20240529-drop-counted-by-ports-mxser-board-v1-1-0ab217f4da6d@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
2024-06-28 08:54:56 -07:00
Kees Cook
6db1208bf9 randomize_kstack: Remove non-functional per-arch entropy filtering
An unintended consequence of commit 9c573cd313 ("randomize_kstack:
Improve entropy diffusion") was that the per-architecture entropy size
filtering reduced how many bits were being added to the mix, rather than
how many bits were being used during the offsetting. All architectures
fell back to the existing default of 0x3FF (10 bits), which will consume
at most 1KiB of stack space. It seems that this is working just fine,
so let's avoid the confusion and update everything to use the default.

The prior intent of the per-architecture limits were:

  arm64: capped at 0x1FF (9 bits), 5 bits effective
  powerpc: uncapped (10 bits), 6 or 7 bits effective
  riscv: uncapped (10 bits), 6 bits effective
  x86: capped at 0xFF (8 bits), 5 (x86_64) or 6 (ia32) bits effective
  s390: capped at 0xFF (8 bits), undocumented effective entropy

Current discussion has led to just dropping the original per-architecture
filters. The additional entropy appears to be safe for arm64, x86,
and s390. Quoting Arnd, "There is no point pretending that 15.75KB is
somehow safe to use while 15.00KB is not."

Co-developed-by: Yuntao Liu <liuyuntao12@huawei.com>
Signed-off-by: Yuntao Liu <liuyuntao12@huawei.com>
Fixes: 9c573cd313 ("randomize_kstack: Improve entropy diffusion")
Link: https://lore.kernel.org/r/20240617133721.377540-1-liuyuntao12@huawei.com
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Heiko Carstens <hca@linux.ibm.com> # s390
Link: https://lore.kernel.org/r/20240619214711.work.953-kees@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
2024-06-28 08:54:56 -07:00
Jeff Johnson
6a4805b2f5 string: kunit: add missing MODULE_DESCRIPTION() macros
make allmodconfig && make W=1 C=1 reports:
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/string_kunit.o
WARNING: modpost: missing MODULE_DESCRIPTION() in lib/string_helpers_kunit.o

Add the missing invocation of the MODULE_DESCRIPTION() macro.

Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://lore.kernel.org/r/20240531-md-lib-string-v1-1-2738cf057d94@quicinc.com
Signed-off-by: Kees Cook <kees@kernel.org>
2024-06-28 08:54:55 -07:00
Sean Christopherson
704ec48fc2 KVM: SVM: Use sev_es_host_save_area() helper when initializing tsc_aux
Use sev_es_host_save_area() instead of open coding an equivalent when
setting the MSR_TSC_AUX field during setup.

No functional change intended.

Link: https://lore.kernel.org/r/20240617210432.1642542-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:53:00 -07:00
Sean Christopherson
34830b3c02 KVM: SVM: Force sev_es_host_save_area() to be inlined (for noinstr usage)
Force sev_es_host_save_area() to be always inlined, as it's used in the
low level VM-Enter/VM-Exit path, which is non-instrumentable.

  vmlinux.o: warning: objtool: svm_vcpu_enter_exit+0xb0: call to
    sev_es_host_save_area() leaves .noinstr.text section
  vmlinux.o: warning: objtool: svm_vcpu_enter_exit+0xbf: call to
    sev_es_host_save_area.isra.0() leaves .noinstr.text section

Fixes: c92be2fd8e ("KVM: SVM: Save/restore non-volatile GPRs in SEV-ES VMRUN via host save area")
Reported-by: Borislav Petkov <bp@alien8.de>
Tested-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/r/20240617210432.1642542-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:53:00 -07:00
Dmitry Torokhov
237c5c9581 ARM: tegra: paz00: Use software nodes to describe GPIOs for WiFi rfkill
Complete conversion of the WiFi rfkill device to use device properties/
software nodes by utilizing PROPERTY_ENTRY_GPIO() instead of a lookup
table.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2024-06-28 17:52:16 +02:00
Arnd Bergmann
c5003718cb More attention for the rk3128 soc (dsi, i2c, spdif, sfc), hdmi-sound
for a rk3066a board and some minor cleanups.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmZ938wQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgcqdB/sG3WZ6hIWShGF20oDTREtJlxkOGenvGZDO
 d3DjFoq7s2zmsucDy95zsHB0Y3xd6yfZnKBqVs0UlYoegCA/Q+67Itj4o7g7nCn+
 SdgsTrc4B+EbS1OuHjeKGQbyDkk/vZ3Bhb37RBYMsfN0v5kErMdb5fh72ApXY3I3
 vMDlEMdSE4vYxChy3X+arW29EDQvExfk+aNRogksQdDDo4JbJYBrKXU5YiIJV7LN
 64jvzAyC83sy3wajmLf6p67wVaFAfWbKdh2oHP7s+Ra4dzsfnIDT30EDaMtic7gx
 YOpXxk+GJywGabYtHdUPDN5O39BQsebVkrCh3RjFVlDxXG1DVwkK
 =uH5O
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+3BsACgkQYKtH/8kJ
 UieZahAAy8/8lVgeJPNAhSXD5j6Ov+gLaJBRYaVJJ29LV7PVYvlwxVzgZS8GAY9g
 F5KJ0EN7TewhUCm++6sZ+u1vm6chf8tk7ijOVjeiMJL25ECAvz1RnSg/qGMYTC24
 ZI47IQYF+oOrV8cA3HT+5UnbsT/Jejbf4gTrLXKjvqOXjc1pXI95X74WMsnr5hH1
 EM5kLVhqiMJPuDHknQavkywf4HgByMdUf6UJKboUAymHzICgwxZOcUva/QIJWZui
 /Wx+GrVwGPrtGgtUwsraKg3bY/eFvNso0UWGU7LWOaSk/rytTPzU7sVwInaT3qaY
 6imlD27FMjmoKv5hBWK++ZN6IXMd+qCrRl1ZXTFHXN8z/ppfFnWwuhm1dqYC6dDP
 ypmGxC+KkEF+m8Y098XA+h1Ksdtad7XHrJuha5cvgD6ogGzfIX4/OWWpT5ia4DL2
 WkMPvx0U7cUWhSwX9jRRlmLTl8ulIMmAFtPapnR/QjVlZxoRSMYs18J/m9/RXMIa
 N5DrHdfSl3cCX7cN4652m+F39KOnGloG0CqVe6KFkRf1eweCSKrT6W0+IZywHqVx
 2Ko/2I8PoatbzLgq+b9+e+3DNWLbzGdYp6XPKOurz7rI8e6DWoU68aXIAc17rlPH
 1G11r3K7UX9dNPWnZKcsbPSSwSmhoUbJt7iQ1bOMSnyJ64aUxRM=
 =ZCNf
 -----END PGP SIGNATURE-----

Merge tag 'v6.11-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

More attention for the rk3128 soc (dsi, i2c, spdif, sfc), hdmi-sound
for a rk3066a board and some minor cleanups.

* tag 'v6.11-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  ARM: dts: rockchip: add #sound-dai-cells to hdmi node on rk3128
  ARM: dts: rockchip: add #sound-dai-cells to hdmi node no rk3036
  ARM: dts: rockchip: enable hdmi_sound and i2s0 for mk808 hdmi
  ARM: dts: rockchip: Add SFC for RK3128
  ARM: dts: rockchip: add hdmi-sound node to rk3066a
  ARM: dts: rockchip: Add spdif node for RK3128
  ARM: dts: rockchip: Add i2s nodes for RK3128
  ARM: dts: rockchip: Add DSI for RK3128
  ARM: dts: rockchip: Add D-PHY for RK3128
  dt-bindings: clock: rk3128: Add PCLK_MIPIPHY

Link: https://lore.kernel.org/r/2187283.irdbgypaU6@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:51:55 +02:00
Jeff Johnson
25bc6af60f KVM: Add missing MODULE_DESCRIPTION()
Add a module description for kvm.ko to fix a 'make W=1' warning:

  WARNING: modpost: missing MODULE_DESCRIPTION() in arch/x86/kvm/kvm.o

Opportunistically update kvm_main.c's comically stale file comment to
match the module description.

Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://lore.kernel.org/r/20240622-md-kvm-v2-1-29a60f7c48b1@quicinc.com
[sean: split x86 changes to a separate commit, remove stale VT-x comment]
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:51:41 -07:00
Arnd Bergmann
aff39a02b5 New boards, the Radxa ROCK S0, Radxa ZERO 3W/3E, CM3588 NAS solution
and Neardi LBA3368.
 
 Interesting core changes: dropping of the rk3399pro dtsi - Dragan dug
 through available information, boards and found out that the pcie-stuff
 described in the existing rk3399pro dtsi is actually not true and the
 file can go away.
 
 And also a bit of reorganizing of rk3588 dtsi files. There are number
 of rk3588 variants in existence that select between two sets of
 peripherals and also multiple sets of operating points. So the change
 sorts it differently so that we stop including one soc-variant into
 others and also make room for the operating points.
 
 The rk3308 got io domains, a number of additions to the rk3308-rock-pi-s
 board (wifi, io-domains, otp, ethernet, uart, sdmmc).
 
 And then there are of course the usual set of new additions like
 rk3588 pcie endpoint support and individual peripherals for boards.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmZ+p5wQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgRR1B/47XZQRe94xg0is7nptf9UehEE6UaoDSrMj
 9C0JLEt6CLrlaCDVbd387/8+Ehm0Mc1SpXWZa+/JUROKiIaAMNesVsCDkrlsF5W/
 Df0z1Bxg3WOii2RNNidl4FC3UbZDJ+SQc8kRnk4AARsIJZEXtRuGv8ExrNTVjURC
 PwST1e7yL8xk4Mq5f7SVcT0V/vL6O/Ae27w464q45o8dFtoTKdgXHhEHZYqPiv1e
 XIvoVBBfkqFZcj+YbrPJHJWS9XguEHjUvzXVp3TO1WoHnwtjJeQbqdI9H2AWF5DY
 xYqRMrLDv0azqU4QwpkA9C81zSOko1EpqN7p2b9k/4V3NgmSzI7H
 =rZGA
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+28YACgkQYKtH/8kJ
 UieK0Q//X4sGDnswiUtOqQdZIGxYCLkiQgO8zCdywUrAfm+a9mBQwljc7iL30a/a
 SAN80SVStELC6IP3cI1efn7bvimIeNMQEfo68+IKvBtmWoS6IhSiDWJAPeitZrJs
 iZXIOwx2lXVlC/5Y1r6ZCaGysSnwdREvQQpdG4tWj00n0WxadK4pFiIuz94taUaI
 hWm64BH/vkKwZQ+18QDw3F+QkXmsLQ09FIpXz8DwhW9G2GuFOwNw2Dmhkpc+lFjI
 BDDdzTIsonYpy1kIXzH7IWpkNCrXZCGLScZK/g+2xd+XUOJhMKsLu+glo7zHQ7f3
 7su7wN1ehjPMRgAudXS7yxfOhoKb5x/w51BcuKa7fBU3E7Zid/Hnrp700KYrnZjq
 W2Du9ptvyh0QnfncWJVl3Y3fls25IkfDiGRooqRE8D8RY126Ln/ysFnSJRTHryty
 6NVQly4uQinbMmBV336ufmyRiWnafvVzf8mL4LGrdrXxdHqGs7WBaP3/GC0edzd0
 oDP6etYWLGhDA+Qt37cZXuPDJdaOBVTIWe1dn40O2uV5a26IxnuXDfeDu9kqMNL1
 oylY5/nvzQTWLFXXCf7X9Ez7+eax8le3AzbplLciXSURECuGDrqA61UUpHP9alZh
 hSCXwY+0tayFTBUCsiVLx2WyCMxwQXK93EB7bk++NLldFHYq+A0=
 =yOYl
 -----END PGP SIGNATURE-----

Merge tag 'v6.11-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/dt

New boards, the Radxa ROCK S0, Radxa ZERO 3W/3E, CM3588 NAS solution
and Neardi LBA3368.

Interesting core changes: dropping of the rk3399pro dtsi - Dragan dug
through available information, boards and found out that the pcie-stuff
described in the existing rk3399pro dtsi is actually not true and the
file can go away.

And also a bit of reorganizing of rk3588 dtsi files. There are number
of rk3588 variants in existence that select between two sets of
peripherals and also multiple sets of operating points. So the change
sorts it differently so that we stop including one soc-variant into
others and also make room for the operating points.

The rk3308 got io domains, a number of additions to the rk3308-rock-pi-s
board (wifi, io-domains, otp, ethernet, uart, sdmmc).

And then there are of course the usual set of new additions like
rk3588 pcie endpoint support and individual peripherals for boards.

* tag 'v6.11-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (42 commits)
  arm64: dts: rockchip: Delete the SoC variant dtsi for RK3399Pro
  arm64: dts: rockchip: Fix mic-in-differential usage on rk3568-evb1-v10
  arm64: dts: rockchip: Fix mic-in-differential usage on rk3566-roc-pc
  arm64: dts: rockchip: Drop invalid mic-in-differential on rk3568-rock-3a
  arm64: dts: rockchip: Add rock5b overlays for PCIe endpoint mode
  arm64: dts: rockchip: Add PCIe endpoint mode support
  arm64: dts: rockchip: Increase VOP clk rate on RK3328
  arm64: dts: rockchip: add gpio-line-names to radxa-zero-3
  arm64: dts: rockchip: Split GPU OPPs of RK3588 and RK3588j
  arm64: dts: rockchip: Add OPP data for CPU cores on RK3588j
  arm64: dts: rockchip: Add OPP data for CPU cores on RK3588
  arm64: dts: rockchip: Add CPU/memory regulator coupling for 2 RK3588 boards
  arm64: dts: rockchip: fix mmc aliases for Radxa ZERO 3E/3W
  arm64: dts: rockchip: Add Neardi LBA3368 board
  dt-bindings: arm: rockchip: Add Neardi LBA3368
  dt-bindings: vendor-prefixes: Add Neardi Technology
  arm64: dts: rockchip: Enable PinePhone Pro vibrator
  arm64: dts: rockchip: Enable PinePhone Pro IMU sensor
  arm64: dts: rockchip: Add Pinephone Pro support for GPIO LEDs
  arm64: dts: rockchip: Enable SPI flash on PinePhone Pro
  ...

Link: https://lore.kernel.org/r/4901395.GXAFRqVoOG@diego
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:50:30 +02:00
Jeff Johnson
8815d77cbc KVM: x86: Add missing MODULE_DESCRIPTION() macros
Add module descriptions for the vendor modules to fix allmodconfig
'make W=1' warnings:

  WARNING: modpost: missing MODULE_DESCRIPTION() in arch/x86/kvm/kvm-intel.o
  WARNING: modpost: missing MODULE_DESCRIPTION() in arch/x86/kvm/kvm-amd.o

Signed-off-by: Jeff Johnson <quic_jjohnson@quicinc.com>
Link: https://lore.kernel.org/r/20240622-md-kvm-v2-1-29a60f7c48b1@quicinc.com
[sean: split kvm.ko change to separate commit]
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:47:12 -07:00
Arnd Bergmann
24c7b96472 Renesas DT binding updates for v6.11
- Document support for R-Car E-FUSE controllers.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCZn6sygAKCRCKwlD9ZEnx
 cPItAQDPJ3ZCVWpi9zwgep13qw2DzqmA4oVwzq3RdqwA/CGV+wD/YDzpn/Qe5W3S
 2VOIAfQIWRnYQbAxQmJ8+k0krogI3Qk=
 =9+2n
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+2qMACgkQYKtH/8kJ
 Uidd2w/+LOYwkAYAZOY2YT8ouOD/uXuyf8uSklHx3cBjxBjGatE3AD6lCEA7ahnE
 0tZJ3fVKItPnNBkO5sOAPhAcajUzDS84qP5/wLS3cs6wj6zvGqhi04d7beN4HrCE
 iX9PXLnopYnfLh77JnW6wALALWnOw+DQST5iIo0HiYNcd+Tkef3qQdavFVXAdSQ6
 A5i+diSU4snOlzRsOxaTbxUJIWvvwruQLgFqctqmlRGy4+pD4RuPWbnM7Xqd+yOh
 /DGEkV3tRFKJab+g5iknEi59Tb6po6c6UHSZtiRCzZ1jV7Mv6YEABqZbyyx8s6Sc
 NJL6z3TTD96E2aWOSvJhls2sPQd3yB9CmCyJdH8DPB4ao2F7OMInFOB49Y0wKfCW
 tPwvzAk5b2UN+qKXcZpxjKKNXfLaLjrAlny9xk1MYLf6Qv6qXTHRUuH+thcprYgc
 X+XHGK7Foo7puEgrhyNXc3jZlUFhgU59c5ETbOZRChMwm+zB5Tg2F81eijYdUZqz
 fYgdUO1MMqGKXVdUDHYW3OZKaD3KMAu7JCFJJQJ91RBJzI9VnGpobJEKEaeOmmG7
 AsUUFARiQgeVYVNWLXNlm0n4Yf+hYIkhKh5IjH8vPz6czzMrE4gZ26iJdZeV0H+A
 xLBWS65Hk2PoNbFXh19Cy6axvQBcZobnJK6at/Njntcwzcdaawg=
 =DyzA
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dt-bindings-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt

Renesas DT binding updates for v6.11

  - Document support for R-Car E-FUSE controllers.

* tag 'renesas-dt-bindings-for-v6.11-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  dt-bindings: fuse: Document R-Car E-FUSE / OTP_MEM
  dt-bindings: fuse: Document R-Car E-FUSE / PFC

Link: https://lore.kernel.org/r/cover.1719578279.git.geert+renesas@glider.be
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:45:39 +02:00
Arnd Bergmann
c48081f41e MediaTek ARM32 DTS updates for v6.11
This adds a single commit that cleans up the drive-strength
 value assignment on all devicetrees using the deprecated
 MTK_DRIVE_(x)mA definition.
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCZn6APSgcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R4wesA/0Ll
 b9k4FkjiwHD8VIUbN6N1dxPlhXG7cJTAYa9Im+utAQDVG+PRkX1SzWjKBMDW+ewI
 wi4EOu3U8LB+yd9uktFKAA==
 =5M+u
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+2mEACgkQYKtH/8kJ
 UicEhQ//QU2tR/li/J5OegjPmTBmNXjyn97OPd5BZzaO7/AMJTLTi/G2+snTORVz
 N9tT7QJq5gK9GxI/SlhUXfmH9m+CGT8n7yLtwLDUIoo7IcgB6u4CsWoSANRuxM0n
 kWIWzMVg0C4tRUJljCtWrhOZsHLTbzNHeRrmlbWuSDkaKVmRiqMYuhMojvYOUgz7
 5z/1f48SBA5GGlENf7VaVlN98B9UaZ4UjplIGf1O7KjB96B7HLCHMEt9V4k+vywX
 oaSMtrbFW4cveBLk8TXqlsqcTj63w2Nr7H9eZh0pSv/roaEWSBMt8BQRPCxp8j7/
 lvoqhPcrKDyKbGDRWCZ+XJvBwAE4FftkceJzdsKxauGRHUQsrxEt9ygWDlxEQYNo
 4hcKSErhggLJbTFDSwDOrcdw7EsUEoW25XkArRezdOWc3KymEAFi+1dIdfDvM+9+
 AgfrPHW6OdfJadGZ+U/N8ovzHZWs6uJznMtBPqGdDTWJPSDIDhoK03FoYxQ9IqKW
 TMaeQkd47LEIHz0XqNgBRUezBEs4zn5M0d9psYBkJRIsumux6hj1VKva8u4ETHwH
 onsTI3j9CLf2N9f8abmgD+sXdR7fDYh93huPtZGEbsrmajDOZKnHweYCsmeT9ws2
 DGhQV1gHxL/akLkmX+nzkyWssUc79w07SJTgM5x0Yt5TpzNlNOY=
 =eCJ3
 -----END PGP SIGNATURE-----

Merge tag 'mtk-dts32-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt

MediaTek ARM32 DTS updates for v6.11

This adds a single commit that cleans up the drive-strength
value assignment on all devicetrees using the deprecated
MTK_DRIVE_(x)mA definition.

* tag 'mtk-dts32-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux:
  arm: dts: mediatek: Declare drive-strength numerically

Link: https://lore.kernel.org/r/20240628093801.126013-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:44:32 +02:00
Maxim Levitsky
4669de42aa KVM: selftests: Increase robustness of LLC cache misses in PMU counters test
Currently the PMU counters test does a single CLFLUSH{,OPT} on the loop's
code, but due to speculative execution this might not cause LLC misses
within the measured section.

Instead of doing a single flush before the loop, do a cache flush on each
iteration of the loop to confuse the prediction and ensure that at least
one cache miss occurs within the measured section.

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
[sean: keep MFENCE, massage changelog]
Link: https://lore.kernel.org/r/20240628005558.3835480-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:44:03 -07:00
Sean Christopherson
5bb9af07d3 KVM: selftests: Rework macros in PMU counters test to prep for multi-insn loop
Tweak the macros in the PMU counters test to prepare for moving the
CLFLUSH+MFENCE instructions into the loop body, to fix an issue where
a single CLFUSH doesn't guarantee an LLC miss.

Link: https://lore.kernel.org/r/20240628005558.3835480-2-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:44:03 -07:00
Arnd Bergmann
c4043e7655 MediaTek ARM64 DTS updates for v6.11
This introduces the new Airoha (MediaTek) EN7581 home networking
 platform (routers) in early stages, but with support for its
 Evaluation Board, a few more MediaTek based machines, and
 improvements for existing ones.
 
 For the MT7981 router SoC we get pinctrl support, along with the
 enablement of its watchdog, eFuse/nvmem, I2C and integrated WiFi
 controller, other than the introduction of new machines based on
 this chip: the Cudy WR3000 V1 router and the OpenWRT One.
 
 MT7986 gets a new machine: the BananaPi R3 Mini.
 
 Some advancements have been done also on the MT7988 SoC, which
 gains support for its I2C, PWM and USB XHCI controllers.
 
 MediaTek Genio SoCs also get attention, with the introduction of a
 basic device tree for the MT8390 Genio 700-EVK board, and for the
 MT8395 Genio 1200 powered Kontron 3.5"-SBC-i1200.
 
 Additionally, the Genio 1200 Radxa NIO12L board gets support for
 USB Role Switching and proper PCI-Express controller PM suspend
 and resume, other than finally enabling CPU and GPU frequency
 and voltage scaling for improved efficiency.
 
 Speaking of MediaTek Kompanio SoCs (Chromebooks) instead, thanks
 to community interest and help in testing, there comes support for
 the MT8195-powered HP Chromebook X360 13b-ca0002sa, while Google
 contributed support for the MT8186-powered Acer Chromebook 311.
 
 Moreover, MT8188 gets support for its integrated power domains,
 other than its Global Command Engine (GCE) mailboxes, initial
 basic support for the VDO0/1 blocks for multimedia, and its GPU
 (ARM Mali G57-MC3, Valhall-JM) with Panfrost.
 
 Besides that, this also adds a few other cleanups and improvements
 for all machines using the MT8183, MT8192, MT8195/MT8395 SoCs and
 adds generation of symbols on base devicetrees of machines using
 Device Tree Overlay(s) (DTBO).
 
 In particular:
  - The MediaTek Smart Voltage Scaling (SVS) is now fully working
    those SoCs, bringing further power efficiency improvements;
  - Thermal zones were refactored on MT8183 for consistency with
    the other MediaTek SoCs and for readability
  - Sound DAI links are now consistently specified in device tree
    on MT8195 and MT8186 machines
  - Newly supported machines/boards
    - EN7581: EVK
    - MT7981: Cudy WR3000 V1, OpenWRT One
    - MT7986: BananaPi R3 Mini
    - MT8186: Acer Chromebook 311 (Corsola Voltorb)
    - MT8195: HP Chromebook X360 13b-ca0002sa (Cherry Dojo)
    - MT8390/8188: Genio 700 EVK
  - Some cleanups for unused/legacy devicetree properties
 -----BEGIN PGP SIGNATURE-----
 
 iJ4EABYKAEYWIQQn3Xxr56ypAcSHzXSaNgTPrZeEeAUCZn0thSgcYW5nZWxvZ2lv
 YWNjaGluby5kZWxyZWdub0Bjb2xsYWJvcmEuY29tAAoJEJo2BM+tl4R4B94BANp1
 sg23FYuR+RIMOtJ7542D1HVRr/l3D27XFSAw0yjbAP9cTg5ps+SR4fsr+ipectwP
 MBqhJLJu7KriAl63aY2/BQ==
 =paIN
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+2boACgkQYKtH/8kJ
 Uieq2xAAvzQQUlIbLUm8GUZ+GzcMpYcXiuf1ngxym8dmc2ZJo+PB0XnI8R8bwM8p
 AffGi2sE6it8NjcPAw9Sg9x16p/HOloeQq/V36XeBGWyz8AVR4bA676J73yRVnNo
 fDEhdD5dcGE3SkmGX1V+FrwosEoYLjK6Jso/RB+IAWOgIesbU8yfObjl9NAfXsK1
 B+qA7HTJeKtpMORZLbA6sMGxOrR0EVv+7Ni1kkPnCqEw4q1FLGi9MUZ4pHNXXoDd
 9kDHL6QpWjfjr14rmpvV+C0vqbzcso3h1ZUmI2IDRN0PcOUuEaDHfmE4Tu+UNefE
 sfEvJCPPscgBJfCHH8fE9CgBu9wSfITRh4um4cEWo+XdiLaG5PTF/JAp+n+ugldr
 eKNFUZTx5xP7yReo0lzC2EExhugtPTXjabb64jtFst9WSjlFO34yoJ1R786gedKx
 C85pv3lQ0H2/NADB2cYsKdHVK+1tHZyl3yYU/clx3yp+iQwv5kr22wvQt68MAHL4
 oiepBhdqeLmMjn/cTJZLddp90t6ge+li3miyv0yisrQn57h4NjJapuNIVZnATbUa
 xJAH7BLdQPqxb8d9AXNR2h+Tqu/CqFdqEb8qdsYwdjmPrHuwQPVlCL7eMbI2+7Rn
 A5ME/9DSRs+zWKP7Q97dziKU0/otXkx7t+en+4O6eylxxMwF2AA=
 =lO7d
 -----END PGP SIGNATURE-----

Merge tag 'mtk-dts64-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux into soc/dt

MediaTek ARM64 DTS updates for v6.11

This introduces the new Airoha (MediaTek) EN7581 home networking
platform (routers) in early stages, but with support for its
Evaluation Board, a few more MediaTek based machines, and
improvements for existing ones.

For the MT7981 router SoC we get pinctrl support, along with the
enablement of its watchdog, eFuse/nvmem, I2C and integrated WiFi
controller, other than the introduction of new machines based on
this chip: the Cudy WR3000 V1 router and the OpenWRT One.

MT7986 gets a new machine: the BananaPi R3 Mini.

Some advancements have been done also on the MT7988 SoC, which
gains support for its I2C, PWM and USB XHCI controllers.

MediaTek Genio SoCs also get attention, with the introduction of a
basic device tree for the MT8390 Genio 700-EVK board, and for the
MT8395 Genio 1200 powered Kontron 3.5"-SBC-i1200.

Additionally, the Genio 1200 Radxa NIO12L board gets support for
USB Role Switching and proper PCI-Express controller PM suspend
and resume, other than finally enabling CPU and GPU frequency
and voltage scaling for improved efficiency.

Speaking of MediaTek Kompanio SoCs (Chromebooks) instead, thanks
to community interest and help in testing, there comes support for
the MT8195-powered HP Chromebook X360 13b-ca0002sa, while Google
contributed support for the MT8186-powered Acer Chromebook 311.

Moreover, MT8188 gets support for its integrated power domains,
other than its Global Command Engine (GCE) mailboxes, initial
basic support for the VDO0/1 blocks for multimedia, and its GPU
(ARM Mali G57-MC3, Valhall-JM) with Panfrost.

Besides that, this also adds a few other cleanups and improvements
for all machines using the MT8183, MT8192, MT8195/MT8395 SoCs and
adds generation of symbols on base devicetrees of machines using
Device Tree Overlay(s) (DTBO).

In particular:
 - The MediaTek Smart Voltage Scaling (SVS) is now fully working
   those SoCs, bringing further power efficiency improvements;
 - Thermal zones were refactored on MT8183 for consistency with
   the other MediaTek SoCs and for readability
 - Sound DAI links are now consistently specified in device tree
   on MT8195 and MT8186 machines
 - Newly supported machines/boards
   - EN7581: EVK
   - MT7981: Cudy WR3000 V1, OpenWRT One
   - MT7986: BananaPi R3 Mini
   - MT8186: Acer Chromebook 311 (Corsola Voltorb)
   - MT8195: HP Chromebook X360 13b-ca0002sa (Cherry Dojo)
   - MT8390/8188: Genio 700 EVK
 - Some cleanups for unused/legacy devicetree properties

* tag 'mtk-dts64-for-v6.11' of https://git.kernel.org/pub/scm/linux/kernel/git/mediatek/linux: (58 commits)
  arm64: dts: mediatek: Declare drive-strength numerically
  arm64: dts: mt7622: fix switch probe on bananapi-r64
  arm64: dts: mediatek: Add MT8186 Voltorb Chromebooks
  dt-bindings: arm: mediatek: Add MT8186 Voltorb Chromebooks
  arm64: dts: mediatek: Makefile: Generate symbols for DTBO support
  arm64: dts: mediatek: mt8183-kukui-jacuzzi: Add ports node for anx7625
  arm64: dts: mediatek: mt8183-pico6: Fix wake-on-X event node names
  arm64: dts: mt8173: Add G2Touch touchscreen node
  arm64: dts: mediatek: mt8183-kukui: Fix the value of `dlg,jack-det-rate` mismatch
  arm64: dts: mediatek: mt8188: Add support for Mali GPU on Panfrost
  arm64: dts: mediatek: mt8188: Add support for SoC power domains
  arm64: dts: mediatek: mt8188: Add VDOSYS0/1 support for multimedia
  arm64: dts: mediatek: mt8188: Add Global Command Engine mailboxes
  arm64: dts: mediatek: mt8173-elm: drop PMIC's syscon node
  arm64: dts: mediatek: mt8365: use a specific SCPSYS compatible
  arm64: dts: mediatek: mt8365: drop incorrect power-domain-cells
  arm64: dts: mediatek: mt7981: add I2C controller
  arm64: dts: mediatek: mt7622: fix "emmc" pinctrl mux
  arm64: dts: mediatek: mt7988: add I2C controllers
  arm64: dts: mediatek: mt7988: add PWM controller
  ...

Link: https://lore.kernel.org/r/20240628093801.126013-1-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:41:45 +02:00
Vedant Deshpande
5e4bbe5220 arm64: tegra: Restructure Orin NX/Nano device tree
The Orin NX and Orin Nano boards share a common carrier board and the
module boards for both platforms are very similar. Therefore,
restructure the Orin NX/Nano device-tree source files to adhere to a
simple hierarchical format. This will help make clear where changes
should go, and eliminates redundancy within the files.

Previously the carrier board file was independent. However, given
that it is so tightly coupled with the module design, it will be
more practical to combine files together for a simpler layout.

Following changes are made to restructure the device tree source files:
1) Change include hierarchy. Top-level dts includes board dtsi.
   Board dtsi includes module dtsi. Module dtsi includes SoC dtsi.
2) Data from the top level dts file that is common to both Orin NX
   and Orin Nano is in tegra234-p3768-0000+p3767.dtsi.
3) Only data that is unique to NX/Nano is present in the top-level dts.

Signed-off-by: Vedant Deshpande <vedantd@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2024-06-28 17:37:19 +02:00
Arnd Bergmann
7fd04cf257 STi DT for v6.11 :
_ Add #thermal-sensor-cells property on stih410.dtsi and stih418.dtsi
 _ Add thermal-zones support on stih418
 _
 -----BEGIN PGP SIGNATURE-----
 
 iQJQBAABCgA6FiEEXyrViUccKBz9c35Jysd4L3sz/6YFAmZ+clQcHHBhdHJpY2Uu
 Y2hvdGFyZEBmb3NzLnN0LmNvbQAKCRDKx3gvezP/phdhD/wNUl+56Hg/xmIuy0UC
 Fa6PV8V0K46iLwEWYepkMfigDPXibmFmMdRMypzuX2f3zu1NlQQE7aF7N6hocIVX
 TuoHPh7pCwcQwoTfV7XUtIaMZZfVyPr4GkSqYiu6KMDjcJglUzktiehcqrRp6w2j
 4CUxUuM0gdgL+PpomJm3ZefWYPQgUyEjeKF066w+36BghJ/uE/9ZSj0twmIexfGR
 /FXN5p9UUZBYfG/A8YwJsGrUByhgmhxIVt/mpr2OUQ2NP7frigjnwzHuyroaR4Jm
 AwdaIDkKHYPOET09kkzUY0gW+Vk4EgiLTqQPp6Qv7u8KANGZ9wtgz8bMjgEFkXoC
 KaSU3tv0P1mE/ZzW/j3M1BuaHnupuwQPZiNdvbJ82RkmBtDGJP0Kr0coMpKiXvGG
 VAp1XSsCO+1JmH3GDIK7sOcfZVSy8OI58DVZ+K9o7ZYRD8fDP57bhrcZivYDyHP5
 82Wqlm5NuMpuLPvlTSQyft6QW+V2woHqxSoybJEjB+YRS3gniYatyrCfc7ugTLGt
 SXYoUF2IJfVPAIMWyWXwEV/2kWtXLJjkHO5BNKkC8VhkLsK+MpVwDiEMKUDWz2A1
 hVD8VCYxoRB6FgwJPUQe4UVmyeN5Jw794aUy2Lk3UD627eGWYYvS11qmAdDIgIVQ
 QgZMxwXm2Fp4GotxxJDl26MkVQ==
 =lbQi
 -----END PGP SIGNATURE-----

Merge tag 'sti-dt-for-v6.11-round1' of https://git.kernel.org/pub/scm/linux/kernel/git/pchotard/sti into soc/dt

STi DT for v6.11 :

_ Add #thermal-sensor-cells property on stih410.dtsi and stih418.dtsi
_ Add thermal-zones support on stih418
_
2024-06-28 17:31:49 +02:00
Pei Li
ebbdf37ce9 KVM: Validate hva in kvm_gpc_activate_hva() to fix __kvm_gpc_refresh() WARN
Check that the virtual address is "ok" when activating a gfn_to_pfn_cache
with a host VA to ensure that KVM never attempts to use a bad address.

This fixes a bug where KVM fails to check the incoming address when
handling KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO_HVA in kvm_xen_vcpu_set_attr().

Reported-by: syzbot+fd555292a1da3180fc82@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=fd555292a1da3180fc82
Tested-by: syzbot+fd555292a1da3180fc82@syzkaller.appspotmail.com
Signed-off-by: Pei Li <peili.dev@gmail.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Reviewed-by: David Woodhouse <dwmw@amazon.co.uk>
Link: https://lore.kernel.org/r/20240627-bug5-v2-1-2c63f7ee6739@gmail.com
[sean: rewrite changelog with --verbose]
Signed-off-by: Sean Christopherson <seanjc@google.com>
2024-06-28 08:31:46 -07:00
Rob Herring
b1a4e71d4f
arm: dts: arm: Drop redundant fixed-factor clocks
There's not much reason to have multiple fixed-factor-clock instances
which are all the same factor and clock input. Drop the nodes, but keep
the labels to minimize the changes and keep some distinction of the
different clocks.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/20240528191536.1444649-1-robh@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20240627-arm-dts-fixes-v1-1-40a2cb7d344b@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:28:45 +02:00
Marek Behún
f7e642bcd6
dt-bindings: interrupt-controller: convert marvell,mpic binding to YAML
Convert the marvell,mpic device-tree binding to YAML. Add myself as
maintainer.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240624145355.8034-3-kabel@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:27:44 +02:00
Marek Behún
2af8d8a583
ARM: dts: armada-{370-xp,375,38x,39x}: Drop #size-cells from mpic node
The marvell,mpic interrupt controller has no children nodes. Drop the

Signed-off-by: Marek Behún <kabel@kernel.org>
Link: https://lore.kernel.org/r/20240624145355.8034-2-kabel@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:27:44 +02:00
Krzysztof Kozlowski
c03088be18
MAINTAINERS: ARM: airoha: add entry to cover Airoha SoC
Airoha SoC is not covered by any maintainer entry so relevant patches
can be missed.  It seems Mediatek SoC maintainers were covering some
parts of Airoha and Airoha itself is subsidiary of Mediatek, so assign
the Airoha maintenance to Matthias and AngeloGioacchino.

Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Acked-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240628095044.132276-2-angelogioacchino.delregno@collabora.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 17:27:08 +02:00
Kent Overstreet
759b2e800f bcachefs: Switch online_reserved shutdown assert to WARN()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
2024-06-28 11:06:31 -04:00
Besar Wicaksono
fa071acfef arm64: defconfig: Enable NVIDIA CoreSight PMU driver
Enable NVIDIA driver for Coresight PMU arch device.

Signed-off-by: Besar Wicaksono <bwicaksono@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
2024-06-28 16:54:06 +02:00
Karel Balej
f53d3efa36 MAINTAINERS: Add myself for Marvell 88PM886 PMIC
Add an entry to MAINTAINERS for the Marvell 88PM886 PMIC MFD, onkey and
regulator drivers.

Signed-off-by: Karel Balej <balejk@matfyz.cz>
Link: https://lore.kernel.org/r/20240531175109.15599-6-balejk@matfyz.cz
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:41:29 +01:00
Karel Balej
914089db30 input: Add onkey driver for Marvell 88PM886 PMIC
Marvell 88PM886 PMIC provides onkey among other things. Add client
driver to handle it. The driver currently only provides a basic support
omitting additional functions found in the vendor version, such as long
onkey and GPIO integration.

Signed-off-by: Karel Balej <balejk@matfyz.cz>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://lore.kernel.org/r/20240531175109.15599-5-balejk@matfyz.cz
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:41:20 +01:00
Karel Balej
5d1a514439 regulator: Add regulators driver for Marvell 88PM886 PMIC
Support the LDO and buck regulators of the Marvell 88PM886 PMIC.

Signed-off-by: Karel Balej <balejk@matfyz.cz>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20240531175109.15599-4-balejk@matfyz.cz
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:41:11 +01:00
Karel Balej
860f8e3bea mfd: Add driver for Marvell 88PM886 PMIC
Marvell 88PM886 is a PMIC which provides various functions such as
onkey, battery, charger and regulators. It is found for instance in the
samsung,coreprimevelte smartphone with which this was tested. Implement
basic support to allow for the use of regulators and onkey.

Signed-off-by: Karel Balej <balejk@matfyz.cz>
Link: https://lore.kernel.org/r/20240531175109.15599-3-balejk@matfyz.cz
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:41:05 +01:00
Karel Balej
c4725350a9 dt-bindings: mfd: Add entry for Marvell 88PM886 PMIC
Marvell 88PM886 is a PMIC with several subdevices such as onkey,
regulators or battery and charger. It comes in at least two revisions,
A0 and A1 -- only A1 is described here at the moment.

Signed-off-by: Karel Balej <balejk@matfyz.cz>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20240531175109.15599-2-balejk@matfyz.cz
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:40:55 +01:00
James Ogletree
c486def5b3 ASoC: cs40l50: Support I2S streaming to CS40L50
Introduce support for Cirrus Logic Device CS40L50: a
haptic driver with waveform memory, integrated DSP,
and closed-loop algorithms.

The ASoC driver enables I2S streaming to the device.

Reviewed-by: David Rhodes <drhodes@opensource.cirrus.com>
Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com>
Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Reviewed-by: Ricardo Rivera-Matos <rriveram@opensource.cirrus.com>
Reviewed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20240620161745.2312359-6-jogletre@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:36:15 +01:00
James Ogletree
c38fe1bb5d Input: cs40l50 - Add support for the CS40L50 haptic driver
Introduce support for Cirrus Logic Device CS40L50: a
haptic driver with waveform memory, integrated DSP,
and closed-loop algorithms.

The input driver provides the interface for control of
haptic effects through the device.

Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com>
Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://lore.kernel.org/r/20240620161745.2312359-5-jogletre@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:36:11 +01:00
James Ogletree
cb626376cb mfd: cs40l50: Add support for CS40L50 core driver
Introduce support for Cirrus Logic Device CS40L50: a
haptic driver with waveform memory, integrated DSP,
and closed-loop algorithms.

The MFD component registers and initializes the device.

Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com>
Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20240620161745.2312359-4-jogletre@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:36:05 +01:00
James Ogletree
2fab5abad1 dt-bindings: input: cirrus,cs40l50: Add initial DT binding
CS40L50 is a haptic driver with waveform memory,
integrated DSP, and closed-loop algorithms.

Add a YAML DT binding document for this device.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com>
Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20240620161745.2312359-3-jogletre@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:36:02 +01:00
James Ogletree
205fdba5d0 firmware: cs_dsp: Add write sequence interface
A write sequence is a sequence of register addresses
and values executed by some Cirrus DSPs following
certain power state transitions.

Add support for Cirrus drivers to update or add to a
write sequence present in firmware.

Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Signed-off-by: James Ogletree <jogletre@opensource.cirrus.com>
Reviewed-by: Jeff LaBundy <jeff@labundy.com>
Link: https://lore.kernel.org/r/20240620161745.2312359-2-jogletre@opensource.cirrus.com
Signed-off-by: Lee Jones <lee@kernel.org>
2024-06-28 15:35:57 +01:00
Niklas Cassel
1066fe8259 ata: libata-core: Add ATA_HORKAGE_NOLPM for all Crucial BX SSD1 models
We got another report that CT1000BX500SSD1 does not work with LPM.

If you look in libata-core.c, we have six different Crucial devices that
are marked with ATA_HORKAGE_NOLPM. This model would have been the seventh.
(This quirk is used on Crucial models starting with both CT* and
Crucial_CT*)

It is obvious that this vendor does not have a great history of supporting
LPM properly, therefore, add the ATA_HORKAGE_NOLPM quirk for all Crucial
BX SSD1 models.

Fixes: 7627a0edef ("ata: ahci: Drop low power policy board type")
Cc: stable@vger.kernel.org
Reported-by: Alessandro Maggio <alex.tkd.alex@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218832
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Link: https://lore.kernel.org/r/20240627105551.4159447-2-cassel@kernel.org
Signed-off-by: Niklas Cassel <cassel@kernel.org>
2024-06-28 16:33:50 +02:00
Arnd Bergmann
0dabf24cf4 Arm Vexpress updates for v6.11
Remove obsolete RTSM DCSCB support which was only ever implemented
 on a software model which is neither available to download nor
 maintained. It predates the very first bL cluster based platforms.
 
 Other change include addition of the missing MODULE_DESCRIPTION
 macro in vexpress config bus driver.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEunHlEgbzHrJD3ZPhAEG6vDF+4pgFAmZz7QIACgkQAEG6vDF+
 4phSjBAAuuUpgUrG/LOniUoyOPXvX4SXGmwuSKMpicsgj9ojIlYjkVEeQGt67ERY
 abTZhyOO3l/6hhs0j1YeB2H0C5VgJMwgBG1ZObaD6QM6PtTvlJU5h5f1VSLFv7YY
 wV9SE2BQbfVjf4cH9U/p2r90VM+SZIjTcGpzgIB6d2/XdNnEMyohmuBhXsOtuS4C
 I5yfVKiAiT4AJdmO32JDmGvio5sudFQbBk3Q5y3ofukdxNVmeo1SHC3MasSakQt8
 T0TLaRa3UqEAIw93hKzhp1/k8K4uzYQyDbVB/PCao8rOlPeR6A3WOu1qpfv7FFp5
 noIS+87eAak2fILtFBGWpbun/gR+ewINJrP4iV8LiOIw4HLT6hKzANzKDztXeWAe
 yWs7A8xaC67DFygrRGSq9yxnElRBOEhegdaBY++2cG6jGzI3EJze1ufYmdKJ+WyF
 C8PIubi5IGzPN0NPQivui3fedT3mEV/Bv7NjiD7jx8auTOtxASqGMYY/rmiz4nJQ
 Dzd2kJ/b+4Tx9oIONfbB/4HsA5tkcdwh/aylsdhLKACrmREZVWQ2NzFtKnfA0fQv
 2+Dvmnw0NisQfXbHT0B5bp7beYg24pEJuzSGGapPaY4WzNTGFCNg6MRtR/dEiLJN
 UG6lobFmUKzs9KGMWorXKhlp+OhqQbNb2c8rYH8qA2QQo6ZcIAE=
 =VAfv
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiK/NIGsWEZVxh/FrYKtH/8kJUicFAmZ+yKsACgkQYKtH/8kJ
 Uid8pw/5AeAKo8906bIaKuwrXy1s/iJaC+bfbxX5sQqbalLPwsifRtNGsx0E0FcT
 K+uh46GEt2Gczq8GMBmJjlDVK++xm+MszUdZV2qhtf+eF4tDiPHZAzuXTTzt5wgG
 rbjPeJu6HhMDPO9s9+xDSilcnQ4FB/24+9s3PIiV9zx83fBKnIfr7rb53XJKUh3p
 sgz6iHHkCtlmZB3+oHPlK+bd63j7lnbpdOBVOEUGZccZZu5xJ0xNg2br1b1nQkpN
 xgD4JkKNqqfA6LO2DziAAOR/LCRJGff1BmwaRAMX+hWNqGbRRGlbShZIIKwQ4ejQ
 OHDm43yvJNEVeCqKj4Cqa6gesUB9Myl2Pu8bKnjk7gm4P+LOpNQpNtMb5v7bgGd0
 /wX02IA5Y8RN+wDkYAaI08Eb8bmaJ8EdY73fUhNGQutNKiCzCEM38QRmvsBCEio8
 z6qLTXnZl/lFEp0q442ZPB6gxo6CwB2FgRBWrNLlPuPU2S2pnUcgh+FZQGipJklA
 RnODnMiZuNrlWkicb5nagX7X+INs3d81R23C/eJz8VapTlHPO36I2ZMIMPWbnln/
 WRFoIzv+tUWe1Z4HQ6nw7N+o3k/TPijlN9/YC8s+O2xN9cVPu9g4rcmy8fWFF3Q4
 UpehJDEfAFH8b2Smkfcbmx8uWe2pZZLoE4S2lLMYykvr5+6tZvk=
 =jv0e
 -----END PGP SIGNATURE-----

Merge tag 'vexpress-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into soc/arm

Arm Vexpress updates for v6.11

Remove obsolete RTSM DCSCB support which was only ever implemented
on a software model which is neither available to download nor
maintained. It predates the very first bL cluster based platforms.

Other change include addition of the missing MODULE_DESCRIPTION
macro in vexpress config bus driver.

* tag 'vexpress-updates-6.11' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux:
  bus: vexpress-config: Add missing MODULE_DESCRIPTION() macro
  dt-bindings: arm: Remove obsolete RTSM DCSCB binding
  arm: vexpress: Remove obsolete RTSM DCSCB support

Link: https://lore.kernel.org/r/20240620093924.375244-4-sudeep.holla@arm.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2024-06-28 16:28:59 +02:00
Mickaël Salaün
130e428067
selftests/harness: Fix tests timeout and race condition
We cannot use CLONE_VFORK because we also need to wait for the timeout
signal.

Restore tests timeout by using the original fork() call in __run_test()
but also in __TEST_F_IMPL().  Also fix a race condition when waiting for
the test child process.

Because test metadata are shared between test processes, only the
parent process must set the test PID (child).  Otherwise, t->pid may be
set to zero, leading to inconsistent error cases:

  #  RUN           layout1.rule_on_mountpoint ...
  # rule_on_mountpoint: Test ended in some other way [127]
  #            OK  layout1.rule_on_mountpoint
  ok 20 layout1.rule_on_mountpoint

As safeguards, initialize the "status" variable with a valid exit code,
and handle unknown test exits as errors.

The use of fork() introduces a new race condition in landlock/fs_test.c
which seems to be specific to hostfs bind mounts, but I haven't found
the root cause and it's difficult to trigger.  I'll try to fix it with
another patch.

Cc: Christian Brauner <brauner@kernel.org>
Cc: Günther Noack <gnoack@google.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Kees Cook <keescook@chromium.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Will Drewry <wad@chromium.org>
Cc: stable@vger.kernel.org
Closes: https://lore.kernel.org/r/9341d4db-5e21-418c-bf9e-9ae2da7877e1@sirena.org.uk
Fixes: a86f18903d ("selftests/harness: Fix interleaved scheduling leading to race conditions")
Fixes: 24cf65a622 ("selftests/harness: Share _metadata between forked processes")
Link: https://lore.kernel.org/r/20240621180605.834676-1-mic@digikod.net
Tested-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Mickaël Salaün <mic@digikod.net>
2024-06-28 16:06:03 +02:00
Frederic Weisbecker
677ab23bdf rcu/exp: Remove redundant full memory barrier at the end of GP
A full memory barrier is necessary at the end of the expedited grace
period to order:

1) The grace period completion (pictured by the GP sequence
   number) with all preceding accesses. This pairs with rcu_seq_end()
   performed by the concurrent kworker.

2) The grace period completion and subsequent post-GP update side
   accesses. Pairs again against rcu_seq_end().

This full barrier is already provided by the final sync_exp_work_done()
test, making the subsequent explicit one redundant. Remove it and
improve comments.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
2024-06-28 06:44:12 -07:00
Frederic Weisbecker
55911a9f42 rcu: Remove full memory barrier on RCU stall printout
RCU stall printout fetches the EQS state of a CPU with a preceding full
memory barrier. However there is nothing to order this read against at
this debugging stage. It is inherently racy when performed remotely.

Do a plain read instead.

This was the last user of rcu_dynticks_snap().

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
2024-06-28 06:44:12 -07:00
Frederic Weisbecker
e7a3c8ea6e rcu: Remove full memory barrier on boot time eqs sanity check
When the boot CPU initializes the per-CPU data on behalf of all possible
CPUs, a sanity check is performed on each of them to make sure none is
initialized in an extended quiescent state.

This check involves a full memory barrier which is useless at this early
boot stage.

Do a plain access instead.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
2024-06-28 06:44:12 -07:00
Frederic Weisbecker
33c0860bf7 rcu/exp: Remove superfluous full memory barrier upon first EQS snapshot
When the grace period kthread checks the extended quiescent state
counter of a CPU, full ordering is necessary to ensure that either:

* If the GP kthread observes the remote target in an extended quiescent
  state, then that target must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it exits that extended quiescent state.

or:

* If the GP kthread observes the remote target NOT in an extended
  quiescent state, then the target further entering in an extended
  quiescent state must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it enters that extended quiescent state.

This ordering is enforced through a full memory barrier placed right
before taking the first EQS snapshot. However this is superfluous
because the snapshot is taken while holding the target's rnp lock which
provides the necessary ordering through its chain of
smp_mb__after_unlock_lock().

Remove the needless explicit barrier before the snapshot and put a
comment about the implicit barrier newly relied upon here.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2024-06-28 06:43:34 -07:00
Frederic Weisbecker
9a7e73c9be rcu: Remove superfluous full memory barrier upon first EQS snapshot
When the grace period kthread checks the extended quiescent state
counter of a CPU, full ordering is necessary to ensure that either:

* If the GP kthread observes the remote target in an extended quiescent
  state, then that target must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it exits that extended quiescent state.

or:

* If the GP kthread observes the remote target NOT in an extended
  quiescent state, then the target further entering in an extended
  quiescent state must observe all accesses prior to the current
  grace period, including the current grace period sequence number, once
  it enters that extended quiescent state.

This ordering is enforced through a full memory barrier placed right
before taking the first EQS snapshot. However this is superfluous
because the snapshot is taken while holding the target's rnp lock which
provides the necessary ordering through its chain of
smp_mb__after_unlock_lock().

Remove the needless explicit barrier before the snapshot and put a
comment about the implicit barrier newly relied upon here.

Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Reviewed-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
2024-06-28 06:43:34 -07:00