]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "x86, ucode-amd: Ensure ucode update on suspend/resume after CPU off/online...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 23 Dec 2009 23:04:53 +0000 (15:04 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 23 Dec 2009 23:04:53 +0000 (15:04 -0800)
commit78468c965b7927fba3cb7709b702e1a7fb445fcb
tree4642baeafcd4b4eec2a39e30b862c24b83b8b8d4
parentd2d58279e009cec71cb183a7230f8f8543a1b88e
Revert "x86, ucode-amd: Ensure ucode update on suspend/resume after CPU off/online cycle"

This reverts commit 461b906efde1e95c4fa05306797a825e94d4da1e.  It's just
wrong, and broke resume for Rafael even on a non-AMD CPU.

As Rafael says:
 "... it causes microcode_init_cpu() to be called during resume even for
  CPUs for which there's no microcode to apply.  That, in turn, results
  in executing request_firmware() (on Intel CPUs at least) which doesn't
  work at this stage of resume (we have device interrupts disabled, I/O
  devices are still suspended and so on).

  If I'm not mistaken, the "if (uci->valid)" logic means "if that CPU is
  known to us" , so before commit 461b906efde microcode_resume_cpu() was
  called for all CPUs already in the system during suspend, which was
  the right thing to do.  The commit changed it so that the CPUs without
  microcode to apply are now treated as "unknown", which is not quite
  right.

  The problem this commit attempted to solve has to be handled
  differently."

Bisected-and -requested-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/kernel/microcode_core.c