]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
ia64/pv_ops/binary patch: define paravirt_dv_serialize_data() and suppress false...
authorIsaku Yamahata <yamahata@valinux.co.jp>
Wed, 4 Mar 2009 12:06:54 +0000 (21:06 +0900)
committerTony Luck <tony.luck@intel.com>
Thu, 26 Mar 2009 18:02:59 +0000 (11:02 -0700)
define paravirt_dv_serialize_data() and insert it to suppress
false positive warnings.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/include/asm/paravirt_privop.h
arch/ia64/kernel/efi.c
arch/ia64/kvm/vtlb.c

index 76d6a6943e839ad5162d9f75c0c88290bd085f17..4e40e62c4ab8b8ad955bec683d3111b57d648a53 100644 (file)
@@ -118,6 +118,12 @@ void paravirt_cpu_asm_init(const struct pv_cpu_asm_switch *cpu_asm_switch);
 
 #endif /* CONFIG_PARAVIRT */
 
+#if defined(CONFIG_PARAVIRT) && defined(ASM_SUPPORTED)
+#define paravirt_dv_serialize_data()   ia64_dv_serialize_data()
+#else
+#define paravirt_dv_serialize_data()   /* nothing */
+#endif
+
 /* these routines utilize privilege-sensitive or performance-sensitive
  * privileged instructions so the code must be replaced with
  * paravirtualized versions */
index efaff15d8cf1dc9cad35a767a53b3865d51037b4..7ef80e8161ce3dbad06d522ef5634e9e8520be3e 100644 (file)
@@ -456,6 +456,7 @@ efi_map_pal_code (void)
                 GRANULEROUNDDOWN((unsigned long) pal_vaddr),
                 pte_val(pfn_pte(__pa(pal_vaddr) >> PAGE_SHIFT, PAGE_KERNEL)),
                 IA64_GRANULE_SHIFT);
+       paravirt_dv_serialize_data();
        ia64_set_psr(psr);              /* restore psr */
 }
 
index 6b6307a3bd556a08f6eb937a9d8b083defb0a701..1de4dbda37e7dcaa9a31b6abe17a9e388dd048ee 100644 (file)
@@ -210,6 +210,7 @@ void thash_vhpt_insert(struct kvm_vcpu *v, u64 pte, u64 itir, u64 va, int type)
                phy_pte  &= ~PAGE_FLAGS_RV_MASK;
                psr = ia64_clear_ic();
                ia64_itc(type, va, phy_pte, itir_ps(itir));
+               paravirt_dv_serialize_data();
                ia64_set_psr(psr);
        }
 
@@ -464,6 +465,7 @@ int thash_purge_and_insert(struct kvm_vcpu *v, u64 pte, u64 itir,
                phy_pte  &= ~PAGE_FLAGS_RV_MASK;
                psr = ia64_clear_ic();
                ia64_itc(type, ifa, phy_pte, ps);
+               paravirt_dv_serialize_data();
                ia64_set_psr(psr);
        }
        if (!(pte&VTLB_PTE_IO))