hw/nvme: fix CRC64 for guard tag
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: 44219b6029
("hw/nvme: 64-bit pi support")
Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
parent
0450cf0897
commit
dbdb13f931
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user