mirror_zfs/module
Rob Norris e1a807b50d linux/zvol_os: fix crash with blk-mq on Linux 4.19
03987f71e3 (#16069) added a workaround to get the blk-mq hardware
context for older kernels that don't cache it in the struct request.
However, this workaround appears to be incomplete.

In 4.19, the rq data context is optional. If its not initialised, then
the cached rq->cpu will be -1, and so using it to index into mq_map
causes a crash.

Given that the upstream 4.19 is now in extended LTS and rarely seen,
RHEL8 4.18+ has long carried "modern" blk-mq support, and the cached
hardware context has been available since 5.1, I'm not going to huge
lengths to get queue selection correct for the very few people that are
likely to feel it. To that end, we simply call raw_smp_processor_id() to
get a valid CPU id and use that instead.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com>
Reviewed-by: Paul Dagnelie <paul.dagnelie@klarasystems.com>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Sponsored-by: Klara, Inc.
Sponsored-by: Wasabi Technology, Inc.
Closes #17597
2025-10-16 17:03:47 -07:00
..
avl Suppress Clang Static Analyzer false positive in the AVL tree code. 2023-03-08 13:51:21 -08:00
icp Linux build: silence objtool warnings 2025-06-04 17:40:56 -07:00
lua lua: add flex array field to TString type 2024-11-05 15:43:52 -08:00
nvpair xdr: header cleanup 2024-04-29 13:50:05 -07:00
os linux/zvol_os: fix crash with blk-mq on Linux 4.19 2025-10-16 17:03:47 -07:00
unicode Illumos #15286: do_composition() needs sign awareness 2023-01-05 11:16:21 -08:00
zcommon GCC 15: Fix unterminated-string-initialization (#17244) 2025-05-27 15:03:11 -07:00
zfs Skip dbuf_evict_one() from dbuf_evict_notify() for reclaim thread 2025-10-16 17:03:47 -07:00
zstd Resolve WS-2021-0184 vulnerability in zstd 2023-02-02 15:12:51 -08:00
.gitignore FreeBSD: Ignore symlink to i386 includes 2022-08-02 16:34:23 -07:00
Kbuild.in Linux build: always use objtool 2025-05-30 15:08:01 -07:00
Makefile.bsd zfs_znode: lift common code to a single shared file 2024-11-15 10:15:01 -08:00
Makefile.in Linux build: handle CONFIG_OBJTOOL_WERROR=y 2025-10-16 16:50:20 -07:00