Commit graph

1,462,193 commits

Author SHA1 Message Date
Luca Leonardo Scorcia
1c3044cab2 pinctrl: mediatek: mt8516: Fix Schmitt trigger register offset of pins 34-39
The correct Schmitt trigger register offset for pins 34-39 is 0xA00.

Signed-off-by: Luca Leonardo Scorcia <l.scorcia@gmail.com>
Fixes: 264667112e ("pinctrl: mediatek: Add MT8516 Pinctrl driver")
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-06-08 23:54:49 +02:00
Mike Christie
7c08d43083 scsi: target: Remove tcm_loop target reset handling
tcm_loop_target_reset is supposed to handle all the LUNs on a target but
it's only doing a TMR_LUN_RESET so only that one LUN is handled.  This
will cause us to return early while IOs to other LUNs are still hung in
lower layers. This just removes the target reset handler for the driver
because LIO doesn't support target resets and for the common case where
this is run from the scsi-ml error hamdler we have already tried an
abort and lun reset so waiting again is most likely useless.

Fixes: 1333eee56c ("scsi: target: tcm_loop: Drain commands in target_reset handler")
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Hannes Reinecke <hare@kernel.org>
Link: https://patch.msgid.link/20260530052349.5134-1-michael.christie@oracle.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:50:48 -04:00
William Theesfeld
fc6f9719e6 scsi: lpfc: Fix spelling mistakes in comments
Comment-only changes across the lpfc driver, found by running
scripts/checkpatch.pl with the kernel's scripts/spelling.txt list
against drivers/scsi/lpfc/.  No functional impact.

v1 covered a single site in lpfc_bsg.c.  v2 expands to all
checkpatch-detected comment misspellings across the driver, per review
feedback from Justin Tee on the v1 thread.  Identifiers that happen to
match common-typo entries (e.g. LSEXP_CANT_GIVE_DATA,
LPFC_FC_LA_TOP_UNKOWN) are intentionally left untouched, as renaming
them would change the driver's internal API.

Signed-off-by: William Theesfeld <william@theesfeld.net>
Reviewed-by: Justin Tee <justin.tee@broadcom.com>
Link: https://patch.msgid.link/20260602111912.23864-1-william@theesfeld.net
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:46:38 -04:00
Rajeshkumar Sambandham
9d87e0db00 scsi: ufs: ufs-pci: Add AMD device ID support
Add PCI device ID 0x1022:0x1B29 for AMD UFS controllers.

Signed-off-by: Rajeshkumar Sambandham <Rajeshkumar.Sambandham@amd.com>
Reviewed-by: Adrian Hunter <adrian.hunter@intel.com>
Link: https://patch.msgid.link/20260602095931.2869516-1-Rajeshkumar.Sambandham@amd.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:44:14 -04:00
Hongjie Fang
01d5e237b3 scsi: ufs: core: Handle PM commands timeout before SCSI EH
A PM START STOP sent from the UFS well-known LU resume path can race
with SCSI EH:

The "wl resume" task flow is:
  __ufshcd_wl_resume()
    ufshcd_set_dev_pwr_mode(UFS_ACTIVE_PWR_MODE)
      ufshcd_execute_start_stop()
        scsi_execute_cmd()
          blk_execute_rq           <-- wait
          scsi_check_passthrough() <-- may retry START STOP

If the first START STOP time out, SCSI EH may already recover the link and
reset the device before scsi_execute_cmd() returns:

  scsi_timeout()
    scsi_eh_scmd_add()
      scsi_error_handler()
        scsi_unjam_host()
          scsi_eh_ready_devs()
            scsi_eh_host_reset()
              ufshcd_eh_host_reset_handler()
                if (hba->pm_op_in_progress)
                  ufshcd_link_recovery()
                    ufshcd_device_reset()
                    ufshcd_host_reset_and_restore()
          ...
          scsi_eh_flush_done_q()   <-- wakeup "wl resume" task
        ...                        <-- host still in SHOST_RECOVERY
        scsi_restart_operations()

A later passthrough retry can then run while the host is still in
SHOST_RECOVERY and hit the SCMD_FAIL_IF_RECOVERING path:

  scsi_queue_rq()
    if (scsi_host_in_recovery(shost) &&
        cmd->flags & SCMD_FAIL_IF_RECOVERING)
      return BLK_STS_OFFLINE

That retry completes with DID_ERROR or DID_NO_CONNECT even though EH may
already have restored the device to an operational ACTIVE state.

Handle these PM timeouts directly from ufshcd_eh_timed_out() instead.
After ufshcd_link_recovery(), complete the timed-out command immediately
if it has not been completed already.

For regular SCSI commands, complete them with DID_REQUEUE to match the
existing MCQ force-completion semantics and allow scsi_execute_cmd() to
retry if needed. For reserved internal device-management commands,
finish the request with DID_TIME_OUT without calling
ufshcd_release_scsi_cmd() since those commands use different resource
lifetime rules.

The system_suspending flag is no longer needed because PM command
timeout handling now uses pm_op_in_progress.

Fixes: b8c3a7bac9 ("scsi: ufs: Have midlayer retry start stop errors")
Signed-off-by: Hongjie Fang <hongjiefang@asrmicro.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Reviewed-by: Peter Wang <peter.wang@mediatek.com>
Link: https://patch.msgid.link/20260605112034.3802540-1-hongjiefang@asrmicro.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:41:45 -04:00
Xose Vazquez Perez
5d5221f8a4 scsi: devinfo: Broaden Promise VTrak E310/E610 identification
The Promise VTrak Ex10 series share the same hardware base and firmware.
Consequently all interface variants, whether fibre channel ("f") or SAS
("s") in dual/single controller, exhibit the same SCSI behavior.

Instead of adding separate blacklist entries for every specific model
variant (such as E610f, E610s, E310f, E310s), consolidate and broaden
the match strings to "VTrak E310" and "VTrak E610".

Cc: Alexander Perlis <aperlis@math.lsu.edu>
Cc: Nikkos Svoboda <nsvoboda@math.lsu.edu>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Benjamin Marzinski <bmarzins@redhat.com>
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: James E.J. Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Cc: SCSI-ML <linux-scsi@vger.kernel.org>
Cc: DM_DEVEL-ML <dm-devel@lists.linux.dev>
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Reviewed-by: Martin Wilck <mwilck@suse.com>
Link: https://patch.msgid.link/20260529205602.177515-1-xose.vazquez@gmail.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:34:40 -04:00
John Garry
92f58587a0 nvme: quieten sparse warning in valid LBA size check
Currently building with C=1 generates the following warning:

  CC      drivers/nvme/host/core.o
  CHECK   drivers/nvme/host/core.c
drivers/nvme/host/core.c:2426:13: warning: unsigned value that used to be signed checked against zero?
drivers/nvme/host/core.c:2426:13: signed value source

This issue was introduced when using check_shl_overflow() to check for
invalid LBA size. Sparse is having trouble dealing with __bitwise __le64
conversion when passing to check_shl_overflow().

Resolve the issue by moving the check_shl_overflow() call to a separate
function, where types are not converted.

The id->lbaf[lbaf].ds < SECTOR_SHIFT check is dropped as
check_shl_overflow() is able to detect negative shifts.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: John Garry <john.g.garry@oracle.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-06-08 14:29:19 -07:00
Shashank Balaji
a7a7dc5c46 driver core: platform: set mod_name in driver registration
Pass KBUILD_MODNAME through the driver registration macro so that the
driver core can create the module symlink in sysfs for built-in drivers,
and fixup all callers.

The Rust platform adapter is updated to pass the module name through to
the new parameter.

Tested on qemu with:
- x86 defconfig + CONFIG_RUST
- arm64 defconfig + CONFIG_RUST + CONFIG_CORESIGHT stuff

Examples after this patch:

    /sys/bus/platform/drivers/...
        coresight-itnoc/module		-> coresight_tnoc
        coresight-static-tpdm/module	-> coresight_tpdm
        coresight-catu-platform/module	-> coresight_catu
        serial8250/module		-> 8250
        acpi-ged/module			-> acpi
        vmclock/module			-> ptp_vmclock

Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Link: https://patch.msgid.link/20260518-acpi_mod_name-v5-4-705ccc430885@sony.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-06-08 23:28:24 +02:00
Shashank Balaji
efc22b3f89 coresight: pass THIS_MODULE implicitly through a macro
Rename coresight_init_driver() to coresight_init_driver_with_owner() and
replace it with a macro wrapper that passes THIS_MODULE implicitly. This
is in line with what other buses do.

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Leo Yan <leo.yan@arm.com>
Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Link: https://patch.msgid.link/20260518-acpi_mod_name-v5-3-705ccc430885@sony.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-06-08 23:28:11 +02:00
Shashank Balaji
c82dfce478 kernel: param: initialize module_kset in a pure_initcall
Commit "driver core: platform: set mod_name in driver registration" will
set struct device_driver's mod_name member for platform driver
registration. For a driver to be registered with its mod_name set,
module_kset needs to be initialized, which currently happens in a
subsys_initcall in param_sysfs_init().  The tegra cbb drivers register
themselves before module_kset init, in a core_initcall. This works
currently because lookup_or_create_module_kobject(), which dereferences
module_kset via kset_find_obj(), is not called if mod_name is not set,
which is the case now.

So in preparation for the commit "driver core: platform: set mod_name in
driver registration", move module_kset init to pure_initcall level,
ensuring it happens before tegra cbb driver registration.

Suggested-by: Gary Guo <gary@garyguo.net>
Reviewed-by: Gary Guo <gary@garyguo.net>
Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Link: https://patch.msgid.link/20260601101942.4002661-1-shashank.mahadasyam@sony.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-06-08 23:27:56 +02:00
Shashank Balaji
cd6e95e7ab soc/tegra: cbb: Move driver registration from pure_initcall to core_initcall
Commit "driver core: platform: set mod_name in driver registration" will
set struct device_driver's mod_name member for platform driver
registration. For a driver to be registered with its mod_name set,
module_kset needs to be initialized, which currently happens in a
subsys_initcall in param_sysfs_init().  The tegra cbb drivers register
themselves before module_kset init, in a pure_initcall. This works
currently because lookup_or_create_module_kobject(), which dereferences
module_kset via kset_find_obj(), is not called if mod_name is not set,
which is the case now.

So in preparation for the commit "driver core: platform: set mod_name in
driver registration", move tegra cbb driver registration to
core_initcall level, and commit "kernel: param: initialize module_kset
in a pure_initcall" will move module_kset init to pure_initcall level,
ensuring module_kset init happens before tegra cbb driver registration.

Suggested-by: Gary Guo <gary@garyguo.net>
Acked-by: Sumit Gupta <sumitg@nvidia.com>
Co-developed-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Rahul Bukte <rahul.bukte@sony.com>
Signed-off-by: Shashank Balaji <shashank.mahadasyam@sony.com>
Reviewed-by: Gary Guo <gary@garyguo.net>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://patch.msgid.link/20260518-acpi_mod_name-v5-1-705ccc430885@sony.com
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2026-06-08 23:27:25 +02:00
David Disseldorp
cf14fc2be8 scsi: target: Use constant-time crypto_memneq() for CHAP digests
A constant-time memory comparison is more suitable than plain memcmp()
for authentication digest comparison.  CHAP digests use an
authenticator-provided random challenge, so any timing side-channel
shouldn't be easily exploitable.

Reported-by: Sashiko (gemini/gemini-3.1-pro-preview)
Link: https://sashiko.dev/#/patchset/20260521151121.808477-1-hossu.alexandru%40gmail.com
Signed-off-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Link: https://patch.msgid.link/20260605122019.24146-3-ddiss@suse.de
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:20:33 -04:00
David Disseldorp
7e161211f1 scsi: target: Fix hexadecimal CHAP_I handling
A mutual CHAP handshake requires target processing of an initiator-sent
CHAP_I identifier. The RFC 3720 specification states:

  11.1.4.  Challenge Handshake Authentication Protocol (CHAP)
  ...
  CHAP_A=<A> CHAP_I=<I> CHAP_C=<C>
  ...
  Where N, (A,A1,A2), I, C, and R are (correspondingly) the Name,
  Algorithm, Identifier, Challenge, and Response as defined in
  [RFC1994], N is a text string, A,A1,A2, and I are numbers

CHAP_I parsing currently calls extract_param(), which returns the
@identifier string (stripped of any 0b/0B or 0x/0X prefix) and a @type
which indicates DECIMAL, HEX, or BASE64 encoding (based on any stripped
prefix).

Any HEX encoded CHAP_I string is further processed via:

  ret = kstrtoul(&identifier[2], 0, &id);

This is incorrect for two reasons:

 * The @identifier string has already been stripped of the 0x/0X prefix,
   so skipping the first two bytes omits part of the number.

 * The kstrtoul() call specifies a base of 0, which will see
   &identifier[2] parsed as a decimal, unless a '0x' or (octal) '0' is
   erroneously present at that offset.

Fix this by passing the (zero-offset) identifier string to kstrtoul()
along with a base=16 parameter. Also add an explicit error handler for
BASE64 encoding.

Hex-encoded CHAP_I handling can be testing using the libiscsi EncodedI
test linked below.

Reported-by: Sashiko (gemini/gemini-3.1-pro-preview)
Link: https://sashiko.dev/#/patchset/20260521151121.808477-1-hossu.alexandru%40gmail.com
Link: https://github.com/sahlberg/libiscsi/pull/473
Fixes: 85db739131 ("scsi: target: iscsi: Validate CHAP_R length before base64 decode")
Signed-off-by: David Disseldorp <ddiss@suse.de>
Reviewed-by: Lee Duncan <lduncan@suse.com>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Link: https://patch.msgid.link/20260605122019.24146-2-ddiss@suse.de
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 17:20:33 -04:00
Samuel Moelius
3c08f6034d scsi: scsi_debug: Fix one-partition tape setup bounds
The tape setup path uses one tape_block entry as the end-of-data marker
after the usable tape blocks. For the one-partition layout, partition 0
uses all TAPE_UNITS data slots and partition 1's marker is written at
tape_blocks[0] + TAPE_UNITS.

Only TAPE_UNITS entries are allocated, so that marker write is one
element past the allocation during device initialization before any
command is issued.

Allocate one extra tape_block entry for the marker. This keeps the
existing partitioning paths unchanged while providing backing storage
for the sentinel.

Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius@trailofbits.com>
Reviewed-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Link: https://patch.msgid.link/20260604234724.1936118-1-sam.moelius@trailofbits.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 16:37:42 -04:00
Palash Kambar
63977ab3c6 scsi: ufs: qcom: dt-bindings: Document the Hawi UFS controller
Document the UFS Controller on the Hawi Platform.

Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Palash Kambar <palash.kambar@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260526090956.2340262-3-palash.kambar@oss.qualcomm.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 16:34:32 -04:00
Bart Van Assche
b65b608eb8 scsi: mailmap: Update Avri Altman's email address
Avri Altman's email address changed from @wdc.com into @sandisk.com. Add
this information in the .mailmap file such that scripts/get_maintainer.pl
produces the correct email address for UFS kernel patches.

Cc: Avri Altman <avri.altman@sandisk.com>
Cc: Avri Altman <avri.altman@wdc.com>
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Acked-by: Avri Altman <avri.altman@sandisk.com>
Link: https://patch.msgid.link/b71be634e78d3a51048ec28fac2eaedb52d6cb09.1780422652.git.bvanassche@acm.org
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2026-06-08 16:24:45 -04:00
Andi Shyti
498cc8f0a9 MAINTAINERS: i2c: designware: Remove inactive reviewer
Emails to Jan Dabros bounce with a permanent failure due to an
inactive account. Remove him from the list of reviewers.

Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
2026-06-08 22:13:19 +02:00
Nick Chan
6fe0687245 nvme-apple: Prevent shared tags across queues on Apple A11
On Apple A11, tags of pending commands must be unique across the admin
and IO queues, else the firmware crashes with
"duplicate tag error for tag N", with N being the tag.

Apply the existing workaround for M1 of reserving two tags for the admin
queue to A11.

Cc: stable@vger.kernel.org
Fixes: 04d8ecf37b ("nvme: apple: Add Apple A11 support")
Reviewed-by: Sven Peter <sven@kernel.org>
Signed-off-by: Nick Chan <towinchenmi@gmail.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
2026-06-08 12:44:23 -07:00
Uwe Kleine-König (The Capable Hub)
0560183f91 w1: ds2482: Use named initializers for arrays of i2c_device_data
While being less compact, using named initializers allows to more easily
see which members of the structs are assigned which value without having
to lookup the declaration of the struct. And it's also more robust
against changes to the struct definition.

The mentioned robustness is relevant for a planned change to struct
i2c_device_id that replaces .driver_data by an anonymous union.

This patch doesn't modify the compiled arrays, only their representation
in source form benefits. The former was confirmed with x86 and arm64
builds.

Signed-off-by: Uwe Kleine-König (The Capable Hub) <u.kleine-koenig@baylibre.com>
Link: https://patch.msgid.link/20260518171456.872736-2-u.kleine-koenig@baylibre.com
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Link: https://patch.msgid.link/20260604165027.83922-4-krzk@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2026-06-08 21:37:56 +02:00
Greg Kroah-Hartman
579f9786b7 SoCFPGA firmware updates for v7.2
- Simplify service driver memory management by using a flexible array
 - Change FCS call to get provision data to asynchronous
 - Avoid blocking the call the reboot_image sysfs when busy
 - Add support to query the ATF version
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEoHhMeiyk5VmwVMwNGZQEC4GjKPQFAmomx+YACgkQGZQEC4Gj
 KPQrAQ//dl9f4r2E2t7rA3pUF1NkRRZD0Y8UFji36ilu8dyuCG8/XFFcrIArugP+
 CO7QH55mrZmDEhRoXAUTqste7uWVLY7EcBQTsp5GR5vVaUm4hHsq6cJ8Im/0ytJs
 1xv+lWNArya1T1NZyTT1Ue60BJgVuy6tOvFg4Dz1OAS4HkHUCG7UJFomzOFSwYiy
 izAaFeoFprFsxvpTyb/eM5sX/PR+gvcmdH+YMD4VoeyAP0v0HYBNND2C8dvP/51s
 oLk62M/QfTnmD71qUlXc20LXEpKjL5ycdrUSjW6F8FPOGDySdY5u1y6pVAIxav4K
 mbFugTC38RwepL9FJ/ZoMQwS8H4XtTrTRw4Unkr79+qsCX/J1vLt8Bghzh2tU3/Z
 G0L5gd2iyOAt5kbWEKpe0RA9NzoqobNz9cVo+obO0RXAcOH1h3+XA9zbPE0L1/0+
 6xSUjb7m94rgUkHT0xFpnWpH8RuVHpXskry8Z0+BS/z3OLVn9bk0c1jAAiVuf+Z/
 hr3GoAWDVfiNqMQbX/ZE/Wnq8Agbq1hQZ4f7E2o727x7sZWVufulI8EeJFMAuVU7
 9INVyiQTZE1lz1eEMOMIWcnr6j1SYLnmhRu3/h46bzLyqZwsIwnWpCCPPs/rDsrt
 DIAN1l7zU28z7kAy8n4j2Cia8bjsLv47yOlDgd3pxJEzRA7QoKM=
 =gfrr
 -----END PGP SIGNATURE-----

