Commit graph

1,398,251 commits

Author SHA1 Message Date
Tamir Duberstein
6a13057d50 rust: list: use fully qualified path
Use a fully qualified path rooted at `$crate` rather than relying on
imports in the invoking scope.

Tested-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Link: https://lore.kernel.org/r/20250709-list-no-offset-v4-4-a429e75840a9@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-07-19 23:18:18 +02:00
Tamir Duberstein
9e626edd7b rust: list: use consistent self parameter name
Refer to the self parameter of `impl_list_item!` by the same name used
in `impl_has_list_links{,_self_ptr}!`.

Reviewed-by: Christian Schrefl <chrisi.schrefl@gmail.com>
Tested-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Link: https://lore.kernel.org/r/20250709-list-no-offset-v4-3-a429e75840a9@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-07-19 23:18:18 +02:00
Tamir Duberstein
9cec86e4ae rust: list: use consistent type parameter style
Refer to the type parameters of `impl_has_list_links{,_self_ptr}!` by
the same name used in `impl_list_item!`. Capture type parameters of
`impl_list_item!` as `tt` using `{}` to match the style of all other
macros that work with generics.

Reviewed-by: Christian Schrefl <chrisi.schrefl@gmail.com>
Tested-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Link: https://lore.kernel.org/r/20250709-list-no-offset-v4-2-a429e75840a9@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-07-19 23:18:18 +02:00
Tamir Duberstein
e71d7e39be rust: list: simplify macro capture
Avoid manually capturing generics; use `ty` to capture the whole type
instead.

Reviewed-by: Christian Schrefl <chrisi.schrefl@gmail.com>
Tested-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Link: https://lore.kernel.org/r/20250709-list-no-offset-v4-1-a429e75840a9@gmail.com
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-07-19 23:18:18 +02:00
Miguel Ojeda
b0c7d8c9e8 rust: list: undo unintended replacement of method name
When we renamed `Opaque::raw_get` to `cast_into`, there was one
replacement that was not supposed to be there.

It does not cause an issue so far because it is inside a macro rule (the
`ListLinksSelfPtr` one) that is unused so far. However, it will start
to be used soon.

Thus fix it now.

Fixes: 64fb810bce ("rust: types: rename Opaque::raw_get to cast_into")
Reviewed-by: Tamir Duberstein <tamird@gmail.com>
Link: https://lore.kernel.org/r/20250719183649.596051-1-ojeda@kernel.org
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2025-07-19 23:18:16 +02:00
Ville Syrjälä
01e1575609 drm/i915: Don't pass crtc_state to foo_plane_ctl() & co.
The *_plane_ctl() functions only consider the state of the
plane (the state of the crtc is handled by the corresponding
*_plane_ctl_crtc()), and thus they don't need the crtc_state
at all. Don't pass it in.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717171353.23090-7-ville.syrjala@linux.intel.com
2025-07-19 20:55:38 +03:00
Ville Syrjälä
a9298b3bfe drm/i915: Remove unused dpt_total_entries()
dpt_total_entries() is not used anywhere. Remove it.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717171353.23090-6-ville.syrjala@linux.intel.com
2025-07-19 20:55:32 +03:00
Ville Syrjälä
c6ab589fee drm/i915: Use i915_vma_offset() in intel_dpt_offset()
Replace the open coded vma mm node stuff in intel_dpt_offset()
with i915_vma_offset(). This will also include the VT-d guard
in the result. Granted that should always be 0 for DPT, but
it seems prudent to include that in our DPT vma offset check
anyway.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717171353.23090-5-ville.syrjala@linux.intel.com
2025-07-19 20:55:25 +03:00
Ville Syrjälä
44ebdab4b6 drm/i915: Move the intel_dpt_offset() check into intel_plane_pin_fb()
Now that we handle all the other vma offset stuff in
intel_plane_pin_fb() it seems more proper to do the
dpt_vma offset check there as well.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717171353.23090-4-ville.syrjala@linux.intel.com
2025-07-19 20:55:19 +03:00
Ville Syrjälä
bc0c7fd732 drm/i915: Nuke intel_plane_ggtt_offset()
We don't really need the extra intel_plane_ggtt_offset() wrapper
anymore. Get rid of it.

v2: Deal with reuse_vma() hacks

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717171353.23090-3-ville.syrjala@linux.intel.com
2025-07-19 20:55:12 +03:00
Ville Syrjälä
971eb92b04 drm/i915: Precompute plane SURF address
Currently we pre-compute the plane surface/base address
partially (only for cursor_needs_physical cases) in
intel_plane_pin_fb() and finish the calculation in the
plane->update_arm(). Let's just precompute the whole thing
instead.

One benefit is that we get rid of all the vma offset stuff
from the low level plane code. Another use I have in mind
is including the surface address in the plane tracepoints,
which should make it easier to analyze display faults.

v2: Deal with xe reuse_vma() hacks
v3: use intel_plane_ggtt_offset() still in reuse_vma()

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250717203216.31258-1-ville.syrjala@linux.intel.com
2025-07-19 20:55:07 +03:00
Steven Rostedt
b5e8acc14d tracing: Add down_write(trace_event_sem) when adding trace event
When a module is loaded, it adds trace events defined by the module. It
may also need to modify the modules trace printk formats to replace enum
names with their values.

If two modules are loaded at the same time, the adding of the event to the
ftrace_events list can corrupt the walking of the list in the code that is
modifying the printk format strings and crash the kernel.

The addition of the event should take the trace_event_sem for write while
it adds the new event.

Also add a lockdep_assert_held() on that semaphore in
__trace_add_event_dirs() as it iterates the list.

Cc: stable@vger.kernel.org
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Link: https://lore.kernel.org/20250718223158.799bfc0c@batman.local.home
Reported-by: Fusheng Huang(黄富生)  <Fusheng.Huang@luxshare-ict.com>
Closes: https://lore.kernel.org/all/20250717105007.46ccd18f@batman.local.home/
Fixes: 110bf2b764 ("tracing: add protection around module events unload")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
2025-07-19 13:54:59 -04:00
Ville Syrjälä
615c8ec486 drm/i915/dsi: Don't set/read the DSI C clock divider on GLK
GLK doesn't use the DSI C clock at all, no need to program
the divider for it. Bspec even says: "Do not program this field".

However looks like some firmware versions program this and
some do not. In order to avoid bogus fastset mismatches
we should also filter it out during readout.

v2: Clear all the DSI C clock bits during readout (Jani)
    Adjust platform checks for new style, and add
    has_dsic_clock() while at it.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250718112928.27669-1-ville.syrjala@linux.intel.com
