crypto/qat: fix truncated response ring value
authorFiona Trahe <fiona.trahe@intel.com>
Mon, 29 Jan 2018 18:33:40 +0000 (18:33 +0000)
committerPablo de Lara <pablo.de.lara.guarch@intel.com>
Mon, 29 Jan 2018 19:22:33 +0000 (20:22 +0100)
Issue detected by coverity. Could never actually cause a
problem as truncated value (0x7f7f7f7f->0x7f) is what's needed.
But fix in code for correctness.

Coverity issue: 194998
Fixes: 571365dd4c5e ("crypto/qat: enable Rx head writes coalescing")
Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
drivers/crypto/qat/qat_adf/adf_transport_access_macros.h
drivers/crypto/qat/qat_crypto.c

index d218f85..4f8f3d1 100644 (file)
@@ -80,6 +80,7 @@
 #define ADF_RING_NEAR_WATERMARK_512 0x08
 #define ADF_RING_NEAR_WATERMARK_0 0x00
 #define ADF_RING_EMPTY_SIG 0x7F7F7F7F
+#define ADF_RING_EMPTY_SIG_BYTE 0x7F
 
 /* Valid internal ring size values */
 #define ADF_RING_SIZE_128 0x01
index f2a2875..4afe159 100644 (file)
@@ -1010,10 +1010,10 @@ void rxq_free_desc(struct qat_qp *qp, struct qat_queue *q)
        void *cur_desc = (uint8_t *)q->base_addr + old_head;
 
        if (new_head < old_head) {
-               memset(cur_desc, ADF_RING_EMPTY_SIG, max_head - old_head);
-               memset(q->base_addr, ADF_RING_EMPTY_SIG, new_head);
+               memset(cur_desc, ADF_RING_EMPTY_SIG_BYTE, max_head - old_head);
+               memset(q->base_addr, ADF_RING_EMPTY_SIG_BYTE, new_head);
        } else {
-               memset(cur_desc, ADF_RING_EMPTY_SIG, new_head - old_head);
+               memset(cur_desc, ADF_RING_EMPTY_SIG_BYTE, new_head - old_head);
        }
        q->nb_processed_responses = 0;
        q->csr_head = new_head;