Patch "USB: apple-mfi-fastcharge: fix reference leak in apple_mfi_fc_set_property" has been added to the 5.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    USB: apple-mfi-fastcharge: fix reference leak in apple_mfi_fc_set_property

to the 5.9-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-apple-mfi-fastcharge-fix-reference-leak-in-apple.patch
and it can be found in the queue-5.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 6641a47aee2349af02dbc8501f62519b2de15ada
Author: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
Date:   Mon Nov 2 10:26:50 2020 +0800

    USB: apple-mfi-fastcharge: fix reference leak in apple_mfi_fc_set_property
    
    [ Upstream commit 00bd6bca3fb1e98190a24eda2583062803c9e8b5 ]
    
    pm_runtime_get_sync() will increment pm usage at first and it
    will resume the device later. If runtime of the device has
    error or device is in inaccessible state(or other error state),
    resume operation will fail. If we do not call put operation to
    decrease the reference, the result is that this device cannot
    enter the idle state and always stay busy or other non-idle
    state.
    
    Fixes: 249fa8217b846 ("USB: Add driver to control USB fast charge for iOS devices")
    Signed-off-by: Zhang Qilong <zhangqilong3@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20201102022650.67115-1-zhangqilong3@xxxxxxxxxx
    Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/usb/misc/apple-mfi-fastcharge.c b/drivers/usb/misc/apple-mfi-fastcharge.c
index 579d8c84de42c..9de0171b51776 100644
--- a/drivers/usb/misc/apple-mfi-fastcharge.c
+++ b/drivers/usb/misc/apple-mfi-fastcharge.c
@@ -120,8 +120,10 @@ static int apple_mfi_fc_set_property(struct power_supply *psy,
 	dev_dbg(&mfi->udev->dev, "prop: %d\n", psp);
 
 	ret = pm_runtime_get_sync(&mfi->udev->dev);
-	if (ret < 0)
+	if (ret < 0) {
+		pm_runtime_put_noidle(&mfi->udev->dev);
 		return ret;
+	}
 
 	switch (psp) {
 	case POWER_SUPPLY_PROP_CHARGE_TYPE:



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux