* [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0
@ 2018-10-27 16:48 Jerin Jacob
2018-10-29 17:29 ` Trahe, Fiona
2018-10-31 0:39 ` [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error Fiona Trahe
0 siblings, 2 replies; 7+ messages in thread
From: Jerin Jacob @ 2018-10-27 16:48 UTC (permalink / raw)
To: dev, Fiona Trahe, Pablo de Lara, Gupta, Ashish; +Cc: thomas, Jacob, Jerin
QAT_NUM_BUFS_IN_IM_SGL defined as 1 the code access beyond
the first element.
error log:
/export/dpdk.org/drivers/compress/qat/qat_comp_pmd.c:214:3:
error: array index 1 is past the end of the array
(which contains 1 element) [-Werror,-Warray-bounds]
sgl->buffers[1].addr = mz_start_phys + offset_of_flat_buffs +
Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
drivers/compress/qat/qat_comp.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/compress/qat/qat_comp.h b/drivers/compress/qat/qat_comp.h
index 99a4462eb..24d0d9cb4 100644
--- a/drivers/compress/qat/qat_comp.h
+++ b/drivers/compress/qat/qat_comp.h
@@ -17,7 +17,7 @@
#define QAT_64_BYTE_ALIGN_MASK (~0x3f)
#define QAT_64_BYTE_ALIGN (64)
-#define QAT_NUM_BUFS_IN_IM_SGL 1
+#define QAT_NUM_BUFS_IN_IM_SGL 2
#define ERR_CODE_QAT_COMP_WRONG_FW -99
--
2.19.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0
2018-10-27 16:48 [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0 Jerin Jacob
@ 2018-10-29 17:29 ` Trahe, Fiona
2018-10-31 0:39 ` [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error Fiona Trahe
1 sibling, 0 replies; 7+ messages in thread
From: Trahe, Fiona @ 2018-10-29 17:29 UTC (permalink / raw)
To: Jerin Jacob, dev, Gupta, Ashish; +Cc: thomas, Jacob, Jerin, Trahe, Fiona
Hi Jerin,
> -----Original Message-----
> From: Jerin Jacob [mailto:jerin.jacob@caviumnetworks.com]
> Sent: Saturday, October 27, 2018 9:48 AM
> To: dev@dpdk.org; Trahe, Fiona <fiona.trahe@intel.com>; De Lara Guarch, Pablo
> <pablo.de.lara.guarch@intel.com>; Gupta, Ashish <Ashish.Gupta@cavium.com>
> Cc: thomas@monjalon.net; Jacob, Jerin <Jerin.JacobKollanukkaran@cavium.com>
> Subject: [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0
>
> QAT_NUM_BUFS_IN_IM_SGL defined as 1 the code access beyond
> the first element.
>
> error log:
> /export/dpdk.org/drivers/compress/qat/qat_comp_pmd.c:214:3:
> error: array index 1 is past the end of the array
> (which contains 1 element) [-Werror,-Warray-bounds]
> sgl->buffers[1].addr = mz_start_phys + offset_of_flat_buffs +
>
> Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---
> drivers/compress/qat/qat_comp.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/compress/qat/qat_comp.h b/drivers/compress/qat/qat_comp.h
> index 99a4462eb..24d0d9cb4 100644
> --- a/drivers/compress/qat/qat_comp.h
> +++ b/drivers/compress/qat/qat_comp.h
> @@ -17,7 +17,7 @@
>
> #define QAT_64_BYTE_ALIGN_MASK (~0x3f)
> #define QAT_64_BYTE_ALIGN (64)
> -#define QAT_NUM_BUFS_IN_IM_SGL 1
> +#define QAT_NUM_BUFS_IN_IM_SGL 2
[Fiona] Thanks for this. I'm surprised gcc didn't give a warning.
However, setting to 2 causes issues on some platforms, which
was why we reverted to 1 in an earlier iteration.
So Nack
I'll send a different patch to fix.
>
> #define ERR_CODE_QAT_COMP_WRONG_FW -99
>
> --
> 2.19.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error
2018-10-27 16:48 [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0 Jerin Jacob
2018-10-29 17:29 ` Trahe, Fiona
@ 2018-10-31 0:39 ` Fiona Trahe
2018-10-31 6:35 ` Jerin Jacob
2018-11-01 21:16 ` Jozwiak, TomaszX
1 sibling, 2 replies; 7+ messages in thread
From: Fiona Trahe @ 2018-10-31 0:39 UTC (permalink / raw)
To: dev; +Cc: thomas, akhil.goyal, tomaszx.jozwiak, jerin.jacob, Fiona Trahe
QAT array for sgls in intermediate buffer structure
was #defined to 1, but setup code hardcoded as if 2 buffers
so causing out of bounds write. Reworked to loop correctly
using #define.
Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
Reported-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
---
drivers/compress/qat/qat_comp_pmd.c | 38 ++++++++++++++++++++-----------------
1 file changed, 21 insertions(+), 17 deletions(-)
diff --git a/drivers/compress/qat/qat_comp_pmd.c b/drivers/compress/qat/qat_comp_pmd.c
index 01dd736..ea93077 100644
--- a/drivers/compress/qat/qat_comp_pmd.c
+++ b/drivers/compress/qat/qat_comp_pmd.c
@@ -165,11 +165,14 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
}
/* Create a memzone to hold intermediate buffers and associated
- * meta-data needed by the firmware. The memzone contains:
+ * meta-data needed by the firmware. The memzone contains 3 parts:
* - a list of num_im_sgls physical pointers to sgls
- * - the num_im_sgl sgl structures, each pointing to 2 flat buffers
- * - the flat buffers: num_im_sgl * 2
- * where num_im_sgls depends on the hardware generation of the device
+ * - the num_im_sgl sgl structures, each pointing to
+ * QAT_NUM_BUFS_IN_IM_SGL flat buffers
+ * - the flat buffers: num_im_sgl * QAT_NUM_BUFS_IN_IM_SGL
+ * buffers, each of buff_size
+ * num_im_sgls depends on the hardware generation of the device
+ * buff_size comes from the user via the config file
*/
size_of_ptr_array = num_im_sgls * sizeof(phys_addr_t);
@@ -202,30 +205,31 @@ qat_comp_setup_inter_buffers(struct qat_comp_dev_private *comp_dev,
offset_of_sgls + i * sizeof(struct qat_inter_sgl);
struct qat_inter_sgl *sgl =
(struct qat_inter_sgl *)(mz_start + curr_sgl_offset);
+ int lb;
array_of_pointers->pointer[i] = mz_start_phys + curr_sgl_offset;
sgl->num_bufs = QAT_NUM_BUFS_IN_IM_SGL;
sgl->num_mapped_bufs = 0;
sgl->resrvd = 0;
- sgl->buffers[0].addr = mz_start_phys + offset_of_flat_buffs +
- ((i * QAT_NUM_BUFS_IN_IM_SGL) * buff_size);
- sgl->buffers[0].len = buff_size;
- sgl->buffers[0].resrvd = 0;
- sgl->buffers[1].addr = mz_start_phys + offset_of_flat_buffs +
- (((i * QAT_NUM_BUFS_IN_IM_SGL) + 1) * buff_size);
- sgl->buffers[1].len = buff_size;
- sgl->buffers[1].resrvd = 0;
#if QAT_IM_BUFFER_DEBUG
QAT_LOG(DEBUG, " : phys addr of sgl[%i] in array_of_pointers"
- "= 0x%"PRIx64, i, array_of_pointers->pointer[i]);
+ " = 0x%"PRIx64, i, array_of_pointers->pointer[i]);
QAT_LOG(DEBUG, " : virt address of sgl[%i] = %p", i, sgl);
- QAT_LOG(DEBUG, " : sgl->buffers[0].addr = 0x%"PRIx64", len=%d",
- sgl->buffers[0].addr, sgl->buffers[0].len);
- QAT_LOG(DEBUG, " : sgl->buffers[1].addr = 0x%"PRIx64", len=%d",
- sgl->buffers[1].addr, sgl->buffers[1].len);
+#endif
+ for (lb = 0; lb < QAT_NUM_BUFS_IN_IM_SGL; lb++) {
+ sgl->buffers[lb].addr =
+ mz_start_phys + offset_of_flat_buffs +
+ (((i * QAT_NUM_BUFS_IN_IM_SGL) + lb) * buff_size);
+ sgl->buffers[lb].len = buff_size;
+ sgl->buffers[lb].resrvd = 0;
+#if QAT_IM_BUFFER_DEBUG
+ QAT_LOG(DEBUG,
+ " : sgl->buffers[%d].addr = 0x%"PRIx64", len=%d",
+ lb, sgl->buffers[lb].addr, sgl->buffers[lb].len);
#endif
}
+ }
#if QAT_IM_BUFFER_DEBUG
QAT_DP_HEXDUMP_LOG(DEBUG, "IM buffer memzone start:",
mz_start, offset_of_flat_buffs + 32);
--
2.7.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error
2018-10-31 0:39 ` [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error Fiona Trahe
@ 2018-10-31 6:35 ` Jerin Jacob
2018-11-01 14:16 ` Bruce Richardson
2018-11-01 21:16 ` Jozwiak, TomaszX
1 sibling, 1 reply; 7+ messages in thread
From: Jerin Jacob @ 2018-10-31 6:35 UTC (permalink / raw)
To: Fiona Trahe; +Cc: dev, thomas, akhil.goyal, tomaszx.jozwiak
-----Original Message-----
> Date: Wed, 31 Oct 2018 00:39:54 +0000
> From: Fiona Trahe <fiona.trahe@intel.com>
> To: dev@dpdk.org
> CC: thomas@monjalon.net, akhil.goyal@nxp.com, tomaszx.jozwiak@intel.com,
> jerin.jacob@caviumnetworks.com, Fiona Trahe <fiona.trahe@intel.com>
> Subject: [PATCH] compress/qat: fix out-of-bounds error
> X-Mailer: git-send-email 1.7.0.7
>
>
> QAT array for sgls in intermediate buffer structure
> was #defined to 1, but setup code hardcoded as if 2 buffers
> so causing out of bounds write. Reworked to loop correctly
> using #define.
>
> Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
>
> Reported-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
clang build is not reproducible with this patch.
Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error
2018-10-31 6:35 ` Jerin Jacob
@ 2018-11-01 14:16 ` Bruce Richardson
2018-11-02 11:41 ` Akhil Goyal
0 siblings, 1 reply; 7+ messages in thread
From: Bruce Richardson @ 2018-11-01 14:16 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Fiona Trahe, dev, thomas, akhil.goyal, tomaszx.jozwiak
On Wed, Oct 31, 2018 at 06:35:11AM +0000, Jerin Jacob wrote:
> -----Original Message-----
> > Date: Wed, 31 Oct 2018 00:39:54 +0000
> > From: Fiona Trahe <fiona.trahe@intel.com>
> > To: dev@dpdk.org
> > CC: thomas@monjalon.net, akhil.goyal@nxp.com, tomaszx.jozwiak@intel.com,
> > jerin.jacob@caviumnetworks.com, Fiona Trahe <fiona.trahe@intel.com>
> > Subject: [PATCH] compress/qat: fix out-of-bounds error
> > X-Mailer: git-send-email 1.7.0.7
> >
> >
> > QAT array for sgls in intermediate buffer structure
> > was #defined to 1, but setup code hardcoded as if 2 buffers
> > so causing out of bounds write. Reworked to loop correctly
> > using #define.
> >
> > Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
> >
> > Reported-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
>
> clang build is not reproducible with this patch.
s/not/now/ :-)
>
> Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>
I can also confirm that clang builds which were failing without this patch
are now building ok on Fedora 29.
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error
2018-10-31 0:39 ` [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error Fiona Trahe
2018-10-31 6:35 ` Jerin Jacob
@ 2018-11-01 21:16 ` Jozwiak, TomaszX
1 sibling, 0 replies; 7+ messages in thread
From: Jozwiak, TomaszX @ 2018-11-01 21:16 UTC (permalink / raw)
To: Trahe, Fiona, dev; +Cc: thomas, akhil.goyal, jerin.jacob
> -----Original Message-----
> From: Trahe, Fiona
> Sent: Wednesday, October 31, 2018 1:40 AM
> To: dev@dpdk.org
> Cc: thomas@monjalon.net; akhil.goyal@nxp.com; Jozwiak, TomaszX
> <tomaszx.jozwiak@intel.com>; jerin.jacob@caviumnetworks.com; Trahe,
> Fiona <fiona.trahe@intel.com>
> Subject: [PATCH] compress/qat: fix out-of-bounds error
>
> QAT array for sgls in intermediate buffer structure was #defined to 1, but
> setup code hardcoded as if 2 buffers so causing out of bounds write.
> Reworked to loop correctly using #define.
>
> Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
>
> Reported-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
> ---
Acked-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error
2018-11-01 14:16 ` Bruce Richardson
@ 2018-11-02 11:41 ` Akhil Goyal
0 siblings, 0 replies; 7+ messages in thread
From: Akhil Goyal @ 2018-11-02 11:41 UTC (permalink / raw)
To: Bruce Richardson, Jerin Jacob; +Cc: Fiona Trahe, dev, thomas, tomaszx.jozwiak
On 11/1/2018 7:46 PM, Bruce Richardson wrote:
> On Wed, Oct 31, 2018 at 06:35:11AM +0000, Jerin Jacob wrote:
>> -----Original Message-----
>>> Date: Wed, 31 Oct 2018 00:39:54 +0000
>>> From: Fiona Trahe <fiona.trahe@intel.com>
>>> To: dev@dpdk.org
>>> CC: thomas@monjalon.net, akhil.goyal@nxp.com, tomaszx.jozwiak@intel.com,
>>> jerin.jacob@caviumnetworks.com, Fiona Trahe <fiona.trahe@intel.com>
>>> Subject: [PATCH] compress/qat: fix out-of-bounds error
>>> X-Mailer: git-send-email 1.7.0.7
>>>
>>>
>>> QAT array for sgls in intermediate buffer structure
>>> was #defined to 1, but setup code hardcoded as if 2 buffers
>>> so causing out of bounds write. Reworked to loop correctly
>>> using #define.
>>>
>>> Fixes: a124830a6f00 ("compress/qat: enable dynamic huffman encoding")
>>>
>>> Reported-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>>> Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
>> clang build is not reproducible with this patch.
> s/not/now/ :-)
>> Tested-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>>
> I can also confirm that clang builds which were failing without this patch
> are now building ok on Fedora 29.
>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
>
Applied to dpdk-next-crypto
Thanks.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-11-02 11:41 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-10-27 16:48 [dpdk-dev] [PATCH] compress/qat: fix build issue with clang 7.0.0 Jerin Jacob
2018-10-29 17:29 ` Trahe, Fiona
2018-10-31 0:39 ` [dpdk-dev] [PATCH] compress/qat: fix out-of-bounds error Fiona Trahe
2018-10-31 6:35 ` Jerin Jacob
2018-11-01 14:16 ` Bruce Richardson
2018-11-02 11:41 ` Akhil Goyal
2018-11-01 21:16 ` Jozwiak, TomaszX
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).