Commit graph

1,427,869 commits

Author SHA1 Message Date
Rick Macklem
9ac6fc0fab NFSD: Do not allow NFSv4 (N)VERIFY to check POSIX ACL attributes
Section 9.3 of draft-ietf-nfsv4-posix-acls-00 prohibits use of
the POSIX ACL attributes with VERIFY and NVERIFY operations: the
server MUST reply NFS4ERR_INVAL when a client attempts this.

Beyond the protocol requirement, comparison of POSIX draft ACLs
via (N)VERIFY presents an implementation challenge. Clients are
not required to order the ACEs within a POSIX ACL in any
particular way, making reliable attribute comparison impractical.

Return nfserr_inval when the client requests FATTR4_POSIX_ACCESS_ACL
or FATTR4_POSIX_DEFAULT_ACL in a VERIFY or NVERIFY operation.

Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Rick Macklem
97e9a9ec32 NFSD: Add nfsd4_encode_fattr4_posix_access_acl
The POSIX ACL extension to NFSv4 defines FATTR4_POSIX_ACCESS_ACL
for retrieving the access ACL of a file or directory. This patch
adds the XDR encoder for that attribute.

The access ACL is retrieved via get_inode_acl(). If the filesystem
provides no explicit access ACL, one is synthesized from the file
mode via posix_acl_from_mode(). Each entry is encoded as a
posixace4: tag type, permission bits, and principal name (empty
for structural entries, resolved via idmapping for USER/GROUP
entries).

Unlike the default ACL encoder which applies only to directories,
this encoder handles all inode types and ensures an access ACL is
always available through mode-based synthesis when needed.

Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Rick Macklem
5e62c904e4 NFSD: Add nfsd4_encode_fattr4_posix_default_acl
The POSIX ACL extension to NFSv4 defines FATTR4_POSIX_DEFAULT_ACL
for retrieving a directory's default ACL. This patch adds the
XDR encoder for that attribute.

For directories, the default ACL is retrieved via get_inode_acl()
and each entry is encoded as a posixace4: tag type, permission
bits, and principal name (empty for structural entries like
USER_OBJ/GROUP_OBJ/MASK/OTHER, resolved via idmapping for
USER/GROUP entries).

Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Rick Macklem
8093c31f2c NFSD: Add nfsd4_encode_fattr4_acl_trueform_scope
The FATTR4_ACL_TRUEFORM_SCOPE attribute indicates the granularity at
which the ACL model can vary: per file object, per file system, or
uniformly across the entire server.

In Linux, the ACL model is determined by the SB_POSIXACL superblock
flag, which applies uniformly to all files within a file system.
Different exported file systems can have different ACL models, but
individual files cannot differ from their containing file system.
ACL_SCOPE_FILE_SYSTEM accurately reflects this behavior.

Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Rick Macklem
4a639a727f NFSD: Add nfsd4_encode_fattr4_acl_trueform
Mapping between NFSv4 ACLs and POSIX ACLs is semantically imprecise:
a client that sets an NFSv4 ACL and reads it back may see a different
ACL than it wrote. The proposed NFSv4 POSIX ACL extension introduces
the FATTR4_ACL_TRUEFORM attribute, which reports whether a file
object stores its access control permissions using NFSv4 ACLs or
POSIX ACLs.

A client aware of this extension can avoid lossy translation by
requesting and setting ACLs in their native format.

When NFSD is built with CONFIG_NFSD_V4_POSIX_ACLS, report
ACL_MODEL_POSIX_DRAFT for file objects on file systems with the
SB_POSIXACL flag set, and ACL_MODEL_NONE otherwise. Linux file
systems do not store NFSv4 ACLs natively, so ACL_MODEL_NFS4 is never
reported.

Signed-off-by: Rick Macklem <rmacklem@uoguelph.ca>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Chuck Lever
91dc464fbe Add RPC language definition of NFSv4 POSIX ACL extension
The language definition was extracted from the new
draft-ietf-nfsv4-posix-acls specification. This ensures good
constant and type name alignment between the spec and the Linux
kernel source code, and brings in some basic XDR utilities for
handling NFSv4 POSIX draft ACLs.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Chuck Lever
feb8a46b14 NFSD: Add a Kconfig setting to enable support for NFSv4 POSIX ACLs
A new IETF draft extends NFSv4.2 with POSIX ACL attributes:

  https://www.ietf.org/archive/id/draft-ietf-nfsv4-posix-acls-00.txt

This draft has not yet been ratified. A build-time configuration
option allows developers and distributors to decide whether to
expose this experimental protocol extension to NFSv4 clients. The
option is disabled by default to prevent unintended deployment of
potentially unstable protocol features in production environments.

This approach mirrors the existing NFSD_V4_DELEG_TIMESTAMPS option,
which gates another experimental NFSv4 extension based on an
unratified IETF draft.

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Chuck Lever
6bc85baba4 xdrgen: Implement pass-through lines in specifications
XDR specification files can contain lines prefixed with '%' that
pass through unchanged to generated output. Traditional rpcgen
removes the '%' and emits the remainder verbatim, allowing direct
insertion of C includes, pragma directives, or other language-
specific content into the generated code.

Until now, xdrgen silently discarded these lines during parsing.
This prevented specifications from including necessary headers or
preprocessor directives that might be required for the generated
code to compile correctly.

The grammar now captures pass-through lines instead of ignoring
them. A new AST node type represents pass-through content, and
the AST transformer strips the leading '%' character. Definition
and source generators emit pass-through content in document order,
preserving the original placement within the specification.

This brings xdrgen closer to feature parity with traditional
rpcgen while maintaining the existing document-order processing
model.

Existing generated xdrgen source code has been regenerated.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2026-01-29 09:48:33 -05:00
Tamir Duberstein
40210c2b11
rust: seq_file: replace kernel::c_str! with C-Strings
C-String literals were added in Rust 1.77. Replace instances of
`kernel::c_str!` with C-String literals where possible.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Benno Lossin <lossin@kernel.org>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Link: https://patch.msgid.link/20251222-cstr-vfs-v1-1-18e3d327cbd7@gmail.com
Acked-by: Danilo Krummrich <dakr@kernel.org>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-01-29 15:32:40 +01:00
Rafael J. Wysocki
74dd4d1f4c - Fix CFLAGS and LDFLAGS in the pkg-config template fir the libthermal
(Romain Gantois)
 
 - Support multiple temp to raw conversion functions for the Mediatek
   LVTS thermal driver and add the MT8196 and MT6991 support (Laura
   Nao)
 
 - Add support for the Mediatek LVTS driver for MT7987 (Frank
   Wunderlich)
 
 - Use the existing HZ_PER_MHZ macro on STM32 (Andy Shevchenko)
 
 - Use the existing clamp() macro in BCM2835 (Thorsten Blum)
 
 - Make the reset line optional in order to support new Renesas Soc
   where it is not available. Add the RZ/T2H and RZ/N2H suppport
   (Cosmin Tanislav)
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEGn3N4YVz0WNVyHskqDIjiipP6E8FAml6Q0MACgkQqDIjiipP
 6E9P4QgAg1AHwxBaULff9SOxYKwfyWo2FE/nwlpiOAjY2eZjNwWjGkaAzi5cNiF1
 HUH8YBWXIb910LWDer6ieG5nBNjBOqmb0qF7Vx5dU+VV6cdV/Zg/0u8dManbMxLD
 lhJJnG/jZuJ1XRIZosJMyuIQRs4xgt1YwkUwSf/q51x8dk7+M+HUgzPNxb4iFTCE
 UZY1FLfveadMdAnl92o2HsJQ447LW2gyj6iIaOT9FnxBKdVgwItu8Qcuz6n5WSbv
 ALSiieyKRHrhsp3w7VSZ+Lzh457vrXEKdw8LMXsFbd0GBstvFX5B/Zqd9mRz8Ydf
 6axZI+yhj0OEkWnAHom6DttUE5dxIg==
 =RJtp
 -----END PGP SIGNATURE-----

