[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stable-7.2.6 06/37] hw/nvme: fix CRC64 for guard tag
From: |
Michael Tokarev |
Subject: |
[Stable-7.2.6 06/37] hw/nvme: fix CRC64 for guard tag |
Date: |
Sat, 9 Sep 2023 16:04:36 +0300 |
From: Ankit Kumar <ankit.kumar@samsung.com>
The nvme CRC64 generator expects the caller to pass inverted seed value.
Pass inverted crc value for metadata buffer.
Cc: qemu-stable@nongnu.org
Fixes: 44219b6029fc ("hw/nvme: 64-bit pi support")
Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
(cherry picked from commit dbdb13f931d7cf2d3c3ca662e751bb1551e9eab6)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
diff --git a/hw/nvme/dif.c b/hw/nvme/dif.c
index 63c44c86ab..01b19c3373 100644
--- a/hw/nvme/dif.c
+++ b/hw/nvme/dif.c
@@ -115,7 +115,7 @@ static void nvme_dif_pract_generate_dif_crc64(NvmeNamespace
*ns, uint8_t *buf,
uint64_t crc = crc64_nvme(~0ULL, buf, ns->lbasz);
if (pil) {
- crc = crc64_nvme(crc, mbuf, pil);
+ crc = crc64_nvme(~crc, mbuf, pil);
}
dif->g64.guard = cpu_to_be64(crc);
@@ -246,7 +246,7 @@ static uint16_t nvme_dif_prchk_crc64(NvmeNamespace *ns,
NvmeDifTuple *dif,
uint64_t crc = crc64_nvme(~0ULL, buf, ns->lbasz);
if (pil) {
- crc = crc64_nvme(crc, mbuf, pil);
+ crc = crc64_nvme(~crc, mbuf, pil);
}
trace_pci_nvme_dif_prchk_guard_crc64(be64_to_cpu(dif->g64.guard), crc);
--
2.39.2
- [Stable-7.2.6 00/37] Patch Round-up for stable 7.2.6, freeze on 2023-09-19, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 01/37] machine: Add helpers to get cores/threads per socket, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 02/37] hw/smbios: Fix smbios_smp_sockets caculation, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 03/37] hw/smbios: Fix thread count in type4, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 04/37] hw/smbios: Fix core count in type4, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 05/37] dump: kdump-zlib data pages not dumped with pvtime/aarch64, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 06/37] hw/nvme: fix CRC64 for guard tag,
Michael Tokarev <=
- [Stable-7.2.6 07/37] linux-user/elfload: Set V in ELF_HWCAP for RISC-V, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 08/37] include/exec/user: Set ABI_LLONG_ALIGNMENT to 4 for microblaze, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 09/37] include/exec/user: Set ABI_LLONG_ALIGNMENT to 4 for nios2, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 10/37] Fixed incorrect LLONG alignment for openrisc and cris, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 11/37] target/s390x: Fix the "ignored match" case in VSTRS, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 12/37] target/s390x: Use a 16-bit immediate in VREP, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 13/37] target/s390x: Fix VSTL with a large length, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 14/37] target/s390x: Check reserved bits of VFMIN/VFMAX's M5, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 15/37] include/hw/virtio/virtio-gpu: Fix virtio-gpu with blob on big endian hosts, Michael Tokarev, 2023/09/09
- [Stable-7.2.6 16/37] kvm: Introduce kvm_arch_get_default_type hook, Michael Tokarev, 2023/09/09