Commit c545b9f0 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc/inst: Define ppc_inst_t

In order to stop using 'struct ppc_inst' on PPC32,
define a ppc_inst_t typedef.
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/fe5baa2c66fea9db05a8b300b3e8d2880a42596c.1638208156.git.christophe.leroy@csgroup.eu
parent 3261d99a
...@@ -24,20 +24,20 @@ ...@@ -24,20 +24,20 @@
bool is_offset_in_branch_range(long offset); bool is_offset_in_branch_range(long offset);
bool is_offset_in_cond_branch_range(long offset); bool is_offset_in_cond_branch_range(long offset);
int create_branch(struct ppc_inst *instr, const u32 *addr, int create_branch(ppc_inst_t *instr, const u32 *addr,
unsigned long target, int flags); unsigned long target, int flags);
int create_cond_branch(struct ppc_inst *instr, const u32 *addr, int create_cond_branch(ppc_inst_t *instr, const u32 *addr,
unsigned long target, int flags); unsigned long target, int flags);
int patch_branch(u32 *addr, unsigned long target, int flags); int patch_branch(u32 *addr, unsigned long target, int flags);
int patch_instruction(u32 *addr, struct ppc_inst instr); int patch_instruction(u32 *addr, ppc_inst_t instr);
int raw_patch_instruction(u32 *addr, struct ppc_inst instr); int raw_patch_instruction(u32 *addr, ppc_inst_t instr);
static inline unsigned long patch_site_addr(s32 *site) static inline unsigned long patch_site_addr(s32 *site)
{ {
return (unsigned long)site + *site; return (unsigned long)site + *site;
} }
static inline int patch_instruction_site(s32 *site, struct ppc_inst instr) static inline int patch_instruction_site(s32 *site, ppc_inst_t instr)
{ {
return patch_instruction((u32 *)patch_site_addr(site), instr); return patch_instruction((u32 *)patch_site_addr(site), instr);
} }
...@@ -58,11 +58,11 @@ static inline int modify_instruction_site(s32 *site, unsigned int clr, unsigned ...@@ -58,11 +58,11 @@ static inline int modify_instruction_site(s32 *site, unsigned int clr, unsigned
return modify_instruction((unsigned int *)patch_site_addr(site), clr, set); return modify_instruction((unsigned int *)patch_site_addr(site), clr, set);
} }
int instr_is_relative_branch(struct ppc_inst instr); int instr_is_relative_branch(ppc_inst_t instr);
int instr_is_relative_link_branch(struct ppc_inst instr); int instr_is_relative_link_branch(ppc_inst_t instr);
unsigned long branch_target(const u32 *instr); unsigned long branch_target(const u32 *instr);
int translate_branch(struct ppc_inst *instr, const u32 *dest, const u32 *src); int translate_branch(ppc_inst_t *instr, const u32 *dest, const u32 *src);
extern bool is_conditional_branch(struct ppc_inst instr); bool is_conditional_branch(ppc_inst_t instr);
#ifdef CONFIG_PPC_BOOK3E_64 #ifdef CONFIG_PPC_BOOK3E_64
void __patch_exception(int exc, unsigned long addr); void __patch_exception(int exc, unsigned long addr);
#define patch_exception(exc, name) do { \ #define patch_exception(exc, name) do { \
......
...@@ -56,11 +56,11 @@ static inline int nr_wp_slots(void) ...@@ -56,11 +56,11 @@ static inline int nr_wp_slots(void)
return cpu_has_feature(CPU_FTR_DAWR1) ? 2 : 1; return cpu_has_feature(CPU_FTR_DAWR1) ? 2 : 1;
} }
bool wp_check_constraints(struct pt_regs *regs, struct ppc_inst instr, bool wp_check_constraints(struct pt_regs *regs, ppc_inst_t instr,
unsigned long ea, int type, int size, unsigned long ea, int type, int size,
struct arch_hw_breakpoint *info); struct arch_hw_breakpoint *info);
void wp_get_instr_detail(struct pt_regs *regs, struct ppc_inst *instr, void wp_get_instr_detail(struct pt_regs *regs, ppc_inst_t *instr,
int *type, int *size, unsigned long *ea); int *type, int *size, unsigned long *ea);
#ifdef CONFIG_HAVE_HW_BREAKPOINT #ifdef CONFIG_HAVE_HW_BREAKPOINT
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
({ \ ({ \
long __gui_ret; \ long __gui_ret; \
u32 __user *__gui_ptr = (u32 __user *)ptr; \ u32 __user *__gui_ptr = (u32 __user *)ptr; \
struct ppc_inst __gui_inst; \ ppc_inst_t __gui_inst; \
unsigned int __prefix, __suffix; \ unsigned int __prefix, __suffix; \
\ \
__chk_user_ptr(ptr); \ __chk_user_ptr(ptr); \
...@@ -34,29 +34,29 @@ ...@@ -34,29 +34,29 @@
* Instruction data type for POWER * Instruction data type for POWER
*/ */
struct ppc_inst { typedef struct {
u32 val; u32 val;
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
u32 suffix; u32 suffix;
#endif #endif
} __packed; } __packed ppc_inst_t;
static inline u32 ppc_inst_val(struct ppc_inst x) static inline u32 ppc_inst_val(ppc_inst_t x)
{ {
return x.val; return x.val;
} }
static inline int ppc_inst_primary_opcode(struct ppc_inst x) static inline int ppc_inst_primary_opcode(ppc_inst_t x)
{ {
return ppc_inst_val(x) >> 26; return ppc_inst_val(x) >> 26;
} }
#define ppc_inst(x) ((struct ppc_inst){ .val = (x) }) #define ppc_inst(x) ((ppc_inst_t){ .val = (x) })
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
#define ppc_inst_prefix(x, y) ((struct ppc_inst){ .val = (x), .suffix = (y) }) #define ppc_inst_prefix(x, y) ((ppc_inst_t){ .val = (x), .suffix = (y) })
static inline u32 ppc_inst_suffix(struct ppc_inst x) static inline u32 ppc_inst_suffix(ppc_inst_t x)
{ {
return x.suffix; return x.suffix;
} }
...@@ -64,14 +64,14 @@ static inline u32 ppc_inst_suffix(struct ppc_inst x) ...@@ -64,14 +64,14 @@ static inline u32 ppc_inst_suffix(struct ppc_inst x)
#else #else
#define ppc_inst_prefix(x, y) ((void)y, ppc_inst(x)) #define ppc_inst_prefix(x, y) ((void)y, ppc_inst(x))
static inline u32 ppc_inst_suffix(struct ppc_inst x) static inline u32 ppc_inst_suffix(ppc_inst_t x)
{ {
return 0; return 0;
} }
#endif /* CONFIG_PPC64 */ #endif /* CONFIG_PPC64 */
static inline struct ppc_inst ppc_inst_read(const u32 *ptr) static inline ppc_inst_t ppc_inst_read(const u32 *ptr)
{ {
if (IS_ENABLED(CONFIG_PPC64) && (*ptr >> 26) == OP_PREFIX) if (IS_ENABLED(CONFIG_PPC64) && (*ptr >> 26) == OP_PREFIX)
return ppc_inst_prefix(*ptr, *(ptr + 1)); return ppc_inst_prefix(*ptr, *(ptr + 1));
...@@ -79,17 +79,17 @@ static inline struct ppc_inst ppc_inst_read(const u32 *ptr) ...@@ -79,17 +79,17 @@ static inline struct ppc_inst ppc_inst_read(const u32 *ptr)
return ppc_inst(*ptr); return ppc_inst(*ptr);
} }
static inline bool ppc_inst_prefixed(struct ppc_inst x) static inline bool ppc_inst_prefixed(ppc_inst_t x)
{ {
return IS_ENABLED(CONFIG_PPC64) && ppc_inst_primary_opcode(x) == OP_PREFIX; return IS_ENABLED(CONFIG_PPC64) && ppc_inst_primary_opcode(x) == OP_PREFIX;
} }
static inline struct ppc_inst ppc_inst_swab(struct ppc_inst x) static inline ppc_inst_t ppc_inst_swab(ppc_inst_t x)
{ {
return ppc_inst_prefix(swab32(ppc_inst_val(x)), swab32(ppc_inst_suffix(x))); return ppc_inst_prefix(swab32(ppc_inst_val(x)), swab32(ppc_inst_suffix(x)));
} }
static inline bool ppc_inst_equal(struct ppc_inst x, struct ppc_inst y) static inline bool ppc_inst_equal(ppc_inst_t x, ppc_inst_t y)
{ {
if (ppc_inst_val(x) != ppc_inst_val(y)) if (ppc_inst_val(x) != ppc_inst_val(y))
return false; return false;
...@@ -98,7 +98,7 @@ static inline bool ppc_inst_equal(struct ppc_inst x, struct ppc_inst y) ...@@ -98,7 +98,7 @@ static inline bool ppc_inst_equal(struct ppc_inst x, struct ppc_inst y)
return ppc_inst_suffix(x) == ppc_inst_suffix(y); return ppc_inst_suffix(x) == ppc_inst_suffix(y);
} }
static inline int ppc_inst_len(struct ppc_inst x) static inline int ppc_inst_len(ppc_inst_t x)
{ {
return ppc_inst_prefixed(x) ? 8 : 4; return ppc_inst_prefixed(x) ? 8 : 4;
} }
...@@ -109,14 +109,14 @@ static inline int ppc_inst_len(struct ppc_inst x) ...@@ -109,14 +109,14 @@ static inline int ppc_inst_len(struct ppc_inst x)
*/ */
static inline u32 *ppc_inst_next(u32 *location, u32 *value) static inline u32 *ppc_inst_next(u32 *location, u32 *value)
{ {
struct ppc_inst tmp; ppc_inst_t tmp;
tmp = ppc_inst_read(value); tmp = ppc_inst_read(value);
return (void *)location + ppc_inst_len(tmp); return (void *)location + ppc_inst_len(tmp);
} }
static inline unsigned long ppc_inst_as_ulong(struct ppc_inst x) static inline unsigned long ppc_inst_as_ulong(ppc_inst_t x)
{ {
if (IS_ENABLED(CONFIG_PPC32)) if (IS_ENABLED(CONFIG_PPC32))
return ppc_inst_val(x); return ppc_inst_val(x);
...@@ -128,7 +128,7 @@ static inline unsigned long ppc_inst_as_ulong(struct ppc_inst x) ...@@ -128,7 +128,7 @@ static inline unsigned long ppc_inst_as_ulong(struct ppc_inst x)
#define PPC_INST_STR_LEN sizeof("00000000 00000000") #define PPC_INST_STR_LEN sizeof("00000000 00000000")
static inline char *__ppc_inst_as_str(char str[PPC_INST_STR_LEN], struct ppc_inst x) static inline char *__ppc_inst_as_str(char str[PPC_INST_STR_LEN], ppc_inst_t x)
{ {
if (ppc_inst_prefixed(x)) if (ppc_inst_prefixed(x))
sprintf(str, "%08x %08x", ppc_inst_val(x), ppc_inst_suffix(x)); sprintf(str, "%08x %08x", ppc_inst_val(x), ppc_inst_suffix(x));
...@@ -145,6 +145,6 @@ static inline char *__ppc_inst_as_str(char str[PPC_INST_STR_LEN], struct ppc_ins ...@@ -145,6 +145,6 @@ static inline char *__ppc_inst_as_str(char str[PPC_INST_STR_LEN], struct ppc_ins
__str; \ __str; \
}) })
int copy_inst_from_kernel_nofault(struct ppc_inst *inst, u32 *src); int copy_inst_from_kernel_nofault(ppc_inst_t *inst, u32 *src);
#endif /* _ASM_POWERPC_INST_H */ #endif /* _ASM_POWERPC_INST_H */
...@@ -145,7 +145,7 @@ union vsx_reg { ...@@ -145,7 +145,7 @@ union vsx_reg {
* otherwise. * otherwise.
*/ */
extern int analyse_instr(struct instruction_op *op, const struct pt_regs *regs, extern int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
struct ppc_inst instr); ppc_inst_t instr);
/* /*
* Emulate an instruction that can be executed just by updating * Emulate an instruction that can be executed just by updating
...@@ -162,7 +162,7 @@ void emulate_update_regs(struct pt_regs *reg, struct instruction_op *op); ...@@ -162,7 +162,7 @@ void emulate_update_regs(struct pt_regs *reg, struct instruction_op *op);
* 0 if it could not be emulated, or -1 for an instruction that * 0 if it could not be emulated, or -1 for an instruction that
* should not be emulated (rfid, mtmsrd clearing MSR_RI, etc.). * should not be emulated (rfid, mtmsrd clearing MSR_RI, etc.).
*/ */
extern int emulate_step(struct pt_regs *regs, struct ppc_inst instr); int emulate_step(struct pt_regs *regs, ppc_inst_t instr);
/* /*
* Emulate a load or store instruction by reading/writing the * Emulate a load or store instruction by reading/writing the
......
...@@ -105,7 +105,7 @@ static struct aligninfo spe_aligninfo[32] = { ...@@ -105,7 +105,7 @@ static struct aligninfo spe_aligninfo[32] = {
* so we don't need the address swizzling. * so we don't need the address swizzling.
*/ */
static int emulate_spe(struct pt_regs *regs, unsigned int reg, static int emulate_spe(struct pt_regs *regs, unsigned int reg,
struct ppc_inst ppc_instr) ppc_inst_t ppc_instr)
{ {
union { union {
u64 ll; u64 ll;
...@@ -300,7 +300,7 @@ static int emulate_spe(struct pt_regs *regs, unsigned int reg, ...@@ -300,7 +300,7 @@ static int emulate_spe(struct pt_regs *regs, unsigned int reg,
int fix_alignment(struct pt_regs *regs) int fix_alignment(struct pt_regs *regs)
{ {
struct ppc_inst instr; ppc_inst_t instr;
struct instruction_op op; struct instruction_op op;
int r, type; int r, type;
......
...@@ -37,7 +37,7 @@ static int __init early_init_dt_scan_epapr(unsigned long node, ...@@ -37,7 +37,7 @@ static int __init early_init_dt_scan_epapr(unsigned long node,
return -1; return -1;
for (i = 0; i < (len / 4); i++) { for (i = 0; i < (len / 4); i++) {
struct ppc_inst inst = ppc_inst(be32_to_cpu(insts[i])); ppc_inst_t inst = ppc_inst(be32_to_cpu(insts[i]));
patch_instruction(epapr_hypercall_start + i, inst); patch_instruction(epapr_hypercall_start + i, inst);
#if !defined(CONFIG_64BIT) || defined(CONFIG_PPC_BOOK3E_64) #if !defined(CONFIG_64BIT) || defined(CONFIG_PPC_BOOK3E_64)
patch_instruction(epapr_ev_idle_start + i, inst); patch_instruction(epapr_ev_idle_start + i, inst);
......
...@@ -523,7 +523,7 @@ static void larx_stcx_err(struct perf_event *bp, struct arch_hw_breakpoint *info ...@@ -523,7 +523,7 @@ static void larx_stcx_err(struct perf_event *bp, struct arch_hw_breakpoint *info
static bool stepping_handler(struct pt_regs *regs, struct perf_event **bp, static bool stepping_handler(struct pt_regs *regs, struct perf_event **bp,
struct arch_hw_breakpoint **info, int *hit, struct arch_hw_breakpoint **info, int *hit,
struct ppc_inst instr) ppc_inst_t instr)
{ {
int i; int i;
int stepped; int stepped;
...@@ -616,7 +616,7 @@ int hw_breakpoint_handler(struct die_args *args) ...@@ -616,7 +616,7 @@ int hw_breakpoint_handler(struct die_args *args)
int hit[HBP_NUM_MAX] = {0}; int hit[HBP_NUM_MAX] = {0};
int nr_hit = 0; int nr_hit = 0;
bool ptrace_bp = false; bool ptrace_bp = false;
struct ppc_inst instr = ppc_inst(0); ppc_inst_t instr = ppc_inst(0);
int type = 0; int type = 0;
int size = 0; int size = 0;
unsigned long ea; unsigned long ea;
......
...@@ -80,7 +80,7 @@ static bool check_dawrx_constraints(struct pt_regs *regs, int type, ...@@ -80,7 +80,7 @@ static bool check_dawrx_constraints(struct pt_regs *regs, int type,
* Return true if the event is valid wrt dawr configuration, * Return true if the event is valid wrt dawr configuration,
* including extraneous exception. Otherwise return false. * including extraneous exception. Otherwise return false.
*/ */
bool wp_check_constraints(struct pt_regs *regs, struct ppc_inst instr, bool wp_check_constraints(struct pt_regs *regs, ppc_inst_t instr,
unsigned long ea, int type, int size, unsigned long ea, int type, int size,
struct arch_hw_breakpoint *info) struct arch_hw_breakpoint *info)
{ {
...@@ -127,7 +127,7 @@ bool wp_check_constraints(struct pt_regs *regs, struct ppc_inst instr, ...@@ -127,7 +127,7 @@ bool wp_check_constraints(struct pt_regs *regs, struct ppc_inst instr,
return false; return false;
} }
void wp_get_instr_detail(struct pt_regs *regs, struct ppc_inst *instr, void wp_get_instr_detail(struct pt_regs *regs, ppc_inst_t *instr,
int *type, int *size, unsigned long *ea) int *type, int *size, unsigned long *ea)
{ {
struct instruction_op op; struct instruction_op op;
......
...@@ -124,7 +124,7 @@ int arch_prepare_kprobe(struct kprobe *p) ...@@ -124,7 +124,7 @@ int arch_prepare_kprobe(struct kprobe *p)
{ {
int ret = 0; int ret = 0;
struct kprobe *prev; struct kprobe *prev;
struct ppc_inst insn = ppc_inst_read(p->addr); ppc_inst_t insn = ppc_inst_read(p->addr);
if ((unsigned long)p->addr & 0x03) { if ((unsigned long)p->addr & 0x03) {
printk("Attempt to register kprobe at an unaligned address\n"); printk("Attempt to register kprobe at an unaligned address\n");
...@@ -244,7 +244,7 @@ NOKPROBE_SYMBOL(arch_prepare_kretprobe); ...@@ -244,7 +244,7 @@ NOKPROBE_SYMBOL(arch_prepare_kretprobe);
static int try_to_emulate(struct kprobe *p, struct pt_regs *regs) static int try_to_emulate(struct kprobe *p, struct pt_regs *regs)
{ {
int ret; int ret;
struct ppc_inst insn = ppc_inst_read(p->ainsn.insn); ppc_inst_t insn = ppc_inst_read(p->ainsn.insn);
/* regs->nip is also adjusted if emulate_step returns 1 */ /* regs->nip is also adjusted if emulate_step returns 1 */
ret = emulate_step(regs, insn); ret = emulate_step(regs, insn);
......
...@@ -455,7 +455,7 @@ static int mce_find_instr_ea_and_phys(struct pt_regs *regs, uint64_t *addr, ...@@ -455,7 +455,7 @@ static int mce_find_instr_ea_and_phys(struct pt_regs *regs, uint64_t *addr,
* in real-mode is tricky and can lead to recursive * in real-mode is tricky and can lead to recursive
* faults * faults
*/ */
struct ppc_inst instr; ppc_inst_t instr;
unsigned long pfn, instr_addr; unsigned long pfn, instr_addr;
struct instruction_op op; struct instruction_op op;
struct pt_regs tmp = *regs; struct pt_regs tmp = *regs;
......
...@@ -153,7 +153,7 @@ static void patch_imm_load_insns(unsigned long val, int reg, kprobe_opcode_t *ad ...@@ -153,7 +153,7 @@ static void patch_imm_load_insns(unsigned long val, int reg, kprobe_opcode_t *ad
int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *p) int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *p)
{ {
struct ppc_inst branch_op_callback, branch_emulate_step, temp; ppc_inst_t branch_op_callback, branch_emulate_step, temp;
unsigned long op_callback_addr, emulate_step_addr; unsigned long op_callback_addr, emulate_step_addr;
kprobe_opcode_t *buff; kprobe_opcode_t *buff;
long b_offset; long b_offset;
...@@ -269,7 +269,7 @@ int arch_check_optimized_kprobe(struct optimized_kprobe *op) ...@@ -269,7 +269,7 @@ int arch_check_optimized_kprobe(struct optimized_kprobe *op)
void arch_optimize_kprobes(struct list_head *oplist) void arch_optimize_kprobes(struct list_head *oplist)
{ {
struct ppc_inst instr; ppc_inst_t instr;
struct optimized_kprobe *op; struct optimized_kprobe *op;
struct optimized_kprobe *tmp; struct optimized_kprobe *tmp;
......
...@@ -628,7 +628,7 @@ static void do_break_handler(struct pt_regs *regs) ...@@ -628,7 +628,7 @@ static void do_break_handler(struct pt_regs *regs)
{ {
struct arch_hw_breakpoint null_brk = {0}; struct arch_hw_breakpoint null_brk = {0};
struct arch_hw_breakpoint *info; struct arch_hw_breakpoint *info;
struct ppc_inst instr = ppc_inst(0); ppc_inst_t instr = ppc_inst(0);
int type = 0; int type = 0;
int size = 0; int size = 0;
unsigned long ea; unsigned long ea;
......
...@@ -75,7 +75,7 @@ EXPORT_SYMBOL(DMA_MODE_WRITE); ...@@ -75,7 +75,7 @@ EXPORT_SYMBOL(DMA_MODE_WRITE);
notrace void __init machine_init(u64 dt_ptr) notrace void __init machine_init(u64 dt_ptr)
{ {
u32 *addr = (u32 *)patch_site_addr(&patch__memset_nocache); u32 *addr = (u32 *)patch_site_addr(&patch__memset_nocache);
struct ppc_inst insn; ppc_inst_t insn;
/* Configure static keys first, now that we're relocated. */ /* Configure static keys first, now that we're relocated. */
setup_feature_keys(); setup_feature_keys();
......
...@@ -41,10 +41,10 @@ ...@@ -41,10 +41,10 @@
#define NUM_FTRACE_TRAMPS 8 #define NUM_FTRACE_TRAMPS 8
static unsigned long ftrace_tramps[NUM_FTRACE_TRAMPS]; static unsigned long ftrace_tramps[NUM_FTRACE_TRAMPS];
static struct ppc_inst static ppc_inst_t
ftrace_call_replace(unsigned long ip, unsigned long addr, int link) ftrace_call_replace(unsigned long ip, unsigned long addr, int link)
{ {
struct ppc_inst op; ppc_inst_t op;
addr = ppc_function_entry((void *)addr); addr = ppc_function_entry((void *)addr);
...@@ -55,9 +55,9 @@ ftrace_call_replace(unsigned long ip, unsigned long addr, int link) ...@@ -55,9 +55,9 @@ ftrace_call_replace(unsigned long ip, unsigned long addr, int link)
} }
static int static int
ftrace_modify_code(unsigned long ip, struct ppc_inst old, struct ppc_inst new) ftrace_modify_code(unsigned long ip, ppc_inst_t old, ppc_inst_t new)
{ {
struct ppc_inst replaced; ppc_inst_t replaced;
/* /*
* Note: * Note:
...@@ -90,24 +90,24 @@ ftrace_modify_code(unsigned long ip, struct ppc_inst old, struct ppc_inst new) ...@@ -90,24 +90,24 @@ ftrace_modify_code(unsigned long ip, struct ppc_inst old, struct ppc_inst new)
*/ */
static int test_24bit_addr(unsigned long ip, unsigned long addr) static int test_24bit_addr(unsigned long ip, unsigned long addr)
{ {
struct ppc_inst op; ppc_inst_t op;
addr = ppc_function_entry((void *)addr); addr = ppc_function_entry((void *)addr);
/* use the create_branch to verify that this offset can be branched */ /* use the create_branch to verify that this offset can be branched */
return create_branch(&op, (u32 *)ip, addr, 0) == 0; return create_branch(&op, (u32 *)ip, addr, 0) == 0;
} }
static int is_bl_op(struct ppc_inst op) static int is_bl_op(ppc_inst_t op)
{ {
return (ppc_inst_val(op) & 0xfc000003) == 0x48000001; return (ppc_inst_val(op) & 0xfc000003) == 0x48000001;
} }
static int is_b_op(struct ppc_inst op) static int is_b_op(ppc_inst_t op)
{ {
return (ppc_inst_val(op) & 0xfc000003) == 0x48000000; return (ppc_inst_val(op) & 0xfc000003) == 0x48000000;
} }
static unsigned long find_bl_target(unsigned long ip, struct ppc_inst op) static unsigned long find_bl_target(unsigned long ip, ppc_inst_t op)
{ {
int offset; int offset;
...@@ -127,7 +127,7 @@ __ftrace_make_nop(struct module *mod, ...@@ -127,7 +127,7 @@ __ftrace_make_nop(struct module *mod,
{ {
unsigned long entry, ptr, tramp; unsigned long entry, ptr, tramp;
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
struct ppc_inst op, pop; ppc_inst_t op, pop;
/* read where this goes */ /* read where this goes */
if (copy_inst_from_kernel_nofault(&op, (void *)ip)) { if (copy_inst_from_kernel_nofault(&op, (void *)ip)) {
...@@ -221,7 +221,7 @@ static int ...@@ -221,7 +221,7 @@ static int
__ftrace_make_nop(struct module *mod, __ftrace_make_nop(struct module *mod,
struct dyn_ftrace *rec, unsigned long addr) struct dyn_ftrace *rec, unsigned long addr)
{ {
struct ppc_inst op; ppc_inst_t op;
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
unsigned long tramp, ptr; unsigned long tramp, ptr;
...@@ -262,7 +262,7 @@ __ftrace_make_nop(struct module *mod, ...@@ -262,7 +262,7 @@ __ftrace_make_nop(struct module *mod,
static unsigned long find_ftrace_tramp(unsigned long ip) static unsigned long find_ftrace_tramp(unsigned long ip)
{ {
int i; int i;
struct ppc_inst instr; ppc_inst_t instr;
/* /*
* We have the compiler generated long_branch tramps at the end * We have the compiler generated long_branch tramps at the end
...@@ -300,9 +300,9 @@ static int add_ftrace_tramp(unsigned long tramp) ...@@ -300,9 +300,9 @@ static int add_ftrace_tramp(unsigned long tramp)
static int setup_mcount_compiler_tramp(unsigned long tramp) static int setup_mcount_compiler_tramp(unsigned long tramp)
{ {
int i; int i;
struct ppc_inst op; ppc_inst_t op;
unsigned long ptr; unsigned long ptr;
struct ppc_inst instr; ppc_inst_t instr;
static unsigned long ftrace_plt_tramps[NUM_FTRACE_TRAMPS]; static unsigned long ftrace_plt_tramps[NUM_FTRACE_TRAMPS];
/* Is this a known long jump tramp? */ /* Is this a known long jump tramp? */
...@@ -367,7 +367,7 @@ static int setup_mcount_compiler_tramp(unsigned long tramp) ...@@ -367,7 +367,7 @@ static int setup_mcount_compiler_tramp(unsigned long tramp)
static int __ftrace_make_nop_kernel(struct dyn_ftrace *rec, unsigned long addr) static int __ftrace_make_nop_kernel(struct dyn_ftrace *rec, unsigned long addr)
{ {
unsigned long tramp, ip = rec->ip; unsigned long tramp, ip = rec->ip;
struct ppc_inst op; ppc_inst_t op;
/* Read where this goes */ /* Read where this goes */
if (copy_inst_from_kernel_nofault(&op, (void *)ip)) { if (copy_inst_from_kernel_nofault(&op, (void *)ip)) {
...@@ -407,7 +407,7 @@ int ftrace_make_nop(struct module *mod, ...@@ -407,7 +407,7 @@ int ftrace_make_nop(struct module *mod,
struct dyn_ftrace *rec, unsigned long addr) struct dyn_ftrace *rec, unsigned long addr)
{ {
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
struct ppc_inst old, new; ppc_inst_t old, new;
/* /*
* If the calling address is more that 24 bits away, * If the calling address is more that 24 bits away,
...@@ -460,7 +460,7 @@ int ftrace_make_nop(struct module *mod, ...@@ -460,7 +460,7 @@ int ftrace_make_nop(struct module *mod,
*/ */
#ifndef CONFIG_MPROFILE_KERNEL #ifndef CONFIG_MPROFILE_KERNEL
static int static int
expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1) expected_nop_sequence(void *ip, ppc_inst_t op0, ppc_inst_t op1)
{ {
/* /*
* We expect to see: * We expect to see:
...@@ -478,7 +478,7 @@ expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1) ...@@ -478,7 +478,7 @@ expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1)
} }
#else #else
static int static int
expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1) expected_nop_sequence(void *ip, ppc_inst_t op0, ppc_inst_t op1)
{ {
/* look for patched "NOP" on ppc64 with -mprofile-kernel */ /* look for patched "NOP" on ppc64 with -mprofile-kernel */
if (!ppc_inst_equal(op0, ppc_inst(PPC_RAW_NOP()))) if (!ppc_inst_equal(op0, ppc_inst(PPC_RAW_NOP())))
...@@ -490,8 +490,8 @@ expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1) ...@@ -490,8 +490,8 @@ expected_nop_sequence(void *ip, struct ppc_inst op0, struct ppc_inst op1)
static int static int
__ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
{ {
struct ppc_inst op[2]; ppc_inst_t op[2];
struct ppc_inst instr; ppc_inst_t instr;
void *ip = (void *)rec->ip; void *ip = (void *)rec->ip;
unsigned long entry, ptr, tramp; unsigned long entry, ptr, tramp;
struct module *mod = rec->arch.mod; struct module *mod = rec->arch.mod;
...@@ -559,7 +559,7 @@ static int ...@@ -559,7 +559,7 @@ static int
__ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
{ {
int err; int err;
struct ppc_inst op; ppc_inst_t op;
u32 *ip = (u32 *)rec->ip; u32 *ip = (u32 *)rec->ip;
struct module *mod = rec->arch.mod; struct module *mod = rec->arch.mod;
unsigned long tramp; unsigned long tramp;
...@@ -609,7 +609,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) ...@@ -609,7 +609,7 @@ __ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
static int __ftrace_make_call_kernel(struct dyn_ftrace *rec, unsigned long addr) static int __ftrace_make_call_kernel(struct dyn_ftrace *rec, unsigned long addr)
{ {
struct ppc_inst op; ppc_inst_t op;
void *ip = (void *)rec->ip; void *ip = (void *)rec->ip;
unsigned long tramp, entry, ptr; unsigned long tramp, entry, ptr;
...@@ -657,7 +657,7 @@ static int __ftrace_make_call_kernel(struct dyn_ftrace *rec, unsigned long addr) ...@@ -657,7 +657,7 @@ static int __ftrace_make_call_kernel(struct dyn_ftrace *rec, unsigned long addr)
int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr) int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
{ {
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
struct ppc_inst old, new; ppc_inst_t old, new;
/* /*
* If the calling address is more that 24 bits away, * If the calling address is more that 24 bits away,
...@@ -696,7 +696,7 @@ static int ...@@ -696,7 +696,7 @@ static int
__ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, __ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
unsigned long addr) unsigned long addr)
{ {
struct ppc_inst op; ppc_inst_t op;
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
unsigned long entry, ptr, tramp; unsigned long entry, ptr, tramp;
struct module *mod = rec->arch.mod; struct module *mod = rec->arch.mod;
...@@ -790,7 +790,7 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, ...@@ -790,7 +790,7 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
unsigned long addr) unsigned long addr)
{ {
unsigned long ip = rec->ip; unsigned long ip = rec->ip;
struct ppc_inst old, new; ppc_inst_t old, new;
/* /*
* If the calling address is more that 24 bits away, * If the calling address is more that 24 bits away,
...@@ -830,7 +830,7 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr, ...@@ -830,7 +830,7 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
int ftrace_update_ftrace_func(ftrace_func_t func) int ftrace_update_ftrace_func(ftrace_func_t func)
{ {
unsigned long ip = (unsigned long)(&ftrace_call); unsigned long ip = (unsigned long)(&ftrace_call);
struct ppc_inst old, new; ppc_inst_t old, new;
int ret; int ret;
old = ppc_inst_read((u32 *)&ftrace_call); old = ppc_inst_read((u32 *)&ftrace_call);
...@@ -915,7 +915,7 @@ int ftrace_enable_ftrace_graph_caller(void) ...@@ -915,7 +915,7 @@ int ftrace_enable_ftrace_graph_caller(void)
unsigned long ip = (unsigned long)(&ftrace_graph_call); unsigned long ip = (unsigned long)(&ftrace_graph_call);
unsigned long addr = (unsigned long)(&ftrace_graph_caller); unsigned long addr = (unsigned long)(&ftrace_graph_caller);
unsigned long stub = (unsigned long)(&ftrace_graph_stub); unsigned long stub = (unsigned long)(&ftrace_graph_stub);
struct ppc_inst old, new; ppc_inst_t old, new;
old = ftrace_call_replace(ip, stub, 0); old = ftrace_call_replace(ip, stub, 0);
new = ftrace_call_replace(ip, addr, 0); new = ftrace_call_replace(ip, addr, 0);
...@@ -928,7 +928,7 @@ int ftrace_disable_ftrace_graph_caller(void) ...@@ -928,7 +928,7 @@ int ftrace_disable_ftrace_graph_caller(void)
unsigned long ip = (unsigned long)(&ftrace_graph_call); unsigned long ip = (unsigned long)(&ftrace_graph_call);
unsigned long addr = (unsigned long)(&ftrace_graph_caller); unsigned long addr = (unsigned long)(&ftrace_graph_caller);
unsigned long stub = (unsigned long)(&ftrace_graph_stub); unsigned long stub = (unsigned long)(&ftrace_graph_stub);
struct ppc_inst old, new; ppc_inst_t old, new;
old = ftrace_call_replace(ip, addr, 0); old = ftrace_call_replace(ip, addr, 0);
new = ftrace_call_replace(ip, stub, 0); new = ftrace_call_replace(ip, stub, 0);
......
...@@ -261,7 +261,7 @@ static unsigned int rfin(unsigned int x) ...@@ -261,7 +261,7 @@ static unsigned int rfin(unsigned int x)
int emulate_altivec(struct pt_regs *regs) int emulate_altivec(struct pt_regs *regs)
{ {
struct ppc_inst instr; ppc_inst_t instr;
unsigned int i, word; unsigned int i, word;
unsigned int va, vb, vc, vd; unsigned int va, vb, vc, vd;
vector128 *vrs; vector128 *vrs;
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/inst.h> #include <asm/inst.h>
static int __patch_instruction(u32 *exec_addr, struct ppc_inst instr, u32 *patch_addr) static int __patch_instruction(u32 *exec_addr, ppc_inst_t instr, u32 *patch_addr)
{ {
if (!ppc_inst_prefixed(instr)) { if (!ppc_inst_prefixed(instr)) {
u32 val = ppc_inst_val(instr); u32 val = ppc_inst_val(instr);
...@@ -39,7 +39,7 @@ static int __patch_instruction(u32 *exec_addr, struct ppc_inst instr, u32 *patch ...@@ -39,7 +39,7 @@ static int __patch_instruction(u32 *exec_addr, struct ppc_inst instr, u32 *patch
return -EFAULT; return -EFAULT;
} }
int raw_patch_instruction(u32 *addr, struct ppc_inst instr) int raw_patch_instruction(u32 *addr, ppc_inst_t instr)
{ {
return __patch_instruction(addr, instr, addr); return __patch_instruction(addr, instr, addr);
} }
...@@ -141,7 +141,7 @@ static inline int unmap_patch_area(unsigned long addr) ...@@ -141,7 +141,7 @@ static inline int unmap_patch_area(unsigned long addr)
return 0; return 0;
} }
static int do_patch_instruction(u32 *addr, struct ppc_inst instr) static int do_patch_instruction(u32 *addr, ppc_inst_t instr)
{ {
int err; int err;
u32 *patch_addr = NULL; u32 *patch_addr = NULL;
...@@ -180,14 +180,14 @@ static int do_patch_instruction(u32 *addr, struct ppc_inst instr) ...@@ -180,14 +180,14 @@ static int do_patch_instruction(u32 *addr, struct ppc_inst instr)
} }
#else /* !CONFIG_STRICT_KERNEL_RWX */ #else /* !CONFIG_STRICT_KERNEL_RWX */
static int do_patch_instruction(u32 *addr, struct ppc_inst instr) static int do_patch_instruction(u32 *addr, ppc_inst_t instr)
{ {
return raw_patch_instruction(addr, instr); return raw_patch_instruction(addr, instr);
} }
#endif /* CONFIG_STRICT_KERNEL_RWX */ #endif /* CONFIG_STRICT_KERNEL_RWX */
int patch_instruction(u32 *addr, struct ppc_inst instr) int patch_instruction(u32 *addr, ppc_inst_t instr)
{ {
/* Make sure we aren't patching a freed init section */ /* Make sure we aren't patching a freed init section */
if (init_mem_is_free && init_section_contains(addr, 4)) { if (init_mem_is_free && init_section_contains(addr, 4)) {
...@@ -200,7 +200,7 @@ NOKPROBE_SYMBOL(patch_instruction); ...@@ -200,7 +200,7 @@ NOKPROBE_SYMBOL(patch_instruction);
int patch_branch(u32 *addr, unsigned long target, int flags) int patch_branch(u32 *addr, unsigned long target, int flags)
{ {
struct ppc_inst instr; ppc_inst_t instr;
create_branch(&instr, addr, target, flags); create_branch(&instr, addr, target, flags);
return patch_instruction(addr, instr); return patch_instruction(addr, instr);
...@@ -237,7 +237,7 @@ bool is_offset_in_cond_branch_range(long offset) ...@@ -237,7 +237,7 @@ bool is_offset_in_cond_branch_range(long offset)
* Helper to check if a given instruction is a conditional branch * Helper to check if a given instruction is a conditional branch
* Derived from the conditional checks in analyse_instr() * Derived from the conditional checks in analyse_instr()
*/ */
bool is_conditional_branch(struct ppc_inst instr) bool is_conditional_branch(ppc_inst_t instr)
{ {
unsigned int opcode = ppc_inst_primary_opcode(instr); unsigned int opcode = ppc_inst_primary_opcode(instr);
...@@ -255,7 +255,7 @@ bool is_conditional_branch(struct ppc_inst instr) ...@@ -255,7 +255,7 @@ bool is_conditional_branch(struct ppc_inst instr)
} }
NOKPROBE_SYMBOL(is_conditional_branch); NOKPROBE_SYMBOL(is_conditional_branch);
int create_branch(struct ppc_inst *instr, const u32 *addr, int create_branch(ppc_inst_t *instr, const u32 *addr,
unsigned long target, int flags) unsigned long target, int flags)
{ {
long offset; long offset;
...@@ -275,7 +275,7 @@ int create_branch(struct ppc_inst *instr, const u32 *addr, ...@@ -275,7 +275,7 @@ int create_branch(struct ppc_inst *instr, const u32 *addr,
return 0; return 0;
} }
int create_cond_branch(struct ppc_inst *instr, const u32 *addr, int create_cond_branch(ppc_inst_t *instr, const u32 *addr,
unsigned long target, int flags) unsigned long target, int flags)
{ {
long offset; long offset;
...@@ -294,22 +294,22 @@ int create_cond_branch(struct ppc_inst *instr, const u32 *addr, ...@@ -294,22 +294,22 @@ int create_cond_branch(struct ppc_inst *instr, const u32 *addr,
return 0; return 0;
} }
static unsigned int branch_opcode(struct ppc_inst instr) static unsigned int branch_opcode(ppc_inst_t instr)
{ {
return ppc_inst_primary_opcode(instr) & 0x3F; return ppc_inst_primary_opcode(instr) & 0x3F;
} }
static int instr_is_branch_iform(struct ppc_inst instr) static int instr_is_branch_iform(ppc_inst_t instr)
{ {
return branch_opcode(instr) == 18; return branch_opcode(instr) == 18;
} }
static int instr_is_branch_bform(struct ppc_inst instr) static int instr_is_branch_bform(ppc_inst_t instr)
{ {
return branch_opcode(instr) == 16; return branch_opcode(instr) == 16;
} }
int instr_is_relative_branch(struct ppc_inst instr) int instr_is_relative_branch(ppc_inst_t instr)
{ {
if (ppc_inst_val(instr) & BRANCH_ABSOLUTE) if (ppc_inst_val(instr) & BRANCH_ABSOLUTE)
return 0; return 0;
...@@ -317,7 +317,7 @@ int instr_is_relative_branch(struct ppc_inst instr) ...@@ -317,7 +317,7 @@ int instr_is_relative_branch(struct ppc_inst instr)
return instr_is_branch_iform(instr) || instr_is_branch_bform(instr); return instr_is_branch_iform(instr) || instr_is_branch_bform(instr);
} }
int instr_is_relative_link_branch(struct ppc_inst instr) int instr_is_relative_link_branch(ppc_inst_t instr)
{ {
return instr_is_relative_branch(instr) && (ppc_inst_val(instr) & BRANCH_SET_LINK); return instr_is_relative_branch(instr) && (ppc_inst_val(instr) & BRANCH_SET_LINK);
} }
...@@ -364,7 +364,7 @@ unsigned long branch_target(const u32 *instr) ...@@ -364,7 +364,7 @@ unsigned long branch_target(const u32 *instr)
return 0; return 0;
} }
int translate_branch(struct ppc_inst *instr, const u32 *dest, const u32 *src) int translate_branch(ppc_inst_t *instr, const u32 *dest, const u32 *src)
{ {
unsigned long target; unsigned long target;
target = branch_target(src); target = branch_target(src);
...@@ -417,7 +417,7 @@ static void __init test_trampoline(void) ...@@ -417,7 +417,7 @@ static void __init test_trampoline(void)
static void __init test_branch_iform(void) static void __init test_branch_iform(void)
{ {
int err; int err;
struct ppc_inst instr; ppc_inst_t instr;
u32 tmp[2]; u32 tmp[2];
u32 *iptr = tmp; u32 *iptr = tmp;
unsigned long addr = (unsigned long)tmp; unsigned long addr = (unsigned long)tmp;
...@@ -499,7 +499,7 @@ static void __init test_create_function_call(void) ...@@ -499,7 +499,7 @@ static void __init test_create_function_call(void)
{ {
u32 *iptr; u32 *iptr;
unsigned long dest; unsigned long dest;
struct ppc_inst instr; ppc_inst_t instr;
/* Check we can create a function call */ /* Check we can create a function call */
iptr = (u32 *)ppc_function_entry(test_trampoline); iptr = (u32 *)ppc_function_entry(test_trampoline);
...@@ -513,7 +513,7 @@ static void __init test_branch_bform(void) ...@@ -513,7 +513,7 @@ static void __init test_branch_bform(void)
{ {
int err; int err;
unsigned long addr; unsigned long addr;
struct ppc_inst instr; ppc_inst_t instr;
u32 tmp[2]; u32 tmp[2];
u32 *iptr = tmp; u32 *iptr = tmp;
unsigned int flags; unsigned int flags;
...@@ -591,7 +591,7 @@ static void __init test_translate_branch(void) ...@@ -591,7 +591,7 @@ static void __init test_translate_branch(void)
{ {
unsigned long addr; unsigned long addr;
void *p, *q; void *p, *q;
struct ppc_inst instr; ppc_inst_t instr;
void *buf; void *buf;
buf = vmalloc(PAGE_ALIGN(0x2000000 + 1)); buf = vmalloc(PAGE_ALIGN(0x2000000 + 1));
......
...@@ -47,7 +47,7 @@ static u32 *calc_addr(struct fixup_entry *fcur, long offset) ...@@ -47,7 +47,7 @@ static u32 *calc_addr(struct fixup_entry *fcur, long offset)
static int patch_alt_instruction(u32 *src, u32 *dest, u32 *alt_start, u32 *alt_end) static int patch_alt_instruction(u32 *src, u32 *dest, u32 *alt_start, u32 *alt_end)
{ {
int err; int err;
struct ppc_inst instr; ppc_inst_t instr;
instr = ppc_inst_read(src); instr = ppc_inst_read(src);
...@@ -624,7 +624,7 @@ void do_lwsync_fixups(unsigned long value, void *fixup_start, void *fixup_end) ...@@ -624,7 +624,7 @@ void do_lwsync_fixups(unsigned long value, void *fixup_start, void *fixup_end)
static void do_final_fixups(void) static void do_final_fixups(void)
{ {
#if defined(CONFIG_PPC64) && defined(CONFIG_RELOCATABLE) #if defined(CONFIG_PPC64) && defined(CONFIG_RELOCATABLE)
struct ppc_inst inst; ppc_inst_t inst;
u32 *src, *dest, *end; u32 *src, *dest, *end;
if (PHYSICAL_START == 0) if (PHYSICAL_START == 0)
......
...@@ -1354,7 +1354,7 @@ static nokprobe_inline int trap_compare(long v1, long v2) ...@@ -1354,7 +1354,7 @@ static nokprobe_inline int trap_compare(long v1, long v2)
* otherwise. * otherwise.
*/ */
int analyse_instr(struct instruction_op *op, const struct pt_regs *regs, int analyse_instr(struct instruction_op *op, const struct pt_regs *regs,
struct ppc_inst instr) ppc_inst_t instr)
{ {
#ifdef CONFIG_PPC64 #ifdef CONFIG_PPC64
unsigned int suffixopcode, prefixtype, prefix_r; unsigned int suffixopcode, prefixtype, prefix_r;
...@@ -3578,7 +3578,7 @@ NOKPROBE_SYMBOL(emulate_loadstore); ...@@ -3578,7 +3578,7 @@ NOKPROBE_SYMBOL(emulate_loadstore);
* or -1 if the instruction is one that should not be stepped, * or -1 if the instruction is one that should not be stepped,
* such as an rfid, or a mtmsrd that would clear MSR_RI. * such as an rfid, or a mtmsrd that would clear MSR_RI.
*/ */
int emulate_step(struct pt_regs *regs, struct ppc_inst instr) int emulate_step(struct pt_regs *regs, ppc_inst_t instr)
{ {
struct instruction_op op; struct instruction_op op;
int r, err, type; int r, err, type;
......
...@@ -792,7 +792,7 @@ static void __init test_lxvpx_stxvpx(void) ...@@ -792,7 +792,7 @@ static void __init test_lxvpx_stxvpx(void)
#ifdef CONFIG_VSX #ifdef CONFIG_VSX
static void __init test_plxvp_pstxvp(void) static void __init test_plxvp_pstxvp(void)
{ {
struct ppc_inst instr; ppc_inst_t instr;
struct pt_regs regs; struct pt_regs regs;
union { union {
vector128 a; vector128 a;
...@@ -906,7 +906,7 @@ struct compute_test { ...@@ -906,7 +906,7 @@ struct compute_test {
struct { struct {
char *descr; char *descr;
unsigned long flags; unsigned long flags;
struct ppc_inst instr; ppc_inst_t instr;
struct pt_regs regs; struct pt_regs regs;
} subtests[MAX_SUBTESTS + 1]; } subtests[MAX_SUBTESTS + 1];
}; };
...@@ -1600,7 +1600,7 @@ static struct compute_test compute_tests[] = { ...@@ -1600,7 +1600,7 @@ static struct compute_test compute_tests[] = {
}; };
static int __init emulate_compute_instr(struct pt_regs *regs, static int __init emulate_compute_instr(struct pt_regs *regs,
struct ppc_inst instr, ppc_inst_t instr,
bool negative) bool negative)
{ {
int analysed; int analysed;
...@@ -1627,7 +1627,7 @@ static int __init emulate_compute_instr(struct pt_regs *regs, ...@@ -1627,7 +1627,7 @@ static int __init emulate_compute_instr(struct pt_regs *regs,
} }
static int __init execute_compute_instr(struct pt_regs *regs, static int __init execute_compute_instr(struct pt_regs *regs,
struct ppc_inst instr) ppc_inst_t instr)
{ {
extern int exec_instr(struct pt_regs *regs); extern int exec_instr(struct pt_regs *regs);
...@@ -1658,7 +1658,7 @@ static void __init run_tests_compute(void) ...@@ -1658,7 +1658,7 @@ static void __init run_tests_compute(void)
struct compute_test *test; struct compute_test *test;
struct pt_regs *regs, exp, got; struct pt_regs *regs, exp, got;
unsigned int i, j, k; unsigned int i, j, k;
struct ppc_inst instr; ppc_inst_t instr;
bool ignore_gpr, ignore_xer, ignore_ccr, passed, rc, negative; bool ignore_gpr, ignore_xer, ignore_ccr, passed, rc, negative;
for (i = 0; i < ARRAY_SIZE(compute_tests); i++) { for (i = 0; i < ARRAY_SIZE(compute_tests); i++) {
......
...@@ -12,7 +12,7 @@ bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size) ...@@ -12,7 +12,7 @@ bool copy_from_kernel_nofault_allowed(const void *unsafe_src, size_t size)
return is_kernel_addr((unsigned long)unsafe_src); return is_kernel_addr((unsigned long)unsafe_src);
} }
int copy_inst_from_kernel_nofault(struct ppc_inst *inst, u32 *src) int copy_inst_from_kernel_nofault(ppc_inst_t *inst, u32 *src)
{ {
unsigned int val, suffix; unsigned int val, suffix;
int err; int err;
......
...@@ -153,7 +153,7 @@ static void mpc8xx_pmu_read(struct perf_event *event) ...@@ -153,7 +153,7 @@ static void mpc8xx_pmu_read(struct perf_event *event)
static void mpc8xx_pmu_del(struct perf_event *event, int flags) static void mpc8xx_pmu_del(struct perf_event *event, int flags)
{ {
struct ppc_inst insn = ppc_inst(PPC_RAW_MFSPR(10, SPRN_SPRG_SCRATCH2)); ppc_inst_t insn = ppc_inst(PPC_RAW_MFSPR(10, SPRN_SPRG_SCRATCH2));
mpc8xx_pmu_read(event); mpc8xx_pmu_read(event);
......
...@@ -125,7 +125,7 @@ static unsigned bpinstr = 0x7fe00008; /* trap */ ...@@ -125,7 +125,7 @@ static unsigned bpinstr = 0x7fe00008; /* trap */
static int cmds(struct pt_regs *); static int cmds(struct pt_regs *);
static int mread(unsigned long, void *, int); static int mread(unsigned long, void *, int);
static int mwrite(unsigned long, void *, int); static int mwrite(unsigned long, void *, int);
static int mread_instr(unsigned long, struct ppc_inst *); static int mread_instr(unsigned long, ppc_inst_t *);
static int handle_fault(struct pt_regs *); static int handle_fault(struct pt_regs *);
static void byterev(unsigned char *, int); static void byterev(unsigned char *, int);
static void memex(void); static void memex(void);
...@@ -908,7 +908,7 @@ static struct bpt *new_breakpoint(unsigned long a) ...@@ -908,7 +908,7 @@ static struct bpt *new_breakpoint(unsigned long a)
static void insert_bpts(void) static void insert_bpts(void)
{ {
int i; int i;
struct ppc_inst instr, instr2; ppc_inst_t instr, instr2;
struct bpt *bp, *bp2; struct bpt *bp, *bp2;
bp = bpts; bp = bpts;
...@@ -988,7 +988,7 @@ static void remove_bpts(void) ...@@ -988,7 +988,7 @@ static void remove_bpts(void)
{ {
int i; int i;
struct bpt *bp; struct bpt *bp;
struct ppc_inst instr; ppc_inst_t instr;
bp = bpts; bp = bpts;
for (i = 0; i < NBPTS; ++i, ++bp) { for (i = 0; i < NBPTS; ++i, ++bp) {
...@@ -1204,7 +1204,7 @@ static int do_step(struct pt_regs *regs) ...@@ -1204,7 +1204,7 @@ static int do_step(struct pt_regs *regs)
*/ */
static int do_step(struct pt_regs *regs) static int do_step(struct pt_regs *regs)
{ {
struct ppc_inst instr; ppc_inst_t instr;
int stepped; int stepped;
force_enable_xmon(); force_enable_xmon();
...@@ -1459,7 +1459,7 @@ csum(void) ...@@ -1459,7 +1459,7 @@ csum(void)
*/ */
static long check_bp_loc(unsigned long addr) static long check_bp_loc(unsigned long addr)
{ {
struct ppc_inst instr; ppc_inst_t instr;
addr &= ~3; addr &= ~3;
if (!is_kernel_addr(addr)) { if (!is_kernel_addr(addr)) {
...@@ -2306,7 +2306,7 @@ mwrite(unsigned long adrs, void *buf, int size) ...@@ -2306,7 +2306,7 @@ mwrite(unsigned long adrs, void *buf, int size)
} }
static int static int
mread_instr(unsigned long adrs, struct ppc_inst *instr) mread_instr(unsigned long adrs, ppc_inst_t *instr)
{ {
volatile int n; volatile int n;
...@@ -3028,7 +3028,7 @@ generic_inst_dump(unsigned long adr, long count, int praddr, ...@@ -3028,7 +3028,7 @@ generic_inst_dump(unsigned long adr, long count, int praddr,
{ {
int nr, dotted; int nr, dotted;
unsigned long first_adr; unsigned long first_adr;
struct ppc_inst inst, last_inst = ppc_inst(0); ppc_inst_t inst, last_inst = ppc_inst(0);
dotted = 0; dotted = 0;
for (first_adr = adr; count > 0; --count, adr += ppc_inst_len(inst)) { for (first_adr = adr; count > 0; --count, adr += ppc_inst_len(inst)) {
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
#define NBPTS 256 #define NBPTS 256
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
#include <asm/inst.h> #include <asm/inst.h>
#define BPT_SIZE (sizeof(struct ppc_inst) * 2) #define BPT_SIZE (sizeof(ppc_inst_t) * 2)
#define BPT_WORDS (BPT_SIZE / sizeof(struct ppc_inst)) #define BPT_WORDS (BPT_SIZE / sizeof(ppc_inst_t))
extern unsigned int bpt_table[NBPTS * BPT_WORDS]; extern unsigned int bpt_table[NBPTS * BPT_WORDS];
#endif /* __ASSEMBLY__ */ #endif /* __ASSEMBLY__ */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment