Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Jul 2014 23:23:18 +0000 (UTC)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r268195 - stable/10/sys/ia64/ia64
Message-ID:  <201407022323.s62NNIBB061175@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marcel
Date: Wed Jul  2 23:23:18 2014
New Revision: 268195
URL: http://svnweb.freebsd.org/changeset/base/268195

Log:
  MFC r263248 & r263257: In intr_event_handle() we already save and set
  td_intr_frame, so don't do it also in ia64_handle_intr().

Modified:
  stable/10/sys/ia64/ia64/clock.c
  stable/10/sys/ia64/ia64/interrupt.c
  stable/10/sys/ia64/ia64/mp_machdep.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/ia64/ia64/clock.c
==============================================================================
--- stable/10/sys/ia64/ia64/clock.c	Wed Jul  2 23:12:56 2014	(r268194)
+++ stable/10/sys/ia64/ia64/clock.c	Wed Jul  2 23:23:18 2014	(r268195)
@@ -76,6 +76,7 @@ static u_int
 ia64_ih_clock(struct thread *td, u_int xiv, struct trapframe *tf)
 {
 	struct eventtimer *et;
+	struct trapframe *stf;
 	uint64_t itc, load;
 	uint32_t mode;
 
@@ -96,8 +97,12 @@ ia64_ih_clock(struct thread *td, u_int x
 	ia64_srlz_d();
 
 	et = &ia64_clock_et;
-	if (et->et_active)
+	if (et->et_active) {
+		stf = td->td_intr_frame;
+		td->td_intr_frame = tf;
 		et->et_event_cb(et, et->et_arg);
+		td->td_intr_frame = stf;
+	}
 	return (1);
 }
 

Modified: stable/10/sys/ia64/ia64/interrupt.c
==============================================================================
--- stable/10/sys/ia64/ia64/interrupt.c	Wed Jul  2 23:12:56 2014	(r268194)
+++ stable/10/sys/ia64/ia64/interrupt.c	Wed Jul  2 23:23:18 2014	(r268195)
@@ -301,7 +301,6 @@ void
 ia64_handle_intr(struct trapframe *tf)
 {
 	struct thread *td;
-	struct trapframe *stf;
 	u_int xiv;
 
 	td = curthread;
@@ -316,9 +315,6 @@ ia64_handle_intr(struct trapframe *tf)
 	}
 
 	critical_enter();
-	stf = td->td_intr_frame;
-	td->td_intr_frame = tf;
-
 	do {
 		CTR2(KTR_INTR, "INTR: ITC=%u, XIV=%u",
 		    (u_int)tf->tf_special.ifa, xiv);
@@ -329,8 +325,6 @@ ia64_handle_intr(struct trapframe *tf)
 		xiv = ia64_get_ivr();
 		ia64_srlz_d();
 	} while (xiv != 15);
-
-	td->td_intr_frame = stf;
 	critical_exit();
 
  out:

Modified: stable/10/sys/ia64/ia64/mp_machdep.c
==============================================================================
--- stable/10/sys/ia64/ia64/mp_machdep.c	Wed Jul  2 23:12:56 2014	(r268194)
+++ stable/10/sys/ia64/ia64/mp_machdep.c	Wed Jul  2 23:23:18 2014	(r268195)
@@ -113,10 +113,14 @@ ia64_ih_ast(struct thread *td, u_int xiv
 static u_int
 ia64_ih_hardclock(struct thread *td, u_int xiv, struct trapframe *tf)
 {
+	struct trapframe *stf;
 
 	PCPU_INC(md.stats.pcs_nhardclocks);
 	CTR1(KTR_SMP, "IPI_HARDCLOCK, cpuid=%d", PCPU_GET(cpuid));
+	stf = td->td_intr_frame;
+	td->td_intr_frame = tf;
 	hardclockintr();
+	td->td_intr_frame = stf;
 	return (0);
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201407022323.s62NNIBB061175>