diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2011-07-11 14:15:48 +0200 | 
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-07-11 14:15:55 +0200 | 
| commit | b7e9c223be8ce335e30f2cf6ba588e6a4092275c (patch) | |
| tree | 2d1e3b75606abc18df7ad65e51ac3f90cd68b38d /arch/powerpc/sysdev | |
| parent | c172d82500a6cf3c32d1e650722a1055d72ce858 (diff) | |
| parent | e3bbfa78bab125f58b831b5f7f45b5a305091d72 (diff) | |
| download | olio-linux-3.10-b7e9c223be8ce335e30f2cf6ba588e6a4092275c.tar.xz olio-linux-3.10-b7e9c223be8ce335e30f2cf6ba588e6a4092275c.zip  | |
Merge branch 'master' into for-next
Sync with Linus' tree to be able to apply pending patches that
are based on newer code already present upstream.
Diffstat (limited to 'arch/powerpc/sysdev')
| -rw-r--r-- | arch/powerpc/sysdev/fsl_rio.c | 33 | ||||
| -rw-r--r-- | arch/powerpc/sysdev/mpic.c | 11 | 
2 files changed, 22 insertions, 22 deletions
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c index 95853386a66..2de8551df40 100644 --- a/arch/powerpc/sysdev/fsl_rio.c +++ b/arch/powerpc/sysdev/fsl_rio.c @@ -283,23 +283,24 @@ static void __iomem *rio_regs_win;  #ifdef CONFIG_E500  int fsl_rio_mcheck_exception(struct pt_regs *regs)  { -	const struct exception_table_entry *entry = NULL; -	unsigned long reason = mfspr(SPRN_MCSR); +	const struct exception_table_entry *entry; +	unsigned long reason; -	if (reason & MCSR_BUS_RBERR) { -		reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR)); -		if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) { -			/* Check if we are prepared to handle this fault */ -			entry = search_exception_tables(regs->nip); -			if (entry) { -				pr_debug("RIO: %s - MC Exception handled\n", -					 __func__); -				out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR), -					 0); -				regs->msr |= MSR_RI; -				regs->nip = entry->fixup; -				return 1; -			} +	if (!rio_regs_win) +		return 0; + +	reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR)); +	if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) { +		/* Check if we are prepared to handle this fault */ +		entry = search_exception_tables(regs->nip); +		if (entry) { +			pr_debug("RIO: %s - MC Exception handled\n", +				 __func__); +			out_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR), +				 0); +			regs->msr |= MSR_RI; +			regs->nip = entry->fixup; +			return 1;  		}  	} diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c index 3a8de5bb628..58d7a534f87 100644 --- a/arch/powerpc/sysdev/mpic.c +++ b/arch/powerpc/sysdev/mpic.c @@ -29,6 +29,7 @@  #include <linux/pci.h>  #include <linux/slab.h>  #include <linux/syscore_ops.h> +#include <linux/ratelimit.h>  #include <asm/ptrace.h>  #include <asm/signal.h> @@ -1648,9 +1649,8 @@ static unsigned int _mpic_get_one_irq(struct mpic *mpic, int reg)  		return NO_IRQ;  	}  	if (unlikely(mpic->protected && test_bit(src, mpic->protected))) { -		if (printk_ratelimit()) -			printk(KERN_WARNING "%s: Got protected source %d !\n", -			       mpic->name, (int)src); +		printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n", +				   mpic->name, (int)src);  		mpic_eoi(mpic);  		return NO_IRQ;  	} @@ -1688,9 +1688,8 @@ unsigned int mpic_get_coreint_irq(void)  		return NO_IRQ;  	}  	if (unlikely(mpic->protected && test_bit(src, mpic->protected))) { -		if (printk_ratelimit()) -			printk(KERN_WARNING "%s: Got protected source %d !\n", -			       mpic->name, (int)src); +		printk_ratelimited(KERN_WARNING "%s: Got protected source %d !\n", +				   mpic->name, (int)src);  		return NO_IRQ;  	}  |