compress/qat: fix checksum on decompression
authorFiona Trahe <fiona.trahe@intel.com>
Sat, 22 Sep 2018 13:25:37 +0000 (14:25 +0100)
committerAkhil Goyal <akhil.goyal@nxp.com>
Thu, 27 Sep 2018 11:40:22 +0000 (13:40 +0200)
Checksum was always 0 on QAT decompression due to
incorrect use of union variable.

Fixes: 6a7ea14819e9 ("compress/qat: add xform processing")
Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
drivers/compress/qat/qat_comp.c

index 38c8a5b..6f1f2dc 100644 (file)
@@ -345,17 +345,16 @@ qat_comp_private_xform_create(struct rte_compressdev *dev,
                if (xform->compress.deflate.huffman == RTE_COMP_HUFFMAN_FIXED ||
                  ((xform->compress.deflate.huffman == RTE_COMP_HUFFMAN_DEFAULT)
                                   && qat->interm_buff_mz == NULL))
-
                        qat_xform->qat_comp_request_type =
                                        QAT_COMP_REQUEST_FIXED_COMP_STATELESS;
 
+               qat_xform->checksum_type = xform->compress.chksum;
 
        } else {
                qat_xform->qat_comp_request_type = QAT_COMP_REQUEST_DECOMPRESS;
+               qat_xform->checksum_type = xform->decompress.chksum;
        }
 
-       qat_xform->checksum_type = xform->compress.chksum;
-
        if (qat_comp_create_templates(qat_xform, qat->interm_buff_mz, xform)) {
                QAT_LOG(ERR, "QAT: Problem with setting compression");
                return -EINVAL;