diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-07 19:56:10 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-06-07 19:56:10 -0400 |
commit | 866e6441a4b511d92ad7c0403424a3d37939f23f (patch) | |
tree | 06d7c7752f7f2a3854c32d9350a6bf94b42b9bee | |
parent | 37ef1647b7f73d4ff4c7993984599b6c4f26443a (diff) | |
parent | ed9244e6c534612d2b5ae47feab2f55a0d4b4ced (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.c | 2 | ||||
-rw-r--r-- | arch/mips/kernel/cpu-probe.c | 3 | ||||
-rw-r--r-- | arch/mips/kernel/irq.c | 2 | ||||
-rw-r--r-- | arch/mips/kvm/emulate.c | 2 | ||||
-rw-r--r-- | arch/mips/loongson/loongson-3/smp.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/c-r4k.c | 2 | ||||
-rw-r--r-- | arch/mips/net/bpf_jit.c | 6 | ||||
-rw-r--r-- | arch/mips/ralink/ill_acc.c | 2 |
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 |
113 | static inline void check_stack_overflow(void) | 113 | static 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 | ||
691 | static void build_prologue(struct jit_ctx *ctx) | 687 | static 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 | } |