calculate a physical address in 64 bit width

When physical page of address 0x1_0000_0000 is allocated,
it becomes false ENOMEM error.
This commit is contained in:
NAKAMURA Gou
2013-10-31 17:23:00 +09:00
parent 0d3e1f1070
commit 6722f35ffc

View File

@ -17,7 +17,7 @@ void free_pages(void *, int npages);
#define MAP_INDEX(n) ((n) >> 6)
#define MAP_BIT(n) ((n) & 0x3f)
#define ADDRESS(desc, index, bit) \
((desc)->start + (((index) * 64 + (bit)) << ((desc)->shift)))
((desc)->start + (((uintptr_t)(index) * 64 + (bit)) << ((desc)->shift)))
void *__ihk_pagealloc_init(unsigned long start, unsigned long size,
unsigned long unit, void *initial,