Merge tag 'svc_updates_for_v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into char-misc-next

Dinh writes:

SoCFPGA firmware updates for v7.2
- Simplify service driver memory management by using a flexible array
- Change FCS call to get provision data to asynchronous
- Avoid blocking the call the reboot_image sysfs when busy
- Add support to query the ATF version

* tag 'svc_updates_for_v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux:
  firmware: stratix10-svc: Add support to query Arm Trusted Firmware (ATF) version
  firmware: stratix10-rsu: avoid blocking reboot_image sysfs when busy
  firmware: stratix10-svc: change get provision data to async SMC call
  firmware: stratix10-svc: kmalloc_array + kzalloc to flex
2026-06-08 21:37:14 +02:00
Greg Kroah-Hartman
8b98f9f42e coresight: Self-hosted tracing updates for Linux v7.2
Updates for the CoreSight self hosted tracing subsystem includes:
  - Better power management for components based on the CPU PM, including
    support for components on the trace path for CPUs. Add support for
    save/restore for TRBE
  - Miscellaneous fixes to the drivers
    * Fix overflow when the buffer size is > 2GB for tmc-etr
    * Ultrasoc SMB Perf buffer OOB access
 
 Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEuFy0byloRoXZHaWBxcXRZPKyBqEFAmohhJYACgkQxcXRZPKy
 BqHOUxAAmy9T6+KKFFDKCHRbzPzl7iRxRHedknrqaaVOJ9KFD8mRASnX/CtXvjmN
 e/6KS5rrUwoG7NUSkkP8R5/DQcOiUThhRJfZT0cE0505Z7m12+A6c1fBSJcE706Q
 kL6oDYbmkrh1Hs2xvhvrVCLzu2xMOCdKBzsxAopjKsMzu+VWx32Ee771l74fKKKw
 ClI8Gl7K+nr2P5SmVb4WSJTtSUIXL/Ed5X6sMkzYFjD5N5KLMu2pECCvzi/0wUAv
 wfeS8Ubdth5EVOdm+UnxoZUaXCsWO+qkamUUmh6mRq4/wg4dbPvRi2APzQySyVBW
 uleDiFMI4v9kXe25uzog6dnIr108lc7udBGpVMnr1TfxeOYLV97qrQw7nTgxA++x
 yoWFUIlNGM+XGXtZx1QJ4+fjV2xayxhO0AdNqcpIfhYRgrPX2FLmryUCeSnjpYaC
 Dd9/emq4PRS7zL5+QNqRTyatKxSGUWf8bXKlyptUQCWZaWhZfkbFCkctAyfV/Ajw
 UErUPyJe4DMr2SiOJDltAOxeqkPlxSMFO2ppe7ppngoubRYoo05Mtz/MY3rFqhFO
 VQ63cNG1Cu3JYEglre4e8jsxlyPf10+XAzKJ6FfeQMbsGw3s72B70wTNzUJlnJpl
 vhKicLjcbyOie5wrUdaE2qZzMp8lsYUzWByaHDVHE8AjOwfvQ1A=
 =PhTE
 -----END PGP SIGNATURE-----

Merge tag 'coresight-next-v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/coresight/linux into char-misc-next

Suzuki writes:

coresight: Self-hosted tracing updates for Linux v7.2

Updates for the CoreSight self hosted tracing subsystem includes:
 - Better power management for components based on the CPU PM, including
   support for components on the trace path for CPUs. Add support for
   save/restore for TRBE
 - Miscellaneous fixes to the drivers
   * Fix overflow when the buffer size is > 2GB for tmc-etr
   * Ultrasoc SMB Perf buffer OOB access

Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>

* tag 'coresight-next-v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/coresight/linux: (36 commits)
  coresight: ultrasoc-smb: Fix OOB write in smb_sync_perf_buffer()
  coresight: etb10: restore atomic_t for shared reading state
  coresight: platform: defer connection counter increment until alloc succeeds
  coresight: sysfs: Validate CPU online status for per-CPU sources
  coresight: Move CPU hotplug callbacks to core layer
  coresight: sysfs: Increment refcount only for software source
  coresight: trbe: Save and restore state across CPU low power state
  coresight: Add PM callbacks for sink device
  coresight: Control path during CPU idle
  coresight: sysfs: Use source's path pointer for path control
  coresight: etm3x: Set active path on target CPU
  coresight: etm4x: Set active path on target CPU
  coresight: Save active path for system tracers
  coresight: Introduce coresight_enable_source() helper
  coresight: Use helpers to fetch first and last nodes
  coresight: Control path with range
  coresight: Disable source helpers in coresight_disable_path()
  coresight: syscfg: Use IRQ-safe spinlock to protect active variables
  coresight: etm4x: Remove redundant checks in PM save and restore
  coresight: etm4x: Hook CPU PM callbacks
  ...
2026-06-08 21:35:34 +02:00
Greg Kroah-Hartman
745ffd4e7b This pull request contains the following interconnect updates for
the 7.2-rc1 merge window:
 
 - New driver for Shikra SoC
 - New driver for Nord SoC
 - New driver for Hawi SoC including CPU/LLCC bwmon support
 - Add missing SDCC nodes for Eliza SoC
 - Misc cleanups and fixes.
 
 Signed-off-by: Georgi Djakov <djakov@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEExQ4tCsdmOu34XfMFgNDMCsbYFmMFAmommV8ACgkQgNDMCsbY
 FmM7OA/+OMWL+yuI02Q2xEhMYkDF8mFzxw6m7MtmJJI+FwvMXB13gGYJBNKn6G4E
 7Vziwj/rgYoXX6FoMocyJEJKCLOOKcWZw4MNy6p64xdJW+2eTpUz1NtEdGpRdWqf
 SF1mN8nOCesfLeqzYoaUGx9CDU8iq/B9y6/BlTBTd+1reFuR4WAn0mGRflv25vL3
 x6DyzAxJwnbD9vJ1Nrv4s4MV6JlVF0taBdt7O/l//H7pmGa0PgXgikHfqPKrDehw
 LdSc5C3VatnANFs/fXynfGvEMiw6dVE4l6viZScNglKBWMlGENe3v+w+EGv4CULj
 bSBMwR4y8paeXsZ8As2PSnyWhCEixD/0xnIW+iv/7ez1LDtda8E9nNaChcfYxqLv
 CyD4y6/5IGiIts/y0kwKFWd7dRxiGfIalzJCcYErj4idHjdrFAdVy4AkxNNZcuun
 wphosVkwIX5Onrq07nTUqzpMv5A6SqdvUCby9Yi3vlhk+Gy4gb2E9ZRMbRGaZf1t
 +GOIngotttaUtDQUb+ttcCbLJka6sArWaiJ+Ggc2fIj+enfrvzWzM+dVmte9EQt9
 6zPGz96YHtuNQMAXUeTEoZ/tryhD/bvjtajYpYzyHDcA1EabCqo5ItDDuPsHjQj5
 xA0F/CMrTxlMtORGoTnookKWgUEbltyIatsY7g7ate3mI5ehVyg=
 =M0Qt
 -----END PGP SIGNATURE-----

Merge tag 'icc-7.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc into char-misc-next

Georgi writes:

This pull request contains the following interconnect updates for
the 7.2-rc1 merge window:

- New driver for Shikra SoC
- New driver for Nord SoC
- New driver for Hawi SoC including CPU/LLCC bwmon support
- Add missing SDCC nodes for Eliza SoC
- Misc cleanups and fixes.

Signed-off-by: Georgi Djakov <djakov@kernel.org>

* tag 'icc-7.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/djakov/icc:
  interconnect: qcom: add Hawi interconnect provider driver
  dt-bindings: interconnect: qcom: document the RPMh NoC for Hawi SoC
  dt-bindings: interconnect: qcom-bwmon: Add Hawi llcc-bwmon compatible
  interconnect: qcom: eliza: Add SDCC1 slave node
  dt-bindings: interconnect: qcom,eliza-rpmh: Add SDCC1 slave
  interconnect: qcom: Restrict drivers per ARM/ARM64
  interconnect: qcom: Fix indentation
  dt-bindings: interconnect: qcom,sm6115: Restrict children and clocks
  dt-bindings: interconnect: qcom,sm6115: Drop incorrect children if:then: block
  dt-bindings: interconnect: qcom,sdm660: Disallow clocks when appropriate
  interconnect: Move MODULE_DEVICE_TABLE next to the table itself
  interconnect: Do not create empty devres on missing interconnects
  dt-bindings: interconnect: qcom-bwmon: Add Hawi cpu-bwmon compatible
  interconnect: qcom: Add interconnect provider driver for Nord SoC
  dt-bindings: interconnect: Document RPMh Network-On-Chip for Qualcomm Nord SoC
  interconnect: qcom: add Shikra interconnect provider driver
  dt-bindings: interconnect: document the RPM Network-On-Chip interconnect in Shikra SoC
