summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2014-03-16 21:57:05 +0000
committermarcel <marcel@FreeBSD.org>2014-03-16 21:57:05 +0000
commit0e3b166e7041a9c36ab420a613403cbd9667b6f9 (patch)
tree393ec830d0259cd0def0f6940327282fdc4e3cf7
parent51c301d849a2bf188d9f8920bcc96a193eb3191f (diff)
downloadFreeBSD-src-0e3b166e7041a9c36ab420a613403cbd9667b6f9.zip
FreeBSD-src-0e3b166e7041a9c36ab420a613403cbd9667b6f9.tar.gz
Don't use the ITC as the faulting address for external interrupts.
We only use it for tracing and the KTR infrastructure will use ITC for the time-stamp.
-rw-r--r--sys/ia64/ia64/exception.S2
-rw-r--r--sys/ia64/ia64/interrupt.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/sys/ia64/ia64/exception.S b/sys/ia64/ia64/exception.S
index 62c4451..5a15270 100644
--- a/sys/ia64/ia64/exception.S
+++ b/sys/ia64/ia64/exception.S
@@ -1388,7 +1388,7 @@ IVT_END(Break_Instruction)
IVT_ENTRY(External_Interrupt, 0x3000)
{ .mib
- mov r17=ar.itc // Put the ITC in the trapframe.
+ mov r17=0
mov r16=ip
br.sptk exception_save
;;
diff --git a/sys/ia64/ia64/interrupt.c b/sys/ia64/ia64/interrupt.c
index 9d66f4e..7e45194 100644
--- a/sys/ia64/ia64/interrupt.c
+++ b/sys/ia64/ia64/interrupt.c
@@ -316,8 +316,8 @@ ia64_handle_intr(struct trapframe *tf)
critical_enter();
do {
- CTR2(KTR_INTR, "INTR: ITC=%u, XIV=%u",
- (u_int)tf->tf_special.ifa, xiv);
+ CTR3(KTR_INTR, "INTR: XIV=%u, #%u: frame=%p", xiv,
+ PCPU_GET(cnt.v_intr), tf);
if (!(ia64_handler[xiv])(td, xiv, tf)) {
ia64_set_eoi(0);
ia64_srlz_d();
OpenPOWER on IntegriCloud