|
@@ -25,14 +25,13 @@
|
|
#include <asm/alternative.h>
|
|
#include <asm/alternative.h>
|
|
#include <asm/cpufeature.h>
|
|
#include <asm/cpufeature.h>
|
|
#include <asm/insn.h>
|
|
#include <asm/insn.h>
|
|
|
|
+#include <asm/sections.h>
|
|
#include <linux/stop_machine.h>
|
|
#include <linux/stop_machine.h>
|
|
|
|
|
|
#define __ALT_PTR(a,f) (u32 *)((void *)&(a)->f + (a)->f)
|
|
#define __ALT_PTR(a,f) (u32 *)((void *)&(a)->f + (a)->f)
|
|
#define ALT_ORIG_PTR(a) __ALT_PTR(a, orig_offset)
|
|
#define ALT_ORIG_PTR(a) __ALT_PTR(a, orig_offset)
|
|
#define ALT_REPL_PTR(a) __ALT_PTR(a, alt_offset)
|
|
#define ALT_REPL_PTR(a) __ALT_PTR(a, alt_offset)
|
|
|
|
|
|
-extern struct alt_instr __alt_instructions[], __alt_instructions_end[];
|
|
|
|
-
|
|
|
|
struct alt_region {
|
|
struct alt_region {
|
|
struct alt_instr *begin;
|
|
struct alt_instr *begin;
|
|
struct alt_instr *end;
|
|
struct alt_instr *end;
|
|
@@ -124,8 +123,8 @@ static int __apply_alternatives_multi_stop(void *unused)
|
|
{
|
|
{
|
|
static int patched = 0;
|
|
static int patched = 0;
|
|
struct alt_region region = {
|
|
struct alt_region region = {
|
|
- .begin = __alt_instructions,
|
|
|
|
- .end = __alt_instructions_end,
|
|
|
|
|
|
+ .begin = (struct alt_instr *)__alt_instructions,
|
|
|
|
+ .end = (struct alt_instr *)__alt_instructions_end,
|
|
};
|
|
};
|
|
|
|
|
|
/* We always have a CPU 0 at this point (__init) */
|
|
/* We always have a CPU 0 at this point (__init) */
|