2025-07-19 20:48:09 +03:00
Linus Torvalds
bf61759db4 sched_ext: Fixes for v6.16-rc6
- Fix handling of migration disabled tasks in default idle selection.
 
 - update_locked_rq() called __this_cpu_write() spuriously with NULL when @rq
   was not locked. As the writes were spurious, it didn't break anything
   directly. However, the function could be called in a preemptible leading
   to a context warning in __this_cpu_write(). Skip the spurious NULL writes.
 
 - Selftest fix on UP.
 -----BEGIN PGP SIGNATURE-----
 
 iIQEABYKACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCaHvPZw4cdGpAa2VybmVs
 Lm9yZwAKCRCxYfJx3gVYGabMAP4jSAr4gYWEBOUaD9btwnPxZwlSiAEQtqBDBVRb
 /UunFAD/WBwUPk/u7BchLHjuH3sYW5gQb40kbtUnmNvB+RNUUgc=
 =3WAD
 -----END PGP SIGNATURE-----

Merge tag 'sched_ext-for-6.16-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext

Pull sched_ext fixes from Tejun Heo:

 - Fix handling of migration disabled tasks in default idle selection

 - update_locked_rq() called __this_cpu_write() spuriously with NULL
   when @rq was not locked. As the writes were spurious, it didn't break
   anything directly. However, the function could be called in a
   preemptible leading to a context warning in __this_cpu_write(). Skip
   the spurious NULL writes.

 - Selftest fix on UP

* tag 'sched_ext-for-6.16-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext:
  sched_ext: idle: Handle migration-disabled tasks in idle selection
  sched/ext: Prevent update_locked_rq() calls with NULL rq
  selftests/sched_ext: Fix exit selftest hang on UP
2025-07-19 10:40:30 -07:00
Danilo Krummrich
931d9251e4 rust: samples: dma: set DMA mask
Set a DMA mask for the `pci::Device` in the Rust DMA sample driver.

Reviewed-by: Abdiel Janulgue <abdiel.janulgue@gmail.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250716150354.51081-6-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-19 19:37:17 +02:00
Danilo Krummrich
256de48f2c rust: platform: implement the dma::Device trait
The platform bus is potentially capable of performing DMA, hence implement
the `dma:Device` trait for `platform::Device`.

Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250716150354.51081-5-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-19 19:37:17 +02:00
Danilo Krummrich
8eb698f547 rust: pci: implement the dma::Device trait
The PCI bus is potentially capable of performing DMA, hence implement
the `dma:Device` trait for `pci::Device`.

Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250716150354.51081-4-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-19 19:37:17 +02:00
Danilo Krummrich
101d66828a rust: dma: add DMA addressing capabilities
Implement `dma_set_mask()`, `dma_set_coherent_mask()` and
`dma_set_mask_and_coherent()` in the `dma::Device` trait.

Those methods are used to set up the device's DMA addressing
capabilities.

Reviewed-by: Abdiel Janulgue <abdiel.janulgue@gmail.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250716150354.51081-3-dakr@kernel.org
[ Add DmaMask::try_new(). - Danilo ]
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-19 19:36:51 +02:00
Peter Zijlstra
ba28549bad Locking changes for v6.17:
- General
   - Mark devm_mutex_init() as __must_check
   - Add #[must_use] to Lock::try_lock()
   - Remove OWNER_SPINNABLE in rwsem
   - Remove redundant #ifdefs in mutex
 - Lockdep
   - Avoid returning struct in lock_stats()
   - Change `static const` into enum for LOCKF_*_IRQ_*
   - Temporarily use synchronize_rcu_expedited() in
     lockdep_unregister_key() to speed things up.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEj5IosQTPz8XU1wRHSXnow7UH+rgFAmh3tqQACgkQSXnow7UH
 +rg48QgAn3bwSZzT+atlRW9czjiSzCjEIztI7NKZTHGu1ogzzhoE3EWHnnzzJTnO
 NkigQGTdJxsAitk0+p3J/wPFmijfHQ71MML/ll0SR2XFotzGlqg9B1ABuGbculKx
 oR5iUE+Zb+7HyypO4TnDlgFEJNAAl8EWc/Iv5mYYX4ZNh5tJgGS2sYtoM+95w5XU
 2mndaEU4rk1rkHJoowSF7pjqBwZgKdr+OfXcvhNHnj4aQxcKa/2FJ8CAhavzKIpF
 bEZFVWoguRU85G5O88qsxKc5OhxKsk2Qpbkso/bbVvlDG5jLFHCBnWlVxp06TuQk
 W5VlnsZ0mgUs9F49ZKAqfIWiJ3HNXA==
 =KYlP
 -----END PGP SIGNATURE-----

Merge tag 'lockdep-for-tip.2025.07.16' of git://git.kernel.org/pub/scm/linux/kernel/git/boqun/linux into locking/core

Locking changes for v6.17:

- General
  - Mark devm_mutex_init() as __must_check
  - Add #[must_use] to Lock::try_lock()
  - Remove OWNER_SPINNABLE in rwsem
  - Remove redundant #ifdefs in mutex
- Lockdep
  - Avoid returning struct in lock_stats()
  - Change `static const` into enum for LOCKF_*_IRQ_*
  - Temporarily use synchronize_rcu_expedited() in
    lockdep_unregister_key() to speed things up.

Signed-off-by: Peter Zijlstra <peterz@infradead.org>
2025-07-19 19:25:53 +02:00
Danilo Krummrich
d06d5f66f5 rust: dma: implement dma::Device trait
Add a trait that defines the DMA specific methods of devices.

The `dma::Device` trait is to be implemented by bus device
representations, where the underlying bus is capable of DMA, such as
`pci::Device` or `platform::Device`.

Reviewed-by: Abdiel Janulgue <abdiel.janulgue@gmail.com>
Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20250716150354.51081-2-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
2025-07-19 19:05:48 +02:00
Linus Torvalds
c64004df89 cgroup: Fixes for v6.16-rc6
An earlier commit to suppress a warning introduced a race condition where
 tasks can escape cgroup1 freezer. Revert the commit and simply remove the
 warning which was spurious to begin with.
 -----BEGIN PGP SIGNATURE-----
 
 iIQEABYKACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCaHvMvw4cdGpAa2VybmVs
 Lm9yZwAKCRCxYfJx3gVYGadfAP0cT4QXwtw0VXyiNr5PMqxQ74rYsngJ+NevRbod
 fK6hIwD/T+owQc/ivYp5/N/XUgpT+Ixp7YRj2RIzQbL6SPjzOwE=
 =IlrN
 -----END PGP SIGNATURE-----

Merge tag 'cgroup-for-6.16-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup

Pull cgroup fixes from Tejun Heo:
 "An earlier commit to suppress a warning introduced a race condition
  where tasks can escape cgroup1 freezer. Revert the commit and simply
  remove the warning which was spurious to begin with"

* tag 'cgroup-for-6.16-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
  Revert "cgroup_freezer: cgroup_freezing: Check if not frozen"
  sched,freezer: Remove unnecessary warning in __thaw_task
