usb: musb: dsps: move debugfs_remove_recursive()
authorDaniel Mack <zonque@gmail.com>
Wed, 2 Apr 2014 09:46:51 +0000 (11:46 +0200)
committerFelipe Balbi <balbi@ti.com>
Wed, 16 Apr 2014 15:11:46 +0000 (10:11 -0500)
commit0fca91b8a446d4a38b8f3d4772c4a8665ebcd7b2
tree31aac3571147c840ea21162acb849a6a5011849c
parent5cdf7d5be8443ba0e14a5cfe551c59f931983647
usb: musb: dsps: move debugfs_remove_recursive()

When the platform initialization fails due to missing resources, it will
return -EPROBE_DEFER after dsps_musb_init() has been called.

dsps_musb_init() calls dsps_musb_dbg_init() to allocate the debugfs
nodes. At a later point in time, the probe will be retried, and
dsps_musb_dbg_init() will be called again. debugfs_create_dir() will
fail this time, as the node already exists, and so the entire device
probe will fail with -ENOMEM.

Fix this by moving debugfs_remove_recursive() from dsps_remove() to the
plaform's exit function, so it will be cleanly torn down when the probe
fails. It also feels more natural this way, as .exit is the counterpart
to .init.

Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musb_dsps.c