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 <[email protected]>
2 parents 3dd8aa0 + fb2fae7 commit 9cf9db8

File tree

1,004 files changed

+11342
-5387
lines changed

Some content is hidden

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

1,004 files changed

+11342
-5387
lines changed

.mailmap

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ Daniel Borkmann <[email protected]> <[email protected]>
197197
198198
199199
200+
200201
David Brownell <[email protected]>
201202
202203
@@ -222,6 +223,8 @@ Dmitry Safonov <[email protected]> <[email protected]>
222223
223224
Domen Puncer <[email protected]>
224225
Douglas Gilbert <[email protected]>
226+
227+
225228
Ed L. Cashin <[email protected]>
226229
227230
Enric Balletbo i Serra <[email protected]> <[email protected]>
@@ -282,6 +285,7 @@ Gustavo Padovan <[email protected]>
282285
Gustavo Padovan <[email protected]>
283286
284287
288+
285289
286290
287291
@@ -426,6 +430,9 @@ Krzysztof Wilczyński <[email protected]> <[email protected]>
426430
Krzysztof Wilczyński <[email protected]> <[email protected]>
427431
428432
Kuninori Morimoto <[email protected]>
433+
434+
435+
429436
430437
431438
@@ -688,9 +695,10 @@ Serge Hallyn <[email protected]> <[email protected]>
688695
689696
690697
691-
692-
693-
698+
699+
700+
701+
694702
Sharath Chandra Vurukala <[email protected]> <[email protected]>
695703
696704
@@ -719,6 +727,7 @@ Srinivas Ramana <[email protected]> <[email protected]>
719727
720728
721729
Stanislav Fomichev <[email protected]> <[email protected]>
730+
Stanislav Fomichev <[email protected]> <[email protected]>
722731
723732
Stéphane Witzmann <[email protected]>
724733
@@ -823,3 +832,6 @@ Yosry Ahmed <[email protected]> <[email protected]>
823832
Yusuke Goda <[email protected]>
824833
825834
835+
836+
837+

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+
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
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)