summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2011-08-08 15:15:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2011-08-08 15:15:50 +0200
commit73f957093e9f17fe5d62d772c1ad9ebd6faf1d58 (patch)
tree65daa5d67b66383161fc7a6dce8f7961bf30be39
parent42fcce9a982fa96b51ff7c9f2ff96497d31dd1d2 (diff)
downloadgst-plugins-fsl-vpu-73f957093e9f17fe5d62d772c1ad9ebd6faf1d58.tar.gz
gst-plugins-fsl-vpu-73f957093e9f17fe5d62d772c1ad9ebd6faf1d58.tar.xz
vpu module: prevent NULL pointer exception during shutdown
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--module/imx-vpu.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/module/imx-vpu.c b/module/imx-vpu.c
index 4b69e7c..cfb1fbd 100644
--- a/module/imx-vpu.c
+++ b/module/imx-vpu.c
@@ -1127,7 +1127,7 @@ static irqreturn_t vpu_irq_handler(int irq, void *dev_id)
struct vpu *vpu = dev_id;
struct vpu_instance *instance;
struct vpu_buffer *vbuf = vpu->active;
- struct vb2_queue *q = vbuf->vb.vb2_queue;
+ struct vb2_queue *q;
unsigned long flags;
spin_lock_irqsave(&vpu->lock, flags);
@@ -1135,8 +1135,11 @@ static irqreturn_t vpu_irq_handler(int irq, void *dev_id)
vpu_write(vpu, BIT_INT_CLEAR, 1);
vpu_write(vpu, BIT_INT_REASON, 0);
- if (!&vbuf->vb)
+ if (!vbuf || !&vbuf->vb)
goto out;
+
+ q = vbuf->vb.vb2_queue;
+
instance = vb2_get_drv_priv(q);
if (instance->mode == VPU_MODE_DECODER)