Skip to content

Commit 9cf9db8

Browse files
committed
Merge tag 'nand/for-6.17' into mtd/next
* Raw NAND changes: Various controller drivers received minor fixes like DMA mapping checks, better timing derivations or bitflip statistics. It has also been discovered that some Hynix NAND flashes were not supporting read-retries, which is not properly supported. * SPI NAND changes: In order to support high-speed modes, certain chips need extra configuration like adding more dummy cycles. This is now possible, especially on Winbond chips. Aside from that, Gigadevice gets support for a new chip (GD5F1GM9). Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
2 parents 3dd8aa0 + fb2fae7 commit 9cf9db8

1,004 files changed

Lines changed: 11342 additions & 5387 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: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ Daniel Borkmann <daniel@iogearbox.net> <daniel.borkmann@tik.ee.ethz.ch>
197197
Daniel Borkmann <daniel@iogearbox.net> <dborkmann@redhat.com>
198198
Daniel Borkmann <daniel@iogearbox.net> <dborkman@redhat.com>
199199
Daniel Borkmann <daniel@iogearbox.net> <dxchgb@gmail.com>
200+
Danilo Krummrich <dakr@kernel.org> <dakr@redhat.com>
200201
David Brownell <david-b@pacbell.net>
201202
David Collins <quic_collinsd@quicinc.com> <collinsd@codeaurora.org>
202203
David Heidelberg <david@ixit.cz> <d.okias@gmail.com>
@@ -222,6 +223,8 @@ Dmitry Safonov <0x7f454c46@gmail.com> <d.safonov@partner.samsung.com>
222223
Dmitry Safonov <0x7f454c46@gmail.com> <dsafonov@virtuozzo.com>
223224
Domen Puncer <domen@coderock.org>
224225
Douglas Gilbert <dougg@torque.net>
226+
Drew Fustini <fustini@kernel.org> <drew@pdp7.com>
227+
<duje@dujemihanovic.xyz> <duje.mihanovic@skole.hr>
225228
Ed L. Cashin <ecashin@coraid.com>
226229
Elliot Berman <quic_eberman@quicinc.com> <eberman@codeaurora.org>
227230
Enric Balletbo i Serra <eballetbo@kernel.org> <enric.balletbo@collabora.com>
@@ -282,6 +285,7 @@ Gustavo Padovan <gustavo@las.ic.unicamp.br>
282285
Gustavo Padovan <padovan@profusion.mobi>
283286
Hamza Mahfooz <hamzamahfooz@linux.microsoft.com> <hamza.mahfooz@amd.com>
284287
Hanjun Guo <guohanjun@huawei.com> <hanjun.guo@linaro.org>
288+
Hans de Goede <hansg@kernel.org> <hdegoede@redhat.com>
285289
Hans Verkuil <hverkuil@xs4all.nl> <hansverk@cisco.com>
286290
Hans Verkuil <hverkuil@xs4all.nl> <hverkuil-cisco@xs4all.nl>
287291
Harry Yoo <harry.yoo@oracle.com> <42.hyeyoo@gmail.com>
@@ -426,6 +430,9 @@ Krzysztof Wilczyński <kwilczynski@kernel.org> <krzysztof.wilczynski@linux.com>
426430
Krzysztof Wilczyński <kwilczynski@kernel.org> <kw@linux.com>
427431
Kshitiz Godara <quic_kgodara@quicinc.com> <kgodara@codeaurora.org>
428432
Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
433+
Kuniyuki Iwashima <kuniyu@google.com> <kuniyu@amazon.com>
434+
Kuniyuki Iwashima <kuniyu@google.com> <kuniyu@amazon.co.jp>
435+
Kuniyuki Iwashima <kuniyu@google.com> <kuni1840@gmail.com>
429436
Kuogee Hsieh <quic_khsieh@quicinc.com> <khsieh@codeaurora.org>
430437
Lee Jones <lee@kernel.org> <joneslee@google.com>
431438
Lee Jones <lee@kernel.org> <lee.jones@canonical.com>
@@ -688,9 +695,10 @@ Serge Hallyn <sergeh@kernel.org> <serge.hallyn@canonical.com>
688695
Serge Hallyn <sergeh@kernel.org> <serue@us.ibm.com>
689696
Seth Forshee <sforshee@kernel.org> <seth.forshee@canonical.com>
690697
Shakeel Butt <shakeel.butt@linux.dev> <shakeelb@google.com>
691-
Shannon Nelson <shannon.nelson@amd.com> <snelson@pensando.io>
692-
Shannon Nelson <shannon.nelson@amd.com> <shannon.nelson@intel.com>
693-
Shannon Nelson <shannon.nelson@amd.com> <shannon.nelson@oracle.com>
698+
Shannon Nelson <sln@onemain.com> <shannon.nelson@amd.com>
699+
Shannon Nelson <sln@onemain.com> <snelson@pensando.io>
700+
Shannon Nelson <sln@onemain.com> <shannon.nelson@intel.com>
701+
Shannon Nelson <sln@onemain.com> <shannon.nelson@oracle.com>
694702
Sharath Chandra Vurukala <quic_sharathv@quicinc.com> <sharathv@codeaurora.org>
695703
Shiraz Hashim <shiraz.linux.kernel@gmail.com> <shiraz.hashim@st.com>
696704
Shuah Khan <shuah@kernel.org> <shuahkhan@gmail.com>
@@ -719,6 +727,7 @@ Srinivas Ramana <quic_sramana@quicinc.com> <sramana@codeaurora.org>
719727
Sriram R <quic_srirrama@quicinc.com> <srirrama@codeaurora.org>
720728
Sriram Yagnaraman <sriram.yagnaraman@ericsson.com> <sriram.yagnaraman@est.tech>
721729
Stanislav Fomichev <sdf@fomichev.me> <sdf@google.com>
730+
Stanislav Fomichev <sdf@fomichev.me> <stfomichev@gmail.com>
722731
Stefan Wahren <wahrenst@gmx.net> <stefan.wahren@i2se.com>
723732
Stéphane Witzmann <stephane.witzmann@ubpmes.univ-bpclermont.fr>
724733
Stephen Hemminger <stephen@networkplumber.org> <shemminger@linux-foundation.org>
@@ -823,3 +832,6 @@ Yosry Ahmed <yosry.ahmed@linux.dev> <yosryahmed@google.com>
823832
Yusuke Goda <goda.yusuke@renesas.com>
824833
Zack Rusin <zack.rusin@broadcom.com> <zackr@vmware.com>
825834
Zhu Yanjun <zyjzyj2000@gmail.com> <yanjunz@nvidia.com>
835+
Zijun Hu <zijun.hu@oss.qualcomm.com> <quic_zijuhu@quicinc.com>
836+
Zijun Hu <zijun.hu@oss.qualcomm.com> <zijuhu@codeaurora.org>
837+
Zijun Hu <zijun_hu@htc.com>

