All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pavel Machek <pavel@ucw.cz>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Zhang Rui <rui.zhang@intel.com>,
	Andrew Lutomirski <luto@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jarkko Nikula <jarkko.nikula@linux.intel.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	the arch/x86 maintainers <x86@kernel.org>
Subject: [PATCH] Fix resume on x86-32 machines
Date: Sun, 10 Dec 2017 22:38:05 +0100	[thread overview]
Message-ID: <20171210213804.GA4660@amd> (raw)
In-Reply-To: <CA+55aFy2-vNAXSnSBoiSfvhijKXzYVmpYr1VCOb87+tgrw0B1Q@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2072 bytes --]


After 4.15-rc2, suspend stopped working on Thinkpad X60. 5b06bbc
(unintentionally?) reordered stuff with respect to
fix_processor_context() on 32-bit and 64-bit. We undo that change on
32-bit.

While we are at it, fix a comment.

Signed-off-by: Pavel Machek <pavel@ucw.cz>
Fixes: 5b06bbcfc2c621da3009da8decb7511500c293ed

diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
index 5191de1..af7b613 100644
--- a/arch/x86/power/cpu.c
+++ b/arch/x86/power/cpu.c
@@ -216,8 +216,8 @@ static void notrace __restore_processor_state(struct saved_context *ctxt)
 	write_cr0(ctxt->cr0);
 
 	/*
-	 * now restore the descriptor tables to their proper values
-	 * ltr is done i fix_processor_context().
+	 * Now restore the descriptor tables to their proper values
+	 * ltr is done in fix_processor_context().
 	 */
 #ifdef CONFIG_X86_32
 	load_idt(&ctxt->idt);
@@ -235,13 +235,11 @@ static void notrace __restore_processor_state(struct saved_context *ctxt)
 	wrmsrl(MSR_GS_BASE, ctxt->gs_base);
 #endif
 
-	fix_processor_context();
-
+#ifdef CONFIG_X86_32
 	/*
-	 * Restore segment registers.  This happens after restoring the GDT
-	 * and LDT, which happen in fix_processor_context().
+	 * Restore segment registers.
 	 */
-#ifdef CONFIG_X86_32
+
 	loadsegment(es, ctxt->es);
 	loadsegment(fs, ctxt->fs);
 	loadsegment(gs, ctxt->gs);
@@ -252,8 +250,17 @@ static void notrace __restore_processor_state(struct saved_context *ctxt)
 	 */
 	if (boot_cpu_has(X86_FEATURE_SEP))
 		enable_sep_cpu();
+
+	fix_processor_context();
 #else
 /* CONFIG_X86_64 */
