[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 7/7] exec: add parameter errp to gethugepages
From: |
Peter Crosthwaite |
Subject: |
Re: [Qemu-devel] [PATCH v6 7/7] exec: add parameter errp to gethugepagesize |
Date: |
Thu, 7 Aug 2014 21:47:06 +1000 |
On Thu, Aug 7, 2014 at 7:10 PM, Hu Tao <address@hidden> wrote:
> Add parameter errp to gethugepagesize thus callers can handle errors.
>
> This patch fixes a problem that if user adds a memory-backend-file
> object using object_add command, specifying a non-existing directory
> for property mem-path, qemu will core dump with message:
Same long sentence issue here,
>
> /nonexistingdir: No such file or directory
> Bad ram offset fffffffffffff000
> Aborted (core dumped)
>
> with this patch, qemu reports error message like:
>
> qemu-system-x86_64: -object
> memory-backend-file,mem-path=/nonexistingdir,id=mem-file0,size=128M:
> failed to stat file /nonexistingdir: No such file or directory
>
> Signed-off-by: Hu Tao <address@hidden>
Otherwise:
Reviewed-by: Peter Crosthwaite <address@hidden>
> ---
> exec.c | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/exec.c b/exec.c
> index 50cd510..fdef0f7 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -996,7 +996,7 @@ void qemu_mutex_unlock_ramlist(void)
>
> #define HUGETLBFS_MAGIC 0x958458f6
>
> -static long gethugepagesize(const char *path)
> +static long gethugepagesize(const char *path, Error **errp)
> {
> struct statfs fs;
> int ret;
> @@ -1006,7 +1006,8 @@ static long gethugepagesize(const char *path)
> } while (ret != 0 && errno == EINTR);
>
> if (ret != 0) {
> - perror(path);
> + error_setg_errno(errp, errno, "failed to get page size of file %s",
> + path);
> return 0;
> }
>
> @@ -1027,9 +1028,11 @@ static void *file_ram_alloc(RAMBlock *block,
> void *area = NULL;
> int fd;
> uint64_t hpagesize;
> + Error *local_err = NULL;
>
> - hpagesize = gethugepagesize(path);
> - if (!hpagesize) {
> + hpagesize = gethugepagesize(path, &local_err);
> + if (local_err) {
> + error_propagate(errp, local_err);
> goto error;
> }
>
> --
> 1.9.3
>
>
- Re: [Qemu-devel] [PATCH v6 1/7] exec: add parameter errp to qemu_ram_alloc and qemu_ram_alloc_from_ptr, (continued)
[Qemu-devel] [PATCH v6 2/7] memory: add parameter errp to memory_region_init_ram, Hu Tao, 2014/08/07
[Qemu-devel] [PATCH v6 3/7] memory: add parameter errp to memory_region_init_ram_ptr, Hu Tao, 2014/08/07
[Qemu-devel] [PATCH v6 4/7] memory: add parameter errp to memory_region_init_rom_device, Hu Tao, 2014/08/07
[Qemu-devel] [PATCH v6 5/7] hostmem-ram: don't exit qemu if size of memory-backend-ram is way too big, Hu Tao, 2014/08/07
[Qemu-devel] [PATCH v6 6/7] exec: report error when memory < hpagesize, Hu Tao, 2014/08/07
[Qemu-devel] [PATCH v6 7/7] exec: add parameter errp to gethugepagesize, Hu Tao, 2014/08/07
- Re: [Qemu-devel] [PATCH v6 7/7] exec: add parameter errp to gethugepagesize,
Peter Crosthwaite <=
Re: [Qemu-devel] [PATCH v6 0/7] memory API improvements and bug fixes for memory backends, Peter Crosthwaite, 2014/08/07