2026-06-08 21:33:47 +02:00
Greg Kroah-Hartman
47b56cc367 IIO: New device support, features and cleanup for the 7.2 cycle.
Like many areas of the kernel IIO has seen a lot of new contributors
 though in this case that is not all AI driven, but also reflects and annual
 surge of student contributions from usp.br. We also have several new
 regular reviewers who are helping with the surge (thanks to all our
 active reviewers!)
 
 Given there was a lot of cases of similar improvements applied to
 different drivers, I have grouped those into a special section (various
 drivers) to avoid mass duplication.
 
 New device support
 ------------------
 
 adi,ad4130
 - Add support for AD4129-4, AD4129-8, AD4130-4, AD4131-4 and AD4131-8
   after reworking the driver to be suitable for multiple device support.
 adi,ad4080
 - Support the AD4880 and AD4884 dual-channel parts. Interesting parts
   as have two separate data pipelines (including SPI buses interfaces),
   but the only current backend IP combines the two so they cannot be
   treated as independent devices.
 adi,ad5706r
 - New driver for this 4 channel current output DAC.
 adi,ad4691
 - New driver supporting this family of ADCs. Support for AD4691, AD4692,
   AD4693 and AD4694 which support either 8 or 16 channels with different
   max sampling rates. Feature rich driver including SPI offload support.
 adi,ltc2983
 - Add support for the ADT7604 in which the same sensor die as the
   LTC2984 is used for leak detection (liquid coverage of a sense area).
 allwinner,adc
 - Support for A523 SoCs. Similar to existing parts but with an additional
   clock.  Includes adding support for non contiguous channel lookup
   for in kernel use (fwnode_xlate callback).
 broadcomm,apds9999
 - New driver for the APDS9999 Ambient Light, RGB and proximity sensor.
 memsic,mmc5983
 - New driver for this 3-axis magnetometer.
 taos,tsl2772
 - Add support for the AVAGO APDS9900 and APDS9901 Ambient Light and
   Proximity sensors. which are very similar to existing part with slightly
   different integration time choices.  Includes removal of driver for these
   parts from drivers/misc.
 vishay,veml3328
 - New driver for this RGB+IR light sensor.
 
 Features
 --------
 
 IIO Core
 - Support for IEEE 754 floating point values in buffer scan elements.
 - Support quaternion axis representation (missing the scaler part)
 microchip,mcp4821
 - Add configurable gain control
 qcom,pm8xxx-xoadc
 - Add per channel labels.
 st,lsm6dsx
 - Support for rotation sensing on the LSM6DSV and LSM6DSV16X using
   both floating point and new quaterionaxis rotation modifier.
 
 MAINTAINERS update
 ------------------
 
 IIO top level entry
 - Include Documentation/driver-api/iio/
 adi,*
 - Top level ADI entry maintainer switch from Lars-Peter Clausen to Nuno Sá
   reflecting what has been the reality for some time. Thanks to Lars-Peter
   who was very active for many years, but has moved on to other things.
   Also add the linux@analog.com email list to ensure we don't get a gap
   in future.
 - Maintainer updates to reflect Cosmin Tanislav having moved on - thanks
   to Marcelo Schmitt for taking these over.
 sensiron,scd30
 - Replace maintainer (Tomasz Duszynski) with Maxwell Doose.
 
 Cleanups, minor fixes and hardening.
 ------------------------------------
 
 Documentation
 - Add missing powerdown modes to ABI docs.
 - Use modern helpers for buffer definition in the examples.
 core
 - Rework of the handling of timestamps so that the offset is cached at
   buffer resize time (during enabling) rather than based on assumption
   that relied in the timestamp being last and the largest element and
   so always 8 bytes before end of the scan. Underlying problem was
   triggered by scans with repeated type elements such as quaternions
   with each element more than 2 bytes - Giving a 16 byte+ aligned channel
   with result that a following timestamp may be 16 bytes from end of scan,
   rather than 8. Note that for the bosch,bno55 a compatibility hack means
   that it will duplicate the timestamp putting  a second copy at previously
   incorrect location.
 - Tidy up use of kernel types in buffer code to not use int64_t given all
   calls use s64.
 various drivers
 - Drop unused driver_data in device id tables - includes cleanup of various
   drivers that had only one choice where it can be hard coded elsewhere.
 - Move to named initializers for many i2c_device_id and platform_device_id
   tables (I have no idea how we go into habit of using named initializers
   for only a subset of the table types - e.g. of_device_id).
 - Make IIO_CHAN_SOFT_TIMESTAMP() macro a compound literal allowing simple
   use in various drivers that do dynamic channel definitions. Use it in
   all such cases.
 - Use dev_err_probe() and local dev variables to tidy up older drivers.
 - Switch more drivers to devm_mutex_init() to provide minor debug benefits.
 - Reorder code to put MODULE_DEVICE_TABLE() next to the tables.
 - Lots of use of cleanup.h magic to improve code flow, often including
   related refactors such as introducing helpers.
 - Replacement of usleep_range() with fsleep()
 - Reduce logging noise where functions either provide their own extensive
   reports on error, or where a clear error code is returned to userspace.
 - Minor spelling and style fixes (improving bracket usage, not using
   __packed etc)
 hid-sensors-*
 - Drop helpers for setting channel bit masks in favor of a compound
   literal at the call site.  Also general cleanup of surrounding code.
 hid-sensors-magn
 - Use u32 rather than bare unsigned for types.
 hid-sensors-rotation
 - Make sue of ext_scan_type handling for static case rather than duplicate
   chan_info structures.
 adi,ad3552r
 - Use field_get() to replace open coded equivalent.
 adi,ad4170
 - Switch from switch to table lookup for GPIO modes.
 adi,ad5686
 - Apply IWYU principal to included a consistent set of headers.
 - Deduplicate regmaps for AD5684 and AD5693 as identical.
 - Switch from an enum value in driver data and array look up to pointers
   to separate structures, improving readabilty and avoiding issues with
   0 value when using helpers to deal with different firmware types.
 - Add of_match_id table to SPI driver rather than relying on fallback to
   spi_device_id table.
 - Introduce some helpers for powerdown mask control.
 - Add helpers for control sync simplifying a couple of corner cases.
 - Docs fixes.
 - Add an ops structure to simplify future addition of operations beyond
   read and write.
 adi,ad7191
 - Switch to best practice of using device_property_present() to detect
   if an optional property is there rather than error values on querying
   the property.
 adi,ad7280a
 - Use local variables to improve readability of breaking up chan-address.
 adi,ad7825
 - Cleanup a type mismatch in clamp() call.
 adi,ad799x
 - Include improvements
 - Local dev variable to shorten code lines.
 - Cache regulator voltage at probe (these never change in practice)
 - Convert to devm for all unwind handling.
 adi,ad9832
 - Improve include relevance including replacing kernel.h with more specific
   headers.
 - Simplify some maths.
 adi,ad9834
 - Improve include relevance including replacing kernel.h with more specific
   headers.
 adi,adt7316
 - Add a comment to avoid future 'fixes' for error handling during the
   odd sequence used to flip from I2C mode to SPI mode.
 adi,adxl*
 - Documentation consistency improvements.
 asahi-kasei,ak8975
 - Fix missing runtime pm calls for buffered capture.
 - Fix missing pm_runtime_put_autosuspend() in an error path that would leave
   the device stuck on.
 - Close a potential uninitialized kernel stack leak.
 - Extensive driver modernization including: header relevance, fsleep()
   various minor bugs, dropping duplicate error messages and avoiding
   magic lengths for buffers.
 - Replace opencoded polling with iopoll().
 - Add error checking to gpio reads.
 avia,hx711
 - Move scale computation from global data to per device avoiding problems
   if multiple devices present.
 - General binding text cleanup.
 bosch,bmg160
 - Add missing mount-matrix entry to binding.
 bosch,bno55
 - Terminate error strings with newlines.
 devantech,srf08
 - Replace sprintf() with sysfs_emit() and sysfs_emit_at() to make intent
   clearer.
 freescale,mma8452
 - Add missing return value check.
 - Fix potential probe ordering issue by switching to non devm irq request.
 linear,ltc2309
 - Add chip specific read delays.
 - Improve chip_info structure, adding __counted_by_ptr marking and
   reorganizing to improve packing.
 linear,ltc2983
 - Fix a firmware combination where default n_wires of 2 bypasses exclusion
   of adi,current-rotate whereas explicitly setting it to 2 does not.
 - Fix potential race with completion reinit.
 - Improve error message wording consistency.
 - Use fwnode_property_present() to detect optional properties rather
   than fragile return value checking.
 microchip,mcp3422
 - Use of GENMASK(), FIELD_GET(), FIELD_PREP() to improve readability and
   generally modernize driver.
 microchip,mcp47feb02
 - Fix binding example to use a possible I2C address.
 - Fix binding bounds on channel number.
 - Standardize binding example indentation
 nxp,saradc
 - Increase chances of recovering from a failure in the interrupt handler
   by notifying the trigger that it can reenable even when the read failed.
 - Use field_get() to replace opencoded equivalent.
 qualcomm,*
 - Standardize on Qualcomm company naming in Kconfig.
 richtek,rtq6056
 - Add i2c_device_id table for legacy instantiation.
 samsung,ssp
 - Replace custom timestamp channel macro with main one.
 sciosense,ens210
 - Now scoped_guard() has been reworked, no need for a return
   that can never be reached.
 sensiron,scd30
 - Constify command lookup table.
 - Sanity check for NULL buffer of non zero size being provided to
   sc30_i2c_command()
 sensortek,stk3310
 - Include  more appropriate headers.
 - Ensure interrupt in appropriate mode after resume.
 - Structure definition improvements.
 - Use size_of() to replace opencoded sizes.
 siliconimage,si1133
 - Resolve counter related issues on timeout error paths.
 - Unused macro removal, improved macro definitions,.
 - Include relevance improvements.
 st,lsm6dsx
 - Fix an issue with applying invalid data check to wrong type of sample.
 taos,tcs3472
 - Try to powerdown chip on probe failure.
 - Devm usage and dropping of remove() callback.
 - Various other minor cleanup.
 taos,tsl2591
 - Dead code removal.
 - Simplify tsl2591_persist functions using a look up table.
 ti,ads1298
 - Fix wrong comment on timeout (and minor code improvement)
 - Drop unnecessary CONFIG2 write during init.
 ti,ads7950
 - Check ret rather that ret < 0 for spi_setup() call.
 - Use fully devm managed resources including moving to
   devm_regulator_get_enable_read_voltage() at probe time rather than
   querying evey time.
 - Using spi_optimize_message() to reduce CPU usage.
 ti,ads8688
 - User read_avail() callback rather than open coding handling of
   available attributes.
 ti,opt3001
 - Header relevance improvements
 - Use GENMASK for field definitions to improve readability.
 vishay,vcnl4000
 - Switch from enum in device_data to individual names structures
   impmroving code readabililty.
 - Move to devm handling for remainder of probe.
 vishay,veml6030
 - Drop pointless read of current Iteration Time index as it is not used.
 xilinx,ams
 - Fix potential out of bound channel lookup.
 - Replace some large switch statements with table lookups.
 yamaha,yas530
 - Put label in chip info structure to avoid look up in i2c_device_id table.
 
 Drop
 ----
 
 iio-trig-interrupt.
 - Not used for some time and no support for modern firmware bindings or
   in kernel users. So drop it.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmolp9kRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FoieAxAArpdsc3rjgjeFxymnbXPWqjohz/XCg3Ps
 XXxbyaLCvphsJ7P7vsp7acX0vIdi+mqPLU+6Vl67OolFVKM3+84PMoHY3s0wbbMj
 xDgcI6zR4kwGUpGry9FKr3/UQaSNLo7ahYq7UZKJA8vCoHd11AUzh8TCz/myrdnK
 Ju6I+FScj6L8lkftaGgYqzHEOoKXQtXaUrYbUFQR/vm9/FlgEkF5qP4pcVxBfAox
 OtO9jjQOpOAZnTEEbjy6mmEVyuIzOAjLQFxPBzaUuWtZv51P5OZGOS0WNYvt4zvK
 ziaRPgTIShjUVGkQmhmZ3AjmrYmRjWMhyR58BAyYgqbN/OAwtaJEou8UCDeVQxst
 B3Tj10VrxuHCEmXvy7ex5SqsKBQ1BHuz3bS8u2znEFp7RcxIorXllRLckpdIFyIa
 LDyO6krus1mBhLVQ1LVhQNlpi6KKvVD3fcV/14fUoG/ZAP6ta3cdA7jybp1k4aNs
 PYdlTuJn9jLhRrjHEFaM9hT3St/MRSJ3/rFj4rEHufs3w7iATKWwR9YqcNG8VNFN
 rGz0aB72J1FxevP3/n5MfXkYUZTmw776Oy/IfB2swXMpH23L2+3b8+ZJUy2HJbBJ
 69sjgvEiFkhsJBI8eLe6pEWoD6wkq6KDamcYcgnUNPu8AaC45DLPuGHEPyjzk/AX
 vuc+ysTUb70=
 =AW+z
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-7.2a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into work-testing

