svn commit: r263248 - head/sys/ia64/ia64
Marcel Moolenaar
marcel at FreeBSD.org
Sun Mar 16 20:21:41 UTC 2014
Author: marcel
Date: Sun Mar 16 20:21:40 2014
New Revision: 263248
URL: http://svnweb.freebsd.org/changeset/base/263248
Log:
In intr_event_handle() we already save and set td_intr_frame, so
don't do it also in ia64_handle_intr(). With ia64_handle_intr()
not saving and setting td_intr_frame, make sure to do it for
clock interrupts in ia64_ih_clock().
Modified:
head/sys/ia64/ia64/clock.c
head/sys/ia64/ia64/interrupt.c
Modified: head/sys/ia64/ia64/clock.c
==============================================================================
--- head/sys/ia64/ia64/clock.c Sun Mar 16 16:33:25 2014 (r263247)
+++ head/sys/ia64/ia64/clock.c Sun Mar 16 20:21:40 2014 (r263248)
@@ -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: head/sys/ia64/ia64/interrupt.c
==============================================================================
--- head/sys/ia64/ia64/interrupt.c Sun Mar 16 16:33:25 2014 (r263247)
+++ head/sys/ia64/ia64/interrupt.c Sun Mar 16 20:21:40 2014 (r263248)
@@ -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:
More information about the svn-src-head
mailing list