diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2011-08-08 15:15:50 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-08-08 15:15:50 +0200 |
commit | 73f957093e9f17fe5d62d772c1ad9ebd6faf1d58 (patch) | |
tree | 65daa5d67b66383161fc7a6dce8f7961bf30be39 | |
parent | 42fcce9a982fa96b51ff7c9f2ff96497d31dd1d2 (diff) | |
download | gst-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.c | 7 |
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) |