[PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset

Colin Ian King posted 1 patch 1 week ago
drivers/gpu/drm/xe/xe_late_bind_fw.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
Posted by Colin Ian King 1 week ago
The variable offset is not being initialized, and it is only set inside
a for-loop if entry->name is the same as manifest_entry. In the case
where it is not initialized a non-zero check on offset is potentialy checking
a bogus uninitalized value. Fix this by initializing offset to zero.

Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---

V2: Fix identical issue in parse_lb_layout that I ommitted in the first
patch

---
 drivers/gpu/drm/xe/xe_late_bind_fw.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
index 38f3feb2aecd..8f5082e689dc 100644
--- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
+++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
@@ -60,7 +60,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
 	const struct gsc_manifest_header *manifest;
 	const struct gsc_cpd_entry *entry;
 	size_t min_size = sizeof(*header);
-	u32 offset;
+	u32 offset = 0;
 	int i;
 
 	/* manifest_entry is mandatory */
@@ -116,7 +116,7 @@ static int parse_lb_layout(struct xe_late_bind_fw *lb_fw,
 	const struct csc_fpt_header *header = data;
 	const struct csc_fpt_entry *entry;
 	size_t min_size = sizeof(*header);
-	u32 offset;
+	u32 offset = 0;
 	int i;
 
 	/* fpt_entry is mandatory */
-- 
2.51.0
Re: [PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
Posted by Nilawar, Badal 6 days, 11 hours ago
On 24-09-2025 15:52, Colin Ian King wrote:
> The variable offset is not being initialized, and it is only set inside
> a for-loop if entry->name is the same as manifest_entry. In the case
> where it is not initialized a non-zero check on offset is potentialy checking
> a bogus uninitalized value. Fix this by initializing offset to zero.
>
> Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
> ---
>
> V2: Fix identical issue in parse_lb_layout that I ommitted in the first
> patch
>
> ---
>   drivers/gpu/drm/xe/xe_late_bind_fw.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> index 38f3feb2aecd..8f5082e689dc 100644
> --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> @@ -60,7 +60,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
>   	const struct gsc_manifest_header *manifest;
>   	const struct gsc_cpd_entry *entry;
>   	size_t min_size = sizeof(*header);
> -	u32 offset;
> +	u32 offset = 0;
>   	int i;
>   
>   	/* manifest_entry is mandatory */
> @@ -116,7 +116,7 @@ static int parse_lb_layout(struct xe_late_bind_fw *lb_fw,
>   	const struct csc_fpt_header *header = data;
>   	const struct csc_fpt_entry *entry;
>   	size_t min_size = sizeof(*header);
> -	u32 offset;
> +	u32 offset = 0;
>   	int i;
>   
>   	/* fpt_entry is mandatory */
RE: [PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
Posted by Cavitt, Jonathan 2 days, 7 hours ago
-----Original Message-----
From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Nilawar, Badal
Sent: Thursday, September 25, 2025 5:05 AM
To: Colin Ian King <colin.i.king@gmail.com>; De Marchi, Lucas <lucas.demarchi@intel.com>; Thomas Hellström <thomas.hellstrom@linux.intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>; intel-xe@lists.freedesktop.org; dri-devel@lists.freedesktop.org
Cc: kernel-janitors@vger.kernel.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
> 
> On 24-09-2025 15:52, Colin Ian King wrote:
> > The variable offset is not being initialized, and it is only set inside
> > a for-loop if entry->name is the same as manifest_entry. In the case
> > where it is not initialized a non-zero check on offset is potentialy checking
> > a bogus uninitalized value. Fix this by initializing offset to zero.
> >
> > Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
> > Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>

Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>
-Jonathan Cavitt

> > ---
> >
> > V2: Fix identical issue in parse_lb_layout that I ommitted in the first
> > patch
> >
> > ---
> >   drivers/gpu/drm/xe/xe_late_bind_fw.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > index 38f3feb2aecd..8f5082e689dc 100644
> > --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > @@ -60,7 +60,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
> >   	const struct gsc_manifest_header *manifest;
> >   	const struct gsc_cpd_entry *entry;
> >   	size_t min_size = sizeof(*header);
> > -	u32 offset;
> > +	u32 offset = 0;
> >   	int i;
> >   
> >   	/* manifest_entry is mandatory */
> > @@ -116,7 +116,7 @@ static int parse_lb_layout(struct xe_late_bind_fw *lb_fw,
> >   	const struct csc_fpt_header *header = data;
> >   	const struct csc_fpt_entry *entry;
> >   	size_t min_size = sizeof(*header);
> > -	u32 offset;
> > +	u32 offset = 0;
> >   	int i;
> >   
> >   	/* fpt_entry is mandatory */
> 
Re: [PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
Posted by Rodrigo Vivi 1 day, 8 hours ago
On Mon, Sep 29, 2025 at 11:49:24AM -0400, Cavitt, Jonathan wrote:
> -----Original Message-----
> From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Nilawar, Badal
> Sent: Thursday, September 25, 2025 5:05 AM
> To: Colin Ian King <colin.i.king@gmail.com>; De Marchi, Lucas <lucas.demarchi@intel.com>; Thomas Hellström <thomas.hellstrom@linux.intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>; David Airlie <airlied@gmail.com>; Simona Vetter <simona@ffwll.ch>; Ceraolo Spurio, Daniele <daniele.ceraolospurio@intel.com>; intel-xe@lists.freedesktop.org; dri-devel@lists.freedesktop.org
> Cc: kernel-janitors@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH][next][V2] drm/xe/xe_late_bind_fw: Fix missing initialization of variable offset
> > 
> > On 24-09-2025 15:52, Colin Ian King wrote:
> > > The variable offset is not being initialized, and it is only set inside
> > > a for-loop if entry->name is the same as manifest_entry. In the case
> > > where it is not initialized a non-zero check on offset is potentialy checking
> > > a bogus uninitalized value. Fix this by initializing offset to zero.
> > >
> > > Fixes: efa29317a553 ("drm/xe/xe_late_bind_fw: Extract and print version info")
> > > Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> > Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
> 
> Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com>

pushed to drm-xe-next. Thanks for the patch and reviews.

> -Jonathan Cavitt
> 
> > > ---
> > >
> > > V2: Fix identical issue in parse_lb_layout that I ommitted in the first
> > > patch
> > >
> > > ---
> > >   drivers/gpu/drm/xe/xe_late_bind_fw.c | 4 ++--
> > >   1 file changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/xe/xe_late_bind_fw.c b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > > index 38f3feb2aecd..8f5082e689dc 100644
> > > --- a/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > > +++ b/drivers/gpu/drm/xe/xe_late_bind_fw.c
> > > @@ -60,7 +60,7 @@ static int parse_cpd_header(struct xe_late_bind_fw *lb_fw,
> > >   	const struct gsc_manifest_header *manifest;
> > >   	const struct gsc_cpd_entry *entry;
> > >   	size_t min_size = sizeof(*header);
> > > -	u32 offset;
> > > +	u32 offset = 0;
> > >   	int i;
> > >   
> > >   	/* manifest_entry is mandatory */
> > > @@ -116,7 +116,7 @@ static int parse_lb_layout(struct xe_late_bind_fw *lb_fw,
> > >   	const struct csc_fpt_header *header = data;
> > >   	const struct csc_fpt_entry *entry;
> > >   	size_t min_size = sizeof(*header);
> > > -	u32 offset;
> > > +	u32 offset = 0;
> > >   	int i;
> > >   
> > >   	/* fpt_entry is mandatory */
> >