Kernel 4.8.15 solved the issue

This commit is contained in:
Daniele Viganò 2016-12-28 18:28:02 +01:00
parent 4a26113843
commit 7b2aa9f376
3 changed files with 6 additions and 4382 deletions

View File

@ -1,37 +1,23 @@
### Reverting 'ACPI: Execute _PTS before system reboot'
Starting with kernel v4.8 a bug as been introduced that prevents a correct shutdown/reboot of the machine.
Bug has been fixed then in 4.9rc7 and kernel 4.9 is not be affected by the issue anymore.
Starting with kernel v4.8.0 a bug was introduced that prevented a correct shutdown/reboot of the machine.
Bug has been fixed in 4.9rc7 and then backported to 4.8; the kernel tree 4.9 and kernels >= 4.8.15 are not be affected by the issue anymore.
The bad commit is:
The bad commit was:
```
2c85025c75dfe7ddc2bb33363a998dad59383f94
ACPI: Execute _PTS before system reboot
```
All kernels from 4.8.0 are affected at the moment. A special thanks to **Giampaolo** on *kbz* for bisecting sources down to the root cause.
An `rpmbuild` compatible patch and an updated `spec` file are provided for reverting this commit in 4.18.
Kernels from 4.8.0 to 4.8.14 are affected, please upgrade to 4.8.15 or to 4.9.
On Fedora 24 and 25 is also possible to use a 4.9 kernel from rawhide:
A special thanks to **Giampaolo** on *kbz* for bisecting sources down to the root cause.
```bash
sudo dnf install fedora-repos-rawhide
sudo dnf --enablerepo=rawhide upgrade kernel*
kernel.x86_64 4.9.0-1.fc26 @rawhide
kernel-core.x86_64 4.9.0-1.fc26 @rawhide
kernel-devel.x86_64 4.9.0-1.fc26 @rawhide
kernel-headers.x86_64 4.9.0-1.fc26 @rawhide
kernel-modules.x86_64 4.9.0-1.fc26 @rawhide
kernel-modules-extra.x86_64 4.9.0-1.fc26 @rawhide
kernel-tools.x86_64 4.9.0-1.fc26 @rawhide
kernel-tools-libs.x86_64 4.9.0-1.fc26 @rawhide
```
### More info
- https://bugzilla.redhat.com/show_bug.cgi?id=1393513
- https://bugzilla.kernel.org/show_bug.cgi?id=187061
- https://bugzilla.kernel.org/show_bug.cgi?id=151631
- https://patchwork.kernel.org/patch/9041141/
- https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.15

File diff suppressed because it is too large Load Diff

View File

@ -1,65 +0,0 @@
From c68d3d1812326d3845220564b69faa720c297c73 Mon Sep 17 00:00:00 2001
From: Daniele Viganò <daniele@vigano.me>
Date: Thu, 10 Nov 2016 08:11:29 +0100
Subject: [PATCH] Reverting 2c85025c75dfe7ddc2bb33363a998dad59383f94
---
drivers/acpi/sleep.c | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index 2b38c1b..7a2e4d4 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -47,32 +47,15 @@ static void acpi_sleep_tts_switch(u32 acpi_state)
}
}
-static void acpi_sleep_pts_switch(u32 acpi_state)
-{
- acpi_status status;
-
- status = acpi_execute_simple_method(NULL, "\\_PTS", acpi_state);
- if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
- /*
- * OS can't evaluate the _PTS object correctly. Some warning
- * message will be printed. But it won't break anything.
- */
- printk(KERN_NOTICE "Failure in evaluating _PTS object\n");
- }
-}
-
-static int sleep_notify_reboot(struct notifier_block *this,
+static int tts_notify_reboot(struct notifier_block *this,
unsigned long code, void *x)
{
acpi_sleep_tts_switch(ACPI_STATE_S5);
-
- acpi_sleep_pts_switch(ACPI_STATE_S5);
-
return NOTIFY_DONE;
}
-static struct notifier_block sleep_notifier = {
- .notifier_call = sleep_notify_reboot,
+static struct notifier_block tts_notifier = {
+ .notifier_call = tts_notify_reboot,
.next = NULL,
.priority = 0,
};
@@ -916,9 +899,9 @@ int __init acpi_sleep_init(void)
pr_info(PREFIX "(supports%s)\n", supported);
/*
- * Register the sleep_notifier to reboot notifier list so that the _TTS
- * and _PTS object can also be evaluated when the system enters S5.
+ * Register the tts_notifier to reboot notifier list so that the _TTS
+ * object can also be evaluated when the system enters S5.
*/
- register_reboot_notifier(&sleep_notifier);
+ register_reboot_notifier(&tts_notifier);
return 0;
}
--
2.7.4