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:
@ -17,7 +17,7 @@ void free_pages(void *, int npages);
|
|||||||
#define MAP_INDEX(n) ((n) >> 6)
|
#define MAP_INDEX(n) ((n) >> 6)
|
||||||
#define MAP_BIT(n) ((n) & 0x3f)
|
#define MAP_BIT(n) ((n) & 0x3f)
|
||||||
#define ADDRESS(desc, index, bit) \
|
#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,
|
void *__ihk_pagealloc_init(unsigned long start, unsigned long size,
|
||||||
unsigned long unit, void *initial,
|
unsigned long unit, void *initial,
|
||||||
|
|||||||
Reference in New Issue
Block a user