|
|
|
|
|
|
|
|
|
|
xen-ia64-devel
Re: [Xen-ia64-devel] pv_ops: IVT.s replacement to cover all sensitiveins
Hi, Eddie
>diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S
>index f2306ae..d516bf4 100644
>--- a/arch/ia64/kernel/ivt.S
>+++ b/arch/ia64/kernel/ivt.S
>@@ -19,6 +19,7 @@
> * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp>
> * VA Linux Systems Japan K.K.
> * pv_ops.
>+ * Yaozu (Eddie) Dong <eddie.dong@xxxxxxxxx>
> */
> /*
> * This file defines the interruption vector table used by the CPU.
>@@ -338,7 +339,7 @@ ENTRY(alt_itlb_miss)
> DBG_FAULT(3)
> MOV_FROM_IFA(r16) // get address that caused the TLB miss
> movl r17=PAGE_KERNEL
>- MOV_FROM_IPSR(r21)
>+ MOV_FROM_IPSR(p0,r21)
Why do you specify p0 to the macro?
Is it not neccessary to perform the mov?
>diff --git a/arch/ia64/xen/xenivt.S b/arch/ia64/xen/xenivt.S
>diff --git a/include/asm-ia64/native/inst.h
>b/include/asm-ia64/native/inst.h
>index 7e91396..a7d3689 100644
>--- a/include/asm-ia64/native/inst.h
>+++ b/include/asm-ia64/native/inst.h
>@@ -47,8 +47,8 @@
> #define MOV_FROM_IHA(reg) \
> mov reg = cr.iha
>
>-#define MOV_FROM_IPSR(reg) \
>- mov reg = cr.ipsr
>+#define MOV_FROM_IPSR(pred,reg) \
>+(pred) mov reg = cr.ipsr
>
> #define MOV_FROM_IIM(reg) \
> mov reg = cr.iim
>diff --git a/include/asm-ia64/xen/inst.h b/include/asm-ia64/xen/inst.h
>index 1e92d02..250f21a 100644
>--- a/include/asm-ia64/xen/inst.h
>+++ b/include/asm-ia64/xen/inst.h
>@@ -49,10 +49,10 @@
> ;; \
> ld8 reg = [reg]
>
>-#define MOV_FROM_IPSR(reg) \
>- movl reg = XSI_IPSR; \
>+#define MOV_FROM_IPSR(pred,reg) \
>+(pred) movl reg = XSI_IPSR; \
> ;; \
>- ld8 reg = [reg]
>+(pred) ld8 reg = [reg]
>
> #define MOV_FROM_IIM(reg) \
> movl reg = XSI_IIM; \
Best Regards,
Akio Takebe
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|
|
|
|
|