Commit graph

1,429,402 commits

Author SHA1 Message Date
Aniket Limaye
3d9617ea8a irqchip/ti-sci-intr: Allow parsing interrupt-types per-line
Some INTR router instances act as simple passthroughs that preserve the
source interrupt type unchanged at the output line, rather than
converting all interrupts to a fixed type.

When interrupt sources are not homogeneous with respect to trigger type,
the driver needs to read each source's interrupt type from DT and pass
it unchanged to its interrupt parent.

Add support to check for absence of "ti,intr-trigger-type" to indicate
passthrough mode. When this property is absent, parse interrupt type
per-line from the DT fwspec provided by the interrupt source. Else, use
the global setting for all interrupt lines.

Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20260123-ul-driver-i2c-j722s-v4-2-b08625c487d5@ti.com
2026-01-26 16:40:04 +01:00
Aniket Limaye
7a30a7a6c8 dt-bindings: interrupt-controller: ti,sci-intr: Per-line interrupt-types
Update the bindings to allow setting per-line interrupt-types.

Some Interrupt Router instances can only work with a specific trigger
type (edge or level), while others act as simple passthroughs that
preserve the source interrupt type unchanged.

Make "ti,intr-trigger-type" property optional, with its absence
indicating that the router acts as a passthrough. When absent,
"#interrupt-cells" must be 2 to allow each interrupt source to specify
its trigger type per-line.

Signed-off-by: Aniket Limaye <a-limaye@ti.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20260123-ul-driver-i2c-j722s-v4-1-b08625c487d5@ti.com
2026-01-26 16:40:03 +01:00
Carlos Llamas
1769f90e5b binder: fix BR_FROZEN_REPLY error log
The error logging for failed transactions is misleading as it always
reports "dead process or thread" even when the target is actually
frozen. Additionally, the pid and tid are reversed which can further
confuse debugging efforts. Fix both issues.

Cc: stable@kernel.org
Cc: Steven Moreland <smoreland@google.com>
Fixes: a15dac8b22 ("binder: additional transaction error logs")
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://patch.msgid.link/20260123175702.2154348-1-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-26 16:30:07 +01:00
Alice Ryhl
d047248190 rust_binder: add additional alignment checks
This adds some alignment checks to match C Binder more closely. This
causes the driver to reject more transactions. I don't think any of the
transactions in question are harmful, but it's still a bug because it's
the wrong uapi to accept them.

The cases where usize is changed for u64, it will affect only 32-bit
kernels.

Cc: stable@vger.kernel.org
Fixes: eafedbc7c0 ("rust_binder: add Rust Binder driver")
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Carlos Llamas <cmllamas@google.com>
Link: https://patch.msgid.link/20260123-binder-alignment-more-checks-v1-1-7e1cea77411d@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-26 16:29:48 +01:00
Carlos Llamas
5e8a3d0154 binder: fix UAF in binder_netlink_report()
Oneway transactions sent to frozen targets via binder_proc_transaction()
return a BR_TRANSACTION_PENDING_FROZEN error but they are still treated
as successful since the target is expected to thaw at some point. It is
then not safe to access 't' after BR_TRANSACTION_PENDING_FROZEN errors
as the transaction could have been consumed by the now thawed target.

This is the case for binder_netlink_report() which derreferences 't'
after a pending frozen error, as pointed out by the following KASAN
report:

  ==================================================================
  BUG: KASAN: slab-use-after-free in binder_netlink_report.isra.0+0x694/0x6c8
  Read of size 8 at addr ffff00000f98ba38 by task binder-util/522

  CPU: 4 UID: 0 PID: 522 Comm: binder-util Not tainted 6.19.0-rc6-00015-gc03e9c42ae8f #1 PREEMPT
  Hardware name: linux,dummy-virt (DT)
  Call trace:
   binder_netlink_report.isra.0+0x694/0x6c8
   binder_transaction+0x66e4/0x79b8
   binder_thread_write+0xab4/0x4440
   binder_ioctl+0x1fd4/0x2940
   [...]

  Allocated by task 522:
   __kmalloc_cache_noprof+0x17c/0x50c
   binder_transaction+0x584/0x79b8
   binder_thread_write+0xab4/0x4440
   binder_ioctl+0x1fd4/0x2940
   [...]

  Freed by task 488:
   kfree+0x1d0/0x420
   binder_free_transaction+0x150/0x234
   binder_thread_read+0x2d08/0x3ce4
   binder_ioctl+0x488/0x2940
   [...]
  ==================================================================

Instead, make a transaction copy so the data can be safely accessed by
binder_netlink_report() after a pending frozen error. While here, add a
comment about not using t->buffer in binder_netlink_report().

Cc: stable@vger.kernel.org
Fixes: 63740349eb ("binder: introduce transaction reports via netlink")
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Link: https://patch.msgid.link/20260122180203.1502637-1-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-26 16:29:15 +01:00
Alice Ryhl
8f589c9c3b rust_binder: correctly handle FDA objects of length zero
Fix a bug where an empty FDA (fd array) object with 0 fds would cause an
out-of-bounds error. The previous implementation used `skip == 0` to
mean "this is a pointer fixup", but 0 is also the correct skip length
for an empty FDA. If the FDA is at the end of the buffer, then this
results in an attempt to write 8-bytes out of bounds. This is caught and
results in an EINVAL error being returned to userspace.

The pattern of using `skip == 0` as a special value originates from the
C-implementation of Binder. As part of fixing this bug, this pattern is
replaced with a Rust enum.

I considered the alternate option of not pushing a fixup when the length
is zero, but I think it's cleaner to just get rid of the zero-is-special
stuff.

The root cause of this bug was diagnosed by Gemini CLI on first try. I
used the following prompt:

> There appears to be a bug in @drivers/android/binder/thread.rs where
> the Fixups oob bug is triggered with 316 304 316 324. This implies
> that we somehow ended up with a fixup where buffer A has a pointer to
> buffer B, but the pointer is located at an index in buffer A that is
> out of bounds. Please investigate the code to find the bug. You may
> compare with @drivers/android/binder.c that implements this correctly.

Cc: stable@vger.kernel.org
Reported-by: DeepChirp <DeepChirp@outlook.com>
Closes: https://github.com/waydroid/waydroid/issues/2157
Fixes: eafedbc7c0 ("rust_binder: add Rust Binder driver")
Tested-by: DeepChirp <DeepChirp@outlook.com>
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Carlos Llamas <cmllamas@google.com>
Link: https://patch.msgid.link/20251229-fda-zero-v1-1-58a41cb0e7ec@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-26 16:28:57 +01:00
Eric Dumazet
9bad74127f x86/apic: Inline __x2apic_send_IPI_dest()
Avoid one call/ret in networking RPS/RFS fast path, with no space cost.

scripts/bloat-o-meter -t vmlinux.before vmlinux.after
add/remove: 0/2 grow/shrink: 2/0 up/down: 96/-97 (-1)
Function                                     old     new   delta
x2apic_send_IPI                              146     198     +52
__x2apic_send_IPI_mask                       326     370     +44
__pfx___x2apic_send_IPI_dest                  16       -     -16
__x2apic_send_IPI_dest                        81       -     -81
Total: Before=20861234, After=20861233, chg -0.00%

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Thomas Gleixner <tglx@kernel.org>
Link: https://patch.msgid.link/20251223052026.4141498-1-edumazet@google.com
2026-01-26 16:25:18 +01:00
Jason Hall
b7f42b0cfb rust_binder: refactor context management to use KVVec
Replace the linked list management in context.rs with KVVec.
This simplifies the ownership model by using standard
Arc-based tracking and moves away from manual unsafe list removals.

The refactor improves memory safety by leveraging Rust's contiguous
collection types while maintaining proper error propagation for
allocation failures during process registration.

Suggested-by: Alice Ryhl <aliceryhl@google.com>
Link: https://github.com/rust-for-linux/linux/issues/1215
Signed-off-by: Jason Hall <jason.kei.hall@gmail.com>
Link: https://patch.msgid.link/20260120134119.98048-1-jason.kei.hall@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-01-26 16:18:41 +01:00
Chuck Lever
5288993c4d xdrgen: Add enum value validation to generated decoders
XDR enum decoders generated by xdrgen do not verify that incoming
values are valid members of the enum. Incoming out-of-range values
from malicious or buggy peers propagate through the system
unchecked.

Add validation logic to generated enum decoders using a switch
statement that explicitly lists valid enumerator values. The
compiler optimizes this to a simple range check when enum values
are dense (contiguous), while correctly rejecting invalid values
for sparse enums with gaps in their value ranges.

The --no-enum-validation option on the source subcommand disables
this validation when not needed.

The minimum and maximum fields in _XdrEnum, which were previously
unused placeholders for a range-based validation approach, have
been removed since the switch-based validation handles both dense
and sparse enums correctly.

