RE: [Xen PATCH] xen-netback: fix error handling output

From: Paul Durrant
Date: Tue Nov 08 2016 - 08:40:23 EST


> -----Original Message-----
> From: Arnd Bergmann [mailto:arnd@xxxxxxxx]
> Sent: 08 November 2016 13:35
> To: David Vrabel <david.vrabel@xxxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>; Wei Liu <wei.liu2@xxxxxxxxxx>; Paul
> Durrant <Paul.Durrant@xxxxxxxxxx>; David S. Miller
> <davem@xxxxxxxxxxxxx>; Juergen Gross <jgross@xxxxxxxx>; Filipe Manco
> <filipe.manco@xxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [Xen PATCH] xen-netback: fix error handling output
>
> The connect function prints an unintialized error code after an
> earlier initialization was removed:
>
> drivers/net/xen-netback/xenbus.c: In function 'connect':
> drivers/net/xen-netback/xenbus.c:938:3: error: 'err' may be used
> uninitialized in this function [-Werror=maybe-uninitialized]
>
> This prints it as -EINVAL instead, which seems to be the most
> appropriate error code. Before the patch that caused the warning,
> this would print a positive number returned by vsscanf() instead,
> which is also wrong. We probably don't need a backport though,
> as fixing the warning here should be sufficient.
>
> Fixes: f95842e7a9f2 ("xen: make use of xenbus_read_unsigned() in xen-
> netback")
> Fixes: 8d3d53b3e433 ("xen-netback: Add support for multiple queues")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

Yes, I'd say EINVAL was most appropriate.

Reviewed-by: Paul Durrant <paul.durrant@xxxxxxxxxx>

> ---
> drivers/net/xen-netback/xenbus.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-
> netback/xenbus.c
> index 7356e00fac54..bfed79877b8a 100644
> --- a/drivers/net/xen-netback/xenbus.c
> +++ b/drivers/net/xen-netback/xenbus.c
> @@ -935,7 +935,7 @@ static void connect(struct backend_info *be)
> "multi-queue-num-queues", 1);
> if (requested_num_queues > xenvif_max_queues) {
> /* buggy or malicious guest */
> - xenbus_dev_fatal(dev, err,
> + xenbus_dev_fatal(dev, -EINVAL,
> "guest requested %u queues, exceeding the
> maximum of %u.",
> requested_num_queues,
> xenvif_max_queues);
> return;
> --
> 2.9.0