kernel_optimize_test/drivers/usb/phy
Srinivas Kandagatla a38a08dfaa usb: phy: msm: fix error handling in probe.
This driver registers for extcon events as part of its probe, but
never unregisters them in case of error in the probe path.

There were multiple issues noticed due to this missing error handling.
One of them is random crashes if the regulators are not ready yet by the
time probe is invoked.

Ivan's previous attempt [1] to fix this issue, did not really address
all the failure cases like regualtor/get_irq failures.

[1] https://lkml.org/lkml/2015/9/7/62

Without this patch the kernel would carsh with log:
...
Unable to handle kernel paging request at virtual address 17d78410
pgd = ffffffc001a5c000
[17d78410] *pgd=00000000b6806003, *pud=00000000b6806003, *pmd=0000000000000000
Internal error: Oops: 96000005 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.4.0+ #48
Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT)
Workqueue: deferwq deferred_probe_work_func
task: ffffffc03686e900 ti: ffffffc0368b0000 task.ti: ffffffc0368b0000
PC is at raw_notifier_chain_register+0x1c/0x44
LR is at extcon_register_notifier+0x88/0xc8
pc : [<ffffffc0000da43c>] lr : [<ffffffc000606298>] pstate: 80000085
sp : ffffffc0368b3a70
x29: ffffffc0368b3a70 x28: ffffffc03680c310
x27: ffffffc035518000 x26: ffffffc035518000
x25: ffffffc03bfa20e0 x24: ffffffc035580a18
x23: 0000000000000000 x22: ffffffc035518458
x21: ffffffc0355e9a60 x20: ffffffc035518000
x19: 0000000000000000 x18: 0000000000000028
x17: 0000000000000003 x16: ffffffc0018153c8
x15: 0000000000000001 x14: ffffffc03686f0f8
x13: ffffffc03686f0f8 x12: 0000000000000003
x11: 0000000000000001 x10: 0000000000000001
x9 : ffffffc03686f0f8 x8 : 0000e3872014c1a1
x7 : 0000000000000028 x6 : 0000000000000000
x5 : 0000000000000001 x4 : 0000000000000000
x3 : 00000000354fb170 x2 : 0000000017d78400
x1 : ffffffc0355e9a60 x0 : ffffffc0354fb268

Fixes: 	591fc116f3 ("usb: phy: msm: Use extcon framework for VBUS and ID detection")
CC: Stable <stable@vger.kernel.org>
Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
2016-02-03 19:52:29 +02:00
..
Kconfig usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode 2015-12-16 10:07:25 -06:00
Makefile usb: phy: Remove unused Renesas R-Car (Gen1) USB PHY driver 2015-12-15 09:12:41 -06:00
of.c usb: phy: fixed comment typo 2015-03-11 10:19:36 -05:00
phy-ab8500-usb.c Merge 4.1-rc7 into usb-next 2015-06-08 10:57:51 -07:00
phy-am335x-control.c usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode 2015-12-16 10:07:25 -06:00
phy-am335x-control.h usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode 2015-12-16 10:07:25 -06:00
phy-am335x.c usb: phy: phy-am335x: bypass first VBUS sensing for host-only mode 2015-12-16 10:07:25 -06:00
phy-fsl-usb.c usb: phy: phy-fsl-usb: Remove some unused functions 2015-01-12 12:13:29 -06:00
phy-fsl-usb.h usb: phy: fsl: Fix build errors 2014-11-12 08:37:37 -06:00
phy-generic.c usb: phy: phy-generic: Fix reset behaviour on legacy boot 2015-09-14 10:15:08 -05:00
phy-generic.h usb: phy: generic: add vbus support 2015-01-12 12:13:29 -06:00
phy-gpio-vbus-usb.c Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
phy-isp1301-omap.c usb: phy: isp1301: work around tps65010 dependency 2015-04-27 14:45:14 -05:00
phy-isp1301.c usb: phy: isp1301: Export I2C module alias information 2015-09-21 14:42:36 -05:00
phy-keystone.c usb: phy: phy-keystone: Simplify return statement 2015-08-04 11:02:05 -05:00
phy-msm-usb.c usb: phy: msm: fix error handling in probe. 2016-02-03 19:52:29 +02:00
phy-mv-usb.c usb: phy: mv-usb: fix usb_phy build errors 2015-01-13 09:32:22 -06:00
phy-mv-usb.h usb: otg: mv_otg: remove unused clock 2013-04-02 11:42:45 +03:00
phy-mxs-usb.c usb: phy: mxs: add "fsl,imx6ul-usbphy" compatible string 2015-11-19 14:48:50 -06:00
phy-omap-otg.c usb: phy: omap-otg: fix uninitialized pointer 2015-11-16 10:17:40 -06:00
phy-qcom-8x16-usb.c usb: phy: qcom: Switch to new extcon framework API 2015-09-27 10:54:31 -05:00
phy-tahvo.c usb: phy: tahvo: Use devm_extcon_dev_[allocate|register]() and replace deprecated API 2015-07-29 09:59:18 -05:00
phy-tegra-usb.c usb: common: of_usb_get_dr_mode to usb_get_dr_mode 2015-09-27 10:54:31 -05:00
phy-twl6030-usb.c usb: musb: core: Fix handling of the phy notifications 2015-12-16 10:07:28 -06:00
phy-ulpi-viewport.c usb: Remove unnecessary semicolons 2013-10-11 16:26:46 -07:00
phy-ulpi.c usb: rename phy to usb_phy in OTG 2014-11-03 10:01:25 -06:00
phy.c usb: phy: Add interface to get phy give of device_node. 2015-05-26 10:42:28 -05:00