mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-15 22:31:47 -04:00
Merge tag 'nvme-6.12-2024-09-13' of git://git.infradead.org/nvme into for-6.12/block
Pull NVMe fixes from Keith: "nvme fixes for Linux 6.12 - A syntax cleanup (Shen) - Fix a Kconfig linking error (Arnd) - New queue-depth quirk (Keith)" * tag 'nvme-6.12-2024-09-13' of git://git.infradead.org/nvme: nvme-pci: qdepth 1 quirk nvme-tcp: fix link failure for TCP auth nvme: Convert comma to semicolon
This commit is contained in:
@@ -41,6 +41,7 @@ config NVME_HWMON
|
||||
|
||||
config NVME_FABRICS
|
||||
select NVME_CORE
|
||||
select NVME_KEYRING if NVME_TCP_TLS
|
||||
tristate
|
||||
|
||||
config NVME_RDMA
|
||||
@@ -94,7 +95,6 @@ config NVME_TCP
|
||||
config NVME_TCP_TLS
|
||||
bool "NVMe over Fabrics TCP TLS encryption support"
|
||||
depends on NVME_TCP
|
||||
select NVME_KEYRING
|
||||
select NET_HANDSHAKE
|
||||
select KEYS
|
||||
help
|
||||
|
||||
@@ -4605,7 +4605,7 @@ int nvme_alloc_io_tag_set(struct nvme_ctrl *ctrl, struct blk_mq_tag_set *set,
|
||||
set->flags = BLK_MQ_F_SHOULD_MERGE;
|
||||
if (ctrl->ops->flags & NVME_F_BLOCKING)
|
||||
set->flags |= BLK_MQ_F_BLOCKING;
|
||||
set->cmd_size = cmd_size,
|
||||
set->cmd_size = cmd_size;
|
||||
set->driver_data = ctrl;
|
||||
set->nr_hw_queues = ctrl->queue_count - 1;
|
||||
set->timeout = NVME_IO_TIMEOUT;
|
||||
|
||||
@@ -90,6 +90,11 @@ enum nvme_quirks {
|
||||
*/
|
||||
NVME_QUIRK_NO_DEEPEST_PS = (1 << 5),
|
||||
|
||||
/*
|
||||
* Problems seen with concurrent commands
|
||||
*/
|
||||
NVME_QUIRK_QDEPTH_ONE = (1 << 6),
|
||||
|
||||
/*
|
||||
* Set MEDIUM priority on SQ creation
|
||||
*/
|
||||
|
||||
@@ -2557,15 +2557,8 @@ static int nvme_pci_enable(struct nvme_dev *dev)
|
||||
else
|
||||
dev->io_sqes = NVME_NVM_IOSQES;
|
||||
|
||||
/*
|
||||
* Temporary fix for the Apple controller found in the MacBook8,1 and
|
||||
* some MacBook7,1 to avoid controller resets and data loss.
|
||||
*/
|
||||
if (pdev->vendor == PCI_VENDOR_ID_APPLE && pdev->device == 0x2001) {
|
||||
if (dev->ctrl.quirks & NVME_QUIRK_QDEPTH_ONE) {
|
||||
dev->q_depth = 2;
|
||||
dev_warn(dev->ctrl.device, "detected Apple NVMe controller, "
|
||||
"set queue depth=%u to work around controller resets\n",
|
||||
dev->q_depth);
|
||||
} else if (pdev->vendor == PCI_VENDOR_ID_SAMSUNG &&
|
||||
(pdev->device == 0xa821 || pdev->device == 0xa822) &&
|
||||
NVME_CAP_MQES(dev->ctrl.cap) == 0) {
|
||||
@@ -3425,6 +3418,8 @@ static const struct pci_device_id nvme_id_table[] = {
|
||||
NVME_QUIRK_BOGUS_NID, },
|
||||
{ PCI_VDEVICE(REDHAT, 0x0010), /* Qemu emulated controller */
|
||||
.driver_data = NVME_QUIRK_BOGUS_NID, },
|
||||
{ PCI_DEVICE(0x1217, 0x8760), /* O2 Micro 64GB Steam Deck */
|
||||
.driver_data = NVME_QUIRK_QDEPTH_ONE },
|
||||
{ PCI_DEVICE(0x126f, 0x2262), /* Silicon Motion generic */
|
||||
.driver_data = NVME_QUIRK_NO_DEEPEST_PS |
|
||||
NVME_QUIRK_BOGUS_NID, },
|
||||
@@ -3559,7 +3554,12 @@ static const struct pci_device_id nvme_id_table[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_AMAZON, 0xcd02),
|
||||
.driver_data = NVME_QUIRK_DMA_ADDRESS_BITS_48, },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2001),
|
||||
.driver_data = NVME_QUIRK_SINGLE_VECTOR },
|
||||
/*
|
||||
* Fix for the Apple controller found in the MacBook8,1 and
|
||||
* some MacBook7,1 to avoid controller resets and data loss.
|
||||
*/
|
||||
.driver_data = NVME_QUIRK_SINGLE_VECTOR |
|
||||
NVME_QUIRK_QDEPTH_ONE },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2003) },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2005),
|
||||
.driver_data = NVME_QUIRK_SINGLE_VECTOR |
|
||||
|
||||
Reference in New Issue
Block a user