Merge tag 'thermal-v7.0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux

Pull thermal control updates for 6.20/7.0 from Daniel Lezcano:

"- Fix CFLAGS and LDFLAGS in the pkg-config template fir the libthermal
   (Romain Gantois)

 - Support multiple temp to raw conversion functions for the Mediatek
   LVTS thermal driver and add the MT8196 and MT6991 support (Laura
   Nao)

 - Add support for the Mediatek LVTS driver for MT7987 (Frank
   Wunderlich)

 - Use the existing HZ_PER_MHZ macro on STM32 (Andy Shevchenko)

 - Use the existing clamp() macro in BCM2835 (Thorsten Blum)

 - Make the reset line optional in order to support new Renesas Soc
   where it is not available. Add the RZ/T2H and RZ/N2H suppport
   (Cosmin Tanislav)"

* tag 'thermal-v7.0' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thermal/linux:
  thermal: renesas: rzg3e: add support for RZ/T2H and RZ/N2H
  dt-bindings: thermal: r9a09g047-tsu: document RZ/T2H and RZ/N2H
  thermal: renesas: rzg3e: make calibration value retrieval per-chip
  thermal: renesas: rzg3e: make min and max temperature per-chip
  thermal: renesas: rzg3e: make reset optional
  dt-bindings: thermal: r9a09g047-tsu: Document RZ/V2N TSU
  thermal/drivers/broadcom: Use clamp to simplify bcm2835_thermal_temp2adc
  thermal/drivers/stm32: Use predefined HZ_PER_MHZ instead of a custom one
  thermal/drivers/mediatek/lvts_thermal: Add mt7987 support
  dt-bindings: thermal: mediatek: Add LVTS thermal controller definition for MT7987
  dt-bindings: nvmem: mediatek: efuse: Add support for MT8196
  thermal/drivers/mediatek/lvts_thermal: Add MT8196 support
  thermal/drivers/mediatek/lvts: Support MSR offset for 16-bit calibration data
  thermal/drivers/mediatek/lvts: Add support for ATP mode
  thermal/drivers/mediatek/lvts: Add lvts_temp_to_raw variant
  thermal/drivers/mediatek/lvts: Add platform ops to support alternative conversion logic
  thermal/drivers/mediatek/lvts: Make number of calibration offsets configurable
  dt-bindings: thermal: mediatek: Add LVTS thermal controller support for MT8196
  tools: lib: thermal: Correct CFLAGS and LDFLAGS in pkg-config template
2026-01-29 15:30:03 +01:00
Boris Faure
bbb758a694
ASoC: sdca: Fix missing regmap dependencies in Kconfig
The SDCA modules failed to build with modpost errors:

  ERROR: modpost: "__devm_regmap_init_sdw" [sound/soc/sdca/snd-soc-sdca-class.ko] undefined!
  ERROR: modpost: "__devm_regmap_init_sdw_mbq" [sound/soc/sdca/snd-soc-sdca-class-function.ko] undefined!

The issue occurs because:
- sdca_class.c calls devm_regmap_init_sdw() which requires REGMAP_SOUNDWIRE
- sdca_class_function.c calls devm_regmap_init_sdw_mbq_cfg() which requires REGMAP_SOUNDWIRE_MBQ

However, the Kconfig didn't select these dependencies, causing the symbols
to be unavailable when the SDCA modules are built.

Fix this by adding:
- select REGMAP_SOUNDWIRE to SND_SOC_SDCA_CLASS
- select REGMAP_SOUNDWIRE_MBQ to SND_SOC_SDCA_CLASS_FUNCTION

This ensures the required regmap drivers are enabled when building SDCA support.

Configuration after fix:
  CONFIG_SND_SOC_SDCA_CLASS=m
  CONFIG_SND_SOC_SDCA_CLASS_FUNCTION=m
  CONFIG_REGMAP_SOUNDWIRE=m
  CONFIG_REGMAP_SOUNDWIRE_MBQ=m

Signed-off-by: Boris Faure <boris@fau.re>
Link: https://patch.msgid.link/20260129141419.13843-1-boris@fau.re
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-29 14:16:59 +00:00
Paolo Abeni
e75e408dc5 netfilter pull request nf-next-26-01-29
-----BEGIN PGP SIGNATURE-----
 
 iQJdBAABCABHFiEEgKkgxbID4Gn1hq6fcJGo2a1f9gAFAml7MKAbFIAAAAAABAAO
 bWFudTIsMi41KzEuMTEsMiwyDRxmd0BzdHJsZW4uZGUACgkQcJGo2a1f9gBjtw/9
 FcliM+iJmEpKtdX6LkUiOgwrKZOLDgZyjFz/VX5E4t72Budsc9Mhi1OqlCSVMnvg
 tbe3mLG2AAEHYbssCP4rsP3M5ecK18M+KGFUxdL5EvzRInpdc0xB0sS8Q5gBD1bS
 xQEoeNV6yXtp4UK213npjLxJiBbnlzkahgnMvk441j0mQNHb2EpRnKNSwLv353wT
 AgWc9yBwZTvIlGERUnVvZqjEPya2wqUnlP1WqgJgd060pDnSW/2yMnoyV7srNveR
 1IDcDWxKIWfx1yfgwItoZFyxEjsPQlV7xpOGRIpBxa2UgqL2tFSujFqh+sPUwoVq
 gvy+W80OJx5xHpaSIcJtM1ba36bMd9gTcERDIse/zXxqgwzaStSAtOHmX4Rb7EFU
 i/htPiGMXtYpSZNklVutI8o67+GJb3yQJJ5ruDTnMHBOmHLN0D7a1UcjShie1sUo
 Pa/sCIzNN0nRXhK6GnBV6h9Z9tQXEnzK1Q1w6gQ/4qWSm1kXzMQAguhgUq+XnqNH
 BuBciFDeunVgKzDnYlI6QArJvxF0nPvd1slsyu211QMYAm23SCKXy/vj74QH+fJ5
 JKt6N8xYDMHWjPJ0SN2p8UL0GpKKRs9BXVauQBkdBZJFZMFOwwOzBG8ZQKcWQBgu
 wnmWNNY3EFpUxT/EQ/V7nsAqmCe6wOu1V1R6QUcY8Eo=
 =BUKS
 -----END PGP SIGNATURE-----

Merge tag 'nf-next-26-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next

Florian Westphal says:

====================
netfilter: updates for net-next

The following patchset contains Netfilter updates for *net-next*:

Patches 1 to 4 add IP6IP6 tunneling acceleration to the flowtable
infrastructure.  Patch 5 extends test coverage for this.
From Lorenzo Bianconi.

Patch 6 removes a duplicated helper from xt_time extension, we can
use an existing helper for this, from Jinjie Ruan.

Patch 7 adds an rhashtable to nfnetink_queue to speed up out-of-order
verdict processing.  Before this list walk was required due to in-order
design assumption.

netfilter pull request nf-next-26-01-29

* tag 'nf-next-26-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf-next:
  netfilter: nfnetlink_queue: optimize verdict lookup with hash table
  netfilter: xt_time: use is_leap_year() helper
  selftests: netfilter: nft_flowtable.sh: Add IP6IP6 flowtable selftest
  netfilter: flowtable: Add IP6IP6 tx sw acceleration
  netfilter: flowtable: Add IP6IP6 rx sw acceleration
  netfilter: Introduce tunnel metadata info in nf_flowtable_ctx struct
  netfilter: Add ctx pointer in nf_flow_skb_encap_protocol/nf_flow_ip4_tunnel_proto signature
====================

Link: https://patch.msgid.link/20260129105427.12494-1-fw@strlen.de
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-29 14:56:13 +01:00
Jibin Zhang
426ca15c7f net: fix segmentation of forwarding fraglist GRO
This patch enhances GSO segment handling by properly checking
the SKB_GSO_DODGY flag for frag_list GSO packets, addressing
low throughput issues observed when a station accesses IPv4
servers via hotspots with an IPv6-only upstream interface.

Specifically, it fixes a bug in GSO segmentation when forwarding
GRO packets containing a frag_list. The function skb_segment_list
cannot correctly process GRO skbs that have been converted by XLAT,
since XLAT only translates the header of the head skb. Consequently,
skbs in the frag_list may remain untranslated, resulting in protocol
inconsistencies and reduced throughput.

To address this, the patch explicitly sets the SKB_GSO_DODGY flag
for GSO packets in XLAT's IPv4/IPv6 protocol translation helpers
(bpf_skb_proto_4_to_6 and bpf_skb_proto_6_to_4). This marks GSO
packets as potentially modified after protocol translation. As a
result, GSO segmentation will avoid using skb_segment_list and
instead falls back to skb_segment for packets with the SKB_GSO_DODGY
flag. This ensures that only safe and fully translated frag_list
packets are processed by skb_segment_list, resolving protocol
inconsistencies and improving throughput when forwarding GRO packets
converted by XLAT.

Signed-off-by: Jibin Zhang <jibin.zhang@mediatek.com>
Fixes: 9fd1ff5d2a ("udp: Support UDP fraglist GRO/GSO.")
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20260126152114.1211-1-jibin.zhang@mediatek.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-29 14:40:12 +01:00
Takashi Iwai
00f32dfced ASoC: Fixes for v6.19
A couple of small fixes and a couple of quirks, nothing major
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAml7R60ACgkQJNaLcl1U
 h9C3vgf/QuwPWH9VpWT+bfMPcdjASh2+UdBIzUrCO2SRxQDK7S1RPJCVCvkw9Cmu
 hWpHq5JudgkzzK46hil2zB6y2DKFCYNjoLBwmYweJ/tBG02nqDhLjiqI7nllIF8t
 l3+MpKqiEeiikrdpTrluChwMnbZpi8poR7JQt1arQ3BB+1bw3wqT545lDkif5S+5
 hVs0/XRwOXa3NOSUFYQOUImctsh3VEgI9BeUFpzCtOpCONr0BrVhRWiUF8E056TA
 xLLVj43v4lpkLsCHFwshulfsLAGy94VVyJdRUkABhl/aH9S9RyD8hNHMGjaHQ5y/
 rpzKmqrvIHxt7RV157hga66MF2ZT3g==
 =siK8
 -----END PGP SIGNATURE-----

Merge tag 'asoc-fix-v6.19-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.19

A couple of small fixes and a couple of quirks, nothing major
2026-01-29 13:58:06 +01:00
Ming Lei
0921abdcbd ublk: document IO reference counting design
Add comprehensive documentation for ublk's split reference counting
model (io->ref + io->task_registered_buffers) above ublk_init_req_ref()
given this model isn't very straightforward.

