Skip to content

Commit f9df47a

Browse files
committed
spi: fsl-lpspi: fix DMA termination issues
Carlos Song (OSS) <carlos.song@oss.nxp.com> says: This series fixes two issues in the fsl-lpspi DMA transfer error paths. Patch 1 replaces the deprecated dmaengine_terminate_all() with dmaengine_terminate_sync() across all error paths in fsl_lpspi_dma_transfer(). Patch 2 fixes a missing RX DMA channel termination when TX descriptor preparation fails. Since the RX channel is already submitted and issued before the TX descriptor is prepared, returning -EINVAL without terminating the RX channel leaves it running against buffers that the SPI core will unmap, potentially causing memory corruption. Link: https://patch.msgid.link/20260525062357.3191349-1-carlos.song@oss.nxp.com
2 parents bd7e984 + 01980b5 commit f9df47a

992 files changed

Lines changed: 14471 additions & 5760 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.mailmap

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,9 @@ Enric Balletbo i Serra <eballetbo@kernel.org> <enric.balletbo@collabora.com>
263263
Enric Balletbo i Serra <eballetbo@kernel.org> <eballetbo@iseebcn.com>
264264
Erik Kaneda <erik.kaneda@intel.com> <erik.schmauss@intel.com>
265265
Ethan Carter Edwards <ethan@ethancedwards.com> Ethan Edwards <ethancarteredwards@gmail.com>
266-
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@microchip.com>
267-
Eugen Hristev <eugen.hristev@linaro.org> <eugen.hristev@collabora.com>
266+
Eugen Hristev <ehristev@kernel.org> <eugen.hristev@microchip.com>
267+
Eugen Hristev <ehristev@kernel.org> <eugen.hristev@linaro.org>
268+
Eugen Hristev <ehristev@kernel.org> <eugen.hristev@collabora.com>
268269
Evgeniy Polyakov <johnpol@2ka.mipt.ru>
269270
Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> <ezequiel@collabora.com>
270271
Faith Ekstrand <faith.ekstrand@collabora.com> <jason@jlekstrand.net>
@@ -339,6 +340,7 @@ Henrik Rydberg <rydberg@bitmath.org>
339340
Herbert Xu <herbert@gondor.apana.org.au>
340341
Huacai Chen <chenhuacai@kernel.org> <chenhc@lemote.com>
341342
Huacai Chen <chenhuacai@kernel.org> <chenhuacai@loongson.cn>
343+
Ian Ray <ian.ray@gehealthcare.com> <ian.ray@ge.com>
342344
Ignat Korchagin <ignat@linux.win> <ignat@cloudflare.com>
343345
Igor Korotin <igor.korotin@linux.dev> <igor.korotin.linux@gmail.com>
344346
Ike Panhc <ikepanhc@gmail.com> <ike.pan@canonical.com>
@@ -584,6 +586,8 @@ Mayuresh Janorkar <mayur@ti.com>
584586
Md Sadre Alam <quic_mdalam@quicinc.com> <mdalam@codeaurora.org>
585587
Miaoqing Pan <quic_miaoqing@quicinc.com> <miaoqing@codeaurora.org>
586588
Michael Buesch <m@bues.ch>
589+
Michal Grzeschik <mgr@kernel.org> <m.grzeschik@pengutronix.de>
590+
Michal Grzeschik <mgr@kernel.org> <mgr@pengutronix.de>
587591
Michael Riesch <michael.riesch@collabora.com> <michael.riesch@wolfvision.net>
588592
Michal Simek <michal.simek@amd.com> <michal.simek@xilinx.com>
589593
Michel Dänzer <michel@tungstengraphics.com>

