On Sat, Apr 09, 2022 at 06:50:40AM +0200, Christoph Hellwig wrote: > diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c > index efb85c6d8e2d5..7e07dd69262a7 100644 > --- a/drivers/nvme/host/core.c > +++ b/drivers/nvme/host/core.c > @@ -1607,10 +1607,8 @@ static void nvme_config_discard(struct gendisk *disk, struct nvme_ns *ns) > struct request_queue *queue = disk->queue; > u32 size = queue_logical_block_size(queue); > > - if (ctrl->max_discard_sectors == 0) { > - blk_queue_flag_clear(QUEUE_FLAG_DISCARD, queue); > + if (ctrl->max_discard_sectors == 0) > return; > - } I think we need to update the queue limit in this condition. While unlikley, the flag was cleared here in case the device changed support for discard from the previous reset.