CREDITS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2981,6 +2981,11 @@ S: 521 Pleasant Valley Road
29812981
S: Potsdam, New York 13676
29822982
S: USA
29832983

2984+
N: Shannon Nelson
2985+
E: sln@onemain.com
2986+
D: Worked on several network drivers including
2987+
D: ixgbe, i40e, ionic, pds_core, pds_vdpa, pds_fwctl
2988+
29842989
N: Dave Neuer
29852990
E: dave.neuer@pobox.com
29862991
D: Helped implement support for Compaq's H31xx series iPAQs

Documentation/ABI/testing/sysfs-edac-scrub

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ Description:
4949
(RO) Supported minimum scrub cycle duration in seconds
5050
by the memory scrubber.
5151

52+
Device-based scrub: returns the minimum scrub cycle
53+
supported by the memory device.
54+
55+
Region-based scrub: returns the max of minimum scrub cycles
56+
supported by individual memory devices that back the region.
57+
5258
What: /sys/bus/edac/devices/<dev-name>/scrubX/max_cycle_duration
5359
Date: March 2025
5460
KernelVersion: 6.15
@@ -57,6 +63,16 @@ Description:
5763
(RO) Supported maximum scrub cycle duration in seconds
5864
by the memory scrubber.
5965

66+
Device-based scrub: returns the maximum scrub cycle supported
67+
by the memory device.
68+
69+
Region-based scrub: returns the min of maximum scrub cycles
70+
supported by individual memory devices that back the region.
71+
72+
If the memory device does not provide maximum scrub cycle
73+
information, return the maximum supported value of the scrub
74+
cycle field.
75+
6076
What: /sys/bus/edac/devices/<dev-name>/scrubX/current_cycle_duration
6177
Date: March 2025
6278
KernelVersion: 6.15

