This commit is contained in:
Aditya Garg
2021-10-07 14:11:43 +05:30
parent 63ace2098a
commit 84526e6de1
2 changed files with 2 additions and 75 deletions
-69
View File
@@ -1,69 +0,0 @@
Link: https://bugzilla.kernel.org/show_bug.cgi?id=214509
Cc: Sven Peter <sven at svenpeter.dev>
Reported-by: Orlando Chamberlain <redecorating at protonmail.com>
Reported-by: Aditya Garg <gargaditya08 at live.com>
Signed-off-by: Keith Busch <kbusch at kernel.org>
---
v1->v2: fixed logical bug checking the quirk setting
drivers/nvme/host/core.c | 4 +++-
drivers/nvme/host/nvme.h | 6 ++++++
drivers/nvme/host/pci.c | 3 ++-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index e486845d2c7e..7712a8f78337 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -978,6 +978,7 @@ EXPORT_SYMBOL_GPL(nvme_cleanup_cmd);
blk_status_t nvme_setup_cmd(struct nvme_ns *ns, struct request *req)
{
struct nvme_command *cmd = nvme_req(req)->cmd;
+ struct nvme_ctrl *ctrl = nvme_req(req)->ctrl;
blk_status_t ret = BLK_STS_OK;
if (!(req->rq_flags & RQF_DONTPREP)) {
@@ -1026,7 +1027,8 @@ blk_status_t nvme_setup_cmd(struct nvme_ns *ns, struct request *req)
return BLK_STS_IOERR;
}
- nvme_req(req)->genctr++;
+ if (!(ctrl->quirks & NVME_QUIRK_SKIP_CID_GEN))
+ nvme_req(req)->genctr++;
cmd->common.command_id = nvme_cid(req);
trace_nvme_setup_cmd(req, cmd);
return ret;
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 9871c0c9374c..ed79a6c7e804 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -138,6 +138,12 @@ enum nvme_quirks {
* 48 bits.
*/
NVME_QUIRK_DMA_ADDRESS_BITS_48 = (1 << 16),
+
+ /*
+ * The controller requires the command_id value be be limited, so skip
+ * encoding the generation sequence number.
+ */
+ NVME_QUIRK_SKIP_CID_GEN = (1 << 17),
};
/*
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index b82492cd7503..456a0e8a5718 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -3369,7 +3369,8 @@ static const struct pci_device_id nvme_id_table[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_APPLE, 0x2005),
.driver_data = NVME_QUIRK_SINGLE_VECTOR |
NVME_QUIRK_128_BYTES_SQES |
- NVME_QUIRK_SHARED_TAGS },
+ NVME_QUIRK_SHARED_TAGS |
+ NVME_QUIRK_SKIP_CID_GEN },
{ PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_EXPRESS, 0xffffff) },
{ 0, }
--
2.25.4
+2 -6
View File
@@ -3,7 +3,7 @@
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com> # Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgbase=mbp-16.1-linux-wifi pkgbase=mbp-16.1-linux-wifi
pkgver=5.14.8 pkgver=5.14.10
_srcname=linux-${pkgver} _srcname=linux-${pkgver}
pkgrel=1 pkgrel=1
pkgdesc='Linux for MBP 16.1 Wifi' pkgdesc='Linux for MBP 16.1 Wifi'
@@ -26,9 +26,6 @@ source=(
# Arch Linux patches # Arch Linux patches
0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch
0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch 0002-HID-quirks-Add-Apple-Magic-Trackpad-2-to-hid_have_sp.patch
#NVMe fix
1001-nvme.patch
# Hack for AMD DC eDP link rate bug # Hack for AMD DC eDP link rate bug
2001-drm-amd-display-Force-link_rate-as-LINK_RATE_RBR2-fo.patch 2001-drm-amd-display-Force-link_rate-as-LINK_RATE_RBR2-fo.patch
@@ -241,12 +238,11 @@ for _p in "${pkgname[@]}"; do
}" }"
done done
sha256sums=('ca0eda14c512efa7fc054e9eb89dd8f6a6e7075aef1e39d30b5f243f7bde9b89' sha256sums=('45ce25e0abd1b46b273c804a00cd3513cd2a5bbcd89180e2e2a5dc8d062085d8'
'SKIP' 'SKIP'
'1ddd4443470ad66aff8075e0528ad7757de41d474152db1362e23be72e243919' '1ddd4443470ad66aff8075e0528ad7757de41d474152db1362e23be72e243919'
'6b4da532421cac5600d09c0c52742aa52d848af098f7853abe60c02e9d0a3752' '6b4da532421cac5600d09c0c52742aa52d848af098f7853abe60c02e9d0a3752'
'2184069ab00ef43d9674756e9b7a56d15188bc4494d34425f04ddc779c52acd8' '2184069ab00ef43d9674756e9b7a56d15188bc4494d34425f04ddc779c52acd8'
'50bab6fa754e857c462fb1cf88a74b88bd85b5a34fdebbc54e4ded7a9a04e004'
'786dfc22e4c6ece883e7dedd0ba3f6c14018584df95450b2cb78f3da8b01f7cb' '786dfc22e4c6ece883e7dedd0ba3f6c14018584df95450b2cb78f3da8b01f7cb'
'7366a08383900a09f8e742b1e4f0a02e0839a385e68e70a89d1815c197df3300' '7366a08383900a09f8e742b1e4f0a02e0839a385e68e70a89d1815c197df3300'
'8d8401a99a9dfbc41aa2dc5b6a409a19860b1b918465e19de4a4ff18de075ea3' '8d8401a99a9dfbc41aa2dc5b6a409a19860b1b918465e19de4a4ff18de075ea3'