Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 62482
b: refs/heads/master
c: f25f64e
h: refs/heads/master
v: v3
  • Loading branch information
Juergen Beisert authored and Linus Torvalds committed Jul 22, 2007
1 parent 6407895 commit eb253c8
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bdda1561ffda764583a295229db66d94cf6038a3
refs/heads/master: f25f64ed5bd3c2932493681bdfdb483ea707da0a
2 changes: 1 addition & 1 deletion trunk/arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
#include <linux/smp.h>
#include <linux/cpufreq.h>
#include <linux/pci.h>
#include <asm/processor.h>
#include <asm/processor-cyrix.h>
#include <asm/errno.h>

/* PCI config registers, all at F0 */
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/i386/kernel/cpu/cyrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <linux/pci.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/processor.h>
#include <asm/processor-cyrix.h>
#include <asm/timer.h>
#include <asm/pci-direct.h>
#include <asm/tsc.h>
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/i386/kernel/cpu/mtrr/cyrix.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <asm/mtrr.h>
#include <asm/msr.h>
#include <asm/io.h>
#include <asm/processor-cyrix.h>
#include "mtrr.h"

int arr3_protected;
Expand Down
1 change: 1 addition & 0 deletions trunk/arch/i386/kernel/cpu/mtrr/state.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <asm/io.h>
#include <asm/mtrr.h>
#include <asm/msr.h>
#include <asm-i386/processor-cyrix.h>
#include "mtrr.h"


Expand Down
30 changes: 30 additions & 0 deletions trunk/include/asm-i386/processor-cyrix.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* NSC/Cyrix CPU indexed register access. Must be inlined instead of
* macros to ensure correct access ordering
* Access order is always 0x22 (=offset), 0x23 (=value)
*
* 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);
*
* which in fact violates the access order (= 0x22, 0x22, 0x23, 0x23).
*/

static inline u8 getCx86(u8 reg)
{
outb(reg, 0x22);
return inb(0x23);
}

static inline void setCx86(u8 reg, u8 data)
{
outb(reg, 0x22);
outb(data, 0x23);
}
11 changes: 0 additions & 11 deletions trunk/include/asm-i386/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,17 +168,6 @@ static inline void clear_in_cr4 (unsigned long mask)
write_cr4(cr4);
}

/*
* NSC/Cyrix CPU indexed register access macros
*/

#define getCx86(reg) ({ outb((reg), 0x22); inb(0x23); })

#define setCx86(reg, data) do { \
outb((reg), 0x22); \
outb((data), 0x23); \
} while (0)

/* Stop speculative execution */
static inline void sync_core(void)
{
Expand Down
11 changes: 0 additions & 11 deletions trunk/include/asm-x86_64/processor.h
Original file line number Diff line number Diff line change
Expand Up @@ -389,17 +389,6 @@ static inline void prefetchw(void *x)

#define cpu_relax() rep_nop()

/*
* NSC/Cyrix CPU indexed register access macros
*/

#define getCx86(reg) ({ outb((reg), 0x22); inb(0x23); })

#define setCx86(reg, data) do { \
outb((reg), 0x22); \
outb((data), 0x23); \
} while (0)

static inline void serialize_cpu(void)
{
__asm__ __volatile__ ("cpuid" : : : "ax", "bx", "cx", "dx");
Expand Down

0 comments on commit eb253c8

Please sign in to comment.