Gfx-Display: fixed a potential panic issue.
authorAustin Hu <austin.hu@intel.com>
Tue, 13 Dec 2011 13:33:18 +0000 (21:33 +0800)
committerbuildbot <buildbot@intel.com>
Fri, 23 Dec 2011 16:45:02 +0000 (08:45 -0800)
BZ: 17268

When HDMI flip chain isn't initialized, de-queue buffer from it would
cause panic as its buffer number may be 0.

Fixed by checking whether the flip chain is initialized, before getting
the buffer handle.

Change-Id: I61d9f17bd484c352b2039a61b99b6947f7c36347
Signed-off-by: Austin Hu <austin.hu@intel.com>
Signed-off-by: Tong Bo <box.tong@intel.com>
Reviewed-on: http://android.intel.com:8080/27729
Reviewed-by: Xu, Randy <randy.xu@intel.com>
Tested-by: Xu, Randy <randy.xu@intel.com>
Reviewed-by: buildbot <buildbot@intel.com>
Tested-by: buildbot <buildbot@intel.com>
drivers/staging/mrst/drv/psb_drv.c

index cfe4782..db7341f 100755 (executable)
@@ -2001,6 +2001,10 @@ static int psb_disp_ioctl(struct drm_device *dev, void *data,
                spin_unlock_irqrestore(&dev_priv->flip_lock, irqflags);
                psb_flip_hdmi(dev, 1);
        } else if (dp_ctrl->cmd == DRM_PSB_DISP_DEQUEUE_BUFFER) {
+               if (!dev_priv->flip_inited) {
+                       ret = -EINVAL;
+                       goto exit;
+               }
                i = (dev_priv->flip_tail + 1) % dev_priv->flip_valid_size;
                if (i != dev_priv->flip_head)
                        dev_priv->flip_tail = i;