]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block: switch numa_node to int in blk_mq_hw_ctx and init_request
authorMateusz Nowicki <mateusz.nowicki@posteo.net>
Sat, 23 May 2026 12:52:35 +0000 (12:52 +0000)
committerJens Axboe <axboe@kernel.dk>
Tue, 26 May 2026 17:01:55 +0000 (11:01 -0600)
numa_node in blk_mq_hw_ctx and the matching argument of
blk_mq_ops::init_request can be NUMA_NO_NODE (-1).  Declared as
unsigned int, NUMA_NO_NODE becomes UINT_MAX and walks off
nvme_dev::descriptor_pools[] on CONFIG_NUMA=n [1].

Switch the field and the callback prototype to int and update all
in-tree init_request implementations.  No functional change:
cpu_to_node(), kmalloc_node() and blk_alloc_flush_queue() already
take int.

Link: https://lore.kernel.org/linux-nvme/20260522150628.399288-1-mateusz.nowicki@posteo.net/
Link: https://lore.kernel.org/linux-nvme/20260309062840.2937858-2-iam@sung-woo.kim/
Suggested-by: Caleb Sander Mateos <csander@purestorage.com>
Suggested-by: Sung-woo Kim <iam@sung-woo.kim>
Signed-off-by: Mateusz Nowicki <mateusz.nowicki@posteo.net>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260523125210.272274-1-mateusz.nowicki@posteo.net
Signed-off-by: Jens Axboe <axboe@kernel.dk>
14 files changed:
block/bsg-lib.c
drivers/block/mtip32xx/mtip32xx.c
drivers/block/nbd.c
drivers/md/dm-rq.c
drivers/mmc/core/queue.c
drivers/mtd/ubi/block.c
drivers/nvme/host/apple.c
drivers/nvme/host/fc.c
drivers/nvme/host/pci.c
drivers/nvme/host/rdma.c
drivers/nvme/host/tcp.c
drivers/nvme/target/loop.c
drivers/scsi/scsi_lib.c
include/linux/blk-mq.h

