Bluetooth: hci_core: Fix not handling hibernation actions
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Wed, 21 Aug 2024 18:41:52 +0000 (14:41 -0400)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 23 Aug 2024 19:56:04 +0000 (15:56 -0400)
This fixes not handling hibernation actions on suspend notifier so they
are treated in the same way as regular suspend actions.

Fixes: 9952d90ea288 ("Bluetooth: Handle PM_SUSPEND_PREPARE and PM_POST_SUSPEND")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/hci_core.c

index f25a21f532aa7556ba2cb7963e5054a0783384a0..d6976db02c06c757d106f67641936ffbcea29a7f 100644 (file)
@@ -2406,10 +2406,16 @@ static int hci_suspend_notifier(struct notifier_block *nb, unsigned long action,
        /* To avoid a potential race with hci_unregister_dev. */
        hci_dev_hold(hdev);
 
-       if (action == PM_SUSPEND_PREPARE)
+       switch (action) {
+       case PM_HIBERNATION_PREPARE:
+       case PM_SUSPEND_PREPARE:
                ret = hci_suspend_dev(hdev);
-       else if (action == PM_POST_SUSPEND)
+               break;
+       case PM_POST_HIBERNATION:
+       case PM_POST_SUSPEND:
                ret = hci_resume_dev(hdev);
+               break;
+       }
 
        if (ret)
                bt_dev_err(hdev, "Suspend notifier action (%lu) failed: %d",