Loading arch/powerpc/Kconfig +17 −2 Original line number Diff line number Diff line Loading @@ -436,6 +436,21 @@ config PPC_MPC52xx bool default n config PPC_MPC5200 bool select PPC_MPC52xx default n config PPC_MPC5200_BUGFIX bool "MPC5200 (L25R) bugfix support" depends on PPC_MPC5200 default n help Enable workarounds for original MPC5200 errata. This is not required for MPC5200B based boards. It is safe to say 'Y' here config PPC_EFIKA bool "bPlan Efika 5k2. MPC5200B based computer" depends on PPC_MULTIPLATFORM && PPC32 Loading @@ -448,7 +463,7 @@ config PPC_EFIKA config PPC_LITE5200 bool "Freescale Lite5200 Eval Board" depends on PPC_MULTIPLATFORM && PPC32 select PPC_MPC52xx select PPC_MPC5200 default n config PPC_PMAC Loading Loading @@ -1206,7 +1221,7 @@ source "arch/powerpc/oprofile/Kconfig" config KPROBES bool "Kprobes (EXPERIMENTAL)" depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES help Kprobes allows you to trap at almost any kernel address and execute a callback function. register_kprobe() establishes Loading arch/powerpc/kernel/irq.c +3 −3 Original line number Diff line number Diff line Loading @@ -281,10 +281,10 @@ void do_IRQ(struct pt_regs *regs) /* * Every platform is required to implement ppc_md.get_irq. * This function will either return an irq number or -1 to * This function will either return an irq number or NO_IRQ to * indicate there are no more pending. * The value -2 is for buggy hardware and means that this IRQ * has already been handled. -- Tom * The value NO_IRQ_IGNORE is for buggy hardware and means that this * IRQ has already been handled. -- Tom */ irq = ppc_md.get_irq(); Loading arch/powerpc/kernel/kprobes.c +6 −2 Original line number Diff line number Diff line Loading @@ -46,8 +46,8 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) if ((unsigned long)p->addr & 0x03) { printk("Attempt to register kprobe at an unaligned address\n"); ret = -EINVAL; } else if (IS_MTMSRD(insn) || IS_RFID(insn)) { printk("Cannot register a kprobe on rfid or mtmsrd\n"); } else if (IS_MTMSRD(insn) || IS_RFID(insn) || IS_RFI(insn)) { printk("Cannot register a kprobe on rfi/rfid or mtmsr[d]\n"); ret = -EINVAL; } Loading Loading @@ -483,8 +483,12 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) memcpy(&kcb->jprobe_saved_regs, regs, sizeof(struct pt_regs)); /* setup return addr to the jprobe handler routine */ #ifdef CONFIG_PPC64 regs->nip = (unsigned long)(((func_descr_t *)jp->entry)->entry); regs->gpr[2] = (unsigned long)(((func_descr_t *)jp->entry)->toc); #else regs->nip = (unsigned long)jp->entry; #endif return 1; } Loading arch/powerpc/kernel/lparcfg.c +7 −4 Original line number Diff line number Diff line Loading @@ -439,6 +439,10 @@ static ssize_t lparcfg_write(struct file *file, const char __user * buf, ssize_t retval = -ENOMEM; if (!firmware_has_feature(FW_FEATURE_SPLPAR) || firmware_has_feature(FW_FEATURE_ISERIES)) return -EINVAL; kbuf = kmalloc(count, GFP_KERNEL); if (!kbuf) goto out; Loading Loading @@ -517,7 +521,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v) static ssize_t lparcfg_write(struct file *file, const char __user * buf, size_t count, loff_t * off) { return count; return -EINVAL; } #endif /* CONFIG_PPC_PSERIES */ Loading Loading @@ -570,6 +574,7 @@ static int lparcfg_open(struct inode *inode, struct file *file) struct file_operations lparcfg_fops = { .owner = THIS_MODULE, .read = seq_read, .write = lparcfg_write, .open = lparcfg_open, .release = single_release, }; Loading @@ -581,10 +586,8 @@ int __init lparcfg_init(void) /* Allow writing if we have FW_FEATURE_SPLPAR */ if (firmware_has_feature(FW_FEATURE_SPLPAR) && !firmware_has_feature(FW_FEATURE_ISERIES)) { lparcfg_fops.write = lparcfg_write; !firmware_has_feature(FW_FEATURE_ISERIES)) mode |= S_IWUSR; } ent = create_proc_entry("ppc64/lparcfg", mode, NULL); if (ent) { Loading arch/powerpc/kernel/setup_32.c +1 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ int have_of = 1; #ifdef CONFIG_VGA_CONSOLE unsigned long vgacon_remap_base; EXPORT_SYMBOL(vgacon_remap_base); #endif /* Loading Loading
arch/powerpc/Kconfig +17 −2 Original line number Diff line number Diff line Loading @@ -436,6 +436,21 @@ config PPC_MPC52xx bool default n config PPC_MPC5200 bool select PPC_MPC52xx default n config PPC_MPC5200_BUGFIX bool "MPC5200 (L25R) bugfix support" depends on PPC_MPC5200 default n help Enable workarounds for original MPC5200 errata. This is not required for MPC5200B based boards. It is safe to say 'Y' here config PPC_EFIKA bool "bPlan Efika 5k2. MPC5200B based computer" depends on PPC_MULTIPLATFORM && PPC32 Loading @@ -448,7 +463,7 @@ config PPC_EFIKA config PPC_LITE5200 bool "Freescale Lite5200 Eval Board" depends on PPC_MULTIPLATFORM && PPC32 select PPC_MPC52xx select PPC_MPC5200 default n config PPC_PMAC Loading Loading @@ -1206,7 +1221,7 @@ source "arch/powerpc/oprofile/Kconfig" config KPROBES bool "Kprobes (EXPERIMENTAL)" depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES help Kprobes allows you to trap at almost any kernel address and execute a callback function. register_kprobe() establishes Loading
arch/powerpc/kernel/irq.c +3 −3 Original line number Diff line number Diff line Loading @@ -281,10 +281,10 @@ void do_IRQ(struct pt_regs *regs) /* * Every platform is required to implement ppc_md.get_irq. * This function will either return an irq number or -1 to * This function will either return an irq number or NO_IRQ to * indicate there are no more pending. * The value -2 is for buggy hardware and means that this IRQ * has already been handled. -- Tom * The value NO_IRQ_IGNORE is for buggy hardware and means that this * IRQ has already been handled. -- Tom */ irq = ppc_md.get_irq(); Loading
arch/powerpc/kernel/kprobes.c +6 −2 Original line number Diff line number Diff line Loading @@ -46,8 +46,8 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) if ((unsigned long)p->addr & 0x03) { printk("Attempt to register kprobe at an unaligned address\n"); ret = -EINVAL; } else if (IS_MTMSRD(insn) || IS_RFID(insn)) { printk("Cannot register a kprobe on rfid or mtmsrd\n"); } else if (IS_MTMSRD(insn) || IS_RFID(insn) || IS_RFI(insn)) { printk("Cannot register a kprobe on rfi/rfid or mtmsr[d]\n"); ret = -EINVAL; } Loading Loading @@ -483,8 +483,12 @@ int __kprobes setjmp_pre_handler(struct kprobe *p, struct pt_regs *regs) memcpy(&kcb->jprobe_saved_regs, regs, sizeof(struct pt_regs)); /* setup return addr to the jprobe handler routine */ #ifdef CONFIG_PPC64 regs->nip = (unsigned long)(((func_descr_t *)jp->entry)->entry); regs->gpr[2] = (unsigned long)(((func_descr_t *)jp->entry)->toc); #else regs->nip = (unsigned long)jp->entry; #endif return 1; } Loading
arch/powerpc/kernel/lparcfg.c +7 −4 Original line number Diff line number Diff line Loading @@ -439,6 +439,10 @@ static ssize_t lparcfg_write(struct file *file, const char __user * buf, ssize_t retval = -ENOMEM; if (!firmware_has_feature(FW_FEATURE_SPLPAR) || firmware_has_feature(FW_FEATURE_ISERIES)) return -EINVAL; kbuf = kmalloc(count, GFP_KERNEL); if (!kbuf) goto out; Loading Loading @@ -517,7 +521,7 @@ static int pseries_lparcfg_data(struct seq_file *m, void *v) static ssize_t lparcfg_write(struct file *file, const char __user * buf, size_t count, loff_t * off) { return count; return -EINVAL; } #endif /* CONFIG_PPC_PSERIES */ Loading Loading @@ -570,6 +574,7 @@ static int lparcfg_open(struct inode *inode, struct file *file) struct file_operations lparcfg_fops = { .owner = THIS_MODULE, .read = seq_read, .write = lparcfg_write, .open = lparcfg_open, .release = single_release, }; Loading @@ -581,10 +586,8 @@ int __init lparcfg_init(void) /* Allow writing if we have FW_FEATURE_SPLPAR */ if (firmware_has_feature(FW_FEATURE_SPLPAR) && !firmware_has_feature(FW_FEATURE_ISERIES)) { lparcfg_fops.write = lparcfg_write; !firmware_has_feature(FW_FEATURE_ISERIES)) mode |= S_IWUSR; } ent = create_proc_entry("ppc64/lparcfg", mode, NULL); if (ent) { Loading
arch/powerpc/kernel/setup_32.c +1 −0 Original line number Diff line number Diff line Loading @@ -65,6 +65,7 @@ int have_of = 1; #ifdef CONFIG_VGA_CONSOLE unsigned long vgacon_remap_base; EXPORT_SYMBOL(vgacon_remap_base); #endif /* Loading