Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5cb2366 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'nios2-fixes-v3.19-rc3' of git://git.rocketboards.org/linux-socfpga-next

Pull arch/nios2 fixes from Ley Foon Tan:

 - fix compilation error when enable CONFIG_PREEMPT

 - initialize cpuinfo.mmu variable supplied by the device tree

* tag 'nios2-fixes-v3.19-rc3' of git://git.rocketboards.org/linux-socfpga-next:
  nios2: Use preempt_schedule_irq
  nios2: Initialize cpuinfo.mmu
parents 6ca793ab 1b0f4492
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ void __init setup_cpuinfo(void)
	cpuinfo.has_div = fcpu_has(cpu, "altr,has-div");
	cpuinfo.has_mul = fcpu_has(cpu, "altr,has-mul");
	cpuinfo.has_mulx = fcpu_has(cpu, "altr,has-mulx");
	cpuinfo.mmu = fcpu_has(cpu, "altr,has-mmu");

	if (IS_ENABLED(CONFIG_NIOS2_HW_DIV_SUPPORT) && !cpuinfo.has_div)
		err_cpu("DIV");
+2 −18
Original line number Diff line number Diff line
@@ -365,30 +365,14 @@ ENTRY(ret_from_interrupt)
	GET_THREAD_INFO	r1
	ldw	r4, TI_PREEMPT_COUNT(r1)
	bne	r4, r0, restore_all

need_resched:
	ldw	r4, TI_FLAGS(r1)		/* ? Need resched set */
	BTBZ	r10, r4, TIF_NEED_RESCHED, restore_all
	ldw	r4, PT_ESTATUS(sp)	/* ? Interrupts off */
	andi	r10, r4, ESTATUS_EPIE
	beq	r10, r0, restore_all
	movia	r4, PREEMPT_ACTIVE
	stw	r4, TI_PREEMPT_COUNT(r1)
	rdctl	r10, status		/* enable intrs again */
	ori	r10, r10 ,STATUS_PIE
	wrctl	status, r10
	PUSH	r1
	call	schedule
	POP	r1
	mov	r4, r0
	stw	r4, TI_PREEMPT_COUNT(r1)
	rdctl	r10, status		/* disable intrs */
	andi	r10, r10, %lo(~STATUS_PIE)
	wrctl	status, r10
	br	need_resched
#else
	br	restore_all
	call	preempt_schedule_irq
#endif
	br	restore_all

/***********************************************************************
 * A few syscall wrappers