Documentation/.renames.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,7 @@ networking/altera_tse networking/device_drivers/ethernet/altera/altera_tse
786786
networking/bpf_flow_dissector bpf/prog_flow_dissector
787787
networking/cxacru networking/device_drivers/atm/cxacru
788788
networking/defza networking/device_drivers/fddi/defza
789+
networking/device_drivers/3com/3c509 networking/device_drivers/ethernet/3com/3c509
789790
networking/device_drivers/3com/vortex networking/device_drivers/ethernet/3com/vortex
790791
networking/device_drivers/amazon/ena networking/device_drivers/ethernet/amazon/ena
791792
networking/device_drivers/aquantia/atlantic networking/device_drivers/ethernet/aquantia/atlantic

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -789,24 +789,6 @@ Kernel parameters
789789
cio_ignore= [S390]
790790
See Documentation/arch/s390/common_io.rst for details.
791791

792-
clearcpuid=X[,X...] [X86]
793-
Disable CPUID feature X for the kernel. See
794-
arch/x86/include/asm/cpufeatures.h for the valid bit
795-
numbers X. Note the Linux-specific bits are not necessarily
796-
stable over kernel options, but the vendor-specific
797-
ones should be.
798-
X can also be a string as appearing in the flags: line
799-
in /proc/cpuinfo which does not have the above
800-
instability issue. However, not all features have names
801-
in /proc/cpuinfo.
802-
Note that using this option will taint your kernel.
803-
Also note that user programs calling CPUID directly
804-
or using the feature without checking anything
805-
will still see it. This just prevents it from
806-
being used by the kernel or shown in /proc/cpuinfo.
807-
Also note the kernel might malfunction if you disable
808-
some critical bits.
809-
810792
clk_ignore_unused
811793
[CLK]
812794
Prevents the clock framework from automatically gating

Documentation/admin-guide/laptops/uniwill-laptop.rst

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ Support for changing the platform performance mode is currently not implemented.
4343
Battery Charging Control
4444
------------------------
4545

46+
.. warning:: Some devices do not properly implement the charging threshold interface. Forcing
47+
the driver to enable access to said interface on such devices might damage the
48+
battery [1]_. Because of this the driver will not enable said feature even when
49+
using the ``force`` module parameter.
50+
4651
The ``uniwill-laptop`` driver supports controlling the battery charge limit. This happens over
4752
the standard ``charge_control_end_threshold`` power supply sysfs attribute. All values
4853
between 1 and 100 percent are supported.
@@ -70,3 +75,8 @@ The ``uniwill-laptop`` driver allows to set the configurable TGP for devices wit
7075
allow it.
7176

7277
See Documentation/ABI/testing/sysfs-driver-uniwill-laptop for details.
78+
79+
References
80+
==========
81+
82+
.. [1] https://www.reddit.com/r/XMG_gg/comments/ld9yyf/battery_limit_hidden_function_discovered_on/

Documentation/admin-guide/pm/amd-pstate.rst

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -358,9 +358,9 @@ Dynamic energy performance profile
358358
The amd-pstate driver supports dynamically selecting the energy performance
359359
profile based on whether the machine is running on AC or DC power.
360360

361-
Whether this behavior is enabled by default depends on the kernel
362-
config option `CONFIG_X86_AMD_PSTATE_DYNAMIC_EPP`. This behavior can also be overridden
363-
at runtime by the sysfs file ``/sys/devices/system/cpu/cpufreq/policyX/dynamic_epp``.
361+
Whether this behavior is enabled by default depends on the kernel command line option
362+
``amd_dynamic_epp`` is set. This behavior can also be overridden
363+
at runtime by the sysfs file ``/sys/devices/system/cpu/amd_pstate/dynamic_epp``.
364364

365365
When set to enabled, the driver will select a different energy performance
366366
profile when the machine is running on battery or AC power. The driver will
@@ -485,9 +485,8 @@ kernel parameter ``amd_prefcore=disable``.
485485
``amd_dynamic_epp``
486486