2025-07-19 10:00:47 -07:00
Linus Torvalds
bd4a1567b6 hwmon fixes for v6.16-rc7
- corsair-cpro: Validate the size of the received input buffer
 
 - ina238: Report energy in microjoules as expected by the ABI
 
 - pmbus/ucd9000: Fixed GPIO functionality
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEiHPvMQj9QTOCiqgVyx8mb86fmYEFAmh6fDIACgkQyx8mb86f
 mYERhQ//SIRTPBjPlfoiiI3pS47jiuP+lfldD+/Er/KLH/F/Hj047YuuHf4Ep1Xe
 lhw19FPF8/5q6q94umNebGc31WHdbB8ErijzxC2DHb2IebSpy3LDprdKEOnhV6Ic
 dwL2vVcf/n2dmeWzKrM0lGcnSlKyZw2YFEGm3mcWXI2emzqIbxZhcq4VWenhU1a2
 dNy8E3ZIg9s3zxlrtOsinbzMMvkbq5glnKqEr/cq4HmnAHi82KZdBBjGZHpsksbe
 9rQqxsf0Ciiv7ftMiQa2nQrpkXHmafMnpgcQ1deKnW92iwbKJWKo6pLfFD08OHVn
 lXR3uP4uge58ot88+1ECwffjFbT41BtOnZPx7H16wxl0k+z+Ii0mAqwiU6o9ftuV
 aaSwEmncMLWuh4K5SGE6zAFMlp5Zv4UyydBvBU1vwvcCvlvxS2xkauI/c/JzuhEZ
 K4h+ZVfrynHVlLX2tzIcO1L4gnQTbt9TfZil7o8UCekD/Xr9fyheEypAImLCio30
 orkmZrplMoLW+0X8ymhC27DCN8FWZX2Oc+GbdfIt/BNh/i/gkwxAUdSEPr1J3OD0
 DHwRViKXKAYUohBKxRzjdfcxEy/NMzfB6G60CQp1+tt87RyLFshkrD3QFxpdF5SK
 NrpXB4twg2/Gf86SjKDFalPh8DyF7Q0jahxvsaLEHVvLUOl3drc=
 =Ii5g
 -----END PGP SIGNATURE-----

Merge tag 'hwmon-for-v6.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:

 - corsair-cpro: Validate the size of the received input buffer

 - ina238: Report energy in microjoules as expected by the ABI

 - pmbus/ucd9000: Fixed GPIO functionality

* tag 'hwmon-for-v6.16-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (pmbus/ucd9000) Fix error in ucd9000_gpio_set
  hwmon: (ina238) Report energy in microjoules
  hwmon: (corsair-cpro) Validate the size of the received input buffer
2025-07-19 09:51:01 -07:00
Linus Torvalds
acc0bac1c6 Rust fixes for v6.16 (2nd)
Toolchain and infrastructure:
 
  - Fix build and modpost confusion for the upcoming Rust 1.89.0 release.
 
  - Clean objtool warning for the upcoming Rust 1.89.0 release by adding
    one more noreturn function.
 
 'kernel' crate:
 
  - Fix build error when using generics in the 'try_{,pin_}init!' macros.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEPjU5OPd5QIZ9jqqOGXyLc2htIW0FAmh61wEACgkQGXyLc2ht
 IW1YRBAAy9DnnDoRkH/RS2KJK7FF6iEDfF/ny0d4Fq2bISt8v2TDLYOvm1xkOKx3
 xQKb8SMw3Pcr2coze/CyOp67qHHF7Ff403gD8/e7sbfVA3Ny8iMT26FyipsdZENK
 KPDxBSIhrB2MFBswr1n/wQgTClYnW9yMX8FsLfZxFL9ELvluOpkS7RE67NF0yDfi
 NYUjr6NG7SD1fqLXJi8ekQNQDIQzj+eLFf40AE131SS8+bbrOdFVxSd/Hdx6C6qc
 8GWzE5ptlqWdaJWAfHRKt9iKvRli5maBJzM0z0ZQb/LOfK9MdcHnEDzEpzD91XA0
 rNq8fWNApfOrNfhz2FZJBYiZyOJtps0xkTBCfHMhafwMrVFLw0ghBccfWNd1P6Ly
 OSKc9xhyhs57rE75c/m8Sykta2ca/UCU9YZi7eWGOVKaMOoQMSJVF1qKx0pJpbH4
 +lr11S2hV4bm5E4v3MyziarYyNdh3W3diUN37Zl2JTVyDt2SwTT4kM/oKiDBvJTA
 hm1388zskz886yRtHO6f2hT1/k5eX1MgxGyiQQyLdONr78CNDSNcc1kqhvfCK/lF
 wtjvddecArt9/J5CwdfxLIGxQsB2FerMbpRW8+h0S3bMQC2ezg6CexzlYgR6ADdf
 4T7w/LJu58BL0e2UPoW7hgNW6wjtUf3go7hn16UFN3/S69eS2vQ=
 =mz3t
 -----END PGP SIGNATURE-----

Merge tag 'rust-fixes-6.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux

Pull Rust fixes from Miguel Ojeda:
 "Toolchain and infrastructure:

   - Fix build and modpost confusion for the upcoming Rust 1.89.0
     release

   - Clean objtool warning for the upcoming Rust 1.89.0 release by
     adding one more noreturn function

  'kernel' crate:

   - Fix build error when using generics in the 'try_{,pin_}init!'
     macros"

* tag 'rust-fixes-6.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux:
  rust: use `#[used(compiler)]` to fix build and `modpost` with Rust >= 1.89.0
  objtool/rust: add one more `noreturn` Rust function for Rust 1.89.0
  rust: init: Fix generics in *_init! macros
2025-07-19 09:22:26 -07:00
Nithyanantham Paramasivam
d29591d5b5 wifi: ath12k: Advertise encapsulation/decapsulation offload support to mac80211
Currently, the mac80211 layer handles construction and parsing
of 802.11 headers during packet transmission and reception.
Offloading encapsulation and decapsulation to hardware can
significantly enhance performance. Check the service bit to determine
if the firmware supports Ethernet offload. If supported, advertise the
capability to mac80211 to bypass software-based 802.11 header
processing.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00217-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Signed-off-by: Nithyanantham Paramasivam <nithyanantham.paramasivam@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250718025513.32982-4-nithyanantham.paramasivam@oss.qualcomm.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2025-07-19 09:14:45 -07:00
Nithyanantham Paramasivam
981050b918 wifi: ath12k: Fix TX status reporting to mac80211 when offload is enabled
Currently, the ath12k driver supports only the native Wi-Fi
frame format. In this mode, the ieee80211_tx_status() function
works correctly to report transmission status to mac80211, as
it retrieves station information using sta_info_get_by_addrs().

However, this method is not applicable for Ethernet-converted
packets, since sta_info_get_by_addrs() cannot extract station
information from such formats.

