Skip to contentSkip to conversation

Patch "usb: musb: ux500: Fix NULL pointer dereference at system PM" has been added to the 4.4-stable tree

PATCH [email protected] 1 participant 1 message Jan 11, 2018

Subsystems (3)
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

usb: musb: ux500: Fix NULL pointer dereference at system PM

to the 4.4-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:
usb-musb-ux500-fix-null-pointer-dereference-at-system-pm.patch
and it can be found in the queue-4.4 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 79c5623f1cb85f33403eb9f1e45124e9f56181f8 Mon Sep 17 00:00:00 2001

From: Ulf Hansson <[email protected]>
Date: Mon, 25 Jan 2016 13:01:29 +0100
Subject: usb: musb: ux500: Fix NULL pointer dereference at system PM

From: Ulf Hansson <[email protected]>

commit 79c5623f1cb85f33403eb9f1e45124e9f56181f8 upstream.

The commit 7d32cdef5356 ("usb: musb: fail with error when no DMA controller set"), caused the core platform driver to correctly return an error code when fail probing.

Unfurtante it also caused bug for a NULL pointer dereference, during system suspend for the ux500 driver. The reason is a lacking validation of the corresponding ->driver_data pointer, which won't be set when the musb core driver fails to probe (or haven't yet been probed).

Fixes 7d32cdef5356 ("usb: musb: fail with error when no DMA...")
---
 drivers/usb/musb/ux500.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/usb/musb/ux500.c +5 -2
@@ -348,7 +348,9 @@ static int ux500_suspend(struct device *
 	struct ux500_glue	*glue = dev_get_drvdata(dev);
 	struct musb		*musb = glue_to_musb(glue);
 
-	usb_phy_set_suspend(musb->xceiv, 1);
+	if (musb)
+		usb_phy_set_suspend(musb->xceiv, 1);
+
 	clk_disable_unprepare(glue->clk);
 
 	return 0;
@@ -366,7 +368,8 @@ static int ux500_resume(struct device *d
 		return ret;
 	}
 
-	usb_phy_set_suspend(musb->xceiv, 0);
+	if (musb)
+		usb_phy_set_suspend(musb->xceiv, 0);
 
 	return 0;
 }

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

queue-4.4/usb-musb-ux500-fix-null-pointer-dereference-at-system-pm.patch