hvmloader: Use MB(x) and GB(x) macros

instead of hardcoding values. We also drop the uint64_t
cast as the macro uses ULL to produce the proper width
types.

Acked-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
This commit is contained in:
Konrad Rzeszutek Wilk committed 2017-09-18 15:42:02 -04:00
1 parent 9fbd310715
commit cd02f96d54
4 files changed
+12 -10

No files matched your search

+3 -3
View File
@@ -82,7 +82,7 @@ void adjust_memory_map(void)
/* Modify the existing highmem region if it exists. */
if ( memory_map.map[i].type == E820_RAM &&
high_mem_end && map_start == ((uint64_t)1 << 32) )
high_mem_end && map_start == GB(4) )
{
if ( high_mem_end != map_end )
memory_map.map[i].size = high_mem_end - map_start;
@@ -94,7 +94,7 @@ void adjust_memory_map(void)
/* If there was no highmem region, just create one. */
if ( high_mem_end )
{
memory_map.map[i].addr = ((uint64_t)1 << 32);
memory_map.map[i].addr = GB(4);
memory_map.map[i].size =
((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) -
memory_map.map[i].addr;
@@ -234,7 +234,7 @@ int build_e820_table(struct e820entry *e820,
}
/* Low RAM goes here. Reserve space for special pages. */
BUG_ON(low_mem_end < (2u << 20));
BUG_ON(low_mem_end < MB(2));
/*
* Construct E820 table according to recorded memory map.
+4 -4
View File
@@ -59,7 +59,7 @@ static int find_next_rmrr(uint32_t base)
{
unsigned int i;
int next_rmrr = -1;
uint64_t end, min_end = 1ULL << 32;
uint64_t end, min_end = GB(4);
for ( i = 0; i < memory_map.nr_map ; i++ )
{
@@ -297,7 +297,7 @@ void pci_setup(void)
if ( mmio_hole_size )
{
uint64_t max_ram_below_4g = (1ULL << 32) - mmio_hole_size;
uint64_t max_ram_below_4g = GB(4) - mmio_hole_size;
if ( max_ram_below_4g > HVM_BELOW_4G_MMIO_START )
{
@@ -385,13 +385,13 @@ void pci_setup(void)
adjust_memory_map();
high_mem_resource.base = ((uint64_t)hvm_info->high_mem_pgend) << PAGE_SHIFT;
if ( high_mem_resource.base < 1ull << 32 )
if ( high_mem_resource.base < GB(4) )
{
if ( hvm_info->high_mem_pgend != 0 )
printf("WARNING: hvm_info->high_mem_pgend %x"
" does not point into high memory!",
hvm_info->high_mem_pgend);
high_mem_resource.base = 1ull << 32;
high_mem_resource.base = GB(4);
}
printf("%sRAM in high memory; setting high_mem resource base to "PRIllx"\n",
hvm_info->high_mem_pgend?"":"No ",
+2 -3
View File
@@ -239,15 +239,14 @@ get_memsize(void)
sz = (uint64_t)hvm_info->low_mem_pgend << PAGE_SHIFT;
if ( hvm_info->high_mem_pgend )
sz += (((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT)
- (1ull << 32));
sz += (((uint64_t)hvm_info->high_mem_pgend << PAGE_SHIFT) - GB(4));
/*
* Round up to the nearest MB. The user specifies domU pseudo-physical
* memory in megabytes, so not doing this could easily lead to reporting
* one less MB than the user specified.
*/
return (sz + (1ul << 20) - 1) >> 20;
return (sz + MB(1) - 1) >> 20;
}
void
+3
View File
@@ -48,6 +48,9 @@ void __bug(char *file, int line) __attribute__((noreturn));
#define max_t(type,x,y) \
({ type __x = (x); type __y = (y); __x > __y ? __x: __y; })
#define MB(mb) (mb##ULL << 20)
#define GB(gb) (gb##ULL << 30)
static inline int test_bit(unsigned int b, const void *p)
{
return !!(((const uint8_t *)p)[b>>3] & (1u<<(b&7)));
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.