Retrieve station information using ath12k_peer_find_by_id() to
support all frame formats, including native Wi-Fi, raw, and Ethernet.
Report transmission status using ieee80211_tx_status_ext(), and
include rate information as part of the datapath TX status report.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00217-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Signed-off-by: Nithyanantham Paramasivam <nithyanantham.paramasivam@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250718025513.32982-3-nithyanantham.paramasivam@oss.qualcomm.com
[changed instances of { 0 } to {}]
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2025-07-19 09:14:45 -07:00
Michal Koutný
646faf36d7 cgroup: Add compatibility option for content of /proc/cgroups
/proc/cgroups lists only v1 controllers by default, however, this is
only enforced since the commit af000ce852 ("cgroup: Do not report
unavailable v1 controllers in /proc/cgroups") and there is software in
the wild that uses content of /proc/cgroups to decide on availability of
v2 (sic) controllers.

Add a boottime param that can bring back the previous behavior for
setups where the check in the software cannot be changed and it causes
e.g. unintended OOMs.

Also, this patch takes out cgrp_v1_visible from cgroup1_subsys_absent()
guard since it's only important to check which hierarchy (v1 vs v2) the
subsys is attached to. This has no effect on the printed message but
the code is cleaner since cgrp_v1_visible is really about mounted
hierarchies, not the content of /proc/cgroups.

Link: https://lore.kernel.org/r/b26b60b7d0d2a5ecfd2f3c45f95f32922ed24686.camel@decadent.org.uk
Fixes: af000ce852 ("cgroup: Do not report unavailable v1 controllers in /proc/cgroups")
Fixes: a0ab145322 ("cgroup: Print message when /proc/cgroups is read on v2-only system")
Signed-off-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
2025-07-19 06:14:44 -10:00
Nithyanantham Paramasivam
192c8e9a13 wifi: ath12k: Fix the handling of TX packets in Ethernet mode
Currently, in the transmit (TX) direction, EAPOL, QoS NULL,
and multicast frames are sent in native Wi-Fi (802.11) format.
However, when the virtual interface is configured in Ethernet
mode, transmission fails for packets enqueued in native Wi-fi format.

To address this issue, the firmware should be instructed to
treat these packets as RAW type packets, ensuring proper
handling even when the interface operates in Ethernet mode.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.4.1-00217-QCAHKSWPL_SILICONZ-1
Tested-on: WCN7850 hw2.0 PCI WLAN.HMT.1.0.c5-00481-QCAHMTSWPL_V1.0_V2.0_SILICONZ-3

Signed-off-by: Nithyanantham Paramasivam <nithyanantham.paramasivam@oss.qualcomm.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250718025513.32982-2-nithyanantham.paramasivam@oss.qualcomm.com
[fix indentation]
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
2025-07-19 09:14:44 -07:00
Dan Carpenter
5607f5ed3c gpio: sysfs: Fix an end of loop test in gpiod_unexport()
The test for "if (!desc_data)" does not work correctly because the list
iterator in a list_for_each_entry() loop is always non-NULL. If we don't
exit via a break, then it points to invalid memory.  Instead, use a tmp
variable for the list iterator and only set the "desc_data" when we have
found a match.

Fixes: 1cd53df733 ("gpio: sysfs: don't look up exported lines as class devices")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/747545bf-05f0-4f89-ba77-cb96bf9041f1@sabinyo.mountain
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
2025-07-19 18:06:47 +02:00
Bartosz Golaszewski
0bbd90c2c6 pinctrl: ingenic: use pinmux_generic_add_pinfunction()
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Paul Cercueil <paul@crapouillou.net>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-7-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 18:00:28 +02:00
Bartosz Golaszewski
adb9e21052 pinctrl: keembay: use pinmux_generic_add_pinfunction()
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-6-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 18:00:21 +02:00
Bartosz Golaszewski
8f8fe52c5a pinctrl: mediatek: moore: use pinmux_generic_add_pinfunction()
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-5-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 18:00:14 +02:00
Bartosz Golaszewski
7d7883db6e pinctrl: airoha: use pinmux_generic_add_pinfunction()
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-4-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 18:00:06 +02:00
Bartosz Golaszewski
cc154c00a6 pinctrl: equilibrium: use pinmux_generic_add_pinfunction()
Instead of passing individual fields of struct pinfunction to
pinmux_generic_add_function(), use pinmux_generic_add_pinfunction() and
pass the entire structure directly.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-3-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 17:59:57 +02:00
Bartosz Golaszewski
431b68ae73 pinctrl: provide pinmux_generic_add_pinfunction()
Several drivers call pinmux_generic_add_function() passing it the
contents of struct pinfunction as first three arguments. We can make
this shorter by simply providing an interface allowing to pass the
address of struct pinfunction directly when adding a new function.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-2-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 17:59:48 +02:00
Bartosz Golaszewski
dd47155a0e pinctrl: pinmux: open-code PINCTRL_FUNCTION_DESC()
This macro is only used in one place and pin function descriptors should
only be created by pinmux core so there's no point in exposing it to
other pinctrl users. Remove the macro and hand-code its functionality.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/20250709-pinctrl-gpio-pinfuncs-v2-1-b6135149c0d9@linaro.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 17:59:35 +02:00
Linus Torvalds
1c6aa1121e vfs-6.16-rc7.fixes
-----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCaHt3nAAKCRCRxhvAZXjc
 ojOmAP9nBSXSP2YvyUWPuKJc/wra27gRSEOQjXQS4j0ay6xLbAD/bO3AKMOWAUya
 EnUzZDe29z7TbnGW1PlE93cX9oXWjQc=
 =Gt4r
 -----END PGP SIGNATURE-----

Merge tag 'vfs-6.16-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull vfs fixes from Christian Brauner:

 - Fix a memory leak in fcntl_dirnotify()

 - Raise SB_I_NOEXEC on secrement superblock instead of messing with
   flags on the mount

 - Add fsdevel and block mailing lists to uio entry. We had a few
   instances were very questionable stuff was added without either block
   or the VFS being aware of it

 - Fix netfs copy-to-cache so that it performs collection with
   ceph+fscache

 - Fix netfs race between cache write completion and ALL_QUEUED being
   set

 - Verify the inode mode when loading entries from disk in isofs

 - Avoid state_lock in iomap_set_range_uptodate()

 - Fix PIDFD_INFO_COREDUMP check in PIDFD_GET_INFO ioctl

 - Fix the incorrect return value in __cachefiles_write()

* tag 'vfs-6.16-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
  MAINTAINERS: add block and fsdevel lists to iov_iter
  netfs: Fix race between cache write completion and ALL_QUEUED being set
  netfs: Fix copy-to-cache so that it performs collection with ceph+fscache
  fix a leak in fcntl_dirnotify()
  iomap: avoid unnecessary ifs_set_range_uptodate() with locks
  isofs: Verify inode mode when loading from disk
  cachefiles: Fix the incorrect return value in __cachefiles_write()
  secretmem: use SB_I_NOEXEC
  coredump: fix PIDFD_INFO_COREDUMP ioctl check
2025-07-19 08:47:59 -07:00
Bartosz Golaszewski
63149542dc pinctrl: ma35: use new GPIO line value setter callbacks
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/20250717125758.53141-1-brgl@bgdev.pl
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2025-07-19 17:36:40 +02:00
Mickaël Salaün
6803b6ebb8
landlock: Fix cosmetic change
This line removal should not be there and it makes it more difficult to
backport the following patch.

Cc: Günther Noack <gnoack@google.com>
Cc: Konstantin Meskhidze <konstantin.meskhidze@huawei.com>
Fixes: 7a11275c37 ("landlock: Refactor layer helpers")
Link: https://lore.kernel.org/r/20250719104204.545188-2-mic@digikod.net
Signed-off-by: Mickaël Salaün <mic@digikod.net>
2025-07-19 12:44:16 +02:00
Alexander Usyskin
631ae0c010 mei: more prints with client prefix
Use client-aware print macro instead of usual device print in more
places to expand debug-ability.
The client-aware print macro prefixes the usual device print with
current connection endpoints.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Link: https://lore.kernel.org/r/20250717141112.1696482-3-alexander.usyskin@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-19 09:57:55 +02:00
Alexander Usyskin
3fd97f2292 mei: bus: use cldev in prints
For unifomity, print using client device on bus where possible.

Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Link: https://lore.kernel.org/r/20250717141112.1696482-2-alexander.usyskin@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-07-19 09:57:53 +02:00
Greg Kroah-Hartman
34120f7fa5 IIO: New device support, features, late breaking fixes and cleanup for 6.17
The normal mixed bag. A few more fixes than usual as I failed to send
 them out earlier.
 
 New device support
 ==================
 
 adi,ad4080
 - New driver for this high speed ADC. Includes extensions to iio-backends
   necessary to support filter config, variable data lands and data
   alignment control.
 adi,ad4170-4
 - New driver for this 24-bit very feature rich ADC suited for weigh scale
   and thermocouple applications.
 adi,ad7405
 - New driver for this single channel isolated ADC with backend support
   (adi-axi-adc)
 google,cros_ec_activity
 - Add activity detection to the existing set of cros_ec drivers covering
   both human body and significant motion detection.
 mediatek,mt6359
 - Add support for MT6363 and MT6373 PMIC Auxiliary ADCs.
 nicera,d3-323-aa
 - New driver for this configurable Passive InfraRed sensor.
 
 Device ID only
 ==============
 
 mediatek,mt7981-auxadc
 - Add ID to mt2701 driver as fully compatible with mt7986-auxadc.
 rohm,bu79100g
 - Add ID to ad7476 driver as fully compatible with TI ADS7866.
 
 Features
 ========
 Core
 - New in_voltageY_convdelay to allow for devices to control timing
   offsets between sampling different channels.
 adi,ad-sigma-delta-library
 - Support SPI offload (later fix for missing Kconfig dependency)
 adi,ad4851
 - SPI 3-wire support.
 adi,ad7606
 - Power supply control.
 - convdelay and calibbias support for calibration purposes.
 - gain calibration support based on external filter resistance provided
   from device tree.
 adi,ad7768-1
 - Add output regulator for VCM output, typically used for preconditioning
   circuits.
 - Add gpio controller for the 4 GPIOs.
 - Multiple scan type support to enable 16-bit modes.
 - Support synchronization over SPI.
 - Filter type and oversampling ratio control.
 - Low pass filter cut off read only attribute.
 adi,adxl313
 - FIFO support
 - DC activity, inactivity detection with power-save on inactivity
 - AC coupled activity detection
 - Documentation for this complex driver.
 - debugfs register access.
 adi,adxl345
 - Sampling frequency and sensor range controls.
 bosch,bmi270
 - Add step counter support.
 invensense,icm42600
 - Wake on motion support.
 
 Cleanup and fixes
 =================
 
 backend
 - Drop unused parameter from iio_backend_ovesampling_ratio_set()
 docs
 - Fix ABI docs around I and Q modifiers.
 treewide
 - Switch remaining drives to use maple tree regcache.
 - Drop use of DRIVER_NAME style definitions when only used in one
   place.
 - Drop unused export.h includes.
 - Use = { } in place of memset in various drivers.
 - Constify various info structures and related.
 - Switch some drivers from array of chip_info structures to individual
   named structures.
 adi,ad-sigma_delta library
 - Fix over allocation of scan buffer. (bits/bytes confusion)
 - Sort includes and apply iwyu principles to ensure sensible set.
 - Use u8 instead of uint8_t
 - Replace hard coded type sizes with sizeof() and BITS_TO_BYTES() as
   appropriate.
 - Factor out setting of read address to reduce duplication.
 - Switch to buffer predisable so error handling on buffer enable
   functions correctly (balanced against postenable).
 adi,ad4000
 - Don't use sift_right() on an unsigned value.
 adi,ad7173
 - Add missing check on spi_setup() succeeding.
 - Simplify clock enable disable code using devm_clk_get_enabled()
 - Fix channel index for syscalib_mode
 - Fix number of configuration slots for some devics.
 - Fix the channel used for calibration.
 - Fix setting ODR up in probe.
 adi,ad7380
 - Drop unused oversampling_ratio getter function call as value never
   used.
 adi,ad7606
 - Exit if invalid dt_schema encountered rather than carrying on with
   unknown config.
 adi,ad7768-1
 - Ensure SYNC_IN pulse is long enough.
 - Switch sampling_frequency_available to read_avail() callback.
 adi,ada4250
 - Ensuring a dma-safe buffer for regmap_bulk_read()
 - Use a local dev variable to simplify code
 - Relax chip ID matching to allow for fallback dt compatibles.
 - Make use of devm_regulator_get_enabled_read_voltage() to replace
   equivalent code.
 - Shuffle elements around in struct to improve logical groupings and
   reduce holes.
 - Use dev_err_probe()
 adi,adxl313
 - Use regcache to reduce traffic.
 - Factor out enabling of measurement.
 adi,adxl345
 - Drop irq from struct as only used locally in code
 - Simplify measure enable function using regmap_update_bits()
 - Replace some magic numbers by units.h defines
 - Simplify interrupt mapping code
 - Simplify FIFO read out.
 adi,axi-dac
 - Factor out code to check for bus free to reduce duplication.
 avago,apds9306
 - Use a helper to get register address in both get and set functions.
 bosch,bmi160+bmi270
 - Ensure triggers suspended and resumed correctly.
 bosch,bmo055
 - Fix theoretical OOB acces to hw_xlate array.
 freescale,vf610
 - Drop -ENOMEM error message as plenty of existing prints if memory
   allocation fails.
 - Use dev_err_probe() and devm_clk_geT_enabled() to simplify probe().
 kionix,kx022a
 - Apply include what you use principles to includes.
 invensense,itg3200
 - Add missing dt-binding for this gyroscope.
 invensense,icm42600
 - Switch from int64_t and similar to s64 and other kernel types.
 - Simplify arrangement of DMA safe buffers and potentially reduce
   structure size a little.
 invensense,mpu6050
 - Reduce duplication in aux read/write code.
 - Use sysfs_emit() to replace scnprintf()
 murata,irsd200
 - Drop duplicate printing of ret in dev_err_probe()
 nxp,lpc3220-adc
 - Add missing clocks property to dt-binding.
 st,spear600
 - Convert dt-binding that got left behind in staging to yaml in the main
   tree.
 st,stm32-adc
 - Use dev_fwnode() rather than directly accessing the of_node.
 vti,sca3000
 - Use direct returns instead of gotos where simple.
 
 Various other minor typo and white space fixes.
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCgAvFiEEbilms4eEBlKRJoGxVIU0mcT0FogFAmh572MRHGppYzIzQGtl
 cm5lbC5vcmcACgkQVIU0mcT0FohKfw//Qox/G+yTyTSKX0CleP8sFHt6Dmanr5Zc
 Q0jmsu0W3kVjj+jQlHw/5ivcRJI6/AE6WFjPhrmfG76KhnfiruDuu74P1HbmY4Nz
 5l7M6RgZZAu9WGQ8oSYpPobkZS1H8X2mFYSF1sdQpG7NWE5n1NvUluvnUrb3k5Z9
 qPBa1H6MsLkrzh8FubnwvgzWBGzmXa8hJBth40wlEoGcBIzWuqhybnts5levWUcq
 /57d+YYscFR3VrVXWu9PWxWVTdA8LElOmPGf++4ftpLRxuwtlrQ/9YJsgwr+Wm6+
 6l+lc3qQ9y6WZahqCwoqg8uVoGaY17NOjlOTZGwvOTEsX/kNnsg2XUMWl7azSRKk
 8pfJV3jM8HgKJx70c5owdjIPl++3eo9PKLwosOOMm2T+f0jKdeJGIe8ziaEvy9nP
 JcgsI3Q09lopr96OMB56JtAyx9tbtt8wLydQT6SpqNJiDNJTiX0kr0TBp9zHnlS9
 tOfkKB/G9/UqsOv0uiZ0H/fqYK4T0G71Gfuc2Cbq+YMXEoIzTDrcI8OVpOxzzC/s
 i73CIy6fsfSKcPNna889ukWE3pIqHhMhcVYmYS9Pf00YuhZvedpZ7B+vRQa/sqe3
 4zGxPCScY7N0MyWDOKRVV2v4tCNtW3WeBVJjPc23WchP9XvccrBe23lH6iK/TnB6
 J7r11JYzOkY=
 =sY2q
 -----END PGP SIGNATURE-----

Merge tag 'iio-for-6.17a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio into char-misc-next

Jonathan writes:

IIO: New device support, features, late breaking fixes and cleanup for 6.17

The normal mixed bag. A few more fixes than usual as I failed to send
them out earlier.

New device support
==================

adi,ad4080
- New driver for this high speed ADC. Includes extensions to iio-backends
  necessary to support filter config, variable data lands and data
  alignment control.
adi,ad4170-4
- New driver for this 24-bit very feature rich ADC suited for weigh scale
  and thermocouple applications.
adi,ad7405
- New driver for this single channel isolated ADC with backend support
  (adi-axi-adc)
google,cros_ec_activity
- Add activity detection to the existing set of cros_ec drivers covering
  both human body and significant motion detection.
mediatek,mt6359
- Add support for MT6363 and MT6373 PMIC Auxiliary ADCs.
nicera,d3-323-aa
- New driver for this configurable Passive InfraRed sensor.

Device ID only
==============

mediatek,mt7981-auxadc
- Add ID to mt2701 driver as fully compatible with mt7986-auxadc.
rohm,bu79100g
- Add ID to ad7476 driver as fully compatible with TI ADS7866.

Features
========
Core
- New in_voltageY_convdelay to allow for devices to control timing
  offsets between sampling different channels.
adi,ad-sigma-delta-library
- Support SPI offload (later fix for missing Kconfig dependency)
adi,ad4851
- SPI 3-wire support.
adi,ad7606
- Power supply control.
- convdelay and calibbias support for calibration purposes.
- gain calibration support based on external filter resistance provided
  from device tree.
adi,ad7768-1
- Add output regulator for VCM output, typically used for preconditioning
  circuits.
- Add gpio controller for the 4 GPIOs.
- Multiple scan type support to enable 16-bit modes.
- Support synchronization over SPI.
- Filter type and oversampling ratio control.
- Low pass filter cut off read only attribute.
adi,adxl313
- FIFO support
- DC activity, inactivity detection with power-save on inactivity
- AC coupled activity detection
- Documentation for this complex driver.
- debugfs register access.
adi,adxl345
- Sampling frequency and sensor range controls.
bosch,bmi270
- Add step counter support.
invensense,icm42600
- Wake on motion support.

Cleanup and fixes
=================

backend
- Drop unused parameter from iio_backend_ovesampling_ratio_set()
docs
- Fix ABI docs around I and Q modifiers.
treewide
- Switch remaining drives to use maple tree regcache.
- Drop use of DRIVER_NAME style definitions when only used in one
  place.
- Drop unused export.h includes.
- Use = { } in place of memset in various drivers.
- Constify various info structures and related.
- Switch some drivers from array of chip_info structures to individual
  named structures.
adi,ad-sigma_delta library
- Fix over allocation of scan buffer. (bits/bytes confusion)
- Sort includes and apply iwyu principles to ensure sensible set.
- Use u8 instead of uint8_t
- Replace hard coded type sizes with sizeof() and BITS_TO_BYTES() as
  appropriate.
- Factor out setting of read address to reduce duplication.
- Switch to buffer predisable so error handling on buffer enable
  functions correctly (balanced against postenable).
adi,ad4000
- Don't use sift_right() on an unsigned value.
adi,ad7173
- Add missing check on spi_setup() succeeding.
- Simplify clock enable disable code using devm_clk_get_enabled()
- Fix channel index for syscalib_mode
- Fix number of configuration slots for some devics.
- Fix the channel used for calibration.
- Fix setting ODR up in probe.
adi,ad7380
- Drop unused oversampling_ratio getter function call as value never
  used.
adi,ad7606
- Exit if invalid dt_schema encountered rather than carrying on with
  unknown config.
adi,ad7768-1
- Ensure SYNC_IN pulse is long enough.
- Switch sampling_frequency_available to read_avail() callback.
adi,ada4250
- Ensuring a dma-safe buffer for regmap_bulk_read()
- Use a local dev variable to simplify code
- Relax chip ID matching to allow for fallback dt compatibles.
- Make use of devm_regulator_get_enabled_read_voltage() to replace
  equivalent code.
- Shuffle elements around in struct to improve logical groupings and
  reduce holes.
- Use dev_err_probe()
adi,adxl313
- Use regcache to reduce traffic.
- Factor out enabling of measurement.
adi,adxl345
- Drop irq from struct as only used locally in code
- Simplify measure enable function using regmap_update_bits()
- Replace some magic numbers by units.h defines
- Simplify interrupt mapping code
- Simplify FIFO read out.
adi,axi-dac
- Factor out code to check for bus free to reduce duplication.
avago,apds9306
- Use a helper to get register address in both get and set functions.
bosch,bmi160+bmi270
- Ensure triggers suspended and resumed correctly.
bosch,bmo055
- Fix theoretical OOB acces to hw_xlate array.
freescale,vf610
- Drop -ENOMEM error message as plenty of existing prints if memory
  allocation fails.
- Use dev_err_probe() and devm_clk_geT_enabled() to simplify probe().
kionix,kx022a
- Apply include what you use principles to includes.
invensense,itg3200
- Add missing dt-binding for this gyroscope.
invensense,icm42600
- Switch from int64_t and similar to s64 and other kernel types.
- Simplify arrangement of DMA safe buffers and potentially reduce
  structure size a little.
invensense,mpu6050
- Reduce duplication in aux read/write code.
- Use sysfs_emit() to replace scnprintf()
murata,irsd200
- Drop duplicate printing of ret in dev_err_probe()
nxp,lpc3220-adc
- Add missing clocks property to dt-binding.
st,spear600
- Convert dt-binding that got left behind in staging to yaml in the main
  tree.
st,stm32-adc
- Use dev_fwnode() rather than directly accessing the of_node.
vti,sca3000
- Use direct returns instead of gotos where simple.

Various other minor typo and white space fixes.

* tag 'iio-for-6.17a' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (201 commits)
  iio: adc: ad_sigma_delta: Select IIO_BUFFER_DMAENGINE and SPI_OFFLOAD
  iio: adc: ad7173: fix setting ODR in probe
  iio: adc: ad7173: fix calibration channel
  iio: adc: ad7173: fix num_slots
  iio: adc: ad7173: fix channels index for syscalib_mode
  iio: adc: ad_sigma_delta: change to buffer predisable
  iio: ABI: fix correctness of I and Q modifiers
  iio: Add driver for Nicera D3-323-AA PIR sensor
  dt-bindings: iio: proximity: Add Nicera D3-323-AA PIR sensor
  dt-bindings: vendor-prefixes: Add Nicera
  iio: dac: vf610: Simplify with devm_clk_get_enabled()
  iio: adc: vf610: Simplify with dev_err_probe
  iio: adc: vf610: Drop -ENOMEM error message
  iio: imu: bno055: make bno055_sysfs_attr const
  iio: imu: bno055: fix OOB access of hw_xlate array
  dt-bindings: iio: adc: Add support for MT7981
  iio: accel: kionix-kx022a: Apply approximate iwyu principles to includes
  iio: adc: ad4170-4: Add support for weigh scale, thermocouple, and RTD sens
  iio: adc: ad4170-4: Add support for internal temperature sensor
  iio: adc: ad4170-4: Add GPIO controller support
  ...
2025-07-19 09:42:35 +02:00
Greg Kroah-Hartman
c7f37f8f3b FPGA Manager changes for 6.17-rc1
- Marek's change fixes the incorrect use of sgtable calls.
 
 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-----
 
 iIkEABYIADEWIQSgSJpClIeaArXyudb8twOBpKCM2gUCaHfSThMceWlsdW4ueHVA
 aW50ZWwuY29tAAoJEPy3A4GkoIzavHMA/j/jKRa+IK6ElGlnAcknbKn9fZWmIrxB
 thkLwV49jGdqAP9p4P+NiCY5nUYfA/erlSyIs8WM50V51NRikRKXjjwwDQ==
 =TDKf
 -----END PGP SIGNATURE-----

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

Xu writes:

FPGA Manager changes for 6.17-rc1

- Marek's change fixes the incorrect use of sgtable calls.

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-6.17-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/fpga/linux-fpga:
  zynq_fpga: use sgtable-based scatterlist wrappers
2025-07-19 09:41:06 +02:00
Greg Kroah-Hartman
60c46a0bd3 MHI Host
========
 
 - Make local functions static (as they should be).
 
 - Fix the modem name for Foxconn T99W640 modem.
 
 - Disable runtime PM for Qcom QDU100 modem as it doesn't support M3 state.
 
 - Fix endianness of BHI vector table to allow MHI to work correctly on big
   endian platforms like PowerPC.
 
 - Add modem support for Semtech EM929x, Foxconn T99W696 and Telit FN990B40
   modems.
 
 - Fix the OOB access to Transfer Ring Element (TRE) by hardening the checks in
   parse_xfer_event().
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEZ6VDKoFIy9ikWCeXVZ8R5v6RzvUFAmh7EngACgkQVZ8R5v6R
 zvV1aQf+OBLFMrCUMH0pr7pR6VxJkqpwkr1Ni/5nFVYVIfXIEWUaMYH0rf/sJHTG
 JPcRNqlSl6lWsq/zZe3nHtV+DXm4JICb2oebE6IrfXNIWkrMrzzoLKDAfIbQ55Wa
 hvmBcAgCIrzBG0cwVFBZbhsUUnT1DDQcxGTrG2iwciI23B0K0Lywxtq0eMf0uOKK
 EUxrXNelBfp23ZhGPwz9N97F6b547indMmc0XTHysNIvM+qvGsgbFWYpFj2JuOf8
 wMP7TYTm0Jb5nflu8sVTUSYqkrLIaywVKXbhWuCoUxC7fzvRG85tMWjjK0CMkyt+
 RhKz8OirkGR8mTmA4XLvNCgHwBvq4Q==
 =H1H0
 -----END PGP SIGNATURE-----

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

Manivannan writes:

MHI Host
========

- Make local functions static (as they should be).

- Fix the modem name for Foxconn T99W640 modem.

- Disable runtime PM for Qcom QDU100 modem as it doesn't support M3 state.

- Fix endianness of BHI vector table to allow MHI to work correctly on big
  endian platforms like PowerPC.

- Add modem support for Semtech EM929x, Foxconn T99W696 and Telit FN990B40
  modems.

- Fix the OOB access to Transfer Ring Element (TRE) by hardening the checks in
  parse_xfer_event().

* tag 'mhi-for-v6.17' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mani/mhi:
  bus: mhi: host: pci_generic: Add Telit FN990B40 modem support
  bus: mhi: host: Detect events pointing to unexpected TREs
  bus: mhi: host: pci_generic: Add Foxconn T99W696 modem
  bus: mhi: host: Use str_true_false() helper
  bus: mhi: host: pci_generic: Add support for EM929x and set MRU to 32768 for better performance.
  bus: mhi: host: Fix endianness of BHI vector table
  bus: mhi: host: pci_generic: Disable runtime PM for QDU100
  bus: mhi: host: pci_generic: Fix the modem name of Foxconn T99W640
  bus: mhi: host: Make local functions static
2025-07-19 09:37:37 +02:00
Linus Torvalds
4871b7cb27 four smb3 client fixes
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCgAdFiEE6fsu8pdIjtWE/DpLiiy9cAdyT1EFAmh6+XEACgkQiiy9cAdy
 T1G7TgwAtVHE3Dez70Yz4NcDAS5QPZgK8OTaRlUSSiSmgXMeRvXIzKWNBS+1TZQ6
 Ih4iDJ3VwZ2gINM6egCSCkjxy1Ab02Du4qURa3BLmZ31wjJIK17V8SboUww+3xaT
 xUfUSTKJPJjsqaAbqvWg6zIpwod+zTy27uaUoUitko5ELKMWpBumSxH7vWLq5klr
 AIJgveUASEAmkZGwBr2fqPfdyWkNiPgYo6anSiU05J/Ga7s1RVU9WosevHbSsqAh
 YUaH3N6ZOm6F3LHVYJGrFJVp/313T9FHR/sE+rbf8xAq6TxWWFWZanYcsMQoKy8c
 P/wgWLJgVfNu2tsO7pSoydSpIPov5p0jHXr2erKkUaSnUk42+48Gsb/JS5Ne6u0h
 qkKUdRu6iOuXFvjCq0yfQ+9KQysad/uknNfcRj1EujFArv4qzjDzGpkYckN7uRZL
 s2ENtzd6ljNKwROiyduFmT2WLYxAhivB8XUo1zt2BtlzCEorIIOgjHIcQXzZGc5O
 gwSuxQTf
 =IWDL
 -----END PGP SIGNATURE-----

Merge tag 'v6.16-rc6-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6

Pull smb client fixes from Steve French:

 - fix creating special files to Samba when using SMB3.1.1 POSIX
   Extensions

 - fix incorrect caching on new file creation with directory leases
   enabled

 - two use after free fixes: one in oplock_break and one in async
   decryption

* tag 'v6.16-rc6-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
  Fix SMB311 posix special file creation to servers which do not advertise reparse support
  smb: invalidate and close cached directory when creating child entries
  smb: client: fix use-after-free in crypt_message when using async crypto
  smb: client: fix use-after-free in cifs_oplock_break
2025-07-18 22:32:30 -07:00
Paul E. McKenney
954c0d7412 srcu: Add guards for SRCU-fast readers
This adds the usual scoped_guard(srcu_fast, &my_srcu) and
guard(srcu_fast)(&my_srcu).

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Neeraj Upadhyay (AMD) <neeraj.upadhyay@kernel.org>
2025-07-19 10:17:56 +05:30
Daniele Palmas
00559ba3ae bus: mhi: host: pci_generic: Add Telit FN990B40 modem support
Add SDX72 based modem Telit FN990B40, reusing FN920C04 configuration.

01:00.0 Unassigned class [ff00]: Qualcomm Device 0309
        Subsystem: Device 1c5d:201a

Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
[mani: added sdx72 in the comment to identify the chipset]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20250716091836.999364-1-dnlplm@gmail.com
2025-07-19 08:55:02 +05:30
Youssef Samir
5bd398e20f bus: mhi: host: Detect events pointing to unexpected TREs
When a remote device sends a completion event to the host, it contains a
pointer to the consumed TRE. The host uses this pointer to process all of
the TREs between it and the host's local copy of the ring's read pointer.
This works when processing completion for chained transactions, but can
lead to nasty results if the device sends an event for a single-element
transaction with a read pointer that is multiple elements ahead of the
host's read pointer.

For instance, if the host accesses an event ring while the device is
updating it, the pointer inside of the event might still point to an old
TRE. If the host uses the channel's xfer_cb() to directly free the buffer
pointed to by the TRE, the buffer will be double-freed.

This behavior was observed on an ep that used upstream EP stack without
'commit 6f18d174b7 ("bus: mhi: ep: Update read pointer only after buffer
is written")'. Where the device updated the events ring pointer before
updating the event contents, so it left a window where the host was able to
access the stale data the event pointed to, before the device had the
chance to update them. The usual pattern was that the host received an
event pointing to a TRE that is not immediately after the last processed
one, so it got treated as if it was a chained transaction, processing all
of the TREs in between the two read pointers.

This commit aims to harden the host by ensuring transactions where the
event points to a TRE that isn't local_rp + 1 are chained.

Fixes: 1d3173a3ba ("bus: mhi: core: Add support for processing events from client device")
Signed-off-by: Youssef Samir <quic_yabdulra@quicinc.com>
[mani: added stable tag and reworded commit message]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Cc: stable@vger.kernel.org
Link: https://patch.msgid.link/20250714163039.3438985-1-quic_yabdulra@quicinc.com
2025-07-19 08:55:02 +05:30
Slark Xiao
0d63055e14 bus: mhi: host: pci_generic: Add Foxconn T99W696 modem
T99W696 modem is based on Qualcomm SDX61 chipset, which is an economic
version compared to the baseline SDX62/SDX65 chipsets. Add support for it
by introducing a new 'mhi_channel_config'. Since this modem supports the
NMEA channel, a new config is needed.

Signed-off-by: Slark Xiao <slark_xiao@163.com>
[mani: reworded commit message]
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20250528092232.16111-1-slark_xiao@163.com
2025-07-19 08:55:02 +05:30
Yumeng Fang
e99f55e438 bus: mhi: host: Use str_true_false() helper
Remove hard-coded strings by using the str_true_false() helper.

Signed-off-by: Yumeng Fang <fang.yumeng@zte.com.cn>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20250623202814633ukJqUDLU7BRlLLhvWkbD7@zte.com.cn
2025-07-19 08:55:02 +05:30
Adam Xue
b484fa61ac bus: mhi: host: pci_generic: Add support for EM929x and set MRU to 32768 for better performance.
Add MHI controller config for EM929x. It uses the same configuration
as EM919x. Also set the MRU to 32768 to improve downlink throughput.

02:00.0 Unassigned class [ff00]: Qualcomm Technologies, Inc Device 0308
	Subsystem: Device 18d7:0301

Signed-off-by: Adam Xue <zxue@semtech.com>
Signed-off-by: Manivannan Sadhasivam <mani@kernel.org>
Link: https://patch.msgid.link/20250528175943.12739-1-zxue@semtech.com
2025-07-19 08:55:02 +05:30