On Thu, 2006-06-15 at 11:58 +0900, Isaku Yamahata wrote:
>  1 / 7 
> _# HG changeset patch
>  # User [EMAIL PROTECTED]
>  # Node ID ad418fdb1981be2108d84bafbd294a9db9899396
>  # Parent  d33add81096b057f98fa740ab88d6c17426f8d68
>  mpt_table is accessed concurrently by cpus, so it needs volatile
>  qualifier
>  PATCHNAME: volatile_mpt_table
>  diff -r d33add81096b -r ad418fdb1981 xen/arch/ia64/xen/xenmem.c
>  --- a/xen/arch/ia64/xen/xenmem.c        Wed Jun 14 16:05:45 2006
-0600
>  +++ b/xen/arch/ia64/xen/xenmem.c        Thu Jun 15 11:33:14 2006
+0900
>  @@ -35,7 +35,7 @@ unsigned long max_page;
>   /*
>    * Set up the page tables.
>    */
>  -unsigned long *mpt_table;
>  +volatile unsigned long *mpt_table;
> 
>   void
>   paging_init (void)
>  @@ -140,7 +140,7 @@ create_mpttable_page_table (u64 start, u
>   create_mpttable_page_table (u64 start, u64 end, void *arg)
>   {
>          unsigned long address, start_page, end_page;
>  -       unsigned long *map_start, *map_end;
>  +       volatile unsigned long *map_start, *map_end;
>          pgd_t *pgd;
>          pud_t *pud;
>          pmd_t *pmd;

[snip...]

I don't understand why map_start and map_end need to be
volatile here.  They only seem to be copying volatile
values for later use so there is no need for them to be
volatile; did I miss something?

Thanks for the clarification.

-- 
Ciao,
al
----------------------------------------------------------------------
Al Stone                                      Alter Ego:
Open Source and Linux R&D                     Debian Developer
Hewlett-Packard Company                       http://www.debian.org
E-mail: [EMAIL PROTECTED]                        [EMAIL PROTECTED]
----------------------------------------------------------------------


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

Reply via email to