On 29/11/2016 08:56, Daniel Vetter wrote: > On Mon, Nov 28, 2016 at 06:43:19PM -0500, Jérémy Lefaure wrote: >> Two warnings are produced by gcc (tested with gcc 6.2.1): >> >> drivers/gpu/drm/i915/intel_csr.c: In function âcsr_load_work_fnâ: >> drivers/gpu/drm/i915/intel_csr.c:400:5: error: âfwâ is used >> uninitialized in this function [-Werror=uninitialized] >> if (fw) >> ^ >> and >> >> In file included from drivers/gpu/drm/i915/i915_drv.h:47:0, >> from drivers/gpu/drm/i915/intel_guc_loader.c:30: >> drivers/gpu/drm/i915/intel_guc_loader.c: In function âintel_guc_initâ: >> ./include/drm/drmP.h:228:2: error: âfwâ may be used uninitialized in this >> function -Werror=maybe-uninitialized] >> drm_printk(KERN_DEBUG, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) >> ^~~~~~~~~~ >> drivers/gpu/drm/i915/intel_guc_loader.c:595:25: note: âfwâ was declared >> here >> const struct firmware *fw; >> ^~ >> >> When CONFIG_DRM_I915_WERROR is set, those warnings break the build. >> >> Initializing fw pointer to NULL in both cases removes the warnings. >> >> Signed-off-by: Jérémy Lefaure <jeremy.lefaure at lse.epita.fr> > > Queued for -next, thanks for the patch.
I just wanted to reply with two things; first who can figure out why this hasn't been picked up by the compiler before? Or why GCC 6.2.1 on my machine does not complain? Looks like a real mystery! And secondly the csr loader is not even checking the return code. I was about to suggest a v2 but never mind now. Can do it myself. Regards, Tvrtko > -Daniel > >> --- >> drivers/gpu/drm/i915/intel_csr.c | 2 +- >> drivers/gpu/drm/i915/intel_guc_loader.c | 2 +- >> 2 files changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/intel_csr.c >> b/drivers/gpu/drm/i915/intel_csr.c >> index d7a04bc..3520b3c 100644 >> --- a/drivers/gpu/drm/i915/intel_csr.c >> +++ b/drivers/gpu/drm/i915/intel_csr.c >> @@ -389,7 +389,7 @@ static void csr_load_work_fn(struct work_struct *work) >> { >> struct drm_i915_private *dev_priv; >> struct intel_csr *csr; >> - const struct firmware *fw; >> + const struct firmware *fw = NULL; >> int ret; >> >> dev_priv = container_of(work, typeof(*dev_priv), csr.work); >> diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c >> b/drivers/gpu/drm/i915/intel_guc_loader.c >> index 34d6ad2..ecfee49 100644 >> --- a/drivers/gpu/drm/i915/intel_guc_loader.c >> +++ b/drivers/gpu/drm/i915/intel_guc_loader.c >> @@ -592,7 +592,7 @@ static void guc_fw_fetch(struct drm_device *dev, struct >> intel_guc_fw *guc_fw) >> { >> struct pci_dev *pdev = dev->pdev; >> struct drm_i915_gem_object *obj; >> - const struct firmware *fw; >> + const struct firmware *fw = NULL; >> struct guc_css_header *css; >> size_t size; >> int err; >> -- >> 2.10.2 >> >> _______________________________________________ >> Intel-gfx mailing list >> Intel-gfx at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/intel-gfx >