All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: greg@kroah.com, linux-kernel@vger.kernel.org
Subject: [PATCH 02/12] gma500: Re-order checks and dereferences in psb_intel_lvds
Date: Fri, 08 Jul 2011 09:43:15 +0100	[thread overview]
Message-ID: <20110708084309.19581.86654.stgit@localhost.localdomain> (raw)
In-Reply-To: <20110708084053.19581.81711.stgit@localhost.localdomain>

From: Alan Cox <alan@linux.intel.com>

Dan Carpenter reports:

Smatch complains about 6a7afe3acc4b "gma500: continue abstracting
platform specific code"

drivers/staging/gma500/psb_intel_lvds.c +579 psb_intel_lvds_set_property(7)
	warn: variable dereferenced before check 'encoder'

--- a/drivers/staging/gma500/psb_intel_lvds.c
+++ b/drivers/staging/gma500/psb_intel_lvds.c
@@ -575,11 +575,12 @@ int psb_intel_lvds_set_property(struct drm_connector
*connector,
                                       struct drm_property *property,
                                       uint64_t value)
 {
-       struct drm_encoder *pEncoder = connector->encoder;
+       struct drm_encoder *encoder = connector->encoder;
+       struct drm_psb_private *dev_priv = encoder->dev->dev_private;
                                           ^^^^^^^^^^^^
dereference encoder here.

Signed-off-by: Alan Cox <alan@linux.intel.com>
---

 drivers/staging/gma500/psb_intel_lvds.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/gma500/psb_intel_lvds.c b/drivers/staging/gma500/psb_intel_lvds.c
index 4a0d234..1e1e788 100644
--- a/drivers/staging/gma500/psb_intel_lvds.c
+++ b/drivers/staging/gma500/psb_intel_lvds.c
@@ -574,9 +574,14 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
 				       uint64_t value)
 {
 	struct drm_encoder *encoder = connector->encoder;
-	struct drm_psb_private *dev_priv = encoder->dev->dev_private;
+	struct drm_psb_private *dev_priv;
+	
+	if (!encoder)
+	        return -1;
 
-	if (!strcmp(property->name, "scaling mode") && encoder) {
+	dev_priv = encoder->dev->dev_private;
+
+	if (!strcmp(property->name, "scaling mode")) {
 		struct psb_intel_crtc *pPsbCrtc =
 					to_psb_intel_crtc(encoder->crtc);
 		uint64_t curValue;
@@ -617,7 +622,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
 						      encoder->crtc->fb))
 				goto set_prop_error;
 		}
-	} else if (!strcmp(property->name, "backlight") && encoder) {
+	} else if (!strcmp(property->name, "backlight")) {
 		if (drm_connector_property_set_value(connector,
 							property,
 							value))
@@ -631,7 +636,7 @@ int psb_intel_lvds_set_property(struct drm_connector *connector,
                         }
 #endif
 		}
-	} else if (!strcmp(property->name, "DPMS") && encoder) {
+	} else if (!strcmp(property->name, "DPMS")) {
 		struct drm_encoder_helper_funcs *pEncHFuncs
 						= encoder->helper_private;
 		pEncHFuncs->dpms(encoder, value);


  parent reply	other threads:[~2011-07-08  8:52 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-08  8:42 [PATCH 00/12] Fixing and cleaning Alan Cox
2011-07-08  8:42 ` [PATCH 01/12] gma500: strip unneeded version headers Alan Cox
2011-07-08  8:43 ` Alan Cox [this message]
2011-07-08 20:44   ` [PATCH 02/12] gma500: Re-order checks and dereferences in psb_intel_lvds Greg KH
2011-07-09  0:57     ` Alan Cox
2011-07-08  8:43 ` [PATCH 03/12] gma500: psb_intel_lvds style Alan Cox
2011-07-08  8:43 ` [PATCH 04/12] gma500: Fix symbol clash with i915 Alan Cox
2011-07-08  8:44 ` [PATCH 05/12] gma500: Mask out bits not part of the page table base address Alan Cox
2011-07-08  8:44 ` [PATCH 06/12] gma500: tidy up the CDV files Alan Cox
2011-07-08  8:44 ` [PATCH 07/12] gma500: tidy the mrst files Alan Cox
2011-07-08  8:44 ` [PATCH 08/12] gma500; clean mid files Alan Cox
2011-07-08  8:45 ` [PATCH 09/12] gma500: Fix unused variable in cdv support Alan Cox
2011-07-08  8:45 ` [PATCH 10/12] Staging: gma500: typo in array initialization Alan Cox
2011-07-08  8:45 ` [PATCH 11/12] gma500: reversed test in mdfld_dbi_dsr_exit() Alan Cox
2011-07-08  8:45 ` [PATCH 12/12] gma500: remove unneeded check in mdfld_crtc_mode_set() Alan Cox

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20110708084309.19581.86654.stgit@localhost.localdomain \
    --to=alan@lxorguk.ukuu.org.uk \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.