There is a return in the middle where we haven't restored the IRQs to their original state. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> diff --git a/drivers/media/platform/soc_camera/mx3_camera.c b/drivers/media/platform/soc_camera/mx3_camera.c index 1047e3e..4bae910 100644 --- a/drivers/media/platform/soc_camera/mx3_camera.c +++ b/drivers/media/platform/soc_camera/mx3_camera.c @@ -334,7 +334,7 @@ static void mx3_videobuf_queue(struct vb2_buffer *vb) if (!mx3_cam->active) mx3_cam->active = buf; - spin_unlock_irq(&mx3_cam->lock); + spin_unlock_irqrestore(&mx3_cam->lock, flags); cookie = txd->tx_submit(txd); dev_dbg(icd->parent, "Submitted cookie %d DMA 0x%08x\n", @@ -343,7 +343,7 @@ static void mx3_videobuf_queue(struct vb2_buffer *vb) if (cookie >= 0) return; - spin_lock_irq(&mx3_cam->lock); + spin_lock_irqsave(&mx3_cam->lock, flags); /* Submit error */ list_del_init(&buf->queue); -- To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html