Because the new mechanism results in substantive changes to
generated code, existing .x files are regenerated. Unrelated white
space and semicolon changes in the generated code are due to recent
commit 1c873a2fd1 ("xdrgen: Don't generate unnecessary semicolon")
and commit 38c4df91242b ("xdrgen: Address some checkpatch whitespace
complaints").

Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
4c53b89032 xdrgen: Emit a max_arg_sz macro
struct svc_service has a .vs_xdrsize field that is filled in by
servers for each of their RPC programs. This field is supposed to
contain the size of the largest procedure argument in the RPC
program. This value is also sometimes used to size network
transport buffers.

Currently, server implementations must manually calculate and
hard-code this value, which is error-prone and requires updates
when procedure arguments change.

Update xdrgen to determine which procedure argument structure is
largest, and emit a macro with a well-known name that contains
the size of that structure. Server code then uses this macro when
initializing the .vs_xdrsize field.

For NLM version 4, xdrgen now emits:

    #define NLM4_MAX_ARGS_SZ (NLM4_nlm4_lockargs_sz)

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
63a5425ff5 xdrgen: Extend error reporting to AST transformation phase
Commit 277df18d7df9 ("xdrgen: Improve parse error reporting") added
clean, compiler-style error messages for syntax errors detected during
parsing. However, semantic errors discovered during AST transformation
still produce verbose Python stack traces.

When an XDR specification references an undefined type, the transformer
raises a VisitError wrapping a KeyError. Before this change:

  Traceback (most recent call last):
    File ".../lark/visitors.py", line 124, in _call_userfunc
      return f(children)
    ...
  KeyError: 'fsh4_mode'
  ...
  lark.exceptions.VisitError: Error trying to process rule "basic":
  'fsh4_mode'

After this change:

  file.x:156:2: semantic error
  Undefined type 'fsh4_mode'

      	fsh4_mode	mode;
              ^

The new handle_transform_error() function extracts position information
from the Lark tree node metadata and formats the error consistently with
parse error messages.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
3e6397b056 SUNRPC: auth_gss: fix memory leaks in XDR decoding error paths
The gssx_dec_ctx(), gssx_dec_status(), and gssx_dec_name()
functions allocate memory via gssx_dec_buffer(), which calls
kmemdup(). When a subsequent decode operation fails, these
functions return immediately without freeing previously
allocated buffers, causing memory leaks.

The leak in gssx_dec_ctx() is particularly relevant because
the caller (gssp_accept_sec_context_upcall) initializes several
buffer length fields to non-zero values, resulting in memory
allocation:

    struct gssx_ctx rctxh = {
        .exported_context_token.len = GSSX_max_output_handle_sz,
        .mech.len = GSS_OID_MAX_LEN,
        .src_name.display_name.len = GSSX_max_princ_sz,
        .targ_name.display_name.len = GSSX_max_princ_sz
    };

If, for example, gssx_dec_name() succeeds for src_name but
fails for targ_name, the memory allocated for
exported_context_token, mech, and src_name.display_name
remains unreferenced and cannot be reclaimed.

Add error handling with goto-based cleanup to free any
previously allocated buffers before returning an error.

Reported-by: Xingjing Deng <micro6947@gmail.com>
Closes: https://lore.kernel.org/linux-nfs/CAK+ZN9qttsFDu6h1FoqGadXjMx1QXqPMoYQ=6O9RY4SxVTvKng@mail.gmail.com/
Fixes: 1d658336b0 ("SUNRPC: Add RPC based upcall mechanism for RPCGSS auth")
Cc: stable@vger.kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Anthony Iliopoulos
404d779466 nfsd: fix return error code for nfsd_map_name_to_[ug]id
idmap lookups can time out while the cache is waiting for a userspace
upcall reply. In that case cache_check() returns -ETIMEDOUT to callers.

The nfsd_map_name_to_[ug]id functions currently proceed with attempting
to map the id to a kuid despite a potentially temporary failure to
perform the idmap lookup. This results in the code returning the error
NFSERR_BADOWNER which can cause client operations to return to userspace
with failure.

Fix this by returning the failure status before attempting kuid mapping.

This will return NFSERR_JUKEBOX on idmap lookup timeout so that clients
can retry the operation instead of aborting it.

Fixes: 65e10f6d0a ("nfsd: Convert idmap to use kuids and kgids")
Cc: stable@vger.kernel.org
Signed-off-by: Anthony Iliopoulos <ailiop@suse.com>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Anthony Iliopoulos
f9c206cdc4 nfsd: never defer requests during idmap lookup
During v4 request compound arg decoding, some ops (e.g. SETATTR)
can trigger idmap lookup upcalls. When those upcall responses get
delayed beyond the allowed time limit, cache_check() will mark the
request for deferral and cause it to be dropped.

This prevents nfs4svc_encode_compoundres from being executed, and
thus the session slot flag NFSD4_SLOT_INUSE never gets cleared.
Subsequent client requests will fail with NFSERR_JUKEBOX, given
that the slot will be marked as in-use, making the SEQUENCE op
fail.

Fix this by making sure that the RQ_USEDEFERRAL flag is always
clear during nfs4svc_decode_compoundargs(), since no v4 request
should ever be deferred.

Fixes: 2f425878b6 ("nfsd: don't use the deferral service, return NFS4ERR_DELAY")
Signed-off-by: Anthony Iliopoulos <ailiop@suse.com>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
9abb354922 xdrgen: Improve parse error reporting
The current verbose Lark exception output makes it difficult to
quickly identify and fix syntax errors in XDR specifications. Users
must wade through hundreds of lines of cascading errors to find the
root cause.

Replace this with concise, compiler-style error messages showing
file, line, column, the unexpected token, and the source line with
a caret pointing to the error location.

Before:
  Unexpected token Token('__ANON_1', '+1') at line 14, column 35.
  Expected one of:
          * SEMICOLON
  Previous tokens: [Token('__ANON_0', 'LM_MAXSTRLEN')]
  [hundreds more cascading errors...]

After:
  file.x:14:35: parse error
  Unexpected number '+1'

      const LM_MAXNAMELEN = LM_MAXSTRLEN+1;
                                        ^

The error handler now raises XdrParseError on the first error,
preventing cascading messages that obscure the root cause.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
eb1f3b55ac xdrgen: Remove inclusion of nlm4.h header
The client-side source code template mistakenly includes the
nlm4.h header file, which is specific to the NLM protocol and
should not be present in the generic template that generates
client stubs for all XDR-based protocols.

Fixes: 903a7d37d9 ("xdrgen: Update the files included in client-side source code")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
27b0fcae8f xdrgen: Initialize data pointer for zero-length items
The xdrgen decoders for strings and opaque data had an
optimization that skipped calling xdr_inline_decode() when the
item length was zero. This left the data pointer uninitialized,
which could lead to unpredictable behavior when callers access
it.

Remove the zero-length check and always call xdr_inline_decode().
When passed a length of zero, xdr_inline_decode() returns the
current buffer position, which is valid and matches the behavior
of hand-coded XDR decoders throughout the kernel.

Fixes: 4b132aacb0 ("tools: Add xdrgen")
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: NeilBrown <neil@brown.name>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Olga Kornievskaia
41b0a87bc6 NFSD: fix setting FMODE_NOCMTIME in nfs4_open_delegation
fstests generic/215 and generic/407 were failing because the server
wasn't updating mtime properly. When deleg attribute support is not
compiled in and thus no attribute delegation was given, the server
was skipping updating mtime and ctime because FMODE_NOCMTIME was
uncoditionally set for the write delegation.

Fixes: e5e9b24ab8 ("nfsd: freeze c/mtime updates with outstanding WRITE_ATTRS delegation")
Cc: stable@vger.kernel.org
Signed-off-by: Olga Kornievskaia <okorniev@redhat.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
ae78eb4978 xdrgen: Implement short (16-bit) integer types
"short" and "unsigned short" types are not defined in RFC 4506, but
are supported by the rpcgen program. An upcoming protocol
specification includes at least one "unsigned short" field, so xdrgen
needs to implement support for these types.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Jeff Layton
789477b849 nfsd: fix nfs4_file refcount leak in nfsd_get_dir_deleg()
Claude pointed out that there is a nfs4_file refcount leak in
nfsd_get_dir_deleg(). Ensure that the reference to "fp" is released
before returning.

Fixes: 8b99f6a8c1 ("nfsd: wire up GET_DIR_DELEGATION handling")
Cc: stable@vger.kernel.org
Cc: Chris Mason <clm@meta.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
NeilBrown
27e383ddeb nfsd: use workqueue enable/disable APIs for v4_end_grace sync
"nfsd: provide locking for v4_end_grace" introduced a
client_tracking_active flag protected by nn->client_lock to prevent
the laundromat from being scheduled before client tracking
initialization or after shutdown begins. That commit is suitable for
backporting to LTS kernels that predate commit 86898fa6b8
("workqueue: Implement disable/enable for (delayed) work items").

However, the workqueue subsystem in recent kernels provides
enable_delayed_work() and disable_delayed_work_sync() for this
purpose. Using this mechanism enable us to remove the
client_tracking_active flag and associated spinlock operations
while preserving the same synchronization guarantees, which is
a cleaner long-term approach.

Signed-off-by: NeilBrown <neil@brown.name>
Tested-by: Li Lingfeng <lilingfeng3@huawei.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
0ac903d1bf NFS: NFSERR_INVAL is not defined by NFSv2
A documenting comment in include/uapi/linux/nfs.h claims incorrectly
that NFSv2 defines NFSERR_INVAL. There is no such definition in either
RFC 1094 or https://pubs.opengroup.org/onlinepubs/9629799/chap7.htm

NFS3ERR_INVAL is introduced in RFC 1813.

NFSD returns NFSERR_INVAL for PROC_GETACL, which has no
specification (yet).

However, nfsd_map_status() maps nfserr_symlink and nfserr_wrong_type
to nfserr_inval, which does not align with RFC 1094. This logic was
introduced only recently by commit 438f81e0e9 ("nfsd: move error
choice for incorrect object types to version-specific code."). Given
that we have no INVAL or SERVERFAULT status in NFSv2, probably the
only choice is NFSERR_IO.

Fixes: 438f81e0e9 ("nfsd: move error choice for incorrect object types to version-specific code.")
Reviewed-by: NeilBrown <neil@brown.name>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
288d9ddbb7 xdrgen: Emit the program number definition
"xdrgen definitions" was not providing a definition of a symbolic
constant for the RPC program number being defined.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
bf0fe9ad3d xdrgen: Fix struct prefix for typedef types in program wrappers
The program templates for decoder/argument.j2 and encoder/result.j2
unconditionally add 'struct' prefix to all types. This is incorrect
when an RPC protocol specification lists a typedef'd basic type or
an enum as a procedure argument or result (e.g., NFSv2's fhandle or
stat), resulting in compiler errors when building generated C code.

Fixes: 4b132aacb0 ("tools: Add xdrgen")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Jeff Layton
9be4b7e74e nfsd: prefix notification in nfsd4_finalize_deleg_timestamps() with "nfsd: "
Make it distinct that this message comes from nfsd.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
NeilBrown
96f04d24fc locks: ensure vfs_test_lock() never returns FILE_LOCK_DEFERRED
FILE_LOCK_DEFERRED can be returned when creating or removing a lock, but
not when testing for a lock.  This support was explicitly removed in
Commit 09802fd2a8 ("lockd: rip out deferred lock handling from testlock codepath")

However the test in nlmsvc_testlock() suggests that it *can* be returned,
only nlm cannot handle it.

To aid clarity, remove the test and instead put a similar test and
warning in vfs_test_lock().  If the impossible happens, convert
FILE_LOCK_DEFERRED to -EIO.

Signed-off-by: NeilBrown <neil@brown.name>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
4329010ad9 xdrgen: Address some checkpatch whitespace complaints
This is a roll-up of three template fixes that eliminate noise from
checkpatch output so that it's easier to spot non-trivial problems.

To follow conventional kernel C style, when a union declaration is
marked with "pragma public", there should be a blank line between
the emitted "union xxx { ... };" and the decoder and encoder
function declarations.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
9654a0388a xdrgen: Generate "if" instead of "switch" for boolean union enumerators
Eliminate this warning in code generated by xdrgen:

fs/nfsd/nfs3xdr_gen.c:220:2: warning: switch condition has boolean value [-Wswitch-bool]
  220 |         switch (ptr->attributes_follow) {
      |         ^       ~~~~~~~~~~~~~~~~~~~~~~

No more -Wswitch-bool warnings when compiling with W=1.

The generated code is functionally equivalent but somewhat more
idiomatic.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202511172336.Y75zj4v6-lkp@intel.com/
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
e344a031a4 NFSD: Add instructions on how to deal with xdrgen files
xdrgen requires a number of Python packages on the build system. We
don't want to add these to the kernel build dependency list, which
is long enough already.

The generated files are generated manually using

  $ cd fs/nfsd && make xdrgen

whenever the .x files are modified, then they are checked into the
kernel repo so others do not need to rebuild them.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Khushal Chitturi
87a6e3b6c4 xdrgen: improve error reporting for invalid void declarations
RFC 4506 defines void as a zero-length type that may appear only as
union arms or as program argument/result types. It cannot be declared
with an identifier, so constructs like "typedef void temp;" are not
valid XDR.

Previously, xdrgen raised a NotImplementedError when it encountered a
void declaration in a typedef. Which was misleading, as the problem is an
invalid RPC specification rather than missing functionality in xdrgen.

This patch replaces the NotImplementedError for _XdrVoid in typedef
handling with a clearer ValueError that specifies incorrect use of void
in the XDR input, making it clear that the issue lies in the RPC
specification being parsed.

Signed-off-by: Khushal Chitturi <kc9282016@gmail.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Chuck Lever
1f1fe81acb NFSD: Clean up nfsd4_check_open_attributes()
The @rqstp parameter was introduced in commit 3c8e03166a ("NFSv4:
do exact check about attribute specified") but has never been used.

Reduce indentation in callers to improve readability.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-26 10:10:58 -05:00
Arnd Bergmann
43b1d60361 Qualcomm Arm64 DeviceTree for v6.20
Introduce the Kaanapali SoC, with the MTP and QRD devices. Introduce
 support for the Milos SoC (SM7635) and initial support for the Fairphone
 (Gen 6) device on this platform.
 
 Add the QCS6490-based RubikPI3 board, the QRB2210-based Arduino UnoQ,
 the X Elite-based Medion SPRCHRGD 14 S1 and Surface Pro 11 laptops, and
 the SDM845-based Pixel 3 and Pixel 3 XL devices.
 
 On the Kodiak-based (QCS6490) RB3Gen2 the TC9563 PCIe switch controller
 is described.
 
 On Lemans (SA8775P/QCS9075) the GPU and crypto blocks are added.
 IO-regions and clocks are added to interconnect nodes to allow QoS
 configuration. GPU, TPM and USB support are enabled on the evaluation
 kit (EVK).
 
 On Monaco (QCS8300) the two PCIe controllers, the camera subsystem,
 tsens, display subsystem, crypto, CPUfreq, and coresight are added. On
 the evaluation kit (EVK) the PCIe busses are enabled, together with an
 AMC6821-based fan controller and the ST33 TPM chip.
 
 On MSM8939 the camera subsystem is described. The Asus ZenFone 2
 Laser/Selfie gains battery and hall sensor support.
 
 On the Agatti-based RB1 board PM8008 is described and an overlay for the
 Vision mezzanine is introduced.
 
 On SDM630 the compute DSP remoteproc, FastRPC and related entites are
 described. The LPASS LPI pinctrl node is described.
 
 On SDM845-based OnePlus device the bootloader framebuffer and its
 resources are described, to improve the transition. On the SDM845-based
 devices from OnePlus, SHIFT, and Xiaomi ath10k calibration variants are
 specified. The sensor remoteproc is enabled on Xiaomi Pocophone F1.
 
 On SM7225-based Fairphone FP4 regulators for the cameras are described,
 and the camera EEPROM is added.
 
 On SM8650 the camera subsystem is described. On the QRD the Samsung
 S5KJN1 camera sensor is added, and for the HDK an overlay for the "Rear
 Camera Card" is added.
 
 On SM8750 CPUfreq, SDCHCI and Iris (video encode/decode) support are
 added, and missing - required - properties for the BAM DMA is added.
 These are then enabled on the MTP.
 
 On Talos (SM6150/QCS615) PMU, DisplayPort, and USB/DP combo PHY are added.
 DisplayPort is enabled on the Talos Ride board.
 
 On Hamoa (X Elite) add crypto engine, missing TCSR reference clocks, and
 random number generator block. The soc bus address width is corrected to
 match the hardware. On the Lenovo Thinkpad T14s HDMI and audio playback
 over DisplayPort is introduced. HDMI, Iris (video encode/decode) and
 PS8830 retimers are described for the ASUS Vivobook S 15. On the Hamoa
 evaluation kit (EVK) PCIe busses, WiFi, backlight, TPM and RG
 (red/green) LEDs are described.
 
 Enable QSEECOM, and thereby UEFI variable access, on the Medion SPRCHRGD
 14 S1 (commit should have been on drivers branch).
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmluY0UACgkQCx85Pw2Z
 rcULshAA2wZmfS4CeeZjIGUMbZg+ntby1xUJ4cKTeUR9IDd86L57qAkhHCNaP/ST
 8ta22+4W9uId2zDTyxxmXbf5rTLIkc+t0dLjkl48HHmu6Kmxc2qALwcW7m2Cw/AI
 3MAXUxVMmTM8BKvxSqW4lzNtQehxMXuErxXzVyUdzHMyiard25HUmXuMTsbIcteK
 yXr+SsAfisSjLTYAYhXkRihPK6OqYO9LkO1pah1Uf1pFY4FtJCbCEQR3a4uSTaQf
 u/NMQAc83LcboM2al1eHVU9fCeoA/oH/i6VZfpEAQLFf7cvsDP6f8CZF8RDWs1NE
 CdISQQdZxmgIfCawq5yt2765NR91Q8E64e49GSi56FWTEX+WBdohLR1qRLl7OrNM
 /rlvB29GhFTpxCjV5JwoAGacS3dn2MScNSXQSQNMRZBpDgGMM2PtnyOc+IhjMb+2
 vOZrU+RS7eph6d9++yrIAMZfnEo8NtwVo0Eu3n0LmPmn4PK/2Kc+OS0Vc8r7IwBI
 qrAj4kkFGsMkfTEH2m4OO3lFH/Dw04E/YX1bSx3uFBkf8oQZrzmQJmn6kUT2MY0a
 9rIJgnoo1R8d6MRAFkEKQqaRisWqEhnN3EZvn1bQj+0HlC5o3AHgjZQhwuZ/y/3B
 DvD7sSV1qSkbF/Dxcy4VRXZI+T6PgybrbL/yF+CD6cZiR4Grw8w=
 =qT6q
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3gp8ACgkQmmx57+YA
 GNmhbA//bKzmRMoV1kx7czXgCfAbSq0SAUNbHs294Zkog/8ILBWnSYiS1smMlKfe
 W7c9x/7QT1myy2TiEZ2wDGzGWC/7benTu5HHGSL+UTSc3vVfKb3wpN021kuhxfhW
 fNpATd6oiOtuGfURgaZlXHaJlDS8TDXr+jJ8lgDKUuMmyJPpBf265/eyS8pSCoVR
 l6ImLT3Im2G4qXhYV7LzApTqe3wu6H6AW2EGPrAHWz4WrebTOzAr2yEY0CPOsPqA
 EnF2slYnPsRYz7RwkBwXM8gSX7711iGwOp/xQWIqmZxHaQa915w816bnPLzWxJTg
 j384ly4sJw/C047iLQdZBaqgGGU9Pu8/3iK1K0mlnfc3NmF1KeaSu3KKB4XxLkF/
 +zw1gFjU6xCbfphHk44f8+hQdsIDa6wpL2jV4VdAE989wtOH2pIPS1WRboZCcvLz
 LummFnQigACAfwKygnmHGIEtVA1rw0U5wfRdvVq2slv2Kfrye5x92QgY/euuR2wW
 7XWIubZESPHqvBPSa2bG7XNcd5gG+EaSZg0apJ6s9JbMm1PHjtKbnEqmv2E5GYUE
 bO3/XPrAalQ+bpN7TvCPkoFgD3Qr6SPK1Du/zQgIf0i5L/CGKKdaE/EVcmXSOOPR
 4MH7kQQx7zcQ6i2OUOfDuGZemGGLOXXRZmGsJpY686gsLg6FYN8=
 =3Isi
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm64-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm Arm64 DeviceTree for v6.20

Introduce the Kaanapali SoC, with the MTP and QRD devices. Introduce
support for the Milos SoC (SM7635) and initial support for the Fairphone
(Gen 6) device on this platform.

Add the QCS6490-based RubikPI3 board, the QRB2210-based Arduino UnoQ,
the X Elite-based Medion SPRCHRGD 14 S1 and Surface Pro 11 laptops, and
the SDM845-based Pixel 3 and Pixel 3 XL devices.

On the Kodiak-based (QCS6490) RB3Gen2 the TC9563 PCIe switch controller
is described.

On Lemans (SA8775P/QCS9075) the GPU and crypto blocks are added.
IO-regions and clocks are added to interconnect nodes to allow QoS
configuration. GPU, TPM and USB support are enabled on the evaluation
kit (EVK).

On Monaco (QCS8300) the two PCIe controllers, the camera subsystem,
tsens, display subsystem, crypto, CPUfreq, and coresight are added. On
the evaluation kit (EVK) the PCIe busses are enabled, together with an
AMC6821-based fan controller and the ST33 TPM chip.

On MSM8939 the camera subsystem is described. The Asus ZenFone 2
Laser/Selfie gains battery and hall sensor support.

On the Agatti-based RB1 board PM8008 is described and an overlay for the
Vision mezzanine is introduced.

On SDM630 the compute DSP remoteproc, FastRPC and related entites are
described. The LPASS LPI pinctrl node is described.

On SDM845-based OnePlus device the bootloader framebuffer and its
resources are described, to improve the transition. On the SDM845-based
devices from OnePlus, SHIFT, and Xiaomi ath10k calibration variants are
specified. The sensor remoteproc is enabled on Xiaomi Pocophone F1.

On SM7225-based Fairphone FP4 regulators for the cameras are described,
and the camera EEPROM is added.

On SM8650 the camera subsystem is described. On the QRD the Samsung
S5KJN1 camera sensor is added, and for the HDK an overlay for the "Rear
Camera Card" is added.

On SM8750 CPUfreq, SDCHCI and Iris (video encode/decode) support are
added, and missing - required - properties for the BAM DMA is added.
These are then enabled on the MTP.

On Talos (SM6150/QCS615) PMU, DisplayPort, and USB/DP combo PHY are added.
DisplayPort is enabled on the Talos Ride board.

On Hamoa (X Elite) add crypto engine, missing TCSR reference clocks, and
random number generator block. The soc bus address width is corrected to
match the hardware. On the Lenovo Thinkpad T14s HDMI and audio playback
over DisplayPort is introduced. HDMI, Iris (video encode/decode) and
PS8830 retimers are described for the ASUS Vivobook S 15. On the Hamoa
evaluation kit (EVK) PCIe busses, WiFi, backlight, TPM and RG
(red/green) LEDs are described.

Enable QSEECOM, and thereby UEFI variable access, on the Medion SPRCHRGD
14 S1 (commit should have been on drivers branch).

* tag 'qcom-arm64-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (155 commits)
  dt-bindings: mailbox: qcom: Add IPCC support for Kaanapali and Glymur Platforms
  dt-bindings: mailbox: qcom: Add CPUCP mailbox controller bindings for Kaanapali
  arm64: dts: qcom: lemans: enable static TPDM
  arm64: dts: qcom: kodiak: Add memory region for audiopd
  arm64: dts: qcom: x1e78100-lenovo-thinkpad-t14s: add HDMI nodes
  arm64: dts: qcom: x1e: bus is 40-bits (fix 64GB models)
  arm64: dts: qcom: lemans; Add EL2 overlay
  arm64: dts: qcom: sm8150: add uart13
  arm64: dts: qcom: sdm845-db845c: specify power for WiFi CH1
  arm64: dts: qcom: sdm845-db845c: drop CS from SPIO0
  arm64: dts: qcom: qrb4210-rb2: Fix UART3 wakeup IRQ storm
  arm64: dts: qcom: sm6125-ginkgo: Fix missing msm-id subtype
  arm64: dts: qcom: qcs8300: Add GPU cooling
  arm64: dts: qcom: sa8775p: Add reg and clocks for QoS configuration
  arm64: dts: qcom: hamoa-iot-evk: Enable TPM (ST33) on SPI11
  arm64: dts: qcom: talos: Add PMU support
  arm64: dts: qcom: talos: switch to interrupt-cells 4 to add PPI partitions
  arm64: dts: qcom: ipq9574: Complete USB DWC3 wrapper interrupts
  arm64: dts: qcom: ipq5018: Correct USB DWC3 wrapper interrupts
  arm64: dts: qcom: monaco: Add CTCU and ETR nodes
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 16:05:01 +01:00
Arnd Bergmann
2aced0be57 Qualcomm Arm32 DeviceTree updates for v6.20
Migrate the MSM8974 remoteproc power supplies to RPM provided
 power-domains, to match what is done on most other platforms.
 
 Give the LG Nexus 5 its more human friendly model name.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEBd4DzF816k8JZtUlCx85Pw2ZrcUFAmluVn0ACgkQCx85Pw2Z
 rcUaUQ/+Murq/FagYIODDX7uz1Expmnwo+WV7yRUbwNC27u79YYx+jEa2M7D7dU1
 NzRWJVozK/o0jUBREjyO9zToDTL2pXBxx/E7ymlICVZA8TRH+M8gktxwbEJ3TnQc
 7BJ44sZK7d3ZtAKocFCaMfq2WSjEgS8R8CnULZ1gIyy9Z8Be/L3mMjxZycrgVjqj
 JGO1g5sKG3Nmi96sfYutCtEEj1D7ZpJTGye+5v3XEXjJ9qn5DeE+wYthb4GW1gL4
 RYjUuwNIdzwm3+Rjy+ThQbPNIWU+bgxlQZFFJdHxTtDx9tl6ex1rrvqUKGwZJb/K
 63z3Cj3Jk+oIgWTNhyCws037g5O+35+trjGJoYFl/T+cnXCijrAl5QnEs311HvBA
 mf8QXcod7DUpvUiYtKn5qFzZfUf603/u3dP+vvzb9GD/IvZOwfjkzcHs8AWJF5yB
 rSPaWY5bs/Cr5ryW6shO5UKp0Ad6YuDQ9gPweSFRc2CdmeYB3cA5uh0/D8D0Yj2W
 7PmIk6VHRCi/Za89FB6/6lwGzsrPlBA7I51mLcdeN0W2FHRu8NuDnpp1BbAOrvya
 SNZva+EN6W1nBIdfFnL28JoqVBN0rsIOmP+wihbDsjWMjwx5chTwo5buueV63QRg
 teY57KpA8WXqzEWlkAGGVrGdjMUWcgIZQQqWcFINe+aOnLPgmCw=
 =YBqC
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3gnEACgkQmmx57+YA
 GNkFqxAAujieZ00MAgjrJqMU1d8HfDIHLodWagTLuKL7168NOLS2++pl8a9vozMR
 CsZpyVvTlChR2uk7cd2GaEVj+wqGCAfI2+BybxXFF1F4B1BDjOxNd29UlOZyF5qQ
 qfj5+AFb16HrQv61He9rNUiesCPAn407ZZIzPk3QDBNnJUhYGjcONDnOjWy9/gp9
 u/c1MaSVnxyk+LvyZqilkxe8lLv36SADPMdlSuLAZoEEEExVQRHAnt0mAIcuCBOZ
 32JHYBWHpqMY/hyUfzXQ7gYNeLt0eJqe20VSyg6f6N/sTXHPgD1IaGdmlu8wx2e/
 5rn5bo4SNjic8HuPtfzShWrK4X52BYsjHa7WfeNsWFT7EGOqJ7XtcFHFKFl/Em6X
 8T5o8WricK7wPA/bSw6z8PZl0wd76iPp1XSw23x2VbrbDuU4F+4jeqOteZ7K+k4U
 hJYLfbwMjojh59HQv+cOwdv3wWlbbLNU77PZX71jVUh716qH4abAuAWCLGlpj2Kv
 6j5DWQfnzeUS9CFu7UJKHw83VBQ4col05OD6bxrh/1G8biH9bjEgQn1hgA/uKdF9
 oxLl2ID+RX8vcGpMmjearkDe2SP0nxl4N1FkcFpnIj2+d6+QlFnrH1gsQjDbx6PB
 Zy1ZwWiDzOQnIahZ59okoCSaMX0sn2nb6JefE70ka6cckSuewAo=
 =p877
 -----END PGP SIGNATURE-----

Merge tag 'qcom-arm32-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

Qualcomm Arm32 DeviceTree updates for v6.20

Migrate the MSM8974 remoteproc power supplies to RPM provided
power-domains, to match what is done on most other platforms.

Give the LG Nexus 5 its more human friendly model name.

* tag 'qcom-arm32-for-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  ARM: dts: qcom: msm8974: Start using rpmpd for power domains
  ARM: dts: qcom: msm8974: Sort header includes alphabetically
  ARM: dts: qcom: msm8974-hammerhead: Update model property

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 16:04:08 +01:00
Arnd Bergmann
915ed61356 arm64: Xilinx DT changes for 6.20
- Cleanup SPI compatible strings
 - wwdt: Add optional power-domains property
 - ZynqMP: Fix OPP description and setup
 - ZynqMP: Remove OP-TEE node
 - Drop label from dlg,slg7xl45106
 - Remove ina260 IIO description
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYIAB0WIQSXAixArPbWpRanWW+rB/7wTvUR9QUCaW3vYwAKCRCrB/7wTvUR
 9cNwAP95UZcFLZy16+LGWwO5/AgKqymtOvBaFWV906NRp68pzQD/fnyIFdqimSUG
 8xvnPkUSXtkWvWZ5/zz6Qdoc/RBzbA0=
 =mTyA
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3gigACgkQmmx57+YA
 GNn9oBAAiXCL9KaODGW2LMjQHCgrMQksckdWBeetMZa0E1/5vasaUJh+kPZ1B8Ng
 0/GWE2upDm22LYdGuWVYCWdBPOXaVsiX8GpBeBZyDKqG2mf2MzF5Tvg4EmQgHNrY
 hFbBTjfbJlfeQdIXaMo8PIE84eb7ZlUEeMfbZ4vIAYs+CvPH3DNKHc3wyAo7wQ/W
 wHPTo983c/zDO0YJfRFFqSknFXRI1w1dGC2rQqllkd7PxpQ7VwZs9oF55q4lmVpa
 jY7s5cJx7lhec5czVGq+STp/qIci0iGDSY0FmC9NUU7fsVTVtfsNSpIGJ2ahobLp
 MH1YvnKhjDwWesqFZxQ4DVm1mOQldLrZpwyNirnD1p5t0bWGVvbCb044pFb22Iih
 AUhenOaNNjXjN0v+Wj9ibgjbIKJB2wOjxLtipUzSyypQxqumLCBJqLE7i28hAlmd
 gpZQG7USQ3J0n0jh/boGxONj67QYEunaVBPps7pvgQeUrxjA7OK9kgLZrYKtrcuQ
 5/87eYBOfUTiu4U7R1XWxbf0SBpsJDhnh6TbRPUV0dR5Q8SCBe2MB8RDx7xb1ruY
 ksNUxROF3y+nFqfuDyv0MNb8dFzFsR2b1HiAbzraVBGdh1zEgkUUkrYFcXnT56sR
 qmy1i+hYyibtSyS+EbKg7C5pr7EHHopwHvDS1J9HENisJj6wDWE=
 =ikq7
 -----END PGP SIGNATURE-----

Merge tag 'zynqmp-dt-for-6.20' of https://github.com/Xilinx/linux-xlnx into soc/dt

arm64: Xilinx DT changes for 6.20

- Cleanup SPI compatible strings
- wwdt: Add optional power-domains property
- ZynqMP: Fix OPP description and setup
- ZynqMP: Remove OP-TEE node
- Drop label from dlg,slg7xl45106
- Remove ina260 IIO description

* tag 'zynqmp-dt-for-6.20' of https://github.com/Xilinx/linux-xlnx:
  arm64: zynqmp: Remove ina260 IIO description
  arm64: dts: xilinx: Drop "label" property on dlg,slg7xl45106
  Revert "arm64: zynqmp: Add an OP-TEE node to the device tree"
  arm64: dts: xilinx: fix zynqmp opp-table-cpu
  dt-bindings: watchdog: xlnx,versal-wwdt: Add optional power-domains property
  arm64: dts: xilinx: add soc-specific spi compatibles for zynqmp/versal-net

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 16:03:01 +01:00
Arnd Bergmann
3d46ce71a7 arm64: tegra: Changes for v6.20-rc1
This update improves Device Tree support for 64-bit Tegra platforms,
 specifically focusing on the Smaug board and the Tegra264 SoC. It
 enables full USB-C functionality on Smaug by adding role-switching
 support and enabling DisplayPort altmode. For Tegra264, it introduces
 nodes for Command Queue Virtualization (CMDQV) in the SMMU, adds the
 Data Backbone (DBB) clock for the memory controller, and corrects CPU
 compatible strings to match the Neoverse V3AE core. Additionally, it
 performs a cleanup by removing redundant status = "okay" properties
 across Tegra186, Tegra194, Tegra234, and Tegra264 files.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmlskkoACgkQ3SOs138+
 s6Hs7Q//fo3H7xm77b5gmYO2/+gMPF33J0D0xveF1X8S25+I5UgRYNqucHJatZ5Z
 e1CzTWxmM53Y1On+k06B9JOy8dnrT5F75U8h7MvfSY9ZiInJjoKhvDAlc64T6Dag
 U658zYGThWmQt3zmORFEANYb24YX+VnSuDQysrBqynTXPtBIr/jXnrQiPWBsMToe
 m1Uo2/QISRegFujlMGaKn6mvPrajFJr9xa3s+83LZV72Lhl7e3ESbba7Kf0wN76M
 vvtdt6vshc0IknH8SUWDmnyxg9B72TXrVvUkQ9GOdPN+FNdXvMWdMiR2iVWGAA9a
 EjnOiHFND8qgRqa19j8x95oyRzEicARqSTGW2bC3gAji5+hhCOmz0u5QkxTFYKKd
 HynJdOTt0p5QsZvyYACLsLVzY6Cx4w8Fc7+q7fq7IVxududHHAHQzLSXVhFT6xpt
 5llD4HN10Gizc/xFdL6cGvGQ3nbmh0OMbSCnl4nQfhXHjMLaSuIvDnYImiU5+tY9
 mkic1zSeoigF4FtIvnaQ4PjSsq/ypNQnE84I/aUMFBGzBdnyYnvsZHKZvfz7O/nB
 JZYYzsjxK4MaldOAlyQVlHbIhedJYwv+Fgpq8YZBLwghZMcnsQ1I5uBacEQjUA/5
 YN4BiDS12im3l3EmW4fqbo/aSS4PLa7Rkllr3966F4ObQmCtz6Q=
 =AQ07
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3ficACgkQmmx57+YA
 GNkzZQ//R5Vf1w4e5iy66snGQ24R/d/zx0lS7+avsbZY1dIfqYdu5mbIXGixv/sC
 WZ0g00vPF8QmIO+23DLPQIlfwI9Jzqu03KxlnoCxGjtfDz8k1ntJBTCT92+dgtrn
 FtgPjQf5CFhj+QP4WA5YysQch7Jbxg+PBKtp2YeYJW8UuY2leJJlojgGxNWE8Izu
 5z86Ceog8Uu9dKe7zVFoDJNyd8FDxg185OLVbHaOenhYTZKd4lsdpo6N4EDJu/j2
 QVmIXdi+kBvzW/RXwJFcEBybP2kQghVISbH0R5Oc+oyUNT/Z52e9HuYHW5b1Hlre
 NQT8ZJ5hHmM5i7izWSVIyC7cTPRh9VpABzfDQberx+ihWEeGdD6QaPd1UmHTs9Qq
 1qdEqmQL5zRCjY/rqL2uUQPN2TfTZvznizCpzUD44CiDQu/zoRV/6CdlZWRBKnDa
 Z+9iGtyNPzgNyVK96TJ7HZd1Gd8GxxfRJUCako5kHGOdHoft5UBngELvGSPKMwZN
 RHYNyFphCNmpMvfyL8ZhywyVViTpPYY9LyzKJTZOya5wuQeXjwGuvoszLuaLyHCw
 aexmDshstEUdf9j6VA/hQcD9lCi14dWQzMdjbNzZrqkVd5BoJDycdHwmqzZOTc/i
 Xl8rtySU61G8ZHstfTPpSwGrBK2r1PXBBK9xo8t4dKqODxh4IFw=
 =4UL9
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.20-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

arm64: tegra: Changes for v6.20-rc1

This update improves Device Tree support for 64-bit Tegra platforms,
specifically focusing on the Smaug board and the Tegra264 SoC. It
enables full USB-C functionality on Smaug by adding role-switching
support and enabling DisplayPort altmode. For Tegra264, it introduces
nodes for Command Queue Virtualization (CMDQV) in the SMMU, adds the
Data Backbone (DBB) clock for the memory controller, and corrects CPU
compatible strings to match the Neoverse V3AE core. Additionally, it
performs a cleanup by removing redundant status = "okay" properties
across Tegra186, Tegra194, Tegra234, and Tegra264 files.

* tag 'tegra-for-6.20-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: smaug: Add usb-role-switch support
  arm64: tegra: smaug: Complete and enable tegra-udc node
  arm64: tegra: smaug: Enable DisplayPort via USB-C port
  arm64: tegra: Correct CPU compatibles on Tegra264
  arm64: tegra: Drop unneeded status=okay on Tegra264
  arm64: tegra: Drop unneeded status=okay on Tegra234
  arm64: tegra: Drop unneeded status=okay on Tegra194
  arm64: tegra: Drop unneeded status=okay on Tegra186
  arm64: tegra: Add nodes for CMDQV
  arm64: tegra: Add DBB clock to EMC on Tegra264

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:45:53 +01:00
Arnd Bergmann
50411c8d83 ARM: tegra: Device tree changes for v6.20-rc1
This update corrects the DSI Device Tree nodes for Tegra20 and Tegra30
 by adding missing properties (nvidia,mipi-calibrate and cell
 definitions) to ensure proper MIPI calibration support.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEiOrDCAFJzPfAjcif3SOs138+s6EFAmlskPEACgkQ3SOs138+
 s6EtaQ//U6NflsKO17n7/MuhqQpEQ+I15HV1ZAZMzVkvx5ETYyaTJVOpntnkl90G
 YlBHTtWQLWDb8M2sshZTO1Lla5FRcOdBkb8mMGtqYF0Javj9TI0aTgNgrDiXsaS+
 8HvTkUX74icRLVLJ7BrjI1iMektg9g0kUxDihYyR2xmguM1L/Ruq213Pf/qElW/w
 WRUBxCt9c8rrg50WwMEsetMRugBk+A5Sy59XHB4ahWQUj8++muJKOKUkYejSPL7r
 MMdyl1fZiOrPCNreJ/5XCYfIELP3EGLDiimJwXCcLLthsEXyn2HHH+orwkP0LryZ
 1GXPV0oBoizVZj7OkPumHkDeBXZjURY6LZxLtbGQnVRMPEq2emvy8iycLWK46Ccz
 qtCKNn28wGts5Yg1xWrO0XstWz/8jvdbLMLD0cv0KJPlJ6CtTy+1M02OEHc4jSKx
 lpsiAIxXg4FdpHXN6xPGcoj26qVVgfGKTbveVirFnlsDmbCvXiiogIv+edpnKo4m
 XXGtpVf28fdkFiV0Q4M922GuuhbYw+wG79aYF2s6Ahj6rKl72/9pyAdGAz12fS4q
 s0JFVyaGwwes5CqvM1iYhKYQscIlIOnyGqz2ZVmd3D4RfeJyGXJNgt59hCZufg/w
 A2a1Jl7fT7DjCLDN9puXik5IPMfG+Mc2mzzlsrKPZ+G+ma8vQUk=
 =nCc/
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3ffMACgkQmmx57+YA
 GNkfxg//cUO8UvtZuZEg+8Yy56Kb3rx2bI3S8jU4KayDDPI4RgFrorHT2NWYBRNx
 SfKEZn5E2zm6GoTtPMuSPgn/x68bZdSs1Gus1zlsBXkOk9GkbAkok45LqYLmqUZO
 JnIsA9GPaSRNmTHF5czBpWtXm710mXamC8H8mnpSkq5dZpeTy1dWCNBeccOn5czs
 eskwgZzt+iIDZd2ncLb64BKGJ5rvslL62IkwZQkzZ8+1xXzOw6Lz1LEi8IEHh5Xd
 vXyMkrK+zOzwA/YAa+/RyPvR68B4yE/JLRaQD85VmTJoUqwdpeepF56eREEALg/M
 CkH3ZiLpPlX57AMyErphq9GszKL4pk1Wx0BW4BaiMMeaSxrbWPYnIUDzefn62phr
 l8QSRk2RxNuJ3fNEF498sSG/cVLf+2k7REnZ5a0c/I/dFyDkVQdK4hBaEzbj/zSY
 wORdW6DcExdRJKBSfyHk+Y7TcwpyyZRQrPrEuAXWAJ/JmwX6D5IpNBC3TtpyB03/
 nx+vP3XhycpEux2oyb3NBcLmPJUvmPIZfg37obzpPKSOkWPdH79SKONj+XHSCMNx
 YmEBs4qwUzWf5AN97qGD/jrvJ689/STHxRecsDdpRTpoOA4xM9bcZZ/v17TsrDaq
 B88sHIqo6gWdku4lrYrLXHvwICBlY+7QgGCD/WxpPs6HuxHeUoI=
 =q6HO
 -----END PGP SIGNATURE-----

Merge tag 'tegra-for-6.20-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/dt

ARM: tegra: Device tree changes for v6.20-rc1

This update corrects the DSI Device Tree nodes for Tegra20 and Tegra30
by adding missing properties (nvidia,mipi-calibrate and cell
definitions) to ensure proper MIPI calibration support.

* tag 'tegra-for-6.20-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  ARM: tegra: Adjust DSI nodes for Tegra20/Tegra30

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:45:05 +01:00
Jonas Ringeis
662c9cb86f
platform/x86: lg-laptop: Recognize 2022-2025 models
The lg-laptop driver uses the DMI to identify the product year.
Currently, the driver recognizes all models released after 2022
incorrectly as 2022.

Update logic to handle model identifiers for years 2022-2025.

Link: https://en.wikipedia.org/w/index.php?title=LG_Gram&oldid=1327931565#Comparison_of_Gram_models
Signed-off-by: Jonas Ringeis <private@glitchdev.me>
Link: https://patch.msgid.link/20260123225503.493467-1-private@glitchdev.me
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:44:40 +02:00
Rob Herring (Arm)
d5e22ed44b
ARM: dts: samsung: Drop s3c6400.dtsi
This .dtsi file is not included anywhere in the tree and can't be
tested.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://patch.msgid.link/20251212203226.458694-7-robh@kernel.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20260117182257.14799-2-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:44:08 +01:00
Krzysztof Kozlowski
aeec6d68b6
ARM: dts: nuvoton: Minor whitespace cleanup
The DTS code coding style expects exactly one space around '='
character.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://patch.msgid.link/20250819131725.86770-3-krzysztof.kozlowski@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://lore.kernel.org/r/20260117182117.14483-4-krzk@kernel.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:43:52 +01:00
gongqi
2b4e00d8e7
platform/x86/amd/pmc: Add quirk for MECHREVO Wujie 15X Pro
The MECHREVO Wujie 15X Pro suffers from spurious IRQ issues related to
the AMD PMC. Add it to the quirk list to use the spurious_8042 fix.

Signed-off-by: gongqi <550230171hxy@gmail.com>
Link: https://patch.msgid.link/20260122155501.376199-4-550230171hxy@gmail.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:43:51 +02:00
Arnd Bergmann
896cc203af Samsung DTS ARM64 changes for v6.20
1. ExynosAutov920:
  - Add MFD clock controller node.
 
 2. Google GS101:
  - Add True Random Number Generator (TRNG) and OTP nvmem nodes.
  - Correct the PMU (Power Management Unit) compatibles by dropping
    fallback to syscon.  The PMU on Samsung devices serves the role of
    syscon, however on GS101 it cannot be used via standard Linux syscon
    interface, because register accesses require custom regmap.  It was
    simply never correctly working with "syscon" compatible fallback.
  - Add phandles to System Registers SYSREG blocks in clock controllers,
    necessary for enabling automatic clock control later.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmlrzm8QHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD13BJD/4s3Q75bedb7izJ3kvBYTE4Rj1WnfDokx0u
 E8STJ5p6FrEB2AKxLSRJTW4/Ih0Bp52G+sBUMetKzUlEznXaJ9c8TdJ9hPRDUYh7
 at9R2wpyyWWFOXLIAuNp0nohxUuCiNrJssZZZTsJzV1yFodCG3aPYn38/oNrKVTx
 Uhl9zBxTtdGclpPi/npue34oEQRv824AXlu1DSjBbEJfuDYxX5uijcs8T97l2Dtj
 rb6Mm2cjTvvU1pTR9sCzGrBxtHP92kl/72w8iSgfvi6OsXqvcHLDdNdhJYvAjdnl
 eQNFe0XSFUZDT7pLv+gW/5PEGrO3J6sTKCk5xkic4yQczVr/pqdnxajSGvodOmQu
 AQB5EcDwExFGhttiXUEAyG85MVOsLJv+i6sU+2VLQVDOc7+DCMidP0DMgfPh/B/S
 dRb0dCTBKWGSnUL1iAnWLVUjxkmnbecA1EcE8/AxG++vn2bXo9t+w1J9LYcwkebU
 lrZHj9DjJLvzg6ejBUbwMotzK+c1hYH9WqYGZOcdsw7jPd7ULEaJs1ycO0Oreny4
 t8oae9wF85eD4aCZ9KLRnp3l9v2w/cIWzvOLwcqaIsANiVvTy2i3pxLyfkvwgQ2g
 +gjms9FTH2IoJ36Y0+RmBklYABOodZiYF+e8eEoioo7xOS6FhMaYQRCcyfMgb9n2
 gACUifUGAQ==
 =xVlA
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3fXEACgkQmmx57+YA
 GNlNdRAAvxo6wZ1vv1UsVUbGhZ3TmSlYEkYYBo73GMVzkaXRm7HyPA5zo5I+yJRJ
 QtH5SPYqgdzfeZGMjnMFGG/IIO4ZB4g7SEWHMFROdz1IIzjTzv5ZBt1rK2tvj7Ok
 9gQKWwOnjDPxIcXRHDFcMwAF1WXPvOqTlGbTWBz5PoYcsU6II47ifbLqvautAn24
 S74tBfjGukn5kodrtytJOyZt/Vc7NjR6oAXSQ+M7c+Yff4UbHWxRSSHwfGPVFBVB
 vdkfg0rY3tzdLs1PUWWgC8T9O/xhILeCnxhnlbgo7u0a+3CnAdQcbfWhmSPPNYzT
 +xX/bo6f+FzBPTVeK08QGAvVPH+dHWxk0aktABjS3Hpk6/fOwpCum1oJUECF2SiM
 43huYrJZCGLHW12CmEEAKg52rghkqPJkevn+lBXnF5l862/VSeQ/LZUuHIXKK6a1
 2xqJqnbzvlHqdjdTrCFC/v9xyQvwJXZt3BH6I8l1oN1ppunZb7jCAlESMGDYjhVZ
 NBYsU21eeYCG07+QtvDZ4TSipmtq6RQsvW7fDuvQKSSiNMOOTs6iP5VH0RC48al1
 rLUKwiPmYvFSlFBEwt2AIVECtHA73W4MQJgp4s6gwpS2XDYsHTi8NiUx9LbTha7s
 kuqrCuwRcY0IQs7dwdDYAggkeQBsYsTWhZi+SGfeHyNlb2y3ur0=
 =pNN2
 -----END PGP SIGNATURE-----

Merge tag 'samsung-dt64-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into soc/dt

Samsung DTS ARM64 changes for v6.20

1. ExynosAutov920:
 - Add MFD clock controller node.

2. Google GS101:
 - Add True Random Number Generator (TRNG) and OTP nvmem nodes.
 - Correct the PMU (Power Management Unit) compatibles by dropping
   fallback to syscon.  The PMU on Samsung devices serves the role of
   syscon, however on GS101 it cannot be used via standard Linux syscon
   interface, because register accesses require custom regmap.  It was
   simply never correctly working with "syscon" compatible fallback.
 - Add phandles to System Registers SYSREG blocks in clock controllers,
   necessary for enabling automatic clock control later.

* tag 'samsung-dt64-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux:
  arm64: dts: exynos: gs101: add OTP node
  arm64: dts: exynos: gs101: add samsung,sysreg property to CMU nodes
  arm64: dts: exynosautov920: add CMU_MFD clock DT nodes
  arm64: dts: exynos: gs101: remove syscon compatible from pmu node
  dt-bindings: soc: samsung: exynos-pmu: remove syscon for google,gs101-pmu
  arm64: dts: exynos: gs101: add TRNG node
  dt-bindings: rng: add google,gs101-trng compatible

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:42:53 +01:00
Kaushlendra Kumar
39e9c376ac
platform/x86: intel_telemetry: Fix PSS event register mask
The PSS telemetry info parsing incorrectly applies
TELEM_INFO_SRAMEVTS_MASK when extracting event register
count from firmware response. This reads bits 15-8 instead
of the correct bits 7-0, causing misdetection of hardware
capabilities.

The IOSS path correctly uses TELEM_INFO_NENABLES_MASK for
register count. Apply the same mask to PSS parsing for
consistency.

Fixes: 9d16b482b0 ("platform:x86: Add Intel telemetry platform driver")
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Link: https://patch.msgid.link/20251224061144.3925519-1-kaushlendra.kumar@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:42:43 +02:00
Kaushlendra Kumar
25e9e322d2
platform/x86: intel_telemetry: Fix swapped arrays in PSS output
The LTR blocking statistics and wakeup event counters are incorrectly
cross-referenced during debugfs output rendering. The code populates
pss_ltr_blkd[] with LTR blocking data and pss_s0ix_wakeup[] with wakeup
data, but the display loops reference the wrong arrays.

This causes the "LTR Blocking Status" section to print wakeup events
and the "Wakes Status" section to print LTR blockers, misleading power
management analysis and S0ix residency debugging.

Fix by aligning array usage with the intended output section labels.

Fixes: 87bee29099 ("platform:x86: Add Intel Telemetry Debugfs interfaces")
Cc: stable@vger.kernel.org
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
Link: https://patch.msgid.link/20251224032053.3915900-1-kaushlendra.kumar@intel.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:42:25 +02:00
David E. Box
98bdc485b2
platform/x86/intel/vsec: Add Nova Lake PUNIT support
Add PCI ID for Nova Lake, supporting PUNIT telemetry.

Signed-off-by: David E. Box <david.e.box@linux.intel.com>
Link: https://patch.msgid.link/20260122022110.3231344-1-david.e.box@linux.intel.com
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:42:02 +02:00
Arnd Bergmann
6b82510294 Minor improvements in ARM64 DTS for v6.20
Several minor cleanups for Nuvoton, LG, Spreadtrum, Toshiba, Cavium, ARM
 and APM SoCs:
 
 1. Switch to recommended node names by fixing style
    (s/lowercase/hyphen/), using generic naming and adhering to DT
    bindings.
 
 2. Use consistent whitespaces around.
 
 3. Add missing properties like UART clocks (Cavium Thunder 88xx) or
    "reg" (APM).
 
 4. Drop incorrect or long time deprecated propeties.
 
 5. Correct clock cells to 0 for fixed-factor-clock clocks.
 -----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmlr0roQHGtyemtAa2Vy
 bmVsLm9yZwAKCRDBN2bmhouD1wd4D/0UV4Fo/gd/NGbC4iTgQeGKnYfFGsF3Vqsp
 TQ92deruSVhN4C1Oudu80LW/Dvtdnemwj/XyLZJ6s2IzZOQ+D0eyJu8IEBHCYelc
 +H3IUDq3MsuFaiP+0XXUrH233MOUYCpzxjPlD+JDw5rcp/u24R9Xxl79rWBmU2my
 beWtllFRkBY5aaPfDZzApLpVHweXb0jp0/1Syhjw1QB/1fITKj5gwghMCxw9IfWG
 N/1Z/C38xeYPZpGGb4f319a55P6mGeUgnt5sM6BFE/jyWBI6sl3wg+ZQG7hRZike
 1kkww/c+dqLJV7nT41RKFlez+ET9to2Ll4Di98T4/Agt44Jp13AUWI0f2cnPUoVt
 T1vEmLRuCLbUVqGPsVWEoqBw/QFuL/Cg0A33UKxF7Wo6iGKPKq8GhWcnPdUSy8PE
 1P03S+UXsiwUpLOUeNfyOXi/Yg9DDFYwpClWruywsJtKk65gU6eJoDJulGDoF9w3
 8lKA4lDWdCyuhhOaSkerYzDBQhsEUxhgxUDB+42ZAV+W71iL9ilTOLn3y/POS5a9
 469Z1a4bztlAaL2OSzAt3vKT5cBvN+ImuqAa9By0S/l0otJT8lT5Mw2mQmlfCiDa
 pjpXp0oWejpCloz8Zw2DGqeQoXKpNpZIiCtm546MzMFJxbqzZ4kW7csvoZHANCSV
 LwCbdc3sdg==
 =S1JL
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3fOYACgkQmmx57+YA
 GNnjgRAAmCk7jUttCUglZXWOKfXkunrfzkoSxCahG0E2TlENEu1sBJRCKNU0RCKe
 y4sFSIDhGJDfZK7CHUDsiC403nCBAjGiKg+6FRnDKj60UgB3/cVmeoI/cR2l6pAU
 goTJReQm8bg2FBeFFULQykVwPRtHRVlugmOIPBi0FX1VaOLzgmP8T1AWI3sFWu2g
 qdhSByEHr7pzPtoB4C+4c7EsG5JEsVgOqGNOgpZ6wsmAwbqeoiNe2OOyYGP51Aaa
 JaAK7C87D2s37I6eQhv2kmLEbij/8IpRiM5booU/l6JA3R7wJNbfWUs3cQ3eDbK9
 TmcbtO2K+onPqd0xw1Ds2qByC1FVNv0nC27mmj8u4ldErJeylZrU2Vm1vtEgh9nC
 1RGU5eSGwduWmz0dr+lr+wTHos3r8uKLrldZH6aOBNYY+HdhgnyL1r+dqEHx1o9P
 Kwe9ADXWVy5UgWXuCCsY6dJ9/aEmBdrU8Wgn5dpwN620ypxgqlDsjCjQ3Yn39E+1
 2Fb8/cCjD7BmIP7lgfIyNDOCjoVUBlYQocCVOC5yiDTgeedSFPLHRVtxTQtfCgeD
 A18P0WJZy3C9GB6uQeA8cfY8Clh9tGjWs2XkToRw6vSCTEsRwoX40Sm5oL7eOgWw
 LJ+ZMMjsyFOoZy77X4xsi7Js/0okDIZ5quVSoCyI7Jr1saoJ4lk=
 =91V0
 -----END PGP SIGNATURE-----

Merge tag 'dt64-cleanup-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt into soc/dt

Minor improvements in ARM64 DTS for v6.20

Several minor cleanups for Nuvoton, LG, Spreadtrum, Toshiba, Cavium, ARM
and APM SoCs:

1. Switch to recommended node names by fixing style
   (s/lowercase/hyphen/), using generic naming and adhering to DT
   bindings.

2. Use consistent whitespaces around.

3. Add missing properties like UART clocks (Cavium Thunder 88xx) or
   "reg" (APM).

4. Drop incorrect or long time deprecated propeties.

5. Correct clock cells to 0 for fixed-factor-clock clocks.

* tag 'dt64-cleanup-6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-dt:
  arm64: dts: apm: Drop "dma" device_type
  arm64: dts: apm: Add "reg" to "syscon-reboot" and "syscon-poweroff"
  arm64: dts: apm: Use recommended i2c node names
  arm64: dts: apm/shadowcat: More clock clean-ups
  ARM: dts: vexpress/v2m-rs1: Use documented arm,vexpress,config-bus child node names
  arm64: dts: cavium: Drop thunder2
  arm64: dts: cavium: thunder-88xx: Add missing PL011 "uartclk"
  arm64: dts: toshiba: Use recommended node names
  arm64: dts: sprd: Use recommended node names
  arm64: dts: lg: Use recommended simple-bus node name
  arm64: dts: nuvoton: npcm845: Minor whitespace cleanup
  arm64: dts: toshiba: tmpv7708: Align node names with DT bindings

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:40:34 +01:00
Rafael J. Wysocki
1284974567
platform/x86: toshiba_haps: Fix memory leaks in add/remove routines
toshiba_haps_add() leaks the haps object allocated by it if it returns
an error after allocating that object successfully.

toshiba_haps_remove() does not free the object pointed to by
toshiba_haps before clearing that pointer, so it becomes unreachable
allocated memory.

Address these memory leaks by using devm_kzalloc() for allocating
the memory in question.

Fixes: 23d0ba0c90 ("platform/x86: Toshiba HDD Active Protection Sensor")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2026-01-26 16:38:45 +02:00
Rafael J. Wysocki
43b0b7eff4
platform/x86: panasonic-laptop: Fix sysfs group leak in error path
The acpi_pcc_hotkey_add() error path leaks sysfs group pcc_attr_group
if platform_device_register_simple() fails for the "panasonic" platform
device.

Address this by making it call sysfs_remove_group() in that case for
the group in question.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/3398370.44csPzL39Z@rafael.j.wysocki
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-26 16:38:04 +02:00
Arnd Bergmann
ab8292d702 Renesas DTS updates for v6.20 (take two)
- Add cpufreq, thermal, GPIO IRQ, and CAN-FD support for the RZ/T2H
     and RZ/N2H SoCs and their EVK boards,
   - Add more serial (RSCI) and CAN-FD support for the RZ/V2H and RZ/V2N
     SoCs,
   - Drop unused .dtsi files,
   - Add I3C support for the RZ/G3E SMARC SoM,
   - Add GPIO support for the RZ/N1 SoC,
   - Miscellaneous fixes and improvements.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCaWoS+gAKCRCKwlD9ZEnx
 cPb7AP9hzYt83RFKg91S8JsTLK8wMdoVY6aphjXOZaedN/g4nQEAjHOh7pdCcfSe
 DF7v81n5R2cvK1sqQKuENKXcOtqyrg4=
 =yeu4
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3e/AACgkQmmx57+YA
 GNlhfQ/+J8wjGAgimcwABVW7uHZkKQEjf93UVbq8qGCh3g75lkl0n4K40xyht6Ha
 iqqJ2GEeRZFRGoHMZr4MRglBUCpM6Ysevl8BaBPg/Tqgyzq7kF2eyv/G/2RDTgxx
 ydAUCFWmGIOOvwyR26Yn8eqVf3gI35eQa0vQYrqZUsm0smTW3xc0FNZPrGD4OHbd
 vCddBle9gQpwDTXPImcNDJToKdf0MsU/0liXfCxk7KzTt8nzBYTnUwUVGgIgHEtV
 gF5vyqqrD2ToviVJls7wLpBKMrN/HodWLEBhi2utyO+SEaTMgHMSO279AhF2wk7V
 ZWnTAL8s0blwXqI4Rk0EcnDxA/Oyv71gXeAkxkEU4rWGBU9vhbx30b2le+5dmL5K
 /tPl2C2vZmjVpfcmBROsiRXPXI+rG+x1UX7VK0L0gWrtTkht5Ap2cM9oeWSJE8iZ
 x1chMtHyUcOL+ben4pkvNF/Gu0RkUIwzoKcioZDY1cYQkL/ikQYadaHB7HrUBckP
 6WYxWuAsiqBo3NvsQe13L6hVkFbCN+2m8nQC4AmKTEqFF/n1Iw2NsJf3Neql5zp+
 JnJzJ0Oj3wrTElm+ths5UPYJao3ffzMi9GMdXGcgNro0ELSNz11U5fWLUZ10zx7p
 M92rBoxMs3vFf/TjgRHaqbMsyVMY6rRgdRpP2ijcw0d6gLNFQBo=
 =BokW
 -----END PGP SIGNATURE-----

Merge tag 'renesas-dts-for-v6.20-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt

Renesas DTS updates for v6.20 (take two)

  - Add cpufreq, thermal, GPIO IRQ, and CAN-FD support for the RZ/T2H
    and RZ/N2H SoCs and their EVK boards,
  - Add more serial (RSCI) and CAN-FD support for the RZ/V2H and RZ/V2N
    SoCs,
  - Drop unused .dtsi files,
  - Add I3C support for the RZ/G3E SMARC SoM,
  - Add GPIO support for the RZ/N1 SoC,
  - Miscellaneous fixes and improvements.

* tag 'renesas-dts-for-v6.20-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (27 commits)
  arm64: dts: renesas: rzt2h-rzn2h-evk: Reorder ADC nodes
  ARM: dts: r9a06g032: Add support for GPIO interrupts
  ARM: dts: r9a06g032: Add GPIO controllers
  arm64: dts: renesas: rzg3e-smarc-som: Enable I3C support
  arm64: dts: renesas: Use lowercase hex
  arm64: dts: renesas: Use hyphens in node names
  arm/arm64: dts: renesas: Drop unused .dtsi
  arm64: dts: renesas: rzt2h-n2h-evk-common: Use GPIO for SD0 write protect
  arm64: dts: renesas: r9a09g057: Add CANFD node
  arm64: dts: renesas: r9a09g056: Add CANFD node
  arm64: dts: renesas: r9a09g087m44-rzn2h-evk: Enable CANFD
  arm64: dts: renesas: r9a09g077m44-rzt2h-evk: Enable CANFD
  arm64: dts: renesas: r9a09g087: Add CANFD node
  arm64: dts: renesas: r9a09g077: Add CANFD node
  arm64: dts: renesas: r9a09g057: Add RSCI nodes
  arm64: dts: renesas: r9a09g056: Add RSCI nodes
  arm64: dts: renesas: r9a09g087m44-rzn2h-evk: Add GPIO keys
  arm64: dts: renesas: r9a09g077m44-rzt2h-evk: Add GPIO keys
  arm64: dts: renesas: r9a09g087: Add GPIO IRQ support
  arm64: dts: renesas: r9a09g077: Add GPIO IRQ support
  ...

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:36:28 +01:00
Mikulas Patocka
2df8b310bc dm: use bio_clone_blkg_association
The origin bio carries blk-cgroup information which could be set from
foreground(task_css(css) - wbc->wb->blkcg_css), so the blkcg won't
control buffer io since commit ca522482e3 ("dm: pass NULL bdev to
bio_alloc_clone"). The synchronous io is still under control by blkcg,
because 'bio->bi_blkg' is set by io submitting task which has been added
into 'cgroup.procs'.

Fix it by using bio_clone_blkg_association when submitting a cloned bio.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=220985
Fixes: ca522482e3 ("dm: pass NULL bdev to bio_alloc_clone")
Reported-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Tested-by: Zhihao Cheng <chengzhihao1@huawei.com>
2026-01-26 15:36:22 +01:00
Arnd Bergmann
6e646eac67 Renesas DT binding updates for v6.20
- Document the RZ/N1 GPIO Interrupt Multiplexer.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ9qaHoIs/1I4cXmEiKwlD9ZEnxcAUCaWoQtgAKCRCKwlD9ZEnx
 cNeiAQD9BmBxTW5FqrhklX3Zx8O6CiuHhJxg0vlUHr7JNrMGEQEAph8mKUoPOkaM
 ekokEybs/qNHDoIVthduybkNLNZyygk=
 =vKZ+
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml3e1UACgkQmmx57+YA
 GNk9VxAAhPx/srKH9D9EZkz2f2kGFZAVBlBkyCa4s7F4TNMIVL2fZtxXKthK430H
 kayjtDF1ZPvthHxh1yIFRwdtuvC4FaTC7EkMEwRYVI9ECIJHuUXPrn0j8NpT/BCh
 FPaFEWHtQuxMFNAvLlPnWTaKr3niSK7G76RXxhhT1c42kqlruXtZZhYLAw2QoYeE
 YqhWq9TzeSdIC8erxxjqsWDGsHChxjQSv1qQleAr5ahX3pA41nfE/VTPJIEhBHcU
 Cqr06hsn++GZl0U4uq4S6S5+x8hEzjN3Wp54tA4in2VuUf1px+SMkB9qpnAap8LA
 TQTL6OIqCHtAnDjXSW45qiGxZPdjnSnjCNZykQPDb3wx2W65FCaNIrlF5iVdspXm
 3NNQcoEQTOGx63PlC7f6lgaMi+q/SI69qjiRN3wN0p4xLqDEmVWMvouet1BkJvxV
 RpDgiVr9wRw67RVfv6w4svlzMDRZE2gXDDJRdXDVCpQ4sCaqRcJtnDsJi6rDXW07
 hiqxj2vAZqlCs+atABz3V36eQIy+HOVxeEUC70hM43MW0zjw0Ek735TxnSWRrNxe
 f0ybFlzIqJGB8GV16JVcem9fMDUO9pOftQSKYimTAXUe9lApY2qWrtZ3dm9vVVVy
 7JcR4VhmV+XMBdu8yJjN98NagpT2aoX++d1SZ59ndJExMIoJ5uQ=
 =l5/c
 -----END PGP SIGNATURE-----

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

Renesas DT binding updates for v6.20

  - Document the RZ/N1 GPIO Interrupt Multiplexer.

* tag 'renesas-dt-bindings-for-v6.20-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel:
  dt-bindings: soc: renesas: Document RZ/N1 GPIO Interrupt Multiplexer

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-26 15:33:50 +01:00