Signed-off-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Caleb Sander Mateos <csander@purestorage.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2026-01-29 05:47:21 -07:00
Joanne Koong
aa35dd5cbc
iomap: fix invalid folio access after folio_end_read()
If the folio does not have an iomap_folio_state (ifs) attached and the
folio gets read in by the filesystem's IO helper, folio_end_read() will
be called by the IO helper at any time. For this case, we cannot access
the folio after dispatching it to the IO helper, eg subsequent accesses
like

        if (ctx->cur_folio &&
                    offset_in_folio(ctx->cur_folio, iter->pos) == 0) {

are incorrect.

Fix these invalid accesses by invalidating ctx->cur_folio if all bytes
of the folio have been read in by the IO helper.

This allows us to also remove the +1 bias added for the ifs case. The
bias was previously added to ensure that if all bytes are read in, the
IO helper does not end the read on the folio until iomap has decremented
the bias.

Fixes: b2f35ac414 ("iomap: add caller-provided callbacks for read and readahead")
Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
Link: https://patch.msgid.link/20260126224107.2182262-2-joannelkoong@gmail.com
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-01-29 13:42:05 +01:00
Ricardo Neri
008bec8ffe
platform/x86/intel/tpmi/plr: Make the file domain<n>/status writeable
The file sys/kernel/debug/tpmi-<n>/plr/domain<n>/status has store and show
callbacks. Make it writeable.

Fixes: 811f67c516 ("platform/x86/intel/tpmi: Add new auxiliary driver for performance limits")
Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Link: https://patch.msgid.link/20260127-plr-debugfs-write-v1-1-1fffbc370b1e@linux.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-29 14:38:40 +02:00
Chelsy Ratnawat
fd5d8b65cf
fs: dcache: fix typo in enum d_walk_ret comment
Fix minor spelling and indentation errors in the
documentation comments.

Signed-off-by: Chelsy Ratnawat <chelsyratnawat2001@gmail.com>
Link: https://patch.msgid.link/20260128143150.3674284-1-chelsyratnawat2001@gmail.com
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2026-01-29 13:37:34 +01:00
Mario Limonciello
6222883af2
platform/x86: hp-bioscfg: Skip empty attribute names
Avoid registering kobjects with empty names when a BIOS attribute
name decodes to an empty string.

Fixes: a34fc329b1 ("platform/x86: hp-bioscfg: bioscfg")
Reported-by: Alain Cousinie <alain.cousinie@laposte.net>
Closes: https://lore.kernel.org/platform-driver-x86/22ed5f78-c8bf-4ab4-8c38-420cc0201e7e@laposte.net/
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Link: https://patch.msgid.link/20260128190501.2170068-1-mario.limonciello@amd.com
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
2026-01-29 14:37:24 +02:00
Paolo Abeni
0858206732 Just one fix, for a parsing error in mac80211 that might
result in a one byte out-of-bounds read.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEpeA8sTs3M8SN2hR410qiO8sPaAAFAml7Pl0ACgkQ10qiO8sP
 aAAKXA/+P8I3WjVL2QuW0a84VJHxNN398JvOHE68vkWg+HulxDcV/9alCNJAFbYU
 9O9mzNTTH+eW28F4YxIhW86YNnGqkeMy+ZTTdPuSn17WE3OrHubWkdJdqnC3SWb/
 2lYR+BSXLHMTLSFP0olcbUX+WXYHptETxfOX1dpmFZq80wioqs32MPabneGT7vs/
 ENFRK6oT26aouKvGvNa9znqGwVO0rsr3Bmz0N1fgehYhU3YNrqgDH0Lj7Cs5kTOZ
 0QzhZjnIIOXW/3kJNp7Jk7aYW9+9QR6Wo6G5B+wTL/mxZsWhCMxZfqkOm796ktl8
 0OdHOrAD7Fy4w6hPXlUzUHy6kX0lAR1tdk1fE/lNgYyM4WCjvZb0ABP8sncuoEIH
 M2EaDh/drVd/aOU2KQJqvjnG2qlBSK/Gf9hYfBDFpw+GFsOKRowv2o84qnWDGbOw
 rPk8kCz8CFyzUCaF5l0DridPyWu6GEFyAxQ5CDJw8zUu7Mi3PCp9pWCVjAHQPNho
 r7Mao1n0dx4bsiPRZDNfGuymi/MHovRdmPBkdYtMJHYWNAtvDdwu3N50meCA21lM
 kQdY6WMq4dPrqULFW4yfFInTXmkAReHNKVgc49LfSYfrZTyj5ACxgNtELO5GRAgM
 NVGjXfzykOa/GtBTqf+Ob0gDa4mU9QQdRo4DV98cHlKIdZDV0zs=
 =qI59
 -----END PGP SIGNATURE-----

Merge tag 'wireless-2026-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless

Johannes Berg says:

====================
Just one fix, for a parsing error in mac80211 that might
result in a one byte out-of-bounds read.

* tag 'wireless-2026-01-29' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless:
  wifi: mac80211: correctly decode TTLM with default link map
====================

Link: https://patch.msgid.link/20260129110403.178036-3-johannes@sipsolutions.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-29 13:21:35 +01:00
Will Deacon
76e9f683a5 Merge branch 'for-next/selftests' into for-next/core
* for-next/selftests:
  kselftest/arm64: Raise default number of loops in fp-pidbench
  kselftest/arm64: Add a no-SVE loop after SVE in fp-pidbench
  kselftest/arm64: Add missing file in .gitignore
  kselftest/arm64: Add HWCAP test for FEAT_LS64
  kselftest/arm64: Use syscall() macro over nolibc my_syscall()
  kselftest/arm64: Support FORCE_TARGETS
2026-01-29 12:05:49 +00:00
Will Deacon
d4cfa05ac7 Merge branch 'for-next/perf' into for-next/core
* for-next/perf:
  perf/cxlpmu: Replace IRQF_ONESHOT with IRQF_NO_THREAD
  perf/arm_dsu: Allow standard cycles events
  perf/arm_dsu: Support DSU-120
  perf/arm_dsu: Support DSU-110
  drivers: perf: use bitmap_empty() where appropriate
  perf/arm-cmn: Support CMN-600AE
2026-01-29 12:05:45 +00:00
Will Deacon
c96f95bca1 Merge branch 'for-next/misc' into for-next/core
* for-next/misc:
  arm64: mm: warn once for ioremap attempts on RAM mappings
  arm64: Disable branch profiling for all arm64 code
  arm64: kernel: initialize missing kexec_buf->random field
  arm64: simplify arch_uprobe_xol_was_trapped return
2026-01-29 12:05:40 +00:00
Will Deacon
2f8aed5e97 Merge branch 'for-next/errata' into for-next/core
* for-next/errata:
  arm64: errata: Workaround for SI L1 downstream coherency issue
2026-01-29 12:05:33 +00:00
Will Deacon
3aa99d74c8 Merge branch 'for-next/entry' into for-next/core
* for-next/entry:
  arm64/ptrace: Return early for ptrace_report_syscall_entry() error
  arm64/ptrace: Split report_syscall()
  arm64: Remove unused _TIF_WORK_MASK
  arm64: Avoid memcpy() for syscall_get_arguments()
  syscall.h: Remove unused SYSCALL_MAX_ARGS
2026-01-29 12:05:30 +00:00
Will Deacon
c2581836cc Merge branch 'for-next/cpufreq' into for-next/core
* for-next/cpufreq:
  arm64: topology: Do not warn on missing AMU in cpuhp_topology_online()
  arm64: topology: Handle AMU FIE setup on CPU hotplug
  cpufreq: Add new helper function returning cpufreq policy
  arm64: topology: Skip already covered CPUs when setting freq source
2026-01-29 12:05:25 +00:00
Will Deacon
86941154bc Merge branch 'for-next/cpufeature' into for-next/core
* for-next/cpufeature:
  arm64: poe: fix stale POR_EL0 values for ptrace
  arm64: mte: Set TCMA1 whenever MTE is present in the kernel
  arm64: Add support for FEAT_{LS64, LS64_V}
  KVM: arm64: Enable FEAT_{LS64, LS64_V} in the supported guest
  arm64: Provide basic EL2 setup for FEAT_{LS64, LS64_V} usage at EL0/1
  KVM: arm64: Handle DABT caused by LS64* instructions on unsupported memory
  KVM: arm64: Add documentation for KVM_EXIT_ARM_LDST64B
  KVM: arm64: Add exit to userspace on {LD,ST}64B* outside of memslots
  arm64: Unconditionally enable PAN support
  arm64: Unconditionally enable LSE support
  arm64: Add support for TSV110 Spectre-BHB mitigation
2026-01-29 12:05:19 +00:00
Will Deacon
3e42a4f5e0 Merge branch 'for-next/acpi' into for-next/core
* for-next/acpi:
  ACPI: AGDI: Add interrupt signaling mode support
  MAINTAINERS: Update the maintainers for ARM64 ACPI
2026-01-29 12:05:12 +00:00
Andy Shevchenko
da0a672268
spi: dw: Remove not-going-to-be-supported code for Baikal SoC
As noticed in the discussion [1] the Baikal SoC and platforms
are not going to be finalized, hence remove stale code.

Link: https://lore.kernel.org/lkml/22b92ddf-6321-41b5-8073-f9c7064d3432@infradead.org/ [1]
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://patch.msgid.link/20260127210541.4068379-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-29 11:54:47 +00:00
Maciej Strozek
94e5baff3e
ASoC: sof_sdw: Add a quirk for Lenovo laptop using sidecar amps with cs42l43
Add a quirk for a Lenovo laptop (SSID: 0x17aa3821) to allow using sidecar
CS35L57 amps with CS42L43 codec.

Signed-off-by: Maciej Strozek <mstrozek@opensource.cirrus.com>
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20260128092410.1540583-1-mstrozek@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2026-01-29 11:41:54 +00:00
Benjamin Berg
1eab33aa63 wifi: mac80211: correctly decode TTLM with default link map
TID-To-Link Mapping (TTLM) elements do not contain any link mapping
presence indicator if a default mapping is used and parsing needs to be
skipped.

Note that access points should not explicitly report an advertised TTLM
with a default mapping as that is the implied mapping if the element is
not included, this is even the case when switching back to the default
mapping. However, mac80211 would incorrectly parse the frame and would
also read one byte beyond the end of the element.

Reported-by: Ruikai Peng <ruikai@pwno.io>
Closes: https://lore.kernel.org/linux-wireless/CAFD3drMqc9YWvTCSHLyP89AOpBZsHdZ+pak6zVftYoZcUyF7gw@mail.gmail.com
Fixes: 702e80470a ("wifi: mac80211: support handling of advertised TID-to-link mapping")
Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
Link: https://patch.msgid.link/20260129113349.d6b96f12c732.I69212a50f0f70db185edd3abefb6f04d3cb3e5ff@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
2026-01-29 11:46:43 +01:00
Arnd Bergmann
1b65492f45 Two fixes for the default-settings code for the General-Register-Files,
which sets system defaults for some settings like disabling the automatic
 jtag/sdmmc switching.
 
 One is a corrected register-offset and the other makes the code actually
 look for all matched GRF instances, which it didn't do before.
 -----BEGIN PGP SIGNATURE-----
 
 iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmlycPAQHGhlaWtvQHNu
 dGVjaC5kZQAKCRDzpnnJnNEdgVlmB/9jID6+y5wY6+8OyTPoh3CJJFcIolUs3ycD
 FPOvKUqgvP8XKGCAuXrAtd4vaEGucCdN/j5vsHi5I8GKyuG9ZJvbpExpzxPPdIIB
 OdU8mWVEiVG94FvFaomFtaLVoK0NiuAUk/WphKrvLDqQ+SVSU6KOev9pK/7NkmxZ
 7yT8NtCm0cul1T8JXpwiXZuTQnu7Bm3Po5NhA7/szBdaxBswT7OaAfA3HMz0+w8l
 KcgAUnlGex54lTW9coKSHTRz1HZUrhvj3YnMY3F9PRlZtsHJSBteuFBTe2yJqyjg
 xUTaxqcRwMiUapTgDpUvfp3ltry9L1/IkZ4R2049oJ7Z71iM1Rsr
 =lx0C
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml7NZ8ACgkQmmx57+YA
 GNnQ+xAApxezQ4PhoOJ4LvVwcXxJbwXk/est1f7KL2TZ9Aw+C9FV5+k7cvK4QJ8z
 zCbd1g1i0LRZxjRLZctZeC0dHJpfCVYPha6/lFVoJVlC6SvkQQraOdnb9mGCSbOV
 RetWQD6iVYHWPbLHyGbDv5o+bKoSNBBH+jDBBiLwctCkmsDFchrJjYOwh7obAtLI
 mcS74v1c0qEC3HWfxtMcreHA/IY84a/Xmk9PvRq2OXiC5fi0UrfEp3housLyVUs4
 x4+52BxrIczO2gr7cNPQk0L2YaCHP/BkglKV9kqZKkYk8scNxV3vgCm7hy2GdxhY
 gryZADFxm2yqJ7OgN57keUdUk+8cL8WQ0z4ynHHHx4TMppVAmx1lwE/kjJF+7D81
 p4aA15fQgEfBaojHXr8qYrzmZEBsLcXteOgv3yL7Asig0zGu2WB3cyG6aQpMBvdu
 i6eCtxqORyyCipDu8l/6kzu/5ecPUGvYukHa6EWxqbw6gp+HXMSdi0J00Ggxi3Fk
 3zrQORJBLwVwrwuoSiBcKg8lCSUeYjuT/ZUI3zEDSsRBCyB9pfMwEfZzBj0r7HV3
 1IBu6b5chicJ4IrcYhqiiVbftkl0BdgCxtzuHWtEzNWqPurUi3NNKGXczsWmi/CB
 k0jlCwY5QQy1VX5X5gypImlaQo4ktVrC4nJgJu2o5LRHkWx00rs=
 =pe+r
 -----END PGP SIGNATURE-----

Merge tag 'v6.20-rockchip-drivers1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into soc/drivers

Two fixes for the default-settings code for the General-Register-Files,
which sets system defaults for some settings like disabling the automatic
jtag/sdmmc switching.

One is a corrected register-offset and the other makes the code actually
look for all matched GRF instances, which it didn't do before.

* tag 'v6.20-rockchip-drivers1' of https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
  soc: rockchip: grf: Support multiple grf to be handled
  soc: rockchip: grf: Fix wrong RK3576_IOCGRF_MISC_CON definition

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-29 11:25:29 +01:00
Arnd Bergmann
1918a0d574 mvebu arm for 6.20 (part 1)
Simplify Dove PMU OF child node iteration with scoped loops
 -----BEGIN PGP SIGNATURE-----
 
 iF0EABECAB0WIQQYqXDMF3cvSLY+g9cLBhiOFHI71QUCaXOp4wAKCRALBhiOFHI7
 1WGtAJ96an/I+sIvtz3FvPaWoaDoGHB1jACgjpvvq3VzNZt8UVlAxoVEUHaZFN4=
 =LLOa
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml7NXQACgkQmmx57+YA
 GNnT8g/7B15yhpfbVBdkp/WmK7ezOelI4u5YhbxU39LtHvFcEQWc+i25ZGs5fiBP
 0bgExDBjH6gGKmXC+0S5vZz4mZbdyunbcJzUqz3b8hLZl2t4sE6TZAgxKBPxVjrh
 1qQMAAVyIy3AGWLdN/do5Sk/1z9unojMOdXHBYDnVBoAE/5hD2YnQOyIZV8k4OKI
 DOroEFk/XkaGWf9q2POMhbIT8JufVACPWtDVumdregPY3ZSflSAjFw38JxU8hyFJ
 T2zxjLG0gvkhLxZyFaelMfk2QZCxfeVNXqR5SYFJGCXhQ8hIrObyaAzkUVEVvRu7
 AQetV6/F22FDC95TjWS8VXQgXg6zUsgyHqS92Xkdl0gEl8wbuDYOC8tLKEKboU8p
 nTpv9BtIu267Ops46M0e2lFQMvbQI+8IoksKhIAA7NydQKQVpcLueldnl8T7om6f
 6iyg9Zm3Ti2+wOjunbL4N885Sxvor4f9qHT8Z2Ht+vjf8XtEwWWKDDHAOGHYDead
 wvrhCOzn7sKHtSmr9zsLOxD73GTKDVi+4pfKxDxLcjGPXfw1ZOZhTVTfWIOHMj+l
 2HpJmCQI1K3Okoh2LLg2TFPHCak6TKnmCcMo1lLMtyafqkc7321cPrw1t7KzjPfD
 2Zlu6mEQxgqcAbnmVLR51+NPsvVjNF49nqJnt21VbKWqn67csyk=
 =qFRc
 -----END PGP SIGNATURE-----

Merge tag 'mvebu-arm-6.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu into soc/drivers

mvebu arm for 6.20 (part 1)

Simplify Dove PMU OF child node iteration with scoped loops

* tag 'mvebu-arm-6.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gclement/mvebu:
  soc: dove: pmu: Simplify with scoped for each OF child loop

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-29 11:23:07 +01:00
Arnd Bergmann
0a82d3d407 TI K3 device tree updates for v6.20
Generic Fixes/Cleanups:
 - Minor whitespace cleanup and lowercase hex formatting for consistency
 - Various DT schema warning fixes across multiple boards
 
 SoC Specific Features and Fixes:
 AM62P/J722S:
 - Add HSM M4F node for hardware security module support
 
 J784S4/J742S2/J721S2:
 - Add HSM M4F node for hardware security module support
 - Refactor watchdog instances for j784s4
 - Move c71_3 node to appropriate order in device tree
 
 Board Specific Fixes:
 AM62:
 - phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel
 
 AM62A:
 - phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel
 
 AM62P:
 - Verdin: Fix SD regulator startup delay
 
 AM67A:
 - Kontron SA67: Fix CMA node and SD card regulator configuration
 
 AM69:
 - Aquila: Change main_spi0/2 chip select to GPIO mode
 - Aquila-clover: Change main_spi2 CS0 to GPIO mode
 - Aquila-dev/clover: Fix USB-C Sink PDO configuration
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE+KKGk1TrgjIXoxo03bWEnRc2JJ0FAmlvjOMACgkQ3bWEnRc2
 JJ0BZg//RZjUiSLGtNuv964SKkrvzpEfz4w/FKdy59unL4DzLMv2RzGrmFZMNiVj
 fYzUsLsJV85m0IKvmfj6TSnToDpfCxyyxvbr2OaII6w41D6d6xSrbjAAYrtfzU0x
 J+dnhVAeof/x+1YxSsTYapHCA/mF30gvoNT9UuBQTZgjbD2YjeVa3H3qAX67NxbM
 POqq80vJV+0MKSiei01KJLxl5P5RGoECiOMgUiWQeT6xaOyAuit8xLpQNoWLe+xU
 wwyO2hh70GVl2BB+pKoo64IIqk749Rcz72mwN009bsp8gs2vXFkeN16V+FZOKBRX
 98SnTNzwmuEe6jKn4Bb31R+5gW+0VFNpT35KmINcvLdioDJAZHiJf/sfT7E8eIfR
 ahKcB/D4yhoGxYBvzJgwXAyHFn76ZlQWY+UyzXvNr0L2anFg8YRMcAs4ZBoHIn0R
 B+DGb81V3ckabghXCraYLvhT8WwpWndaXv7i2urhkdKURR9BTBlt1ihwk/wEfAP6
 nw3nFlE4oqQfl9kHeUxs7d/JNJaQm1/DyPgxO5/pOFpLPW987O5UwLoMSpMwAE9I
 ET7QfoJ3cL0m47HHkJNbCn2ulQl53db3GhE8oeNFmHrCBCVOyadhKrJuR2MNDiy3
 LgRjyD/faS6PDprk8n7+daDczO/+k+hYRON/jAfhtLdxoRyFu4I=
 =Xr4O
 -----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAml7MugACgkQmmx57+YA
 GNmswg/7BlnGZQ249UuKVemWYwuiG9e6fBU7nox9MB6Lt46ZNp5/ln/H/in6IXVi
 IMum69rPraj8WfAUA2Xph0/ePzeFBvWwuhuMY74twDHkWgnLI/WxkCVizqhpOKxU
 sIC8LBm3GtGrbFuxAqn9wU0yYSK6iVlJcI3jmASvg8PHJmgFF4bKmllpI58iJwDE
 HSFHKdxzGOqDrPb70XyHodEiMND8K9VfihToGB1ekG+lhnlGNlTF8XchW0V2cAd5
 XiNBhR6kVb/t3+Ck6ASDtrZxqfEi4fwos0QpYdLeiRwjtnBaZ3ZPdDw5DYBlkRR8
 p9pJvkMiDviSl0siGm0khXb3pWLgIAGn7QarGAOPy3mZhAOpIgfTQjhcpuqE/te5
 M/ZK8QLaxRTKQyRlsmK9UGnGj9FArkcRFY2MvFxdmwVw+/0X3ip+bEwedYxnspRX
 MdAmh5bOFWLno5kOwfeqCaujyhbXjXUTdLj0izkjc6KnZNYJNz1q7qiE7ou3oNQ5
 cnuxh7jWDecVUm5UnW9Sd0zqZNlKfPzv5Uj0yyvW98UUwD6Kkgo2XD+0a2S918fJ
 lgv5OarO2WhCozSVbRio32pF19Oa9XFGkteYSwNQ3qfl4K6OXOwjMlNOFlM8XICu
 pEq1Ak4TmY6Beh20X7E+ZtndZw2ZVcXaCHQE6BNqwvt8UKVFiLI=
 =q468
 -----END PGP SIGNATURE-----

Merge tag 'ti-k3-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux into soc/dt

TI K3 device tree updates for v6.20

Generic Fixes/Cleanups:
- Minor whitespace cleanup and lowercase hex formatting for consistency
- Various DT schema warning fixes across multiple boards

SoC Specific Features and Fixes:
AM62P/J722S:
- Add HSM M4F node for hardware security module support

J784S4/J742S2/J721S2:
- Add HSM M4F node for hardware security module support
- Refactor watchdog instances for j784s4
- Move c71_3 node to appropriate order in device tree

Board Specific Fixes:
AM62:
- phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel

AM62A:
- phycore-som: Add bootphase tags to cpsw_mac_syscon and phy_gmii_sel

AM62P:
- Verdin: Fix SD regulator startup delay

AM67A:
- Kontron SA67: Fix CMA node and SD card regulator configuration

AM69:
- Aquila: Change main_spi0/2 chip select to GPIO mode
- Aquila-clover: Change main_spi2 CS0 to GPIO mode
- Aquila-dev/clover: Fix USB-C Sink PDO configuration

* tag 'ti-k3-dt-for-v6.20' of https://git.kernel.org/pub/scm/linux/kernel/git/ti/linux:
  arm64: dts: ti: k3-am67a-kontron-sa67-base: Fix SD card regulator
  arm64: dts: ti: k3-am67a-kontron-sa67-base: Fix CMA node
  arm64: dts: ti: k3-am62p-j722s-common-main: Add HSM M4F node
  arm64: dts: ti: k3-{j784s4-j742s2/j721s2}-mcu-wakeup: Add HSM M4F node
  arm64: dts: ti: k3-j784s4-j742s2-main-common.dtsi: Refactor watchdog instances for j784s4
  arm64: dts: ti: k3-j784s4-main.dtsi: Move c71_3 node to appropriate order
  arm64: dts: ti: k3-am69-aquila-clover: Change main_spi2 CS0 to GPIO mode
  arm64: dts: ti: k3-am69-aquila: Change main_spi0/2 CS to GPIO mode
  arm64: dts: ti: Use lowercase hex
  arm64: dts: ti: Minor whitespace cleanup
  arm64: dts: ti: am62p-verdin: Fix SD regulator startup delay
  arm64: dts: ti: k3-am69-aquila-clover: Fix USB-C Sink PDO
  arm64: dts: ti: k3-am69-aquila-dev: Fix USB-C Sink PDO
  arm64: dts: ti: k3-am62(a)-phycore-som: Add bootphase tag to phy_gmii_sel
  arm64: dts: ti: k3-am62a-phycore-som: Add bootphase tag to cpsw_mac_syscon
  arm64: dts: ti: k3-am62-phycore-som: Add bootphase tag to cpsw_mac_syscon
  arm64: dts: ti: k3-am62-lp-sk-nand: Rename pinctrls to fix schema warnings
  arm64: dts: ti: k3-am642-phyboard-electra-x27-gpio1-spi1-uart3: Fix schema warnings
  arm64: dts: ti: k3-am642-phyboard-electra-peb-c-010: Fix icssg-prueth schema warning

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2026-01-29 11:13:50 +01:00
Shin Seong-jun
0ead3b7246 xfs: fix spacing style issues in xfs_alloc.c
Fix checkpatch.pl errors regarding missing spaces around assignment
operators in xfs_alloc_compute_diff() and xfs_alloc_fixup_trees().

Adhere to the Linux kernel coding style by ensuring spaces are placed
around the assignment operator '='.

Signed-off-by: Shin Seong-jun <shinsj4653@gmail.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
2026-01-29 10:57:18 +01:00
Christoph Hellwig
7da4ebea83 xfs: remove xfs_zone_gc_space_available
xfs_zone_gc_space_available only has one caller left, so fold it into
that.  Reorder the checks so that the cheaper scratch_available check
is done first.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
2026-01-29 10:57:18 +01:00
Christoph Hellwig
c17a1c0349 xfs: use a seprate member to track space availabe in the GC scatch buffer
When scratch_head wraps back to 0 and scratch_tail is also 0 because no
I/O has completed yet, the ring buffer could be mistaken for empty.

Fix this by introducing a separate scratch_available member in
struct xfs_zone_gc_data.  This actually ends up simplifying the code as
well.

Reported-by: Chris Mason <clm@meta.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hans Holmberg <hans.holmberg@wdc.com>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
2026-01-29 10:57:18 +01:00
Ilya Mamay
8cdb04bd06 riscv: ptrace: return ENODATA for inactive vector extension
Currently, ptrace returns EINVAL when the vector extension is supported
but not yet activated for the traced process. This error code is not
always appropriate since the ptrace arguments may be valid.

Debug tools like gdbserver expect ENODATA when the requested register
set is not active, e.g. see [1]. This expectation seems to be more
appropriate, so modify the vector ptrace implementation to return:
- EINVAL when V extension is not supported
- ENODATA when V extension is supported but not active

[1] 637f25e886/gdbserver/linux-low.cc (L5020)

Signed-off-by: Ilya Mamay <mmamayka01@gmail.com>
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
Reviewed-by: Andy Chiu <andybnac@gmail.com>
Tested-by: Andy Chiu <andybnac@gmail.com>
Link: https://patch.msgid.link/20251214163537.1054292-2-geomatsi@gmail.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
d30c1683aa kselftest/riscv: add kselftest for user mode CFI
Add a kselftest for RISC-V control flow integrity implementation for
user mode. There is not a lot going on in the kernel to enable landing
pad for user mode. CFI selftests are intended to be compiled with a
zicfilp and zicfiss enabled compiler. This kselftest simply checks if
landing pads and shadow stacks for the process are enabled or not and
executes ptrace selftests on CFI. The selftest then registers a
SIGSEGV signal handler.  Any control flow violations are reported as
SIGSEGV with si_code = SEGV_CPERR.  The test will fail on receiving
any SEGV_CPERR. The shadow stack part has more changes in the kernel,
and thus there are separate tests for that.

- Exercise 'map_shadow_stack' syscall
- 'fork' test to make sure COW works for shadow stack pages
- gup tests
  Kernel uses FOLL_FORCE when access happens to memory via
  /proc/<pid>/mem. Not breaking that for shadow stack.
- signal test. Make sure signal delivery results in token creation on
  shadow stack and consumes (and verifies) token on sigreturn
- shadow stack protection test. attempts to write using regular store
  instruction on shadow stack memory must result in access faults
- ptrace test: adds landing pad violation, clears ELP and continues

In case the toolchain doesn't support the CFI extension, the CFI
kselftest won't be built.

Test output
===========

"""
TAP version 13
1..5
  This is to ensure shadow stack is indeed enabled and working
  This is to ensure shadow stack is indeed enabled and working
ok 1 shstk fork test
ok 2 map shadow stack syscall
ok 3 shadow stack gup tests
ok 4 shadow stack signal tests
ok 5 memory protections of shadow stack memory
"""

Suggested-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Charlie Jenkins <charlie@rivosinc.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-28-b55691eacf4f@rivosinc.com
[pjw@kernel.org: updated to apply; cleaned up patch description, code comments]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
c8350aa2ed riscv: add documentation for shadow stack
Add documentation on shadow stack for user mode on riscv and the kernel
interfaces exposed for user tasks to enable it.

Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-27-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up the documentation, patch description]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
f6eeb67b91 riscv: add documentation for landing pad / indirect branch tracking
Add documentation on landing pad aka indirect branch tracking on riscv
and the kernel interfaces exposed for user tasks to enable it.

Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-26-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up the documentation]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
22c1e263af riscv: create a Kconfig fragment for shadow stack and landing pad support
This patch creates a Kconfig fragment for shadow stack support and
landing pad instruction support. Shadow stack support and landing pad
instruction support can be enabled by selecting
'CONFIG_RISCV_USER_CFI'. Selecting 'CONFIG_RISCV_USER_CFI' wires up
the path to enumerate CPU support.  If support exists, the kernel will
support CPU-assisted user mode CFI.