Documentation/admin-guide/cifs/usage.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,8 @@ configured for Unix Extensions (and the client has not disabled
270270
illegal Windows/NTFS/SMB characters to a remap range (this mount parameter
271271
is the default for SMB3). This remap (``mapposix``) range is also
272272
compatible with Mac (and "Services for Mac" on some older Windows).
273+
When POSIX Extensions for SMB 3.1.1 are negotiated, remapping is automatically
274+
disabled.
273275

274276
CIFS VFS Mount Options
275277
======================

Documentation/arch/arm64/booting.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ Before jumping into the kernel, the following conditions must be met:
234234

235235
- If the kernel is entered at EL1:
236236

237-
- ICC.SRE_EL2.Enable (bit 3) must be initialised to 0b1
237+
- ICC_SRE_EL2.Enable (bit 3) must be initialised to 0b1
238238
- ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b1.
239239

240240
- The DT or ACPI tables must describe a GICv3 interrupt controller.

Documentation/block/ublk.rst

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,83 @@ For reaching best IO performance, ublk server should align its segment
352352
parameter of `struct ublk_param_segment` with backend for avoiding
353353
unnecessary IO split, which usually hurts io_uring performance.
354354

355+
Auto Buffer Registration
356+
------------------------
357+
358+
The ``UBLK_F_AUTO_BUF_REG`` feature automatically handles buffer registration
359+
and unregistration for I/O requests, which simplifies the buffer management
360+
process and reduces overhead in the ublk server implementation.
361+
362+
This is another feature flag for using zero copy, and it is compatible with
363+
``UBLK_F_SUPPORT_ZERO_COPY``.
364+
365+
Feature Overview
366+
~~~~~~~~~~~~~~~~
367+
368+
This feature automatically registers request buffers to the io_uring context
369+
before delivering I/O commands to the ublk server and unregisters them when
370+
completing I/O commands. This eliminates the need for manual buffer
371+
registration/unregistration via ``UBLK_IO_REGISTER_IO_BUF`` and
372+
``UBLK_IO_UNREGISTER_IO_BUF`` commands, then IO handling in ublk server
373+
can avoid dependency on the two uring_cmd operations.
374+
375+
IOs can't be issued concurrently to io_uring if there is any dependency
376+
among these IOs. So this way not only simplifies ublk server implementation,
377+
but also makes concurrent IO handling becomes possible by removing the
378+
dependency on buffer registration & unregistration commands.
379+
380+
Usage Requirements
381+
~~~~~~~~~~~~~~~~~~
382+
383+
1. The ublk server must create a sparse buffer table on the same ``io_ring_ctx``
384+
used for ``UBLK_IO_FETCH_REQ`` and ``UBLK_IO_COMMIT_AND_FETCH_REQ``. If
385+
uring_cmd is issued on a different ``io_ring_ctx``, manual buffer
386+
unregistration is required.
387+
388+
2. Buffer registration data must be passed via uring_cmd's ``sqe->addr`` with the
389+
following structure::
390+
391+
struct ublk_auto_buf_reg {
392+
__u16 index; /* Buffer index for registration */
393+
__u8 flags; /* Registration flags */
394+
__u8 reserved0; /* Reserved for future use */
395+
__u32 reserved1; /* Reserved for future use */
396+
};
397+
398+
ublk_auto_buf_reg_to_sqe_addr() is for converting the above structure into
399+
``sqe->addr``.
400+
401+
3. All reserved fields in ``ublk_auto_buf_reg`` must be zeroed.
402+
403+
4. Optional flags can be passed via ``ublk_auto_buf_reg.flags``.
404+
405+
Fallback Behavior
406+
~~~~~~~~~~~~~~~~~
407+
408+
If auto buffer registration fails:
409+
410+
1. When ``UBLK_AUTO_BUF_REG_FALLBACK`` is enabled:
411+
412+
- The uring_cmd is completed
413+
- ``UBLK_IO_F_NEED_REG_BUF`` is set in ``ublksrv_io_desc.op_flags``
414+
- The ublk server must manually deal with the failure, such as, register
415+
the buffer manually, or using user copy feature for retrieving the data
416+
for handling ublk IO
417+
418+
2. If fallback is not enabled:
419+
420+
- The ublk I/O request fails silently
421+
- The uring_cmd won't be completed
422+
423+
Limitations
424+
~~~~~~~~~~~
425+
426+
- Requires same ``io_ring_ctx`` for all operations
427+
- May require manual buffer management in fallback cases
428+
- io_ring_ctx buffer table has a max size of 16K, which may not be enough
429+
in case that too many ublk devices are handled by this single io_ring_ctx
430+
and each one has very large queue depth
431+
355432
References
356433
==========
357434

Documentation/bpf/map_hash.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,10 +233,16 @@ attempts in order to enforce the LRU property which have increasing impacts on
233233
other CPUs involved in the following operation attempts:
234234

235235
- Attempt to use CPU-local state to batch operations
236-
- Attempt to fetch free nodes from global lists
236+
- Attempt to fetch ``target_free`` free nodes from global lists
237237
- Attempt to pull any node from a global list and remove it from the hashmap
238238
- Attempt to pull any node from any CPU's list and remove it from the hashmap
239239

240+
The number of nodes to borrow from the global list in a batch, ``target_free``,
241+
depends on the size of the map. Larger batch size reduces lock contention, but
242+
may also exhaust the global structure. The value is computed at map init to
243+
avoid exhaustion, by limiting aggregate reservation by all CPUs to half the map
244+
size. With a minimum of a single element and maximum budget of 128 at a time.
245+
240246
This algorithm is described visually in the following diagram. See the
241247
description in commit 3a08c2fd7634 ("bpf: LRU List") for a full explanation of
242248
the corresponding operations:

Documentation/bpf/map_lru_hash_update.dot

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,18 @@ digraph {
3535
fn_bpf_lru_list_pop_free_to_local [shape=rectangle,fillcolor=2,
3636
label="Flush local pending,
3737
Rotate Global list, move
38-
LOCAL_FREE_TARGET
38+
target_free
3939
from global -> local"]
4040
// Also corresponds to:
4141
// fn__local_list_flush()
4242
// fn_bpf_lru_list_rotate()
4343
fn___bpf_lru_node_move_to_free[shape=diamond,fillcolor=2,
44-
label="Able to free\nLOCAL_FREE_TARGET\nnodes?"]
44+
label="Able to free\ntarget_free\nnodes?"]
4545

4646
fn___bpf_lru_list_shrink_inactive [shape=rectangle,fillcolor=3,
4747
label="Shrink inactive list
4848
up to remaining
49-
LOCAL_FREE_TARGET
49+
target_free
5050
(global LRU -> local)"]
5151
fn___bpf_lru_list_shrink [shape=diamond,fillcolor=2,
5252
label="> 0 entries in\nlocal free list?"]

Documentation/devicetree/bindings/display/bridge/ti,sn65dsi83.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,11 @@ $defs:
118118
ti,lvds-vod-swing-clock-microvolt:
119119
description: LVDS diferential output voltage <min max> for clock
120120
lanes in microvolts.
121-
$ref: /schemas/types.yaml#/definitions/uint32-array
122-
minItems: 2
123121
maxItems: 2
124122

125123
ti,lvds-vod-swing-data-microvolt:
126124
description: LVDS diferential output voltage <min max> for data
127125
lanes in microvolts.
128-
$ref: /schemas/types.yaml#/definitions/uint32-array
129-
minItems: 2
130126
maxItems: 2
131127

132128
allOf:

Documentation/devicetree/bindings/i2c/nvidia,tegra20-i2c.yaml

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,10 @@ properties:
9797

9898
resets:
9999
items:
100-
- description: module reset
100+
- description:
101+
Module reset. This property is optional for controllers in Tegra194,
102+
Tegra234 etc where an internal software reset is available as an
103+
alternative.
101104

102105
reset-names:
103106
items:
@@ -116,6 +119,13 @@ properties:
116119
- const: rx
117120
- const: tx
118121

122+
required:
123+
- compatible
124+
- reg
125+
- interrupts
126+
- clocks
127+
- clock-names
128+
119129
allOf:
120130
- $ref: /schemas/i2c/i2c-controller.yaml
121131
- if:
@@ -169,6 +179,18 @@ allOf:
169179
properties:
170180
power-domains: false
171181

182+
- if:
183+
not:
184+
properties:
185+
compatible:
186+
contains:
187+
enum:
188+
- nvidia,tegra194-i2c
189+
then:
190+
required:
191+
- resets
192+
- reset-names
193+
172194
unevaluatedProperties: false
173195

174196
examples:

0 commit comments

Comments
 (0)