From: Stephen Rothwell Date: Wed, 12 Oct 2011 04:23:26 +0000 (+1100) Subject: Merge remote-tracking branch 'tip/auto-latest' X-Git-Tag: next-20111012~22 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=06b6304e50d14cadef1a7d4fe728a330d03d23c8;p=karo-tx-linux.git Merge remote-tracking branch 'tip/auto-latest' Conflicts: drivers/iommu/Makefile --- 06b6304e50d14cadef1a7d4fe728a330d03d23c8 diff --cc arch/arm/common/gic.c index 8b5be72eb9b9,6fba8bd5689e..1619eebb625d --- a/arch/arm/common/gic.c +++ b/arch/arm/common/gic.c @@@ -181,12 -180,12 +181,12 @@@ static int gic_set_affinity(struct irq_ return -EINVAL; mask = 0xff << shift; - bit = 1 << (cpu + shift); + bit = 1 << (cpu_logical_map(cpu) + shift); - spin_lock(&irq_controller_lock); + raw_spin_lock(&irq_controller_lock); val = readl_relaxed(reg) & ~mask; writel_relaxed(val | bit, reg); - spin_unlock(&irq_controller_lock); + raw_spin_unlock(&irq_controller_lock); return IRQ_SET_MASK_OK; } diff --cc arch/arm/kernel/traps.c index 7f5b99eb2c50,81cc05a0274c..99a572702509 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c @@@ -269,11 -267,9 +269,11 @@@ void die(const char *str, struct pt_reg oops_enter(); - spin_lock_irq(&die_lock); + raw_spin_lock_irq(&die_lock); console_verbose(); bust_spinlocks(1); + if (!user_mode(regs)) + report_bug(regs->ARM_pc, regs); ret = __die(str, err, thread, regs); if (regs && kexec_should_crash(thread->task)) @@@ -305,26 -301,8 +305,26 @@@ void arm_notify_die(const char *str, st } } +#ifdef CONFIG_GENERIC_BUG + +int is_valid_bugaddr(unsigned long pc) +{ +#ifdef CONFIG_THUMB2_KERNEL + unsigned short bkpt; +#else + unsigned long bkpt; +#endif + + if (probe_kernel_address((unsigned *)pc, bkpt)) + return 0; + + return bkpt == BUG_INSTR_VALUE; +} + +#endif + static LIST_HEAD(undef_hook); - static DEFINE_SPINLOCK(undef_lock); + static DEFINE_RAW_SPINLOCK(undef_lock); void register_undef_hook(struct undef_hook *hook) { diff --cc arch/arm/mm/cache-l2x0.c index 3f9b9980478e,3255c51e3e35..8ac9e9f84790 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@@ -285,10 -274,10 +285,10 @@@ static void l2x0_disable(void __l2x0_flush_all(); writel_relaxed(0, l2x0_base + L2X0_CTRL); dsb(); - spin_unlock_irqrestore(&l2x0_lock, flags); + raw_spin_unlock_irqrestore(&l2x0_lock, flags); } -static void __init l2x0_unlock(__u32 cache_id) +static void l2x0_unlock(__u32 cache_id) { int lockregs; int i; diff --cc drivers/iommu/Makefile index f798cdd3699e,6394994a2b9d..2f4448794bc7 --- a/drivers/iommu/Makefile +++ b/drivers/iommu/Makefile @@@ -1,8 -1,6 +1,9 @@@ obj-$(CONFIG_IOMMU_API) += iommu.o obj-$(CONFIG_MSM_IOMMU) += msm_iommu.o msm_iommu_dev.o obj-$(CONFIG_AMD_IOMMU) += amd_iommu.o amd_iommu_init.o - obj-$(CONFIG_DMAR) += dmar.o iova.o intel-iommu.o - obj-$(CONFIG_INTR_REMAP) += dmar.o intr_remapping.o + obj-$(CONFIG_DMAR_TABLE) += dmar.o + obj-$(CONFIG_INTEL_IOMMU) += iova.o intel-iommu.o + obj-$(CONFIG_IRQ_REMAP) += intr_remapping.o +obj-$(CONFIG_OMAP_IOMMU) += omap-iommu.o +obj-$(CONFIG_OMAP_IOVMM) += omap-iovmm.o +obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o