index fdb4b290ca689182baf58c5beb033c23438c8c8f..895db30a7033df115e266b37e4b852ea376f8301 100644 (file)
@@ -299,7 +299,7 @@ out:
 
 /* called right after the request is allocated for the request_queue */
 static int bsg_init_rq(struct blk_mq_tag_set *set, struct request *req,
-                      unsigned int hctx_idx, unsigned int numa_node)
+                      unsigned int hctx_idx, int numa_node)
 {
        struct bsg_job *job = blk_mq_rq_to_pdu(req);
 
index 567192e371a8f9b4aee9c72c18dd98125af03f05..8aedba9b5690e6ea8af1ef9039576283144eb27c 100644 (file)
@@ -3340,7 +3340,7 @@ static void mtip_free_cmd(struct blk_mq_tag_set *set, struct request *rq,
 }
 
 static int mtip_init_cmd(struct blk_mq_tag_set *set, struct request *rq,
-                        unsigned int hctx_idx, unsigned int numa_node)
+                        unsigned int hctx_idx, int numa_node)
 {
        struct driver_data *dd = set->driver_data;
        struct mtip_cmd *cmd = blk_mq_rq_to_pdu(rq);
index fe63f3c55d0d960a1a4bbb2c60738cbbece10719..e2fe9e3308fc71ee27b1c855550e6137e167b0d1 100644 (file)
@@ -1888,7 +1888,7 @@ static void nbd_dbg_close(void)
 #endif
 
 static int nbd_init_request(struct blk_mq_tag_set *set, struct request *rq,
-                           unsigned int hctx_idx, unsigned int numa_node)
+                           unsigned int hctx_idx, int numa_node)
 {
        struct nbd_cmd *cmd = blk_mq_rq_to_pdu(rq);
        cmd->nbd = set->driver_data;
index 9703b3ae364ef45343788f85378d4ce0739e129b..9a386254d8366ff9ca990f90af9789e63ab3db21 100644 (file)
@@ -462,7 +462,7 @@ static void dm_start_request(struct mapped_device *md, struct request *orig)
 }
 
 static int dm_mq_init_request(struct blk_mq_tag_set *set, struct request *rq,
-                             unsigned int hctx_idx, unsigned int numa_node)
+                             unsigned int hctx_idx, int numa_node)
 {
        struct mapped_device *md = set->driver_data;
        struct dm_rq_target_io *tio = blk_mq_rq_to_pdu(rq);
index 39fcb662c43fc05f916ef3f2a7fef8011e43505f..cfa268925c264b127bb1c27d19608c286ff6447c 100644 (file)
@@ -208,7 +208,7 @@ static unsigned short mmc_get_max_segments(struct mmc_host *host)
 }
 
 static int mmc_mq_init_request(struct blk_mq_tag_set *set, struct request *req,
-                              unsigned int hctx_idx, unsigned int numa_node)
+                              unsigned int hctx_idx, int numa_node)
 {
        struct mmc_queue_req *mq_rq = req_to_mmc_queue_req(req);
        struct mmc_queue *mq = set->driver_data;
index 8880a783c3bc3ab0e309c90fda1419a83908da77..29c0d6941a81895e3dd975c072d8d3abd9c47de9 100644 (file)
@@ -312,7 +312,7 @@ static blk_status_t ubiblock_queue_rq(struct blk_mq_hw_ctx *hctx,
 
 static int ubiblock_init_request(struct blk_mq_tag_set *set,
                struct request *req, unsigned int hctx_idx,
-               unsigned int numa_node)
+               int numa_node)
 {
        struct ubiblock_pdu *pdu = blk_mq_rq_to_pdu(req);
 
index 423c9c628e7bfa769070aed3ca221c111c020678..7fc6b9eacf2ea5fb447b9482d4ba6c759fbee77e 100644 (file)
@@ -819,7 +819,7 @@ static int apple_nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
 
 static int apple_nvme_init_request(struct blk_mq_tag_set *set,
                                   struct request *req, unsigned int hctx_idx,
-                                  unsigned int numa_node)
+                                  int numa_node)
 {
        struct apple_nvme_queue *q = set->driver_data;
        struct apple_nvme *anv = queue_to_apple_nvme(q);
index e4f4528fe2a2d645040f7db277cdb5063acb07b1..1907da499ad27964485b81fad7811aff05ab6caa 100644 (file)
@@ -2109,7 +2109,7 @@ out_on_error:
 
 static int
 nvme_fc_init_request(struct blk_mq_tag_set *set, struct request *rq,
-               unsigned int hctx_idx, unsigned int numa_node)
+               unsigned int hctx_idx, int numa_node)
 {
        struct nvme_fc_ctrl *ctrl = to_fc_ctrl(set->driver_data);
        struct nvme_fcp_op_w_sgl *op = blk_mq_rq_to_pdu(rq);
index 9fd04cd7c5cb13f251015891db7a92ce279abd39..24911e1252d582322d0c37299f87fbba26dd3745 100644 (file)
@@ -660,7 +660,7 @@ static int nvme_init_hctx(struct blk_mq_hw_ctx *hctx, void *data,
 
 static int nvme_pci_init_request(struct blk_mq_tag_set *set,
                struct request *req, unsigned int hctx_idx,
-               unsigned int numa_node)
+               int numa_node)
 {
        struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
 
index f77c960f7632d19db46d8954751bd7fb6670febe..08459c65c3d5ae2572b4597841bc76928bb87964 100644 (file)
@@ -292,7 +292,7 @@ static void nvme_rdma_exit_request(struct blk_mq_tag_set *set,
 
 static int nvme_rdma_init_request(struct blk_mq_tag_set *set,
                struct request *rq, unsigned int hctx_idx,
-               unsigned int numa_node)
+               int numa_node)
 {
        struct nvme_rdma_ctrl *ctrl = to_rdma_ctrl(set->driver_data);
        struct nvme_rdma_request *req = blk_mq_rq_to_pdu(rq);
index 15d36d6a728e80ae17659d34e7671aa207ce3073..36b3ec50a9fdf76de4d7bbcd09ad1ddbb714335d 100644 (file)
@@ -548,7 +548,7 @@ static void nvme_tcp_exit_request(struct blk_mq_tag_set *set,
 
 static int nvme_tcp_init_request(struct blk_mq_tag_set *set,
                struct request *rq, unsigned int hctx_idx,
-               unsigned int numa_node)
+               int numa_node)
 {
        struct nvme_tcp_ctrl *ctrl = to_tcp_ctrl(set->driver_data);
        struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
index d98d0cdc5d6fad10a3f8a7ad901ea41afd1e91df..ae00bcef22511b2a3910b75bdaf3a4ee57c348e4 100644 (file)
@@ -202,7 +202,7 @@ static int nvme_loop_init_iod(struct nvme_loop_ctrl *ctrl,
 
 static int nvme_loop_init_request(struct blk_mq_tag_set *set,
                struct request *req, unsigned int hctx_idx,
-               unsigned int numa_node)
+               int numa_node)
 {
        struct nvme_loop_ctrl *ctrl = to_loop_ctrl(set->driver_data);
        struct nvme_loop_iod *iod = blk_mq_rq_to_pdu(req);
index 6e8c7a42603e5b13deeaa487f62c4bec71fcc106..67f789bd02e7809da2353447bd3ad761a6758989 100644 (file)
@@ -1950,7 +1950,7 @@ out_put_budget:
 }
 
 static int scsi_mq_init_request(struct blk_mq_tag_set *set, struct request *rq,
-                               unsigned int hctx_idx, unsigned int numa_node)
+                               unsigned int hctx_idx, int numa_node)
 {
        struct Scsi_Host *shost = set->driver_data;
        struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq);
index 4349aefdbc87e5fe5a07f6d5af84738a77e73e74..24b4160aeaad332e35de9825134434a9aa59145f 100644 (file)
@@ -428,7 +428,7 @@ struct blk_mq_hw_ctx {
        struct blk_mq_tags      *sched_tags;
 
        /** @numa_node: NUMA node the storage adapter has been connected to. */
-       unsigned int            numa_node;
+       int                     numa_node;
        /** @queue_num: Index of this hardware queue. */
        unsigned int            queue_num;
 
@@ -653,7 +653,7 @@ struct blk_mq_ops {
         * flush request.
         */
        int (*init_request)(struct blk_mq_tag_set *set, struct request *,
-                           unsigned int, unsigned int);
+                           unsigned int, int);
        /**
         * @exit_request: Ditto for exit/teardown.
         */