return -EINVAL;
 
        if (cpu_has_feature(CPU_FTR_ARCH_31) &&
-           ppc_inst_prefixed(auprobe->insn) &&
+           ppc_inst_prefixed(ppc_inst_read(&auprobe->insn)) &&
            (addr & 0x3f) == 60) {
                pr_info_ratelimited("Cannot register a uprobe on 64 byte unaligned prefixed instruction\n");
                return -EINVAL;
 
 {
        signed long imm;
 
-       imm = ppc_inst_val(*instr) & 0x3FFFFFC;
+       imm = ppc_inst_val(ppc_inst_read(instr)) & 0x3FFFFFC;
 
        /* If the top bit of the immediate value is set this is negative */
        if (imm & 0x2000000)
                imm -= 0x4000000;
 
-       if ((ppc_inst_val(*instr) & BRANCH_ABSOLUTE) == 0)
+       if ((ppc_inst_val(ppc_inst_read(instr)) & BRANCH_ABSOLUTE) == 0)
                imm += (unsigned long)instr;
 
        return (unsigned long)imm;
 {
        signed long imm;
 
-       imm = ppc_inst_val(*instr) & 0xFFFC;
+       imm = ppc_inst_val(ppc_inst_read(instr)) & 0xFFFC;
 
        /* If the top bit of the immediate value is set this is negative */
        if (imm & 0x8000)
                imm -= 0x10000;
 
-       if ((ppc_inst_val(*instr) & BRANCH_ABSOLUTE) == 0)
+       if ((ppc_inst_val(ppc_inst_read(instr)) & BRANCH_ABSOLUTE) == 0)
                imm += (unsigned long)instr;
 
        return (unsigned long)imm;
 
 
        instr = ppc_inst_read(src);
 
-       if (instr_is_relative_branch(*src)) {
+       if (instr_is_relative_branch(ppc_inst_read(src))) {
                struct ppc_inst *target = (struct ppc_inst *)branch_target(src);
 
                /* Branch within the section doesn't need translating */