IIO: New device support, features and cleanup for the 7.2 cycle.

Like many areas of the kernel IIO has seen a lot of new contributors
though in this case that is not all AI driven, but also reflects and annual
surge of student contributions from usp.br. We also have several new
regular reviewers who are helping with the surge (thanks to all our
active reviewers!)

Given there was a lot of cases of similar improvements applied to
different drivers, I have grouped those into a special section (various
drivers) to avoid mass duplication.

New device support
------------------

adi,ad4130
- Add support for AD4129-4, AD4129-8, AD4130-4, AD4131-4 and AD4131-8
  after reworking the driver to be suitable for multiple device support.
adi,ad4080
- Support the AD4880 and AD4884 dual-channel parts. Interesting parts
  as have two separate data pipelines (including SPI buses interfaces),
  but the only current backend IP combines the two so they cannot be
  treated as independent devices.
adi,ad5706r
- New driver for this 4 channel current output DAC.
adi,ad4691
- New driver supporting this family of ADCs. Support for AD4691, AD4692,
  AD4693 and AD4694 which support either 8 or 16 channels with different
  max sampling rates. Feature rich driver including SPI offload support.
adi,ltc2983
- Add support for the ADT7604 in which the same sensor die as the
  LTC2984 is used for leak detection (liquid coverage of a sense area).
allwinner,adc
- Support for A523 SoCs. Similar to existing parts but with an additional
  clock.  Includes adding support for non contiguous channel lookup
  for in kernel use (fwnode_xlate callback).
broadcomm,apds9999
- New driver for the APDS9999 Ambient Light, RGB and proximity sensor.
memsic,mmc5983
- New driver for this 3-axis magnetometer.
taos,tsl2772
- Add support for the AVAGO APDS9900 and APDS9901 Ambient Light and
  Proximity sensors. which are very similar to existing part with slightly
  different integration time choices.  Includes removal of driver for these
  parts from drivers/misc.
vishay,veml3328
- New driver for this RGB+IR light sensor.

Features
--------

IIO Core
- Support for IEEE 754 floating point values in buffer scan elements.
- Support quaternion axis representation (missing the scaler part)
microchip,mcp4821
- Add configurable gain control
qcom,pm8xxx-xoadc
- Add per channel labels.
st,lsm6dsx
- Support for rotation sensing on the LSM6DSV and LSM6DSV16X using
  both floating point and new quaterionaxis rotation modifier.

MAINTAINERS update
------------------

IIO top level entry
- Include Documentation/driver-api/iio/
adi,*
- Top level ADI entry maintainer switch from Lars-Peter Clausen to Nuno Sá
  reflecting what has been the reality for some time. Thanks to Lars-Peter
  who was very active for many years, but has moved on to other things.
  Also add the linux@analog.com email list to ensure we don't get a gap
  in future.
- Maintainer updates to reflect Cosmin Tanislav having moved on - thanks
  to Marcelo Schmitt for taking these over.
sensiron,scd30
- Replace maintainer (Tomasz Duszynski) with Maxwell Doose.

Cleanups, minor fixes and hardening.
------------------------------------

Documentation
- Add missing powerdown modes to ABI docs.
- Use modern helpers for buffer definition in the examples.
core
- Rework of the handling of timestamps so that the offset is cached at
  buffer resize time (during enabling) rather than based on assumption
  that relied in the timestamp being last and the largest element and
  so always 8 bytes before end of the scan. Underlying problem was
  triggered by scans with repeated type elements such as quaternions
  with each element more than 2 bytes - Giving a 16 byte+ aligned channel
  with result that a following timestamp may be 16 bytes from end of scan,
  rather than 8. Note that for the bosch,bno55 a compatibility hack means
  that it will duplicate the timestamp putting  a second copy at previously
  incorrect location.
- Tidy up use of kernel types in buffer code to not use int64_t given all
  calls use s64.
various drivers
- Drop unused driver_data in device id tables - includes cleanup of various
  drivers that had only one choice where it can be hard coded elsewhere.
- Move to named initializers for many i2c_device_id and platform_device_id
  tables (I have no idea how we go into habit of using named initializers
  for only a subset of the table types - e.g. of_device_id).
- Make IIO_CHAN_SOFT_TIMESTAMP() macro a compound literal allowing simple
  use in various drivers that do dynamic channel definitions. Use it in
  all such cases.
- Use dev_err_probe() and local dev variables to tidy up older drivers.
- Switch more drivers to devm_mutex_init() to provide minor debug benefits.
- Reorder code to put MODULE_DEVICE_TABLE() next to the tables.
- Lots of use of cleanup.h magic to improve code flow, often including
  related refactors such as introducing helpers.
- Replacement of usleep_range() with fsleep()
- Reduce logging noise where functions either provide their own extensive
  reports on error, or where a clear error code is returned to userspace.
- Minor spelling and style fixes (improving bracket usage, not using
  __packed etc)
hid-sensors-*
- Drop helpers for setting channel bit masks in favor of a compound
  literal at the call site.  Also general cleanup of surrounding code.
