Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 135637aa authored by Kumar Gala's avatar Kumar Gala
Browse files

Merge branch 'master' into 83xx

parents 97c5a20a d003e7a1
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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();

+6 −2
Original line number Diff line number Diff line
@@ -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;
	}

@@ -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;
}
+7 −4
Original line number Diff line number Diff line
@@ -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;
@@ -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 */
@@ -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,
};
@@ -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) {
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@ int have_of = 1;

#ifdef CONFIG_VGA_CONSOLE
unsigned long vgacon_remap_base;
EXPORT_SYMBOL(vgacon_remap_base);
#endif

/*
Loading