Skip to content

Commit e5e77cf

Browse files
committed
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
Pull MIPS fixes from Ralf Baechle: "Random fixes across arch/mips, essentially. One fix for an issue in get_user_pages_fast() which previously was discovered on x86, a miscalculation in the support for the MIPS MT hardware multithreading support, the RTC support for the Malta and a fix for a spurious interrupt issue that seems to bite only very special Malta configurations." * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: MIPS: Malta: Don't crash on spurious interrupt. MIPS: Malta: Remove RTC Data Mode bootstrap breakage MIPS: mm: Add compound tail page _mapcount when mapped MIPS: CMP/SMTC: Fix tc_id calculation
2 parents b3a297d + e376fdf commit e5e77cf

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

arch/mips/kernel/smp-cmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ static void cmp_init_secondary(void)
102102
c->vpe_id = (read_c0_tcbind() >> TCBIND_CURVPE_SHIFT) & TCBIND_CURVPE;
103103
#endif
104104
#ifdef CONFIG_MIPS_MT_SMTC
105-
c->tc_id = (read_c0_tcbind() >> TCBIND_CURTC_SHIFT) & TCBIND_CURTC;
105+
c->tc_id = (read_c0_tcbind() & TCBIND_CURTC) >> TCBIND_CURTC_SHIFT;
106106
#endif
107107
}
108108

arch/mips/mm/gup.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,8 @@ static int gup_huge_pud(pud_t pud, unsigned long addr, unsigned long end,
152152
do {
153153
VM_BUG_ON(compound_head(page) != head);
154154
pages[*nr] = page;
155+
if (PageTail(page))
156+
get_huge_page_tail(page);
155157
(*nr)++;
156158
page++;
157159
refs++;

arch/mips/mti-malta/malta-int.c

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -273,16 +273,19 @@ asmlinkage void plat_irq_dispatch(void)
273273
unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
274274
int irq;
275275

276+
if (unlikely(!pending)) {
277+
spurious_interrupt();
278+
return;
279+
}
280+
276281
irq = irq_ffs(pending);
277282

278283
if (irq == MIPSCPU_INT_I8259A)
279284
malta_hw0_irqdispatch();
280285
else if (gic_present && ((1 << irq) & ipi_map[smp_processor_id()]))
281286
malta_ipi_irqdispatch();
282-
else if (irq >= 0)
283-
do_IRQ(MIPS_CPU_IRQ_BASE + irq);
284287
else
285-
spurious_interrupt();
288+
do_IRQ(MIPS_CPU_IRQ_BASE + irq);
286289
}
287290

288291
#ifdef CONFIG_MIPS_MT_SMP

arch/mips/mti-malta/malta-platform.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -138,11 +138,6 @@ static int __init malta_add_devices(void)
138138
if (err)
139139
return err;
140140

141-
/*
142-
* Set RTC to BCD mode to support current alarm code.
143-
*/
144-
CMOS_WRITE(CMOS_READ(RTC_CONTROL) & ~RTC_DM_BINARY, RTC_CONTROL);
145-
146141
return 0;
147142
}
148143

0 commit comments

Comments
 (0)