If CONFIG_RISCV_USER_CFI is selected, select 'ARCH_USES_HIGH_VMA_FLAGS',
'ARCH_HAS_USER_SHADOW_STACK' and 'DYNAMIC_SIGFRAME' for riscv.

Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-25-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up patch description, Kconfig text; added CONFIG_MMU exclusion]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
ccad8c1336 arch/riscv: add dual vdso creation logic and select vdso based on hw
Shadow stack instructions are taken from the Zimop ISA extension,
which is mandated on RVA23. Any userspace with shadow stack
instructions in it will fault on hardware that doesn't have support
for Zimop.  Thus, a shadow stack-enabled userspace can't be run on
hardware that doesn't support Zimop.

It's not known how Linux userspace providers will respond to this kind
of binary fragmentation.  In order to keep kernel portable across
different hardware, 'arch/riscv/kernel/vdso_cfi' is created which has
Makefile logic to compile 'arch/riscv/kernel/vdso' sources with CFI
flags, and 'arch/riscv/kernel/vdso.c' is modified to select the
appropriate vdso depending on whether the underlying CPU implements
the Zimop extension. Since the offset of vdso symbols will change due
to having two different vdso binaries, there is added logic to include
a new generated vdso offset header and dynamically select the offset
(like for rt_sigreturn).

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Acked-by: Charles Mirabile <cmirabil@redhat.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-24-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up patch description]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Jim Shu
37f57bd3fa arch/riscv: compile vdso with landing pad and shadow stack note
User mode tasks compiled with Zicfilp may call indirectly into the
vdso (like hwprobe indirect calls). Add support for compiling landing
pads into the vdso. Landing pad instructions in the vdso will be
no-ops for tasks which have not enabled landing pads. Furthermore, add
support for the C sources of the vdso to be compiled with shadow stack
and landing pads enabled as well.

