]> www.infradead.org Git - nvme.git/commitdiff
block: move the bounce flag into the features field
authorChristoph Hellwig <hch@lst.de>
Mon, 17 Jun 2024 06:04:53 +0000 (08:04 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 19 Jun 2024 13:58:28 +0000 (07:58 -0600)
Move the bounce flag into the features field to reclaim a little bit of
space.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20240617060532.127975-27-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c
block/blk.h
drivers/scsi/scsi_lib.c
include/linux/blkdev.h

index 96e07f24bd9aa1c09fa2ddc0ee54cf18af860d98..d0e9096f93ca8a6a401ef8974827cde342489405 100644 (file)
@@ -479,7 +479,6 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
                                        b->max_write_zeroes_sectors);
        t->max_zone_append_sectors = min(queue_limits_max_zone_append_sectors(t),
                                         queue_limits_max_zone_append_sectors(b));
-       t->bounce = max(t->bounce, b->bounce);
 
        t->seg_boundary_mask = min_not_zero(t->seg_boundary_mask,
                                            b->seg_boundary_mask);
index 79e8d5d4fe0cafc9fb27db07d6c59eec695b2ed1..fa32f7fad5d7e6ef9e0e5186b3dc3682285a7270 100644 (file)
@@ -394,7 +394,7 @@ struct bio *__blk_queue_bounce(struct bio *bio, struct request_queue *q);
 static inline bool blk_queue_may_bounce(struct request_queue *q)
 {
        return IS_ENABLED(CONFIG_BOUNCE) &&
-               q->limits.bounce == BLK_BOUNCE_HIGH &&
+               (q->limits.features & BLK_FEAT_BOUNCE_HIGH) &&
                max_low_pfn >= max_pfn;
 }
 
index 54f771ec8cfb5e45a8d6aa5a8d6dd14c26007f2f..e2f7bfb2b9e450acbb499572d91a17d80f680b08 100644 (file)
@@ -1986,7 +1986,7 @@ void scsi_init_limits(struct Scsi_Host *shost, struct queue_limits *lim)
                shost->dma_alignment, dma_get_cache_alignment() - 1);
 
        if (shost->no_highmem)
-               lim->bounce = BLK_BOUNCE_HIGH;
+               lim->features |= BLK_FEAT_BOUNCE_HIGH;
 
        dma_set_seg_boundary(dev, shost->dma_boundary);
        dma_set_max_seg_size(dev, shost->max_segment_size);
index 2c433ebf6f20300913fa6b34774817e50819d033..e96ba7b97288d25a4217f15f3abf26a9adcd0064 100644 (file)
@@ -325,6 +325,9 @@ enum {
 
        /* skip this queue in blk_mq_(un)quiesce_tagset */
        BLK_FEAT_SKIP_TAGSET_QUIESCE            = (1u << 13),
+
+       /* bounce all highmem pages */
+       BLK_FEAT_BOUNCE_HIGH                    = (1u << 14),
 };
 
 /*
@@ -332,7 +335,7 @@ enum {
  */
 #define BLK_FEAT_INHERIT_MASK \
        (BLK_FEAT_WRITE_CACHE | BLK_FEAT_FUA | BLK_FEAT_ROTATIONAL | \
-        BLK_FEAT_STABLE_WRITES | BLK_FEAT_ZONED)
+        BLK_FEAT_STABLE_WRITES | BLK_FEAT_ZONED | BLK_FEAT_BOUNCE_HIGH)
 
 /* internal flags in queue_limits.flags */
 enum {
@@ -352,7 +355,6 @@ enum blk_bounce {
 struct queue_limits {
        unsigned int            features;
        unsigned int            flags;
-       enum blk_bounce         bounce;
        unsigned long           seg_boundary_mask;
        unsigned long           virt_boundary_mask;