487487
When AMD pstate is in auto mode, dynamic EPP will control whether the kernel
488-
autonomously changes the EPP mode. The default is configured by
489-
``CONFIG_X86_AMD_PSTATE_DYNAMIC_EPP`` but can be explicitly enabled with
490-
``amd_dynamic_epp=enable`` or disabled with ``amd_dynamic_epp=disable``.
488+
autonomously changes the EPP mode. The default is disabled. It can be enabled
489+
with the kernel parameter ``amd_dynamic_epp=enable``.
491490

492491
User Space Interface in ``sysfs`` - General
493492
===========================================

Documentation/admin-guide/pm/intel_pstate.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -355,11 +355,12 @@ HyperThreading (HT) in the context of Intel processors, is enabled on at least
355355
one core, ``intel_pstate`` assigns performance-based priorities to CPUs. Namely,
356356
the priority of a given CPU reflects its highest HWP performance level which
357357
causes the CPU scheduler to generally prefer more performant CPUs, so the less
358-
performant CPUs are used when the other ones are fully loaded. However, SMT
359-
siblings (that is, logical CPUs sharing one physical core) are treated in a
360-
special way such that if one of them is in use, the effective priority of the
361-
other ones is lowered below the priorities of the CPUs located in the other
362-
physical cores.
358+
performant CPUs are used when the other ones are fully loaded. SMT siblings
359+
(that is, logical CPUs sharing one physical core) are given the same priority.
360+
The scheduler can pull tasks from lower-priority cores and place them on any
361+
sibling. Since the scheduler spreads tasks among physical cores, tasks will be
362+
placed on the SMT siblings of physical cores only after all physical cores are
363+
busy.
363364

364365
This approach maximizes performance in the majority of cases, but unfortunately
365366
it also leads to excessive energy usage in some important scenarios, like video

Documentation/arch/x86/cpuinfo.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,10 @@ to disable features using the feature number as defined in
187187
Protection can be disabled using clearcpuid=514. The number 514 is calculated
188188
from #define X86_FEATURE_UMIP (16*32 + 2).
189189

190+
DO NOT USE this cmdline option in production - it is meant to be used only as
191+
a quick'n'dirty debugging aid to rule out a feature-enabling code is the
192+
culprit. If you use it, it'll taint the kernel.
193+
190194
In addition, there exists a variety of custom command-line parameters that
191195
disable specific features. The list of parameters includes, but is not limited
192196
to, nofsgsbase, nosgx, noxsave, etc. 5-level paging can also be disabled using

Documentation/crypto/krb5.rst

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -158,13 +158,22 @@ returned.
158158
When a message has been received, the location and size of the data with the
159159
message can be determined by calling::
160160

161-
void crypto_krb5_where_is_the_data(const struct krb5_enctype *krb5,
162-
enum krb5_crypto_mode mode,
163-
size_t *_offset, size_t *_len);
161+
int crypto_krb5_where_is_the_data(const struct krb5_enctype *krb5,
162+
enum krb5_crypto_mode mode,
163+
size_t *_offset, size_t *_len);
164164

165165
The caller provides the offset and length of the message to the function, which
166166
then alters those values to indicate the region containing the data (plus any
167-
padding). It is up to the caller to determine how much padding there is.
167+
padding). It is up to the caller to determine how much padding there is. The
168+
function returns an error if the length is too small or if the mode is
169+
unsupported. An additional function::
170+
171+
int crypto_krb5_check_data_len(const struct krb5_enctype *krb5,
172+
enum krb5_crypto_mode mode,
173+
size_t len, size_t min_content);
174+
175+
is provided to just do a basic check that the decrypted/verified message would
176+
have a sufficient minimum payload.
168177

169178
Preparation Functions
170179
---------------------

Documentation/devicetree/bindings/display/msm/dp-controller.yaml

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ allOf:
219219
- required:
220220
- "#sound-dai-cells"
221221
else:
222+
$ref: /schemas/sound/dai-common.yaml#
222223
properties:
223224
aux-bus: false
224225
required:
@@ -243,7 +244,7 @@ allOf:
243244
clocks:
244245
minItems: 5
245246
maxItems: 5
246-
clocks-names:
247+
clock-names:
247248
minItems: 5
248249
maxItems: 5
249250

