[PATCH] xen-netback: corretly check failed allocation

Subsystems: networking drivers, the rest, xen network backend driver

STALE3981d

5 messages, 4 authors, 2015-10-16 · open the first message on its own page

[PATCH] xen-netback: corretly check failed allocation

From: Insu Yun <hidden>
Date: 2015-10-15 16:26:03

Since vzalloc can be failed in memory pressure,
return value should be checked and return ENOMEM.

Signed-off-by: Insu Yun <redacted>
---
 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

Re: [PATCH] xen-netback: corretly check failed allocation

From: Ian Campbell <hidden>
Date: 2015-10-15 16:44:10

On Thu, 2015-10-15 at 12:26 -0400, Insu Yun wrote:
quoted hunk
Since vzalloc can be failed in memory pressure,
return value should be checked and return ENOMEM.

Signed-off-by: Insu Yun <redacted>
---
 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;
 

Re: [PATCH] xen-netback: corretly check failed allocation

From: Wei Liu <hidden>
Date: 2015-10-15 17:13:06

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.
quoted hunk
Signed-off-by: Insu Yun <redacted>
---
 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

Re: [PATCH] xen-netback: corretly check failed allocation

From: Insu Yun <hidden>
Date: 2015-10-15 17:27:29

Sorry for wrong format, I forgot to change my configuration.

On Thu, Oct 15, 2015 at 1:13 PM, Wei Liu [off-list ref] wrote:
On Thu, Oct 15, 2015 at 12:26:16PM -0400, Insu Yun wrote:
quoted
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.
Good. I will update it.

quoted
Signed-off-by: Insu Yun <redacted>
---
 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
quoted
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.
Ok. Actually I made a code referring the existing code.

We.
quoted
      be->vif->num_queues = requested_num_queues;
      be->vif->stalled_queues = requested_num_queues;

--
1.9.1


-- 
Regards
Insu Yun

Re: [PATCH] xen-netback: corretly check failed allocation

From: David Miller <davem@davemloft.net>
Date: 2015-10-16 06:16:13

From: Insu Yun <redacted>
Date: Thu, 15 Oct 2015 12:26:16 -0400
quoted hunk
Since vzalloc can be failed in memory pressure,
return value should be checked and return ENOMEM.

Signed-off-by: Insu Yun <redacted>
---
 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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help