aboutsummaryrefslogtreecommitdiffstats
path: root/src/svm/svm.c
diff options
context:
space:
mode:
authorGabriel Ganne <gabriel.ganne@enea.com>2018-01-10 11:40:50 +0100
committerDamjan Marion <dmarion.lists@gmail.com>2018-01-10 18:07:46 +0000
commit83d47438ae7c9b3fc53329846ee46a82a3087578 (patch)
tree5363606968965a95cb7c6321023b4e892bc3c4f7 /src/svm/svm.c
parent5ee623e789261552eb9460be10f34793d40b6575 (diff)
svm: calc base address on AArch64 based on autodetected VA space size
fix proposal for aec8f8984771cabc79a8ed64f56afcf61465d00a * fix 0/1 bit count * fix memory leak Change-Id: I488229917c463be10b8a5a1b0a3d7723f05061d0 Signed-off-by: Gabriel Ganne <gabriel.ganne@enea.com>
Diffstat (limited to 'src/svm/svm.c')
-rw-r--r--src/svm/svm.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/svm/svm.c b/src/svm/svm.c
index f187fbfcab2..2cbc0d77c22 100644
--- a/src/svm/svm.c
+++ b/src/svm/svm.c
@@ -79,16 +79,15 @@ svm_get_global_region_base_va ()
unformat (&input, "%llx-%llx", &start, &end);
unformat_skip_line (&input);
}
+ unformat_free (&input);
+ close (fd);
count_leading_zeros (bits, end);
- bits = 64 - bits;
+ bits = 64 - (bits + 1);
if (bits >= 36 && bits <= 48)
return ((1ul << bits) / 4) - (2 * SVM_GLOBAL_REGION_SIZE);
else
clib_unix_error ("unexpected va bits '%u'", bits);
-
- unformat_free (&input);
- close (fd);
#endif
/* default value */