by default this way, for example.
 
 The other kernel command line parameters controlling CPU idle time management
-described below are only relevant for the *x86* architecture and some of
-them affect Intel processors only.
+described below are only relevant for the *x86* architecture and references
+to ``intel_idle`` affect Intel processors only.
 
 The *x86* architecture support code recognizes three kernel command line
 options related to CPU idle time management: ``idle=poll``, ``idle=halt``,
 energy-efficiency.  Thus using it for performance reasons may not be a good idea
 at all.]
 
-The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes
-``acpi_idle`` to be used (as long as all of the information needed by it is
-there in the system's ACPI tables), but it is not allowed to use the
-``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states.
+The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of
+the CPU to enter idle states. When this option is used, the ``acpi_idle``
+driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems
+running Intel processors, this option disables the ``intel_idle`` driver
+and forces the use of the ``acpi_idle`` driver instead. Note that in either
+case, ``acpi_idle`` driver will function only if all the information needed
+by it is in the system's ACPI tables.
 
 In addition to the architecture-level kernel command line options affecting CPU
 idle time management, there are parameters affecting individual ``CPUIdle``
 
  */
 static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c)
 {
+       /* User has disallowed the use of MWAIT. Fallback to HALT */
+       if (boot_option_idle_override == IDLE_NOMWAIT)
+               return 0;
+
        if (c->x86_vendor != X86_VENDOR_INTEL)
                return 0;
 
        } else if (!strcmp(str, "nomwait")) {
                /*
                 * If the boot option of "idle=nomwait" is added,
-                * it means that mwait will be disabled for CPU C2/C3
-                * states. In such case it won't touch the variable
-                * of boot_option_idle_override.
+                * it means that mwait will be disabled for CPU C1/C2/C3
+                * states.
                 */
                boot_option_idle_override = IDLE_NOMWAIT;
        } else