Page MenuHomeFreeBSD

D53296.id166519.diff
No OneTemporary

D53296.id166519.diff

Index: sys/dev/nvme/nvme_ctrlr.c
===================================================================
--- sys/dev/nvme/nvme_ctrlr.c
+++ sys/dev/nvme/nvme_ctrlr.c
@@ -908,7 +908,8 @@
size = sizeof(struct nvme_hmb_desc) * ctrlr->hmb_nchunks;
err = bus_dma_tag_create(bus_get_dma_tag(ctrlr->dev),
- 16, 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL,
+ ctrlr->quirks & QUIRK_HMB_PAGE_ALIGNED ? PAGE_SIZE : 16,
+ 0, BUS_SPACE_MAXADDR, BUS_SPACE_MAXADDR, NULL, NULL,
size, 1, size, 0, NULL, NULL, &ctrlr->hmb_desc_tag);
if (err != 0) {
nvme_printf(ctrlr, "HMB desc tag create failed %d\n", err);
Index: sys/dev/nvme/nvme_pci.c
===================================================================
--- sys/dev/nvme/nvme_pci.c
+++ sys/dev/nvme/nvme_pci.c
@@ -91,6 +91,7 @@
{ 0x05401c5f, 0, 0, "Memblaze Pblaze4", QUIRK_DELAY_B4_CHK_RDY },
{ 0xa821144d, 0, 0, "Samsung PM1725", QUIRK_DELAY_B4_CHK_RDY },
{ 0xa822144d, 0, 0, "Samsung PM1725a", QUIRK_DELAY_B4_CHK_RDY },
+ { 0x5427c0a9, 0, 0, "Crucial P310", QUIRK_HMB_PAGE_ALIGNED },
{ 0x07f015ad, 0, 0, "VMware NVMe Controller" },
{ 0x2003106b, 0, 0, "Apple S3X NVMe Controller" },
{ 0x00000000, 0, 0, NULL }
Index: sys/dev/nvme/nvme_private.h
===================================================================
--- sys/dev/nvme/nvme_private.h
+++ sys/dev/nvme/nvme_private.h
@@ -224,6 +224,7 @@
#define QUIRK_DISABLE_TIMEOUT 2 /* Disable broken completion timeout feature */
#define QUIRK_INTEL_ALIGNMENT 4 /* Pre NVMe 1.3 performance alignment */
#define QUIRK_AHCI 8 /* Attached via AHCI redirect */
+#define QUIRK_HMB_PAGE_ALIGNED 16 /* Page-size aligned HMB */
bus_space_tag_t bus_tag;
bus_space_handle_t bus_handle;

File Metadata

Mime Type
text/plain
Expires
Sun, May 17, 11:41 PM (11 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33219189
Default Alt Text
D53296.id166519.diff (1 KB)

Event Timeline