1

nvme fixes for Linux 6.12

- A syntax cleanup (Shen)
  - Fix a Kconfig linking error (Arnd)
  - New queue-depth quirk (Keith)
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEE3Fbyvv+648XNRdHTPe3zGtjzRgkFAmbkTKcACgkQPe3zGtjz
 RgmVahAAu1cdexoKpqj0yGFLw6CyqXSHL8fcMMqjLYhBZ65xLW1z3H4e5GWVXE0x
 M8Bu0bKCHl7a+Rp5KtpGCT31nwLX0TTyv+nyKOFYdezU8kFh4wO5NDNV1iT4IW2q
 4NuxJt2sP6tIryIpC8OP1zx5qyKRDsgJEksSU2zZ9h39J6pAWOfYJr47n8jobDrg
 rdrRH8sE4FXKGP22mBUbv5tJ1XSECOHriHdaeg9Xh74ZFQr4+F/3BmTMWNjfi+Uu
 HEBiW0W2b/b1JJeVOVR4aqhJbsOUkPyqtD9o07zxsJsJ6VD82y/FiNRTBenZnHEb
 rZTrJ2n0uBf2S+/lX1jWfak2WCXpTwc/rLMDbfmFG8SMWHVDad/GdTm7+LPFs509
 5AlzF4SXDpzlKvvVEsXpaLWUm4LeTcw3dnk/4PjPXrVf15J/gc58So77qDpOXd/k
 xf0wbcRxSCUTum5Vvtx7XTsHvp/CzthfS2RxwhaYr1AJPqkqQg9W2kQa89fRBO9F
 i9IMZ6j4flJY7wqhH9niEBEEf/uCn7C1NwpPEhayXMBsbdR99Ibt1s+qktm3sj5X
 rQsU8kAMzJW9ijj9rA+0vfeEiQzDc3zTbhHFa/4R3wEqdzfOIFj3q/bfdCgMmYZk
 UzsmPZDqbdCXvqkI47YBUiVaY33M9dgrjecGW8O9FM+2qnFYOlg=
 =a7rh
 -----END PGP SIGNATURE-----

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:
Jens Axboe 2024-09-13 08:39:09 -06:00
commit d4d7c03f7e
4 changed files with 16 additions and 11 deletions

View File

@ -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

View File

@ -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;

View File

@ -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
*/

View File

@ -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 |