hid-sensors-magn
- Use u32 rather than bare unsigned for types.
hid-sensors-rotation
- Make sue of ext_scan_type handling for static case rather than duplicate
  chan_info structures.
adi,ad3552r
- Use field_get() to replace open coded equivalent.
adi,ad4170
- Switch from switch to table lookup for GPIO modes.
adi,ad5686
- Apply IWYU principal to included a consistent set of headers.
- Deduplicate regmaps for AD5684 and AD5693 as identical.
- Switch from an enum value in driver data and array look up to pointers
  to separate structures, improving readabilty and avoiding issues with
  0 value when using helpers to deal with different firmware types.
- Add of_match_id table to SPI driver rather than relying on fallback to
  spi_device_id table.
- Introduce some helpers for powerdown mask control.
- Add helpers for control sync simplifying a couple of corner cases.
- Docs fixes.
- Add an ops structure to simplify future addition of operations beyond
  read and write.
adi,ad7191
- Switch to best practice of using device_property_present() to detect
  if an optional property is there rather than error values on querying
  the property.
adi,ad7280a
- Use local variables to improve readability of breaking up chan-address.
adi,ad7825
- Cleanup a type mismatch in clamp() call.
adi,ad799x
- Include improvements
- Local dev variable to shorten code lines.
- Cache regulator voltage at probe (these never change in practice)
- Convert to devm for all unwind handling.
adi,ad9832
- Improve include relevance including replacing kernel.h with more specific
  headers.
- Simplify some maths.
adi,ad9834
- Improve include relevance including replacing kernel.h with more specific
  headers.
adi,adt7316
- Add a comment to avoid future 'fixes' for error handling during the
  odd sequence used to flip from I2C mode to SPI mode.
adi,adxl*
- Documentation consistency improvements.
asahi-kasei,ak8975
- Fix missing runtime pm calls for buffered capture.
- Fix missing pm_runtime_put_autosuspend() in an error path that would leave
  the device stuck on.
- Close a potential uninitialized kernel stack leak.
- Extensive driver modernization including: header relevance, fsleep()
  various minor bugs, dropping duplicate error messages and avoiding
  magic lengths for buffers.
- Replace opencoded polling with iopoll().
- Add error checking to gpio reads.
avia,hx711
- Move scale computation from global data to per device avoiding problems
  if multiple devices present.
- General binding text cleanup.
bosch,bmg160
- Add missing mount-matrix entry to binding.
bosch,bno55
- Terminate error strings with newlines.
devantech,srf08
- Replace sprintf() with sysfs_emit() and sysfs_emit_at() to make intent
  clearer.
freescale,mma8452
- Add missing return value check.
- Fix potential probe ordering issue by switching to non devm irq request.
linear,ltc2309
- Add chip specific read delays.
- Improve chip_info structure, adding __counted_by_ptr marking and
  reorganizing to improve packing.
linear,ltc2983
- Fix a firmware combination where default n_wires of 2 bypasses exclusion
  of adi,current-rotate whereas explicitly setting it to 2 does not.
- Fix potential race with completion reinit.
- Improve error message wording consistency.
- Use fwnode_property_present() to detect optional properties rather
  than fragile return value checking.
microchip,mcp3422
- Use of GENMASK(), FIELD_GET(), FIELD_PREP() to improve readability and
  generally modernize driver.
microchip,mcp47feb02
- Fix binding example to use a possible I2C address.
- Fix binding bounds on channel number.
- Standardize binding example indentation
nxp,saradc
- Increase chances of recovering from a failure in the interrupt handler
  by notifying the trigger that it can reenable even when the read failed.
- Use field_get() to replace opencoded equivalent.
qualcomm,*
- Standardize on Qualcomm company naming in Kconfig.
richtek,rtq6056
- Add i2c_device_id table for legacy instantiation.
samsung,ssp
- Replace custom timestamp channel macro with main one.
sciosense,ens210
- Now scoped_guard() has been reworked, no need for a return
  that can never be reached.
sensiron,scd30
- Constify command lookup table.
- Sanity check for NULL buffer of non zero size being provided to
  sc30_i2c_command()
sensortek,stk3310
- Include  more appropriate headers.
- Ensure interrupt in appropriate mode after resume.
- Structure definition improvements.
- Use size_of() to replace opencoded sizes.
siliconimage,si1133
- Resolve counter related issues on timeout error paths.
- Unused macro removal, improved macro definitions,.
- Include relevance improvements.
st,lsm6dsx
- Fix an issue with applying invalid data check to wrong type of sample.
taos,tcs3472
- Try to powerdown chip on probe failure.
- Devm usage and dropping of remove() callback.
- Various other minor cleanup.
taos,tsl2591
- Dead code removal.
- Simplify tsl2591_persist functions using a look up table.
ti,ads1298
- Fix wrong comment on timeout (and minor code improvement)
- Drop unnecessary CONFIG2 write during init.
ti,ads7950
- Check ret rather that ret < 0 for spi_setup() call.
- Use fully devm managed resources including moving to
  devm_regulator_get_enable_read_voltage() at probe time rather than
  querying evey time.
- Using spi_optimize_message() to reduce CPU usage.
ti,ads8688
- User read_avail() callback rather than open coding handling of
  available attributes.
ti,opt3001
- Header relevance improvements
- Use GENMASK for field definitions to improve readability.
vishay,vcnl4000
- Switch from enum in device_data to individual names structures
  impmroving code readabililty.
- Move to devm handling for remainder of probe.
vishay,veml6030
- Drop pointless read of current Iteration Time index as it is not used.
xilinx,ams
- Fix potential out of bound channel lookup.
- Replace some large switch statements with table lookups.
yamaha,yas530
- Put label in chip info structure to avoid look up in i2c_device_id table.

Drop
----

iio-trig-interrupt.
- Not used for some time and no support for modern firmware bindings or
  in kernel users. So drop it.

* tag 'iio-for-7.2a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (266 commits)
  iio: adc: nxp-sar-adc: harden buffer ISR against per-channel read failure
  iio: chemical: scd30: Replace manual locking with RAII locking
  iio: light: tsl2591: remove unneeded tsl2591_compatible_als_persist_cycle()
  iio: dac: ad5686: create bus ops struct
  iio: dac: ad5686: cleanup doc header of local structs
  iio: dac: ad5686: add control_sync() for single-channel devices
  iio: dac: ad5686: add helpers to handle powerdown masks
  iio: dac: ad5686: add of_match table to the spi driver
  iio: dac: ad5686: drop enum id
  iio: dac: ad5686: remove redundant register definition
  iio: dac: ad5686: refactor include headers
  iio: adc: ad4080: fix AD4880 chip ID
  iio: light: veml3328: add support for new device
  dt-bindings: iio: light: veml6030: add veml3328
  docs: iio: adc: ad4691: add driver documentation
  iio: adc: ad4691: add oversampling support
  iio: adc: ad4691: add SPI offload support
  iio: adc: ad4691: add triggered buffer support
  iio: adc: ad4691: add initial driver for AD4691 family
  dt-bindings: iio: adc: add AD4691 family
  ...
2026-06-08 21:32:52 +02:00
Sneh Mankad
4e31ab4799 pinctrl: qcom: Fix resolving register base address from device node
Commit 56ffb63749 ("pinctrl: qcom: add multi TLMM region option parameter")
added reg-names property based register reading. However multiple platforms
are not using the reg-names as they have only single TLMM register region.

Commit tried to handle this using the default_region module parameter,
however this condition is unreachable as the error return precedes it by
just checking if reg-names property exists or not, making it impossible
to use tlmm-test for the SoCs (x1e80100) which don't have reg-names
property in TLMM device.

Fix this by moving the default_region check at the start of the
tlmm_reg_base().

Fixes: 56ffb63749 ("pinctrl: qcom: add multi TLMM region option parameter")
Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-06-08 21:30:53 +02:00
Sneh Mankad
ba80761235 pinctrl: qcom: Modify MSM_PULL_MASK to accurately represent PULL bits
MSM_PULL_MASK currently spans bits [2:0], but the GPIO_PULL field in the
GPIO_CFG register only occupies bits [1:0]. Bit 2 belongs to
FUNC_SEL.

MSM_PULL_MASK is used to isolate the GPIO_PULL bits before writing the
pull configuration (PULL_DOWN: 0x1, PULL_UP: 0x3) to the GPIO_CFG
register. Narrow it to bits [1:0] to prevent unintended modification of
the FUNC_SEL field.

This causes no functional change since the driver currently does not
modify the FUNC_SEL bit, but align the mask with hardware configuration
nonetheless.

