Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1247979 > unrolled thread

[PATCH] xen-netback: corretly check failed allocation

Started byInsu Yun <wuninsu@gmail.com>
First post2015-10-15 18:30 +0200
Last post2015-10-16 08:20 +0200
Articles 4 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] xen-netback: corretly check failed allocation Insu Yun <wuninsu@gmail.com> - 2015-10-15 18:30 +0200
    Re: [PATCH] xen-netback: corretly check failed allocation Ian Campbell <ian.campbell@citrix.com> - 2015-10-15 18:50 +0200
    Re: [PATCH] xen-netback: corretly check failed allocation Wei Liu <wei.liu2@citrix.com> - 2015-10-15 19:20 +0200
    Re: [PATCH] xen-netback: corretly check failed allocation David Miller <davem@davemloft.net> - 2015-10-16 08:20 +0200

#1247979 — [PATCH] xen-netback: corretly check failed allocation

FromInsu Yun <wuninsu@gmail.com>
Date2015-10-15 18:30 +0200
Subject[PATCH] xen-netback: corretly check failed allocation
Message-ID<qjTzI-3md-25@gated-at.bofh.it>
Since vzalloc can be failed in memory pressure,
return value should be checked and return ENOMEM.

Signed-off-by: Insu Yun <wuninsu@gmail.com>
---
 drivers/net/xen-netback/xenbus.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index 929a6e7..e288246 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -788,6 +788,11 @@ static void connect(struct backend_info *be)
 	/* Use the number of queues requested by the frontend */
 	be->vif->queues = vzalloc(requested_num_queues *
 				  sizeof(struct xenvif_queue));
+  if (!be->vif->queues)  {
+    xenbus_dev_fatal(dev, -ENOMEM, "allocating queues");
+    return;
+  }
+
 	be->vif->num_queues = requested_num_queues;
 	be->vif->stalled_queues = requested_num_queues;
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1248000

FromIan Campbell <ian.campbell@citrix.com>
Date2015-10-15 18:50 +0200
Message-ID<qjTT4-3IL-17@gated-at.bofh.it>
In reply to#1247979
On Thu, 2015-10-15 at 12:26 -0400, Insu Yun wrote:
> Since vzalloc can be failed in memory pressure,
> return value should be checked and return ENOMEM.
> 
> Signed-off-by: Insu Yun <wuninsu@gmail.com>
> ---
>  drivers/net/xen-netback/xenbus.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen
> -netback/xenbus.c
> index 929a6e7..e288246 100644
> --- a/drivers/net/xen-netback/xenbus.c
> +++ b/drivers/net/xen-netback/xenbus.c
> @@ -788,6 +788,11 @@ static void connect(struct backend_info *be)
>  	/* Use the number of queues requested by the frontend */
>  	be->vif->queues = vzalloc(requested_num_queues *
>  				  sizeof(struct xenvif_queue));
> +  if (!be->vif->queues)  {
> +    xenbus_dev_fatal(dev, -ENOMEM, "allocating queues");
> +    return;
> +  }

Please fix the coding style, perhaps using checkpatch.pl or by observing
the surrounding code.

Ian.

> +
>  	be->vif->num_queues = requested_num_queues;
>  	be->vif->stalled_queues = requested_num_queues;
>  
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1248018

FromWei Liu <wei.liu2@citrix.com>
Date2015-10-15 19:20 +0200
Message-ID<qjUm6-4xd-5@gated-at.bofh.it>
In reply to#1247979
On Thu, Oct 15, 2015 at 12:26:16PM -0400, Insu Yun wrote:
> Since vzalloc can be failed in memory pressure,
> return value should be checked and return ENOMEM.

This function doesn't return ENOMEM, instead it writes to xenstore to
indicate error. The commit log needs to be updated.

> 
> Signed-off-by: Insu Yun <wuninsu@gmail.com>
> ---
>  drivers/net/xen-netback/xenbus.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
> index 929a6e7..e288246 100644
> --- a/drivers/net/xen-netback/xenbus.c
> +++ b/drivers/net/xen-netback/xenbus.c
> @@ -788,6 +788,11 @@ static void connect(struct backend_info *be)
>  	/* Use the number of queues requested by the frontend */
>  	be->vif->queues = vzalloc(requested_num_queues *
>  				  sizeof(struct xenvif_queue));
> +  if (!be->vif->queues)  {
> +    xenbus_dev_fatal(dev, -ENOMEM, "allocating queues");
> +    return;
> +  }
> +

The indentation is wrong. Please configure your email client properly.

And please use "goto err" for error handling -- yes, I understand there
is existing code that returns directly but IMHO that should be fixed
too.

We.

>  	be->vif->num_queues = requested_num_queues;
>  	be->vif->stalled_queues = requested_num_queues;
>  
> -- 
> 1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1248361

FromDavid Miller <davem@davemloft.net>
Date2015-10-16 08:20 +0200
Message-ID<qk6wW-610-7@gated-at.bofh.it>
In reply to#1247979
From: Insu Yun <wuninsu@gmail.com>
Date: Thu, 15 Oct 2015 12:26:16 -0400

> Since vzalloc can be failed in memory pressure,
> return value should be checked and return ENOMEM.
> 
> Signed-off-by: Insu Yun <wuninsu@gmail.com>
> ---
>  drivers/net/xen-netback/xenbus.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
> index 929a6e7..e288246 100644
> --- a/drivers/net/xen-netback/xenbus.c
> +++ b/drivers/net/xen-netback/xenbus.c
> @@ -788,6 +788,11 @@ static void connect(struct backend_info *be)
>  	/* Use the number of queues requested by the frontend */
>  	be->vif->queues = vzalloc(requested_num_queues *
>  				  sizeof(struct xenvif_queue));
> +  if (!be->vif->queues)  {
> +    xenbus_dev_fatal(dev, -ENOMEM, "allocating queues");
> +    return;
> +  }

This is definitely not indented correctly.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web