Patch "nvme: don't apply NVME_QUIRK_DEALLOCATE_ZEROES when DSM is not supported" has been added to the 6.12-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    nvme: don't apply NVME_QUIRK_DEALLOCATE_ZEROES when DSM is not supported

to the 6.12-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     nvme-don-t-apply-nvme_quirk_deallocate_zeroes-when-d.patch
and it can be found in the queue-6.12 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit e67ca80326d425ca40b0ba1b44cbcd3039604d8f
Author: Christoph Hellwig <hch@xxxxxx>
Date:   Wed Nov 27 07:42:18 2024 +0100

    nvme: don't apply NVME_QUIRK_DEALLOCATE_ZEROES when DSM is not supported
    
    [ Upstream commit 58a0c875ce028678c9594c7bdf3fe33462392808 ]
    
    Commit 63dfa1004322 ("nvme: move NVME_QUIRK_DEALLOCATE_ZEROES out of
    nvme_config_discard") started applying the NVME_QUIRK_DEALLOCATE_ZEROES
    quirk even then the Dataset Management is not supported.  It turns out
    that there versions of these old Intel SSDs that have DSM support
    disabled in the firmware, which will now lead to errors everytime
    a Write Zeroes command is issued.  Fix this by checking for DSM support
    before applying the quirk.
    
    Reported-by: Saeed Mirzamohammadi <saeed.mirzamohammadi@xxxxxxxxxx>
    Fixes: 63dfa1004322 ("nvme: move NVME_QUIRK_DEALLOCATE_ZEROES out of nvme_config_discard")
    Tested-by: Saeed Mirzamohammadi <saeed.mirzamohammadi@xxxxxxxxxx>
    Signed-off-by: Christoph Hellwig <hch@xxxxxx>
    Reviewed-by: Nitesh Shetty <nj.shetty@xxxxxxxxxxx>
    Reviewed-by: Chaitanya Kulkarni <kch@xxxxxxxxxx>
    Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index f0d4c6f3cb055..fe83d31ac928b 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -2064,7 +2064,8 @@ static bool nvme_update_disk_info(struct nvme_ns *ns, struct nvme_id_ns *id,
 	lim->physical_block_size = min(phys_bs, atomic_bs);
 	lim->io_min = phys_bs;
 	lim->io_opt = io_opt;
-	if (ns->ctrl->quirks & NVME_QUIRK_DEALLOCATE_ZEROES)
+	if ((ns->ctrl->quirks & NVME_QUIRK_DEALLOCATE_ZEROES) &&
+	    (ns->ctrl->oncs & NVME_CTRL_ONCS_DSM))
 		lim->max_write_zeroes_sectors = UINT_MAX;
 	else
 		lim->max_write_zeroes_sectors = ns->ctrl->max_zeroes_sectors;




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux