• Len Brown's avatar
    x86: Remove the ancient and deprecated disable_hlt() and enable_hlt() facility · f6365201
    Len Brown authored
    The X86_32-only disable_hlt/enable_hlt mechanism was used by the
    32-bit floppy driver. Its effect was to replace the use of the
    HLT instruction inside default_idle() with cpu_relax() - essentially
    it turned off the use of HLT.
    
    This workaround was commented in the code as:
    
     "disable hlt during certain critical i/o operations"
    
     "This halt magic was a workaround for ancient floppy DMA
      wreckage. It should be safe to remove."
    
    H. Peter Anvin additionally adds:
    
     "To the best of my knowledge, no-hlt only existed because of
      flaky power distributions on 386/486 systems which were sold to
      run DOS.  Since DOS did no power management of any kind,
      including HLT, the power draw was fairly uniform; when exposed
      to the much hhigher noise levels you got when Linux used HLT
      caused some of these systems to fail.
    
      They were by far in the minority even back then."
    
    Alan Cox further says:
    
     "Also for the Cyrix 5510 which tended to go castors up if a HLT
      occurred during a DMA cycle and on a few other boxes HLT during
      DMA tended to go astray.
    
      Do we care ? I doubt it. The 5510 was pretty obscure, the 5520
      fixed it, the 5530 is probably the oldest still in any kind of
      use."
    
    So, let's finally drop this.
    Signed-off-by: default avatarLen Brown <len.brown@intel.com>
    Signed-off-by: default avatarJosh Boyer <jwboyer@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Acked-by: default avatar"H. Peter Anvin" <hpa@zytor.com>
    Acked-by: default avatarAlan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: Stephen Hemminger <shemminger@vyatta.com
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: <stable@kernel.org>
    Link: http://lkml.kernel.org/n/tip-3rhk9bzf0x9rljkv488tloib@git.kernel.org
    [ If anyone cares then alternative instruction patching could be
      used to replace HLT with a one-byte NOP instruction. Much simpler. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f6365201
process.c 17.6 KB