Commit-ID: 817aea43d503d085217cdba89c707ea66d432e06 Gitweb: http://git.kernel.org/tip/817aea43d503d085217cdba89c707ea66d432e06 Author: Pekka Enberg <penberg@xxxxxxxxxx> AuthorDate: Wed, 18 May 2011 21:41:36 +0300 Committer: Pekka Enberg <penberg@xxxxxxxxxx> CommitDate: Wed, 18 May 2011 21:41:36 +0300 kvm tools: Make host_ram_size() more robust This patch fixes cryptic "out of memory" errors on hosts where sysconf() fails by defaulting to MIN_RAM_SIZE_MB. Reported-by: <born2befrag@xxxxxxxxx> Signed-off-by: Pekka Enberg <penberg@xxxxxxxxxx> --- tools/kvm/kvm-run.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/tools/kvm/kvm-run.c b/tools/kvm/kvm-run.c index ba8e5ce..5451dfe 100644 --- a/tools/kvm/kvm-run.c +++ b/tools/kvm/kvm-run.c @@ -267,8 +267,16 @@ static u64 host_ram_size(void) long nr_pages; nr_pages = sysconf(_SC_PHYS_PAGES); + if (nr_pages < 0) { + warning("sysconf(_SC_PHYS_PAGES) failed"); + return 0; + } page_size = sysconf(_SC_PAGE_SIZE); + if (page_size < 0) { + warning("sysconf(_SC_PAGE_SIZE) failed"); + return 0; + } return (nr_pages * page_size) >> MB_SHIFT; } @@ -287,6 +295,8 @@ static u64 get_ram_size(int nr_cpus) ram_size = 64 * (nr_cpus + 3); available = host_ram_size() * RAM_SIZE_RATIO; + if (!available) + available = MIN_RAM_SIZE_MB; if (ram_size > available) ram_size = available; -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html