Signed-off-by: Sneh Mankad <sneh.mankad@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Linus Walleij <linusw@kernel.org>
2026-06-08 21:30:46 +02:00
Greg Kroah-Hartman
39f9c91bce MHI Host
--------
 
 - Request power-of-2 MSI vectors from pci_generic driver for sanity.
 
 - Add support for Telit FE910C04 modem based on Qcom SDX35 chipset
 
 - Fix the check used to identify the physical functions to work with both SR-IOV
   and non-SR-IOV devices
 
 MHI Endpoint
 ------------
 
 - Fix a potential deadlock in the mhi_ep_reset_worker() helper
 
 - Add lock around mhi_ep_handle_syserr() in the error path to avoid race in
   setting MHI state in the error path
 
 - Add missing state_lock protection for mhi_state access
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZ6VDKoFIy9ikWCeXVZ8R5v6RzvUFAmoifS4ACgkQVZ8R5v6R
 zvVpBQf+LlDiVt1mJwA0hiwUwcsitoz83D1jSMbmOwmdH68NuivfnAMbyYDhah8b
 43t9XmCVXq9Cznx5JlB8jss+9DfECbcY+eQwsQp9N9yLb3FyB6D+v+MaaZeiYyDq
 yRPg7Q7gz767iHqf7D6uMS1tsIc6tS7ZU2hOdnTpOjC5tr5no0qr6Dr9SyQDVV40
 7CTlSQJsjHj6VoamDrCB+eEOsvraGOxVpKijHX34Xzu+Tm0qfrDsuP/lKRehFDhw
 vinsY2ihhCuyY8VEIT5rC6vh55ZmNYHInvQ/UfR+UVDxbpXd+PpK57j7kX55eXlv
 Vr0AxwcNc/rVgPUGISfUaQyQYkt2Zg==
 =yy/J
 -----END PGP SIGNATURE-----

Merge tag 'mhi-for-v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi into char-misc-next

Manivannan writes:

MHI Host
--------

- Request power-of-2 MSI vectors from pci_generic driver for sanity.

- Add support for Telit FE910C04 modem based on Qcom SDX35 chipset

- Fix the check used to identify the physical functions to work with both SR-IOV
  and non-SR-IOV devices

MHI Endpoint
------------

- Fix a potential deadlock in the mhi_ep_reset_worker() helper

- Add lock around mhi_ep_handle_syserr() in the error path to avoid race in
  setting MHI state in the error path

- Add missing state_lock protection for mhi_state access

* tag 'mhi-for-v7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
  bus: mhi: host: pci_generic: Fix the physical function check
  bus: mhi: ep: Protect mhi_ep_handle_syserr() in the error path
  bus: mhi: host: pci_generic: Add Telit FE910C04 modem support
  bus: mhi: ep: Add missing state_lock protection for mhi_state access
  bus: mhi: ep: Fix potential deadlock in mhi_ep_reset_worker()
  bus: mhi: host: pci_generic: Round up nr_irqs to power of two
2026-06-08 21:27:34 +02:00
Greg Kroah-Hartman
b23338788b FPGA Manager changes for 7.2-rc1
- Wentao fixes use-after-free issue in of-fpga-region
 - Phil adds the of matching for Altera ts73xx fpga driver
 - Ian adds Efinix FPGA SPI programming driver
 - Andy fixes several minor issues for Lattice FPGA driver
 - Manish converts dt-bindings to YAML schema for several Altera devices
 - Sebastian fixes several minor issues for Intel DFL & Microchip FPGAs
 
 All patches have been reviewed on the mailing list, and have been in the
 last linux-next releases (as part of our for-next branch).
 
 Signed-off-by: Xu Yilun <yilun.xu@intel.com>
 -----BEGIN PGP SIGNATURE-----
 
 iIkEABYIADEWIQSgSJpClIeaArXyudb8twOBpKCM2gUCaiD6nRMceWlsdW4ueHVA
 aW50ZWwuY29tAAoJEPy3A4GkoIzaRK0BAL/tryz4yA9F/7hO5gmTT2ke+LfWn/pH
 7NmskFCd76svAQDSGvndrW6rquHdoD7A5ZTwY7MRY1NlFdoZCfUfxtt/Ag==
 =/REE
 -----END PGP SIGNATURE-----

Merge tag 'fpga-for-7.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga into char-misc-next

Xu writes:

FPGA Manager changes for 7.2-rc1

- Wentao fixes use-after-free issue in of-fpga-region
- Phil adds the of matching for Altera ts73xx fpga driver
- Ian adds Efinix FPGA SPI programming driver
- Andy fixes several minor issues for Lattice FPGA driver
- Manish converts dt-bindings to YAML schema for several Altera devices
- Sebastian fixes several minor issues for Intel DFL & Microchip FPGAs

All patches have been reviewed on the mailing list, and have been in the
last linux-next releases (as part of our for-next branch).

Signed-off-by: Xu Yilun <yilun.xu@intel.com>

* tag 'fpga-for-7.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga:
  fpga: microchip-spi: fix zero header_size OOB read in mpf_ops_parse_header()
  fpga: dfl-afu: validate DMA mapping length in afu_dma_map_region()
  fpga: dfl: add bounds check in dfh_get_param_size()
  dt-bindings: fpga: altr,socfpga-fpga-mgr: convert to DT schema
  dt-bindings: fpga: altr,a10-pr-ip: convert to DT schema
  fpga: lattice-sysconfig-spi: simplify with spi_get_device_match_data()
  fpga: lattice-sysconfig-spi: Don't use "proxy" headers
  fpga: lattice-sysconfig-spi: Drop of_match_ptr() protection
  fpga: lattice-sysconfig-spi: Fix the terminator entries in ID tables
  fpga-mgr: Add Efinix SPI programming driver
  dt-bindings: fpga: Add Efinix SPI programming bindings
  dt-bindings: vendor-prefix: Add prefix for Efinix, Inc.
  fpga: ts73xx-fpga: add OF match table for device tree probing
  dt-bindings: fpga: Add Technologic Systems TS-7300 FPGA Manager
  fpga: region: fix use-after-free in child_regions_with_firmware()
2026-06-08 21:26:50 +02:00
Greg Kroah-Hartman
099b02d3dd Counter updates for 7.2
Manual mutex lock logic is replaced by lock guards in intel-qep.
 Additionally, devm_mutex_init() is now used in ftm-quaddec,
 interrupt-cnt, and intel-qep to handle mutex cleanup automatically.
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQSNN83d4NIlKPjon7a1SFbKvhIjKwUCah5CrwAKCRC1SFbKvhIj
 K0X3AQCy8OkON3wzX/rd+5P1er9zxXcxEs0cTN7NUwkiqPEosgEAtIKiEKehqczG
 CeyORY94TwVnADpCYMXGLpELnb43eQ8=
 =b4nq
 -----END PGP SIGNATURE-----

Merge tag 'counter-updates-for-7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter into char-misc-next

William writes:

Counter updates for 7.2

Manual mutex lock logic is replaced by lock guards in intel-qep.
Additionally, devm_mutex_init() is now used in ftm-quaddec,
interrupt-cnt, and intel-qep to handle mutex cleanup automatically.

* tag 'counter-updates-for-7.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/wbg/counter:
  counter: intel-qep: Use devm_mutex_init()
  counter: interrupt-cnt: use devm_mutex_init()
  counter: ftm-quaddec: use devm_mutex_init()
  counter: intel-qep: Replace manual mutex logic with lock guards
2026-06-08 21:26:09 +02:00
Akhil R
aa0f846f61
i2c: tegra: Disable fair arbitration for non-MCTP buses
Recent Tegra I2C controllers have a fairness arbitration register, which
allows configuring the fair idle time required to support MCTP protocol
over I2C. It is enabled by default, adding a per-transfer latency overhead
that impacts non-MCTP I2C buses.

Disable the fairness arbitration register during controller init for buses
that are not MCTP controllers.

Assisted-by: Cursor:claude-4.6-opus
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260518114013.62065-3-akhilrajeev@nvidia.com
2026-06-08 21:23:33 +02:00
Akhil R
9295f238a5
i2c: tegra: use dmaengine_get_dma_device() for DMA buffer allocation
Use dmaengine_get_dma_device() to obtain the correct struct device
pointer for dma_alloc_coherent() instead of directly dereferencing
chan->device->dev.

The dmaengine_get_dma_device() helper checks whether the DMA channel
has a per-channel DMA device (chan->dev->chan_dma_dev) and returns it
when available, falling back to the controller device otherwise. On
platforms where the DMA controller sits behind an IOMMU with
per-channel IOVA spaces (e.g. Tegra264 GPC DMA), the per-channel
device carries the correct DMA mapping context. Using the controller
device directly would allocate DMA buffers against the wrong IOMMU
domain, leading to SMMU faults at runtime.

On platforms without per-channel DMA devices the helper returns the
same pointer as before, so there is no change in behavior for existing
hardware.

Assisted-by: Cursor:claude-4.6-opus
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260518114013.62065-2-akhilrajeev@nvidia.com
2026-06-08 21:23:22 +02:00
Akhil R
656646b384
i2c: tegra: Fix NOIRQ suspend/resume
The Tegra I2C driver relies on runtime PM to wake up the controller before
each transfer. However, runtime PM is disabled between the system suspend
and NOIRQ suspend. If an I2C device initiates a transfer during this
window, the I2C controller fails to wake up and the transfer fails. To
handle this, the controller must be kept available for this period to
allow transfers.

Rework the I2C controller's system PM callbacks such that the controller
is resumed from runtime suspend during system suspend and it stays
RPM_ACTIVE throughout the suspend-resume cycle until it is runtime
suspended back in the system resume. The clocks are disabled in NOIRQ
suspend and enabled back in NOIRQ resume by calling the controller's
runtime PM functions directly.

