• Matthew Whitehead's avatar
    x86/CPU: Use correct macros for Cyrix calls · 03b099bd
    Matthew Whitehead authored
    There are comments in processor-cyrix.h advising you to _not_ make calls
    using the deprecated macros in this style:
    
      setCx86_old(CX86_CCR4, getCx86_old(CX86_CCR4) | 0x80);
    
    This is because it expands the macro into a non-functioning calling
    sequence. The calling order must be:
    
      outb(CX86_CCR2, 0x22);
      inb(0x23);
    
    From the comments:
    
     * When using the old macros a line like
     *   setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);
     * gets expanded to:
     *  do {
     *    outb((CX86_CCR2), 0x22);
     *    outb((({
     *        outb((CX86_CCR2), 0x22);
     *        inb(0x23);
     *    }) | 0x88), 0x23);
     *  } while (0);
    
    The new macros fix this problem, so use them instead.
    Signed-off-by: default avatarMatthew Whitehead <tedheadster@gmail.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Reviewed-by: default avatarAndy Lutomirski <luto@amacapital.net>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Jia Zhang <qianyue.zj@alibaba-inc.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Philippe Ombredanne <pombredanne@nexb.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20180921212041.13096-2-tedheadster@gmail.com
    03b099bd
cyrix.c 12.1 KB