]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block: clear BLK_FEAT_PCI_P2PDMA in blk_stack_limits() for non-supporting devices
authorChaitanya Kulkarni <kch@nvidia.com>
Wed, 13 May 2026 18:51:51 +0000 (11:51 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 26 May 2026 21:51:48 +0000 (15:51 -0600)
BLK_FEAT_NOWAIT and BLK_FEAT_POLL are cleared in blk_stack_limits()
when an underlying device does not support them.  Apply the same
treatment to BLK_FEAT_PCI_P2PDMA: stacking drivers set it
unconditionally and rely on the core to clear it whenever a
non-supporting member device is stacked.

Tested-by: Pranjal Shrivastava <praan@google.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Nitesh Shetty <nj.shetty@samsung.com>
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Tested=by: Pranjal Shrivastava <praan@google.com>
Link: https://patch.msgid.link/20260513185153.95552-2-kch@nvidia.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c

index 78c83817b9d36b6781236c9ce688e3071dcddbe9..8274631290dbf48a203e4942275b178d11c1bac8 100644 (file)
@@ -795,6 +795,8 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b,
                t->features &= ~BLK_FEAT_NOWAIT;
        if (!(b->features & BLK_FEAT_POLL))
                t->features &= ~BLK_FEAT_POLL;
+       if (!(b->features & BLK_FEAT_PCI_P2PDMA))
+               t->features &= ~BLK_FEAT_PCI_P2PDMA;
 
        t->flags |= (b->flags & BLK_FLAG_MISALIGNED);