summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Balbi2013-08-14 20:21:23 +0200
committerGreg Kroah-Hartman2013-08-14 21:23:09 +0200
commitbb674907111272ca40926ca3d3bad4046fffed52 (patch)
tree54717e6e7813ce21692c4133d61dbe1b59a04c2c
parentusb: rh_call_control tbuf overflow fix (diff)
downloadkernel-qcow2-linux-bb674907111272ca40926ca3d3bad4046fffed52.tar.gz
kernel-qcow2-linux-bb674907111272ca40926ca3d3bad4046fffed52.tar.xz
kernel-qcow2-linux-bb674907111272ca40926ca3d3bad4046fffed52.zip
usb: dwc3: core: cope with NULL pdata
if pdata is a NULL pointer we could cause a kernel oops when probing the driver. Make sure to cope with systems which won't pass pdata to the driver. Tested-by: Paul Zimmerman <paulz@synopsys.com> Reported-by: Paul Zimmerman <paulz@synopsys.com> Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/dwc3/core.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 3ff6f0ad01df..577af1b237f2 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -393,7 +393,7 @@ static int dwc3_probe(struct platform_device *pdev)
dwc->needs_fifo_resize = of_property_read_bool(node, "tx-fifo-resize");
dwc->dr_mode = of_usb_get_dr_mode(node);
- } else {
+ } else if (pdata) {
dwc->maximum_speed = pdata->maximum_speed;
dwc->usb2_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
@@ -401,6 +401,9 @@ static int dwc3_probe(struct platform_device *pdev)
dwc->needs_fifo_resize = pdata->tx_fifo_resize;
dwc->dr_mode = pdata->dr_mode;
+ } else {
+ dwc->usb2_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2);
+ dwc->usb3_phy = devm_usb_get_phy(dev, USB_PHY_TYPE_USB3);
}
/* default to superspeed if no maximum_speed passed */