+	/*
+	 * Restore segment registers.  This happens after restoring the GDT
+	 * and LDT, which happen in fix_processor_context().
+	 */
+	
+	fix_processor_context();
+
 	asm volatile ("movw %0, %%ds" :: "r" (ctxt->ds));
 	asm volatile ("movw %0, %%es" :: "r" (ctxt->es));
 	asm volatile ("movw %0, %%fs" :: "r" (ctxt->fs));


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

  parent reply	other threads:[~2017-12-10 21:38 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-03 16:22 Linux 4.15-rc2 Linus Torvalds
2017-12-04 22:25 ` Linux 4.15-rc2: Regression in resume from ACPI S3 Rafael J. Wysocki
2017-12-04 22:36   ` Linus Torvalds
2017-12-04 22:38     ` Thomas Gleixner
2017-12-04 22:41       ` Rafael J. Wysocki
2017-12-05  0:25         ` Rafael J. Wysocki
2017-12-09 10:33           ` Pavel Machek
2017-12-09 11:41             ` Pavel Machek
     [not found]             ` <CA+55aFw8tuoJ2gcXx3K2sKFf2Y9hXX4naMVQNqGOUivnjwhjkg@mail.gmail.com>
2017-12-09 22:01               ` Pavel Machek
     [not found]                 ` <CA+55aFySAdiBZhZ0PSDjH5PuvPPcMsBRXbxCkObfm1eY7gHDbQ@mail.gmail.com>
2017-12-10 16:23                   ` Pavel Machek
2017-12-10 16:37                     ` Linus Torvalds
2017-12-10 18:56                       ` Pavel Machek
2017-12-10 20:30                         ` Linus Torvalds
2017-12-10 20:43                           ` Pavel Machek
2017-12-10 21:28                             ` Linus Torvalds
2017-12-10 21:35                               ` Pavel Machek
2017-12-12 17:27                               ` Linus Torvalds
2017-12-12 18:05                                 ` Andy Lutomirski
2017-12-12 18:36                                   ` Linus Torvalds
2017-12-12 22:10                                     ` Andy Lutomirski
2017-12-12 22:33                                       ` Linus Torvalds
2017-12-12 23:10                                         ` Andy Lutomirski
2017-12-13 11:16                                       ` Jarkko Nikula
2017-12-13 12:40                                         ` Ingo Molnar
2017-12-13 18:50                                         ` Andy Lutomirski
2017-12-10 21:38                           ` Pavel Machek [this message]
2017-12-10 21:58                             ` [PATCH] Fix resume on x86-32 machines Andy Lutomirski
2017-12-10 22:20                               ` Pavel Machek
2017-12-11  9:25                                 ` Jarkko Nikula
2017-12-11 14:22                               ` Rafael J. Wysocki
2017-12-11 14:43                                 ` Rafael J. Wysocki
2017-12-11 14:59                                 ` Jarkko Nikula
2017-12-11 18:31                                 ` Linus Torvalds
2017-12-11 18:41                                   ` Andy Lutomirski
2017-12-11 19:12                                     ` Linus Torvalds
2017-12-14 20:38                                     ` Pavel Machek
2017-12-14 20:47                                       ` Linus Torvalds
2017-12-14 21:20                                         ` Andy Lutomirski
2017-12-14 22:22                                         ` Pavel Machek
2017-12-11 15:13                               ` Ingo Molnar
2017-12-11 16:26                                 ` Andy Lutomirski
2017-12-11 14:09                           ` Linux 4.15-rc2: Regression in resume from ACPI S3 Zhang Rui
2017-12-11 16:28                             ` Andy Lutomirski
2017-12-12  8:00                             ` Pavel Machek
2017-12-06 12:15     ` Michal Hocko
2017-12-06 12:23       ` Thomas Gleixner
2017-12-06 14:04         ` Rafael J. Wysocki
2017-12-06 12:31       ` Maarten Lankhorst
2017-12-06 12:46         ` Thomas Gleixner
2017-12-06 13:09           ` Maarten Lankhorst
2017-12-06 14:15             ` Thomas Gleixner
2017-12-07 13:33               ` Maarten Lankhorst
2017-12-08 10:30                 ` Thomas Gleixner
2017-12-13 15:57                   ` Thomas Gleixner
2017-12-13 16:23                     ` Bjorn Helgaas
2017-12-13 16:41                       ` Thomas Gleixner
2017-12-13 17:45                         ` Linus Torvalds
2017-12-13 18:19                           ` Thomas Gleixner
2017-12-13 20:52                             ` Thomas Gleixner
2017-12-13 21:06                               ` Thomas Gleixner
2017-12-13 22:48                                 ` Rafael J. Wysocki
2017-12-14 11:54                                 ` Thomas Gleixner
2017-12-14 12:12                                   ` Rafael J. Wysocki
2017-12-14 12:30                                     ` Thomas Gleixner
2017-12-14 15:30                                       ` Rafael J. Wysocki
2017-12-14 15:52                                         ` Thomas Gleixner
2017-12-14 15:54                                           ` Rafael J. Wysocki
2017-12-14 16:17                                             ` Maarten Lankhorst
2017-12-15  2:07                                             ` [PATCH] PCI / PM: Force devices to D0 in pci_pm_thaw_noirq() Rafael J. Wysocki
2017-12-15 14:28                                               ` Rafael J. Wysocki
2017-12-15 18:30                                               ` Bjorn Helgaas
2017-12-15 23:44                                                 ` Rafael J. Wysocki
2017-12-14 13:24                                   ` Linux 4.15-rc2: Regression in resume from ACPI S3 Thomas Gleixner
2017-12-14 19:03                                   ` Linus Torvalds
2017-12-14 22:36                                     ` Thomas Gleixner
2017-12-14 22:47                                       ` Linus Torvalds
2017-12-15  9:05                                         ` Thomas Gleixner
2017-12-15  0:34                                       ` Rafael J. Wysocki
2017-12-13 22:39                             ` Rafael J. Wysocki
2017-12-13 23:26                               ` Rafael J. Wysocki
2017-12-07  7:55       ` Michal Hocko
2017-12-10 20:30         ` Michal Hocko
2018-02-21 18:36 ` Linux 4.15-rc2 Eugene Syromiatnikov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171210213804.GA4660@amd \
    --to=pavel@ucw.cz \
    --cc=jarkko.nikula@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=rui.zhang@intel.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.