Landing pad and shadow stack instructions are emitted only when the
VDSO_CFI cflags option is defined during compile.

Signed-off-by: Jim Shu <jim.shu@sifive.com>
Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-23-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up patch description, issues reported by checkpatch]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
41213bf2ae riscv: enable kernel access to shadow stack memory via the FWFT SBI call
The kernel has to perform shadow stack operations on the user shadow stack.
During signal delivery and sigreturn, the shadow stack token must be
created and validated respectively. Thus shadow stack access for the kernel
must be enabled.

In the future, when kernel shadow stacks are enabled, they must be
enabled as early as possible for better coverage and to prevent any
imbalance between the regular stack and the shadow stack. After
'relocate_enable_mmu' has completed, this is the earliest that it can
be enabled.

Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-22-b55691eacf4f@rivosinc.com
[pjw@kernel.org: updated to apply; cleaned up commit message]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
c9b859c4d8 riscv: add kernel command line option to opt out of user CFI
Add a kernel command line option to disable part or all
of user CFI.  User backward CFI and forward CFI can be controlled
independently.  The kernel command line parameter "riscv_nousercfi" can
take the following values:
 - "all" : Disable forward and backward cfi both
 - "bcfi" : Disable backward cfi
 - "fcfi" : Disable forward cfi

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-21-b55691eacf4f@rivosinc.com
[pjw@kernel.org: fixed warnings from checkpatch; cleaned up patch description, doc, printk text]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
30c3099036 riscv/hwprobe: add zicfilp / zicfiss enumeration in hwprobe
Add enumeration of the zicfilp and zicfiss extensions in the hwprobe syscall.

