From cdf88e0fb0f5a575c76a154ec2740a9942059e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mehmet=20Fatih=20G=C3=BCzelyurt?= Date: Tue, 4 Aug 2026 02:38:44 +0300 Subject: [PATCH] nvme: disable FUA for Kingston KC3000/FURY Renegade --- drivers/nvme/host/core.c | 3 +++ drivers/nvme/host/nvme.h | 5 +++++ drivers/nvme/host/pci.c | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index a231da6..08bcc97 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2430,6 +2430,9 @@ static int nvme_update_ns_info_block(struct nvme_ns *ns, else lim.features &= ~(BLK_FEAT_WRITE_CACHE | BLK_FEAT_FUA); + if (ns->ctrl->quirks & NVME_QUIRK_NO_FUA) + lim.features &= ~BLK_FEAT_FUA; + if (info->is_rotational) lim.features |= BLK_FEAT_ROTATIONAL; diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index ccd5e05..a687b72 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -178,6 +178,11 @@ enum nvme_quirks { * Align dma pool segment size to 512 bytes */ NVME_QUIRK_DMAPOOL_ALIGN_512 = (1 << 22), + + /* + * Prefers a complete cache flush (REQ_POSTFLUSH) over Forced Unit Access (FUA) operation (REQ_FUA). + */ + NVME_QUIRK_NO_FUA = (1 << 23), }; static inline char *nvme_quirk_name(enum nvme_quirks q) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 0de6844..eca40d9 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -4203,7 +4203,8 @@ static const struct pci_device_id nvme_id_table[] = { { PCI_DEVICE(0x2646, 0x2263), /* KINGSTON A2000 NVMe SSD */ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(0x2646, 0x5013), /* Kingston KC3000, Kingston FURY Renegade */ - .driver_data = NVME_QUIRK_NO_SECONDARY_TEMP_THRESH, }, + .driver_data = NVME_QUIRK_NO_SECONDARY_TEMP_THRESH | + NVME_QUIRK_NO_FUA, }, { PCI_DEVICE(0x2646, 0x5018), /* KINGSTON OM8SFP4xxxxP OS21012 NVMe SSD */ .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, { PCI_DEVICE(0x2646, 0x5016), /* KINGSTON OM3PGP4xxxxP OS21011 NVMe SSD */ -- 2.55.0