diff options
| author | Prashant Kamble <[email protected]> | 2026-05-18 07:55:35 +0530 |
|---|---|---|
| committer | Neil Armstrong <[email protected]> | 2026-05-20 09:51:44 +0200 |
| commit | 4f510505988928e129e109811587c4a00d28ec56 (patch) | |
| tree | a837689f92fb2998561ceb9315fbc0c584747ced /src | |
| parent | 4e91d9ff3324866d5cdfc0bc73e3382ce6fcc3d7 (diff) | |
nvme: Fix PRP list pointer arithmetic for chained transfers
The PRP setup code advances prp_pool using u64 pointer
arithmetic:
prp_pool += page_size;
This increments the pointer by page_size * sizeof(u64)
bytes instead of page_size bytes, resulting in invalid
PRP list addresses when multiple PRP list pages are
required.
The issue becomes visible for large transfers, typically
above 2 MiB when MDTS > 9.
Fix it by using byte-wise pointer arithmetic when
advancing to the next PRP list page.
Signed-off-by: Prashant Kamble <[email protected]>
Reviewed-by: Neil Armstrong <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Neil Armstrong <[email protected]>
Diffstat (limited to 'src')
0 files changed, 0 insertions, 0 deletions
