Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 53857
b: refs/heads/master
c: 98de032
h: refs/heads/master
i:
  53855: d451c2a
v: v3
  • Loading branch information
Jeremy Fitzhardinge authored and Andi Kleen committed May 2, 2007
1 parent 882a90d commit 4c0efa5
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 8 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: d6dd61c831226f9cd7750885da04d360d6455101
refs/heads/master: 98de032b681d8a7532d44dfc66aa5c0c1c755a9d
7 changes: 4 additions & 3 deletions trunk/arch/i386/kernel/alternative.c
Original file line number Diff line number Diff line change
Expand Up @@ -325,9 +325,10 @@ void alternatives_smp_switch(int smp)
#endif

#ifdef CONFIG_PARAVIRT
void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)
void apply_paravirt(struct paravirt_patch_site *start,
struct paravirt_patch_site *end)
{
struct paravirt_patch *p;
struct paravirt_patch_site *p;

for (p = start; p < end; p++) {
unsigned int used;
Expand All @@ -342,7 +343,7 @@ void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)
/* Sync to be conservative, in case we patched following instructions */
sync_core();
}
extern struct paravirt_patch __start_parainstructions[],
extern struct paravirt_patch_site __start_parainstructions[],
__stop_parainstructions[];
#endif /* CONFIG_PARAVIRT */

Expand Down
8 changes: 5 additions & 3 deletions trunk/include/asm-i386/alternative.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,12 +115,14 @@ static inline void alternatives_smp_switch(int smp) {}
#define LOCK_PREFIX ""
#endif

struct paravirt_patch;
struct paravirt_patch_site;
#ifdef CONFIG_PARAVIRT
void apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end);
void apply_paravirt(struct paravirt_patch_site *start,
struct paravirt_patch_site *end);
#else
static inline void
apply_paravirt(struct paravirt_patch *start, struct paravirt_patch *end)
apply_paravirt(struct paravirt_patch_site *start,
struct paravirt_patch_site *end)
{}
#define __start_parainstructions NULL
#define __stop_parainstructions NULL
Expand Down
5 changes: 4 additions & 1 deletion trunk/include/asm-i386/paravirt.h
Original file line number Diff line number Diff line change
Expand Up @@ -505,13 +505,16 @@ void _paravirt_nop(void);
#define paravirt_nop ((void *)_paravirt_nop)

/* These all sit in the .parainstructions section to tell us what to patch. */
struct paravirt_patch {
struct paravirt_patch_site {
u8 *instr; /* original instructions */
u8 instrtype; /* type of this instruction */
u8 len; /* length of original instruction */
u16 clobbers; /* what registers you may clobber */
};

extern struct paravirt_patch_site __parainstructions[],
__parainstructions_end[];

#define paravirt_alt(insn_string, typenum, clobber) \
"771:\n\t" insn_string "\n" "772:\n" \
".pushsection .parainstructions,\"a\"\n" \
Expand Down

0 comments on commit 4c0efa5

Please sign in to comment.