Message ID | 1448371608-18053-2-git-send-email-m@bjorling.me (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 11/24/2015 04:52 PM, Elliott, Robert (Persistent Memory) wrote: > > >> -----Original Message----- >> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel- >> owner@vger.kernel.org] On Behalf Of Matias Bjørling >> Sent: Tuesday, November 24, 2015 7:27 AM > ... >> Instead of using the Intel NVMe QEMU instance vendor and device id, >> let's use a preallocated from CNEX Labs instead. This lets us > ... >> /* QEMU NVMe simulator - PCI ID + Vendor specific bit */ >> - if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == >> 0x5845 && >> + if (pdev->vendor == 0x1d1d && pdev->device == 0x1f1f && >> id->vs[0] == 0x1) > > Could this patch add PCI_VENDOR_ID_CNEX to the appropriate .h file > and use that instead? We could. But it would only be for this single use-case? Might be a little overkill to put in pci_ids.h. Opt for lightnvm.h? or somewhere else? Thanks -- To unsubscribe from this list: send the line "unsubscribe linux-block" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 11/24/2015 11:24 AM, Matias Bjørling wrote: > On 11/24/2015 04:52 PM, Elliott, Robert (Persistent Memory) wrote: >> >> >>> -----Original Message----- >>> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel- >>> owner@vger.kernel.org] On Behalf Of Matias Bjørling >>> Sent: Tuesday, November 24, 2015 7:27 AM >> ... >>> Instead of using the Intel NVMe QEMU instance vendor and device id, >>> let's use a preallocated from CNEX Labs instead. This lets us >> ... >>> /* QEMU NVMe simulator - PCI ID + Vendor specific bit */ >>> - if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == >>> 0x5845 && >>> + if (pdev->vendor == 0x1d1d && pdev->device == 0x1f1f && >>> id->vs[0] == 0x1) >> >> Could this patch add PCI_VENDOR_ID_CNEX to the appropriate .h file >> and use that instead? > > We could. But it would only be for this single use-case? Might be a > little overkill to put in pci_ids.h. Opt for lightnvm.h? or somewhere else? Or just add a comment, this: if (pdev->vendor == 0x1d1d && pdev->device == 0x1f1f means nothing to anyone.
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c index 9202d1a..0789265 100644 --- a/drivers/nvme/host/lightnvm.c +++ b/drivers/nvme/host/lightnvm.c @@ -577,7 +577,7 @@ int nvme_nvm_ns_supported(struct nvme_ns *ns, struct nvme_id_ns *id) struct pci_dev *pdev = to_pci_dev(dev->dev); /* QEMU NVMe simulator - PCI ID + Vendor specific bit */ - if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x5845 && + if (pdev->vendor == 0x1d1d && pdev->device == 0x1f1f && id->vs[0] == 0x1) return 1;
The QEMU NVMe simulator uses the intel vendor, qemu device id, and the first vendor specific byte to identify a lightnvm compatible nvme instance. Instead of using the Intel NVMe QEMU instance vendor and device id, let's use a preallocated from CNEX Labs instead. This lets us uniquely identify a QEMU lightnvm device without breaking other vendor specific work in the qemu device driver. Reported-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Matias Bjørling <m@bjorling.me> --- drivers/nvme/host/lightnvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)