Re: [PATCH v4 1/6] imx-drm: ipu-dmfc: Check 'dmfc' pointer first
On Wed, Feb 26, 2014 at 08:53:39PM -0300, Fabio Estevam wrote: From: Fabio Estevam fabio.este...@freescale.com Fix the following static checker warning: drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c:164 ipu_dmfc_setup_channel() warn: variable dereferenced before check 'dmfc' (see line 157) Reported-by: Dan Carpenter dan.carpen...@oracle.com Signed-off-by: Fabio Estevam fabio.este...@freescale.com --- Changes since v3: - None Changes since v2: - None Changes since v1: - Check 'dmfc' prior to setting the priv pointer drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c index 98070dd..ce152d9 100644 --- a/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c +++ b/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c @@ -154,16 +154,18 @@ EXPORT_SYMBOL_GPL(ipu_dmfc_disable_channel); static int ipu_dmfc_setup_channel(struct dmfc_channel *dmfc, int slots, int segment, int burstsize) { - struct ipu_dmfc_priv *priv = dmfc-priv; + struct ipu_dmfc_priv *priv; u32 val, field; + if (!dmfc) + return -EINVAL; How can dmfc ever be NULL? You control what values you pass to it, why check it again? Have you hit this problem in the wild? If so, shouldn't the root cause be fixed and not papered over here? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v4 1/6] imx-drm: ipu-dmfc: Check 'dmfc' pointer first
On Thu, Feb 27, 2014 at 11:54:23PM +, Russell King - ARM Linux wrote: On Thu, Feb 27, 2014 at 02:52:34PM -0800, Greg KH wrote: How can dmfc ever be NULL? You control what values you pass to it, why check it again? Indeed. This is actually a case where the static checker warning is ambiguous. What's triggered it is the dmfc test for NULL after it's been used. It doesn't necessarily mean that the test should be moved earlier. Btw, this is another case where Smatch wouldn't have generated a warning if I had had the cross function database set up. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v4 1/6] imx-drm: ipu-dmfc: Check 'dmfc' pointer first
From: Fabio Estevam fabio.este...@freescale.com Fix the following static checker warning: drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c:164 ipu_dmfc_setup_channel() warn: variable dereferenced before check 'dmfc' (see line 157) Reported-by: Dan Carpenter dan.carpen...@oracle.com Signed-off-by: Fabio Estevam fabio.este...@freescale.com --- Changes since v3: - None Changes since v2: - None Changes since v1: - Check 'dmfc' prior to setting the priv pointer drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c b/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c index 98070dd..ce152d9 100644 --- a/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c +++ b/drivers/staging/imx-drm/ipu-v3/ipu-dmfc.c @@ -154,16 +154,18 @@ EXPORT_SYMBOL_GPL(ipu_dmfc_disable_channel); static int ipu_dmfc_setup_channel(struct dmfc_channel *dmfc, int slots, int segment, int burstsize) { - struct ipu_dmfc_priv *priv = dmfc-priv; + struct ipu_dmfc_priv *priv; u32 val, field; + if (!dmfc) + return -EINVAL; + + priv = dmfc-priv; + dev_dbg(priv-dev, dmfc: using %d slots starting from segment %d for IPU channel %d\n, slots, segment, dmfc-data-ipu_channel); - if (!dmfc) - return -EINVAL; - switch (slots) { case 1: field = DMFC_FIFO_SIZE_64; -- 1.8.1.2 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel