hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/acpi/processor_idle.c
....@@ -536,10 +536,27 @@
536536 /* No delay is needed if we are in guest */
537537 if (boot_cpu_has(X86_FEATURE_HYPERVISOR))
538538 return;
539
+ /*
540
+ * Modern (>=Nehalem) Intel systems use ACPI via intel_idle,
541
+ * not this code. Assume that any Intel systems using this
542
+ * are ancient and may need the dummy wait. This also assumes
543
+ * that the motivating chipset issue was Intel-only.
544
+ */
545
+ if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL)
546
+ return;
539547 #endif
540
- /* Dummy wait op - must do something useless after P_LVL2 read
541
- because chipsets cannot guarantee that STPCLK# signal
542
- gets asserted in time to freeze execution properly. */
548
+ /*
549
+ * Dummy wait op - must do something useless after P_LVL2 read
550
+ * because chipsets cannot guarantee that STPCLK# signal gets
551
+ * asserted in time to freeze execution properly
552
+ *
553
+ * This workaround has been in place since the original ACPI
554
+ * implementation was merged, circa 2002.
555
+ *
556
+ * If a profile is pointing to this instruction, please first
557
+ * consider moving your system to a more modern idle
558
+ * mechanism.
559
+ */
543560 inl(acpi_gbl_FADT.xpm_timer_block.address);
544561 }
545562