Skip to contentSkip to conversation

Patch "[media] s5p-mfc: Fix clock management in s5p_mfc_release() function" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Jan 23, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

[media] s5p-mfc: Fix clock management in s5p_mfc_release() function

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
s5p-mfc-fix-clock-management-in-s5p_mfc_release-function.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From c0026c7bfb95c250c3e34fde59f96ad72fd730d6 Mon Sep 17 00:00:00 2001

From: Marek Szyprowski <[email protected]>
Date: Mon, 14 Nov 2016 12:09:26 -0200
Subject: [media] s5p-mfc: Fix clock management in s5p_mfc_release() function

From: Marek Szyprowski <[email protected]>

commit c0026c7bfb95c250c3e34fde59f96ad72fd730d6 upstream.

Clock control indirectly requires access to MFC device, so call it only if we are sure that the device exists in s5p_mfc_release function. s5p_mfc_remove() calls s5p_mfc_final_pm(), which releases all PM related resources, including clocks, so any call to clocks related functions is not valid after s5p_mfc_final_pm().

Fixes d695c12 ("[media] media: s5p-mfc fix invalid memory access from

s5p_mfc_release()")

---
 drivers/media/platform/s5p-mfc/s5p_mfc.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/media/platform/s5p-mfc/s5p_mfc.c +4 -3
@@ -926,10 +926,11 @@ static int s5p_mfc_release(struct file *
 	mfc_debug_enter();
 	if (dev)
 		mutex_lock(&dev->mfc_mutex);
-	s5p_mfc_clock_on();
 	vb2_queue_release(&ctx->vq_src);
 	vb2_queue_release(&ctx->vq_dst);
 	if (dev) {
+		s5p_mfc_clock_on();
+
 		/* Mark context as idle */
 		clear_work_bit_irqsave(ctx);
 		/*
@@ -951,9 +952,9 @@ static int s5p_mfc_release(struct file *
 			if (s5p_mfc_power_off() < 0)
 				mfc_err("Power off failed\n");
 		}
+		mfc_debug(2, "Shutting down clock\n");
+		s5p_mfc_clock_off();
 	}
-	mfc_debug(2, "Shutting down clock\n");
-	s5p_mfc_clock_off();
 	if (dev)
 		dev->ctx[ctx->num] = NULL;
 	s5p_mfc_dec_ctrls_delete(ctx);

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/s5p-mfc-fix-clock-management-in-s5p_mfc_release-function.patch queue-4.9/dmaengine-pl330-fix-runtime-pm-support-for-terminated-transfers.patch