WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [linux-2.6.18-xen] [IA64] Set memory attribute in inline

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [linux-2.6.18-xen] [IA64] Set memory attribute in inline asm
From: "Xen patchbot-linux-2.6.18-xen" <patchbot-linux-2.6.18-xen@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 20 May 2008 08:30:45 -0700
Delivery-date: Tue, 20 May 2008 08:32:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1208201377 21600
# Node ID dbe8a35dcaf7c12b816e358c596f7fcc9b926e77
# Parent  ec6e3e18ea314e9520ee6bba898e30228bf3bda4
[IA64] Set memory attribute in inline asm

Some priv_ops need memory attribulte in inline asm.  This avoids
potential issues if the compiler optimizes the functions.

Signed-off-by: Akio Takebe <takebe_akio@xxxxxxxxxxxxxx>
---
 include/asm-ia64/xen/privop.h |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)

diff -r ec6e3e18ea31 -r dbe8a35dcaf7 include/asm-ia64/xen/privop.h
--- a/include/asm-ia64/xen/privop.h     Wed Apr 02 10:02:57 2008 -0600
+++ b/include/asm-ia64/xen/privop.h     Mon Apr 14 13:29:37 2008 -0600
@@ -67,8 +67,7 @@
 #endif
 
 #ifndef __ASSEMBLY__
-#define        XEN_HYPER_SSM_I         asm("break %0" : : "i" 
(HYPERPRIVOP_SSM_I))
-#define        XEN_HYPER_GET_IVR       asm("break %0" : : "i" 
(HYPERPRIVOP_GET_IVR))
+#define        XEN_HYPER_SSM_I         asm("break %0" : : "i" 
(HYPERPRIVOP_SSM_I): "memory")
 
 /************************************************/
 /* Instructions paravirtualized for correctness */
@@ -83,7 +82,7 @@ xen_fc(unsigned long addr)
 xen_fc(unsigned long addr)
 {
        register __u64 __addr asm ("r8") = addr;
-       asm volatile ("break %0":: "i"(HYPERPRIVOP_FC), "r"(__addr));
+       asm volatile ("break %0":: "i"(HYPERPRIVOP_FC), "r"(__addr): "memory");
 }
 
 static inline unsigned long
@@ -188,7 +187,7 @@ xen_set_eflag(unsigned long val)
 xen_set_eflag(unsigned long val)
 {
        register __u64 __val asm ("r8") = val;
-       asm volatile ("break %0":: "i"(HYPERPRIVOP_SET_EFLAG), "r"(__val));
+       asm volatile ("break %0":: "i"(HYPERPRIVOP_SET_EFLAG), "r"(__val): 
"memory");
 }
 #else
 extern unsigned long xen_get_eflag(void);      /* see xen_ia64_getreg */
@@ -331,7 +330,7 @@ xen_set_tpr(unsigned long val)
 {
        register __u64 __val asm ("r8") = val;
        asm volatile ("break %0"::
-                     "i"(HYPERPRIVOP_GET_TPR), "r"(__val));
+                     "i"(HYPERPRIVOP_GET_TPR), "r"(__val): "memory");
 }
 
 static inline void
@@ -339,14 +338,14 @@ xen_eoi(unsigned long val)
 {
        register __u64 __val asm ("r8") = val;
        asm volatile ("break %0"::
-                     "i"(HYPERPRIVOP_EOI), "r"(__val));
+                     "i"(HYPERPRIVOP_EOI), "r"(__val): "memory");
 }
 
 static inline void
 xen_set_itm(unsigned long val)
 {
        register __u64 __val asm ("r8") = val;
-       asm volatile ("break %0":: "i"(HYPERPRIVOP_SET_ITM), "r"(__val));
+       asm volatile ("break %0":: "i"(HYPERPRIVOP_SET_ITM), "r"(__val): 
"memory");
 }
 
 static inline void
@@ -355,7 +354,7 @@ xen_ptcga(unsigned long addr, unsigned l
        register __u64 __addr asm ("r8") = addr;
        register __u64 __size asm ("r9") = size;
        asm volatile ("break %0"::
-                     "i"(HYPERPRIVOP_PTC_GA), "r"(__addr), "r"(__size));
+                     "i"(HYPERPRIVOP_PTC_GA), "r"(__addr), "r"(__size): 
"memory");
 }
 
 static inline unsigned long
@@ -375,7 +374,7 @@ xen_set_rr(unsigned long index, unsigned
        register __u64 __index asm ("r8") = index;
        register __u64 __val asm ("r9") = val;
        asm volatile ("break %0"::
-                     "i"(HYPERPRIVOP_SET_RR), "r"(__index), "r"(__val));
+                     "i"(HYPERPRIVOP_SET_RR), "r"(__index), "r"(__val): 
"memory");
 }
 
 static inline void
@@ -390,7 +389,7 @@ xen_set_rr0_to_rr4(unsigned long val0, u
        asm volatile ("break %0" ::
                      "i"(HYPERPRIVOP_SET_RR0_TO_RR4),
                      "r"(__val0), "r"(__val1),
-                     "r"(__val2), "r"(__val3), "r"(__val4));
+                     "r"(__val2), "r"(__val3), "r"(__val4): "memory");
 }
 
 static inline void
@@ -399,7 +398,7 @@ xen_set_kr(unsigned long index, unsigned
        register __u64 __index asm ("r8") = index;
        register __u64 __val asm ("r9") = val;
        asm volatile ("break %0"::
-                     "i"(HYPERPRIVOP_SET_KR), "r"(__index), "r"(__val));
+                     "i"(HYPERPRIVOP_SET_KR), "r"(__index), "r"(__val): 
"memory");
 }
 #endif
 

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [linux-2.6.18-xen] [IA64] Set memory attribute in inline asm, Xen patchbot-linux-2.6.18-xen <=