diff options
author | Hans de Goede <hdegoede@redhat.com> | 2018-01-22 12:53:24 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2018-01-22 13:01:42 +0100 |
commit | 8c6b8eda7294775097e0d0eb64cb6f86d460d7c2 (patch) | |
tree | a81a05ed752780b471e4816cfe3758fefeaf0127 /drivers/bluetooth/hci_bcm.c | |
parent | d456f678a074b5d7cf14c4043f9294edadc2aef8 (diff) | |
download | linux-8c6b8eda7294775097e0d0eb64cb6f86d460d7c2.tar.gz linux-8c6b8eda7294775097e0d0eb64cb6f86d460d7c2.tar.bz2 linux-8c6b8eda7294775097e0d0eb64cb6f86d460d7c2.zip |
Bluetooth: hci_bcm: For serdev case close serdev on failure to set power
Commit 8bfa7e1e03ac ("Bluetooth: hci_bcm: Handle errors properly")
introduced error checking for the bcm_gpio_set_power() call in bcm_open()
but the error-path it introduces unsets dev->hu, which is correct for
platform_device instantiated bcm_dev-s but not for serdev instantiated
devs. For serdev instantiated devs serdev_device_close() should be called
instead (and dev->hu should be left set).
Cc: Lukas Wunner <lukas@wunner.de>
Fixes: 8bfa7e1e03ac ("Bluetooth: hci_bcm: Handle errors properly")
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Diffstat (limited to 'drivers/bluetooth/hci_bcm.c')
-rw-r--r-- | drivers/bluetooth/hci_bcm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c index 64800cd2796c..0438a64b8185 100644 --- a/drivers/bluetooth/hci_bcm.c +++ b/drivers/bluetooth/hci_bcm.c @@ -412,8 +412,11 @@ out: return 0; err_unset_hu: + if (hu->serdev) + serdev_device_close(hu->serdev); #ifdef CONFIG_PM - bcm->dev->hu = NULL; + else + bcm->dev->hu = NULL; #endif err_free: mutex_unlock(&bcm_device_lock); |