@@ -264,7 +265,7 @@ allOf:
264265
clocks:
265266
minItems: 5
266267
maxItems: 6
267-
clocks-names:
268+
clock-names:
268269
minItems: 5
269270
maxItems: 6
270271

@@ -277,7 +278,6 @@ allOf:
277278
- qcom,sc8180x-dp
278279
- qcom,sdm845-dp
279280
- qcom,sm8350-dp
280-
- qcom,sm8650-dp
281281
then:
282282
properties:
283283
reg:
@@ -286,6 +286,24 @@ allOf:
286286
clocks:
287287
minItems: 6
288288
maxItems: 6
289+
clock-names:
290+
minItems: 6
291+
maxItems: 6
292+
293+
- if:
294+
properties:
295+
compatible:
296+
contains:
297+
enum:
298+
- qcom,sm8650-dp
299+
then:
300+
properties:
301+
reg:
302+
minItems: 5
303+
maxItems: 9
304+
clocks:
305+
minItems: 6
306+
maxItems: 6
289307
clocks-names:
290308
minItems: 6
291309
maxItems: 6
@@ -306,7 +324,7 @@ allOf:
306324
clocks:
307325
minItems: 6
308326
maxItems: 8
309-
clocks-names:
327+
clock-names:
310328
minItems: 6
311329
maxItems: 8
312330

@@ -326,7 +344,7 @@ allOf:
326344
clocks:
327345
minItems: 5
328346
maxItems: 6
329-
clocks-names:
347+
clock-names:
330348
minItems: 5
331349
maxItems: 6
332350

Documentation/devicetree/bindings/display/msm/qcom,eliza-mdss.yaml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ examples:
119119
mdss_mdp: display-controller@ae01000 {
120120
compatible = "qcom,eliza-dpu";
121121
reg = <0x0ae01000 0x93000>,
122-
<0x0aeb0000 0x2008>;
122+
<0x0aeb0000 0x3000>;
123123
reg-names = "mdp",
124124
"vbif";
125125
@@ -304,7 +304,7 @@ examples:
304304
mdss_dsi0_phy: phy@ae95000 {
305305
compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm";
306306
reg = <0x0ae95000 0x200>,
307-
<0x0ae95200 0x280>,
307+
<0x0ae95200 0x300>,
308308
<0x0ae95500 0x400>;
309309
reg-names = "dsi_phy",
310310
"dsi_phy_lane",
@@ -388,7 +388,7 @@ examples:
388388
mdss_dsi1_phy: phy@ae97000 {
389389
compatible = "qcom,eliza-dsi-phy-4nm", "qcom,sm8650-dsi-phy-4nm";
390390
reg = <0x0ae97000 0x200>,
391-
<0x0ae97200 0x280>,
391+
<0x0ae97200 0x300>,
392392
<0x0ae97500 0x400>;
393393
reg-names = "dsi_phy",
394394
"dsi_phy_lane",
@@ -407,11 +407,15 @@ examples:
407407
408408
displayport-controller@af54000 {
409409
compatible = "qcom,eliza-dp", "qcom,sm8650-dp";
410-
reg = <0xaf54000 0x104>,
411-
<0xaf54200 0xc0>,
412-
<0xaf55000 0x770>,
413-
<0xaf56000 0x9c>,
414-
<0xaf57000 0x9c>;
410+
reg = <0x0af54000 0x200>,
411+
<0x0af54200 0x200>,
412+
<0x0af55000 0xc00>,
413+
<0x0af56000 0x400>,
414+
<0x0af57000 0x400>,
415+
<0x0af58000 0x400>,
416+
<0x0af59000 0x400>,
417+
<0x0af5a000 0x600>,
418+
<0x0af5b000 0x600>;
415419
416420
interrupts-extended = <&mdss 12>;
417421

0 commit comments

Comments
 (0)