]> xenbits.xensource.com Git - people/vhanquez/xen.git/commitdiff
x86 numa: Fix left shift overflows
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 28 Apr 2009 14:02:29 +0000 (15:02 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 28 Apr 2009 14:02:29 +0000 (15:02 +0100)
Signed-off-by: Yang Xiaowei <xiaowei.yang@intel.com>
xen-unstable changeset:   19571:3ccd0f0dba5b
xen-unstable date:        Thu Apr 23 12:21:29 2009 +0100

xen/arch/x86/numa.c

index 0debd987bccde62a90420e88b319c4102d7a3858..01ad862393145e9c9ffc757394e27a5e156181e3 100644 (file)
@@ -74,7 +74,7 @@ populate_memnodemap(const struct node *nodes, int numnodes, int shift)
                        if (memnodemap[addr >> shift] != 0xff)
                                return -1;
                        memnodemap[addr >> shift] = i;
-                       addr += (1UL << shift);
+                       addr += (1ULL << shift);
                } while (addr < end);
                res = 1;
        } 
@@ -290,7 +290,7 @@ static void dump_numa(unsigned char key)
                  (u32)(now>>32), (u32)now);
 
        for_each_online_node(i) {
-               paddr_t pa = (NODE_DATA(i)->node_start_pfn + 1)<< PAGE_SHIFT;
+               paddr_t pa = (paddr_t)(NODE_DATA(i)->node_start_pfn + 1)<< PAGE_SHIFT;
                printk("idx%d -> NODE%d start->%lu size->%lu\n",
                          i, NODE_DATA(i)->node_id,
                          NODE_DATA(i)->node_start_pfn,
@@ -314,7 +314,7 @@ static void dump_numa(unsigned char key)
 
                list_for_each_entry(page, &d->page_list, list)
                {
-                       i = phys_to_nid(page_to_mfn(page) << PAGE_SHIFT);
+                       i = phys_to_nid((paddr_t)page_to_mfn(page) << PAGE_SHIFT);
                        page_num_node[i]++;
                }