aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-06-07 19:56:10 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-06-07 19:56:10 -0400
commit866e6441a4b511d92ad7c0403424a3d37939f23f (patch)
tree06d7c7752f7f2a3854c32d9350a6bf94b42b9bee
parent37ef1647b7f73d4ff4c7993984599b6c4f26443a (diff)
parented9244e6c534612d2b5ae47feab2f55a0d4b4ced (diff)
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS updates from Ralf Baechle: "Eight fixes across arch/mips. Nothing stands particuarly out nor is complicated but fixes keep coming in at a higher than comfortable rate" * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: KVM: Do not sign extend on unsigned MMIO load MIPS: BPF: Fix stack pointer allocation MIPS: Loongson-3: Fix a cpu-hotplug issue in loongson3_ipi_interrupt() MIPS: Fix enabling of DEBUG_STACKOVERFLOW MIPS: c-r4k: Fix typo in probe_scache() MIPS: Avoid an FPE exception in FCSR mask probing MIPS: ath79: Add a missing new line in log message MIPS: ralink: Fix clearing the illegal access interrupt
-rw-r--r--arch/mips/ath79/setup.c2
-rw-r--r--arch/mips/kernel/cpu-probe.c3
-rw-r--r--arch/mips/kernel/irq.c2
-rw-r--r--arch/mips/kvm/emulate.c2
-rw-r--r--arch/mips/loongson/loongson-3/smp.c2
-rw-r--r--arch/mips/mm/c-r4k.c2
-rw-r--r--arch/mips/net/bpf_jit.c6
-rw-r--r--arch/mips/ralink/ill_acc.c2
8 files changed, 8 insertions, 13 deletions
diff --git a/arch/mips/ath79/setup.c b/arch/mips/ath79/setup.c
index a73c93c3d44a..7fc8397d16f2 100644
--- a/arch/mips/ath79/setup.c
+++ b/arch/mips/ath79/setup.c
@@ -225,7 +225,7 @@ void __init plat_time_init(void)
225 ddr_clk_rate = ath79_get_sys_clk_rate("ddr"); 225 ddr_clk_rate = ath79_get_sys_clk_rate("ddr");
226 ref_clk_rate = ath79_get_sys_clk_rate("ref"); 226 ref_clk_rate = ath79_get_sys_clk_rate("ref");
227 227
228 pr_info("Clocks: CPU:%lu.%03luMHz, DDR:%lu.%03luMHz, AHB:%lu.%03luMHz, Ref:%lu.%03luMHz", 228 pr_info("Clocks: CPU:%lu.%03luMHz, DDR:%lu.%03luMHz, AHB:%lu.%03luMHz, Ref:%lu.%03luMHz\n",
229 cpu_clk_rate / 1000000, (cpu_clk_rate / 1000) % 1000, 229 cpu_clk_rate / 1000000, (cpu_clk_rate / 1000) % 1000,
230 ddr_clk_rate / 1000000, (ddr_clk_rate / 1000) % 1000, 230 ddr_clk_rate / 1000000, (ddr_clk_rate / 1000) % 1000,
231 ahb_clk_rate / 1000000, (ahb_clk_rate / 1000) % 1000, 231 ahb_clk_rate / 1000000, (ahb_clk_rate / 1000) % 1000,
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index e36515dcd3b2..209e5b76c1bc 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -74,13 +74,12 @@ static inline void cpu_set_fpu_fcsr_mask(struct cpuinfo_mips *c)
74{ 74{
75 unsigned long sr, mask, fcsr, fcsr0, fcsr1; 75 unsigned long sr, mask, fcsr, fcsr0, fcsr1;
76 76
77 fcsr = c->fpu_csr31;
77 mask = FPU_CSR_ALL_X | FPU_CSR_ALL_E | FPU_CSR_ALL_S | FPU_CSR_RM; 78 mask = FPU_CSR_ALL_X | FPU_CSR_ALL_E | FPU_CSR_ALL_S | FPU_CSR_RM;
78 79
79 sr = read_c0_status(); 80 sr = read_c0_status();
80 __enable_fpu(FPU_AS_IS); 81 __enable_fpu(FPU_AS_IS);
81 82
82 fcsr = read_32bit_cp1_register(CP1_STATUS);
83
84 fcsr0 = fcsr & mask; 83 fcsr0 = fcsr & mask;
85 write_32bit_cp1_register(CP1_STATUS, fcsr0); 84 write_32bit_cp1_register(CP1_STATUS, fcsr0);
86 fcsr0 = read_32bit_cp1_register(CP1_STATUS); 85 fcsr0 = read_32bit_cp1_register(CP1_STATUS);
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index 51f57d841662..3c8a18a00a65 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -109,7 +109,7 @@ void __init init_IRQ(void)
109#endif 109#endif
110} 110}
111 111
112#ifdef DEBUG_STACKOVERFLOW 112#ifdef CONFIG_DEBUG_STACKOVERFLOW
113static inline void check_stack_overflow(void) 113static inline void check_stack_overflow(void)
114{ 114{
115 unsigned long sp; 115 unsigned long sp;
diff --git a/arch/mips/kvm/emulate.c b/arch/mips/kvm/emulate.c
index 4b50c5787e25..d5fa3eaf39a1 100644
--- a/arch/mips/kvm/emulate.c
+++ b/arch/mips/kvm/emulate.c
@@ -2409,7 +2409,7 @@ enum emulation_result kvm_mips_complete_mmio_load(struct kvm_vcpu *vcpu,
2409 if (vcpu->mmio_needed == 2) 2409 if (vcpu->mmio_needed == 2)
2410 *gpr = *(int16_t *) run->mmio.data; 2410 *gpr = *(int16_t *) run->mmio.data;
2411 else 2411 else
2412 *gpr = *(int16_t *) run->mmio.data; 2412 *gpr = *(uint16_t *)run->mmio.data;
2413 2413
2414 break; 2414 break;
2415 case 1: 2415 case 1:
diff --git a/arch/mips/loongson/loongson-3/smp.c b/arch/mips/loongson/loongson-3/smp.c
index e3c68b5da18d..509877c6e9d9 100644
--- a/arch/mips/loongson/loongson-3/smp.c
+++ b/arch/mips/loongson/loongson-3/smp.c
@@ -272,7 +272,7 @@ void loongson3_ipi_interrupt(struct pt_regs *regs)
272 if (action & SMP_ASK_C0COUNT) { 272 if (action & SMP_ASK_C0COUNT) {
273 BUG_ON(cpu != 0); 273 BUG_ON(cpu != 0);
274 c0count = read_c0_count(); 274 c0count = read_c0_count();
275 for (i = 1; i < loongson_sysconf.nr_cpus; i++) 275 for (i = 1; i < num_possible_cpus(); i++)
276 per_cpu(core0_c0count, i) = c0count; 276 per_cpu(core0_c0count, i) = c0count;
277 } 277 }
278} 278}
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 0dbb65a51ce5..2e03ab173591 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -1372,7 +1372,7 @@ static int probe_scache(void)
1372 scache_size = addr; 1372 scache_size = addr;
1373 c->scache.linesz = 16 << ((config & R4K_CONF_SB) >> 22); 1373 c->scache.linesz = 16 << ((config & R4K_CONF_SB) >> 22);
1374 c->scache.ways = 1; 1374 c->scache.ways = 1;
1375 c->dcache.waybit = 0; /* does not matter */ 1375 c->scache.waybit = 0; /* does not matter */
1376 1376
1377 return 1; 1377 return 1;
1378} 1378}
diff --git a/arch/mips/net/bpf_jit.c b/arch/mips/net/bpf_jit.c
index 5d6139390bf8..e23fdf2a9c80 100644
--- a/arch/mips/net/bpf_jit.c
+++ b/arch/mips/net/bpf_jit.c
@@ -681,11 +681,7 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx)
681 sp_off += config_enabled(CONFIG_64BIT) ? 681 sp_off += config_enabled(CONFIG_64BIT) ?
682 (ARGS_USED_BY_JIT + 1) * RSIZE : RSIZE; 682 (ARGS_USED_BY_JIT + 1) * RSIZE : RSIZE;
683 683
684 /* 684 return sp_off;
685 * Subtract the bytes for the last registers since we only care about
686 * the location on the stack pointer.
687 */
688 return sp_off - RSIZE;
689} 685}
690 686
691static void build_prologue(struct jit_ctx *ctx) 687static void build_prologue(struct jit_ctx *ctx)
diff --git a/arch/mips/ralink/ill_acc.c b/arch/mips/ralink/ill_acc.c
index e20b02e3ae28..e10d10b9e82a 100644
--- a/arch/mips/ralink/ill_acc.c
+++ b/arch/mips/ralink/ill_acc.c
@@ -41,7 +41,7 @@ static irqreturn_t ill_acc_irq_handler(int irq, void *_priv)
41 addr, (type >> ILL_ACC_OFF_S) & ILL_ACC_OFF_M, 41 addr, (type >> ILL_ACC_OFF_S) & ILL_ACC_OFF_M,
42 type & ILL_ACC_LEN_M); 42 type & ILL_ACC_LEN_M);
43 43
44 rt_memc_w32(REG_ILL_ACC_TYPE, REG_ILL_ACC_TYPE); 44 rt_memc_w32(ILL_INT_STATUS, REG_ILL_ACC_TYPE);
45 45
46 return IRQ_HANDLED; 46 return IRQ_HANDLED;
47} 47}