Reviewed-by: Zong Li <zong.li@sifive.com>
Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-20-b55691eacf4f@rivosinc.com
[pjw@kernel.org: updated to apply; extend into RISCV_HWPROBE_KEY_IMA_EXT_1; clean patch description]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Paul Walmsley
462a94fb8a riscv: hwprobe: add support for RISCV_HWPROBE_KEY_IMA_EXT_1
We've run out of bits to describe RISC-V ISA extensions in our initial
hwprobe key, RISCV_HWPROBE_KEY_IMA_EXT_0.  So, let's add
RISCV_HWPROBE_KEY_IMA_EXT_1, along with the framework to set the
appropriate hwprobe tuple, and add testing for it.

Based on a suggestion from Andrew Jones <andrew.jones@oss.qualcomm.com>,
also fix the documentation for RISCV_HWPROBE_KEY_IMA_EXT_0.

Reviewed-by: Andrew Jones <andrew.jones@oss.qualcomm.com>
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
2af7c9cf02 riscv/ptrace: expose riscv CFI status and state via ptrace and in core files
Expose a new register type NT_RISCV_USER_CFI for risc-v CFI status and
state. Intentionally, both landing pad and shadow stack status and
state are rolled into the CFI state. Creating two different
NT_RISCV_USER_XXX would not be useful and would waste a note
type. Enabling, disabling and locking the CFI feature is not allowed
via ptrace set interface. However, setting 'elp' state or setting
shadow stack pointer are allowed via the ptrace set interface.  It is
expected that 'gdb' might need to fixup 'elp' state or 'shadow stack'
pointer.

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-19-b55691eacf4f@rivosinc.com
[pjw@kernel.org: updated to apply; cleaned patch description and comments; addressed checkpatch issues]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00
Deepak Gupta
9d0e75e25e riscv/kernel: update __show_regs() to print shadow stack register
Update __show_regs() to print the captured shadow stack pointer.  On
tasks where shadow stack is disabled, simply print 0.

Signed-off-by: Deepak Gupta <debug@rivosinc.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Tested-by: Andreas Korb <andreas.korb@aisec.fraunhofer.de> # QEMU, custom CVA6
Tested-by: Valentin Haudiquet <valentin.haudiquet@canonical.com>
Link: https://patch.msgid.link/20251112-v5_user_cfi_series-v23-18-b55691eacf4f@rivosinc.com
[pjw@kernel.org: cleaned up patch description]
Signed-off-by: Paul Walmsley <pjw@kernel.org>
2026-01-29 02:38:40 -07:00