Fixes: 8ebf15e9c8 ("i2c: tegra: Move suspend handling to NOIRQ phase")
Assisted-by: Cursor:claude-4.6-opus
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Cc: <stable@vger.kernel.org> # v5.4+
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260518114013.62065-5-akhilrajeev@nvidia.com
2026-06-08 21:21:42 +02:00
Akhil R
97d0a9c6e8
i2c: tegra: Update Tegra410 I2C timing parameters
Update Tegra410 I2C timing parameters based on hardware characterization
results. This adjusts the fast mode and HS mode settings to be compliant
with the I2C specification.

Fixes: 59717f2601 ("i2c: tegra: Add support for Tegra410")
Signed-off-by: Akhil R <akhilrajeev@nvidia.com>
Reviewed-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
Link: https://lore.kernel.org/r/20260518114013.62065-4-akhilrajeev@nvidia.com
2026-06-08 21:21:35 +02:00
Yang Erkun
4837fb3621 nfs: use nfsi->rwsem to protect traversal of the file lock list
Lingfeng identified a bug and suggested two solutions, but both appear
to have issues.

Generally, we cannot release flc_lock while iterating over the file lock
list to avoid use-after-free (UAF) problems with file locks. However,
functions like nfs_delegation_claim_locks and nfs4_reclaim_locks cannot
adhere to this rule because recover_lock or nfs4_lock_delegation_recall
may take a long time. To resolve this, NFS switches to using nfsi->rwsem
for the same protection, and nfs_reclaim_locks follows this approach.
Although nfs_delegation_claim_locks uses so_delegreturn_mutex instead,
this is inadequate since a single inode can have multiple nfs4_state
instances. Therefore, the fix is to also use nfsi->rwsem in this case.

Furthermore, after commit c69899a17c ("NFSv4: Update of VFS byte range
lock must be atomic with the stateid update"), the functions
nfs4_locku_done and nfs4_lock_done also break this rule because they
call locks_lock_inode_wait without holding nfsi->rwsem. Simply adding
this protection could cause many deadlocks, so instead, the call to
locks_lock_inode_wait is moved into _nfs4_proc_setlk. Regarding the bug
fixed by commit c69899a17c ("NFSv4: Update of VFS byte range
lock must be atomic with the stateid update"), it has been resolved
after commit 0460253913 ("NFSv4: nfs4_do_open() is incorrectly triggering
state recovery") because all slots are drained before calling
nfs4_do_reclaim, which prevents concurrent stateid changes along this path.
Also, nfs_delegation_claim_locks does not cause this concurrency either
since when _nfs4_proc_setlk is called with NFS_DELEGATED_STATE, no RPC is
sent, so nfs4_lock_done is not called. Therefore,
nfs4_lock_delegation_recall from nfs_delegation_claim_locks is the first
time the stateid is set.

Reported-by: Li Lingfeng <lilingfeng3@huawei.com>
Closes: https://lore.kernel.org/all/20250419085709.1452492-1-lilingfeng3@huawei.com/
Closes: https://lore.kernel.org/all/20250715030559.2906634-1-lilingfeng3@huawei.com/
Fixes: c69899a17c ("NFSv4: Update of VFS byte range lock must be atomic with the stateid update")
Signed-off-by: Yang Erkun <yangerkun@huawei.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
2026-06-08 15:04:21 -04:00
Lei Yin
d616d8bec3 NFSv4.1/pNFS: fix LAYOUTCOMMIT retry loop on OLD_STATEID
Handle -NFS4ERR_OLD_STATEID in nfs4_layoutcommit_done().

This issue was reproduced on NFSv4.2.

Without refreshing data->args.stateid, LAYOUTCOMMIT can keep retrying
with the same stale stateid after OLD_STATEID, resulting in an
unbounded retry loop.

Refresh the layout stateid with nfs4_layout_refresh_old_stateid()
and restart the RPC only after a successful refresh.

Changes since v1: update refreshed stateid in inode layout header.

Signed-off-by: Lei Yin <yinlei2@lenovo.com>
[Anna: Fix up dprintk() format specifier]
Signed-off-by: Anna Schumaker <anna.schumaker@hammerspace.com>
2026-06-08 15:02:05 -04:00
Yuho Choi
a298c7302e watchdog: unregister PM notifier on watchdog unregister
watchdog_register_device() registers wdd->pm_nb when
WDOG_NO_PING_ON_SUSPEND is set, but watchdog_unregister_device() does not
remove it. This leaves an embedded notifier block on the PM notifier chain
after the watchdog device has been unregistered.

A later suspend/resume notification can then call watchdog_pm_notifier()
with a stale watchdog_device pointer, or at minimum after wdd->wd_data has
been cleared by watchdog_dev_unregister().

Unregister the PM notifier before tearing down the watchdog device.

Fixes: 60bcd91aaf ("watchdog: introduce watchdog_dev_suspend/resume")
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
Link: https://lore.kernel.org/r/20260601192005.1970805-1-dbgh9129@gmail.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:57:23 -07:00
Al Viro
d53ac61b61 create_default_group(): pass parent's dentry instead of config_group
the only way parent_group is used there...

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:55:02 -04:00
Al Viro
ad235a65df configfs_attach_group(): drop the unused parent_item argument
This one *was* used - for passing it to configfs_attach_item(), which
didn't use the value passed to it.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:54:40 -04:00
Kathiravan Thirumoorthy
942d413e9c dt-bindings: watchdog: qcom-wdt: Document IPQ5210 watchdog
Document the watchdog device found on the Qualcomm IPQ5210 SoC.

Signed-off-by: Kathiravan Thirumoorthy <kathiravan.thirumoorthy@oss.qualcomm.com>
Acked-by: Rob Herring (Arm) <robh@kernel.org>
Link: https://lore.kernel.org/r/20260511-ipq5210_wdt_binding-v1-1-859003d48274@oss.qualcomm.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:54:38 -07:00
Al Viro
d4152c7562 configs_attach_item(): drop unused parent_item argument
That argument has been unused since the initial merge in 2005.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:54:05 -04:00
Al Viro
967c898d9d configfs_create(): lift parent timestamp updates into callers
... and do *not* do it in ->lookup() case.  stat foo/bar
should not update mtime of foo, TYVM...

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:41 -04:00
Randy Dunlap
975599591f watchdog: dev: convert to kernel-doc comments
Convert multiple functions to kernel-doc format.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:53:18 -07:00
Randy Dunlap
c5be907887 watchdog: core: clean up some comments
Fix some grammar typos and bulleted kernel-doc comment format.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:53:18 -07:00
Randy Dunlap
38ecabc9af watchdog: uapi: add comments for what bit masks apply to
Add comments similar to those in include/linux/watchdog.h
so that the reader/user doesn't have to dig into the API documentation
files for this.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:53:18 -07:00
Randy Dunlap
4d72cac328 watchdog: linux/watchdog.h: repair kernel-doc comments
Convert struct comments to correct kernel-doc format and
add one missing struct member description.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:53:18 -07:00
Randy Dunlap
0f3999f528 watchdog: add devm_watchdog_register_device() to watchdog-kernel-api
devm_watchdog_register_device() is not documented. Add it to the current
kernel API documentation.

Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2026-06-08 11:53:18 -07:00
Al Viro
43b45755e8 kill configfs_drop_dentry()
Fold into the only remaining user, don't bother with the timestamps
of parent - we are going to rmdir it shortly anyway, which will
override those.

Fix the locking of inode, while we are at it - updating the link
count and timestamps ought to be done with the inode locked.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:14 -04:00
Al Viro
1387aedb39 configfs: mark pinned dentries persistent
on the removal side we can (finally) get rid of __simple_unlink()
and __simple_rmdir() kludges now that dentries in question are
properly marked persistent - simple_unlink() and simple_rmdir()
will do the right thing for those.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:09 -04:00
Al Viro
1a29e25799 configfs: dentry refcount needs to be pinned only once
currently we have a weird situation where
	* symlinks and roots of subtrees created by mkdir are pinned once
	* subdirectories of subtrees created by mkdir are pinned twice
	* roots of subtrees created by register_{group,subsystem} are pinned
twice.

It makes things harder to follow for no good reason.  The goal is to
encapsulate the unbalanced dget/dput into d_{make,discard}_persisitent()
and, preferably, allow a use of simple_recursive_removal() or analogue
thereof.  So let's regularize that and pin things only once.

create_default_group() and configfs_register_subsystem() don't need to
keep their reference around on success - configfs_create_dir() has pinned
the sucker already.  So we can drop the reference passed to
configfs_create_dir() (via configfs_attach_group(), etc.) both on success
and on failure.  On the removal side we no longer have the double references,
so we need an explicit dget() to compensate.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:09 -04:00
Al Viro
abe91a2aa9 switch configfs_detach_{group,item}() to passing dentry
... and there's no need to grab/drop it, or check for NULL - none
of the callers would even get there with NULL dentry and all of
them have the sucker pinned

Note that if sd is a directory configfs_dirent, we have sd->s_element
pointing to config_item with item->ci_dentry equal to sd->s_dentry.
Which is the only reason why detach_groups() gets away with using
the latter for locking the inode and the former for removal.

Aren't redundant data structures wonderful, for obfuscation if nothing
else?

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:09 -04:00
Al Viro
05a4d3d1b6 configfs_remove_dir(), detach_attrs(): switch to passing dentry
... and deal with grabbing/dropping it in the sole caller.
After that configfs_remove_dir() becomes an unconditional call of remove_dir(),
so we can fold them together.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2026-06-08 14:53:09 -04:00