[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 2/2] net/vde: print error on vde_open() failure
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PULL 2/2] net/vde: print error on vde_open() failure |
Date: |
Mon, 26 Mar 2018 09:13:11 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 |
Hi Jason,
On 03/26/2018 04:00 AM, Jason Wang wrote:
> From: Julia Suvorova via Qemu-devel <address@hidden>
This doesn't look right, shouldn't it be Julia Suvorova <address@hidden>?
>
> Despite the fact that now when the initialization of vde fails, qemu
> does not end silently, no informative error is printed. The patch
> generates an error and pushes it through the calling function.
>
> Related bug: https://bugs.launchpad.net/qemu/+bug/676029
>
> Signed-off-by: Julia Suvorova <address@hidden>
> Signed-off-by: Jason Wang <address@hidden>
> ---
> net/vde.c | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/net/vde.c b/net/vde.c
> index e50e5d6..99189cc 100644
> --- a/net/vde.c
> +++ b/net/vde.c
> @@ -30,6 +30,7 @@
> #include "qemu-common.h"
> #include "qemu/option.h"
> #include "qemu/main-loop.h"
> +#include "qapi/error.h"
>
> typedef struct VDEState {
> NetClientState nc;
> @@ -76,7 +77,7 @@ static NetClientInfo net_vde_info = {
>
> static int net_vde_init(NetClientState *peer, const char *model,
> const char *name, const char *sock,
> - int port, const char *group, int mode)
> + int port, const char *group, int mode, Error **errp)
> {
> NetClientState *nc;
> VDEState *s;
> @@ -92,6 +93,7 @@ static int net_vde_init(NetClientState *peer, const char
> *model,
>
> vde = vde_open(init_sock, (char *)"QEMU", &args);
> if (!vde){
> + error_setg_errno(errp, errno, "Could not open vde");
> return -1;
> }
>
> @@ -112,7 +114,6 @@ static int net_vde_init(NetClientState *peer, const char
> *model,
> int net_init_vde(const Netdev *netdev, const char *name,
> NetClientState *peer, Error **errp)
> {
> - /* FIXME error_setg(errp, ...) on failure */
> const NetdevVdeOptions *vde;
>
> assert(netdev->type == NET_CLIENT_DRIVER_VDE);
> @@ -120,7 +121,7 @@ int net_init_vde(const Netdev *netdev, const char *name,
>
> /* missing optional values have been initialized to "all bits zero" */
> if (net_vde_init(peer, "vde", name, vde->sock, vde->port, vde->group,
> - vde->has_mode ? vde->mode : 0700) == -1) {
> + vde->has_mode ? vde->mode : 0700, errp) == -1) {
> return -1;
> }
>
>