Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 189896
b: refs/heads/master
c: 5094aea
h: refs/heads/master
v: v3
  • Loading branch information
Rusty Russell committed Apr 14, 2010
1 parent d1fe730 commit 0129841
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 13 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: d471a4b9f2ac327c15300ba2b2bda2c6d6fd03bc
refs/heads/master: 5094aeafbbd500509f648e3cd102b053bc7926b3
8 changes: 2 additions & 6 deletions trunk/arch/m68k/include/asm/atomic_mm.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,18 +148,14 @@ static inline int atomic_xchg(atomic_t *v, int new)
static inline int atomic_sub_and_test(int i, atomic_t *v)
{
char c;
__asm__ __volatile__("subl %2,%1; seq %0"
: "=d" (c), "+m" (*v)
: "id" (i));
__asm__ __volatile__("subl %2,%1; seq %0" : "=d" (c), "+m" (*v): "g" (i));
return c != 0;
}

static inline int atomic_add_negative(int i, atomic_t *v)
{
char c;
__asm__ __volatile__("addl %2,%1; smi %0"
: "=d" (c), "+m" (*v)
: "id" (i));
__asm__ __volatile__("addl %2,%1; smi %0" : "=d" (c), "+m" (*v): "g" (i));
return c != 0;
}

Expand Down
4 changes: 3 additions & 1 deletion trunk/arch/m68k/include/asm/sigcontext.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,13 @@ struct sigcontext {
#ifndef __uClinux__
# ifdef __mcoldfire__
unsigned long sc_fpregs[2][2]; /* room for two fp registers */
unsigned long sc_fpcntl[3];
unsigned char sc_fpstate[16+6*8];
# else
unsigned long sc_fpregs[2*3]; /* room for two fp registers */
# endif
unsigned long sc_fpcntl[3];
unsigned char sc_fpstate[216];
# endif
#endif
};

Expand Down
12 changes: 12 additions & 0 deletions trunk/drivers/lguest/x86/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,18 @@ static int emulate_insn(struct lg_cpu *cpu)
/* Decoding x86 instructions is icky. */
insn = lgread(cpu, physaddr, u8);

/*
* Around 2.6.33, the kernel started using an emulation for the
* cmpxchg8b instruction in early boot on many configurations. This
* code isn't paravirtualized, and it tries to disable interrupts.
* Ignore it, which will Mostly Work.
*/
if (insn == 0xfa) {
/* "cli", or Clear Interrupt Enable instruction. Skip it. */
cpu->regs->eip++;
return 1;
}

/*
* 0x66 is an "operand prefix". It means it's using the upper 16 bits
* of the eax register.
Expand Down
10 changes: 5 additions & 5 deletions trunk/lib/vsprintf.c
Original file line number Diff line number Diff line change
Expand Up @@ -408,12 +408,12 @@ enum format_type {
};

struct printf_spec {
u8 type; /* format_type enum */
u8 flags; /* flags to number() */
u8 base; /* number base, 8, 10 or 16 only */
u8 qualifier; /* number qualifier, one of 'hHlLtzZ' */
u16 type;
s16 field_width; /* width of output field */
s16 precision; /* # of digits/chars */
u8 flags; /* flags to number() */
u8 base;
s8 precision; /* # of digits/chars */
u8 qualifier;
};

static char *number(char *buf, char *end, unsigned long long num,
Expand Down

0 comments on commit 0129841

Please sign in to comment.